You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ms...@apache.org on 2011/01/14 22:24:42 UTC
svn commit: r1059177 - in
/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml:
PanelBorderLayoutRenderer.java jsLibs/PanelBorderIE6Scriptlet.java
jsLibs/XhtmlScriptletFactory.java
Author: mstarets
Date: Fri Jan 14 21:24:41 2011
New Revision: 1059177
URL: http://svn.apache.org/viewvc?rev=1059177&view=rev
Log:
TRINIDAD-2008 - tr:panelBorderLayout is throwing exception with Mojarra during tag execution
Added:
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/PanelBorderIE6Scriptlet.java
Modified:
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelBorderLayoutRenderer.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/XhtmlScriptletFactory.java
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelBorderLayoutRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelBorderLayoutRenderer.java?rev=1059177&r1=1059176&r2=1059177&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelBorderLayoutRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelBorderLayoutRenderer.java Fri Jan 14 21:24:41 2011
@@ -32,7 +32,7 @@ import org.apache.myfaces.trinidad.conte
import org.apache.myfaces.trinidad.context.RenderingContext;
import org.apache.myfaces.trinidad.util.ComponentUtils;
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
-import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.jsLibs.Scriptlet;
+import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.jsLibs.PanelBorderIE6Scriptlet;
/**
@@ -731,7 +731,7 @@ public class PanelBorderLayoutRenderer e
if (isIE6)
{
// send down the JS that we need to stretch the components
- XhtmlUtils.addLib(context, rc, IE6_SCRIPT.getScriptletKey());
+ XhtmlUtils.addLib(context, rc, PanelBorderIE6Scriptlet.sharedInstance().getScriptletKey());
}
writer.startElement("div", component);
@@ -1031,74 +1031,4 @@ public class PanelBorderLayoutRenderer e
private PropertyKey _innerStartWidthKey;
private PropertyKey _endWidthKey;
private PropertyKey _innerEndWidthKey;
-
- // Since IE6 cannot stretch components using docking, we are forced to use
- // JavaScript to do the dirty work
- private static final Scriptlet IE6_SCRIPT = new Scriptlet()
- {
- private static final String IE_JS_CODE =
- "function TrPanelBorderLayoutResizeIE6(elem)\n" +
- "{\n" +
- " var id = elem.id;\n" +
- " var innerElems = elem._trInnerElems;\n" +
- " if (innerElems == null)\n" +
- " {\n" +
- " innerElems = elem._trInnerElems = new Array(\n" +
- " document.getElementById(id + '::top'),\n" +
- " document.getElementById(id + '::bottom'),\n" +
- " document.getElementById(id + '::left'),\n" +
- " document.getElementById(id + '::right'),\n" +
- " document.getElementById(id + '::center'),\n" +
- " document.getElementById(id + '::innerTop'),\n" +
- " document.getElementById(id + '::innerBottom'),\n" +
- " document.getElementById(id + '::innerLeft'),\n" +
- " document.getElementById(id + '::innerRight'),\n" +
- " document.getElementById(id + '::innerCenter'));\n" +
- " }\n" +
- " var topHeight = innerElems[0] ? innerElems[0].offsetHeight : 0;\n" +
- " var bottomHeight = innerElems[1] ? innerElems[1].offsetHeight : 0;\n" +
- " var leftWidth = innerElems[2] ? innerElems[2].offsetWidth : 0;\n" +
- " var rightWidth = innerElems[3] ? innerElems[3].offsetWidth : 0;\n" +
- " var center = innerElems[4];\n" +
- " var innerCenter = innerElems[9];\n" +
- " var width = elem.clientWidth;\n" +
- " var height = elem.clientHeight;\n" +
- " var centerHeight = (height - topHeight - bottomHeight);\n" +
- " var centerWidth = (width - leftWidth - rightWidth);\n" +
- " center.style.height = centerHeight + 'px';\n" +
- " center.style.width = centerWidth + 'px';\n" +
- " if (innerElems[2]) innerElems[2].style.height = centerHeight + 'px';\n" +
- " if (innerElems[3]) innerElems[3].style.height = centerHeight + 'px';\n" +
- " var innerTopHeight = innerElems[5] ? innerElems[5].offsetHeight : 0;\n" +
- " var innerBottomHeight = innerElems[6] ? innerElems[6].offsetHeight : 0;\n" +
- " var innerLeftWidth = innerElems[7] ? innerElems[7].offsetWidth : 0;\n" +
- " var innerRightWidth = innerElems[8] ? innerElems[8].offsetWidth : 0;\n" +
- " var innerCenterHeight = (centerHeight - innerTopHeight - innerBottomHeight);\n" +
- " var innerCenterWidth = (centerWidth - innerLeftWidth - innerRightWidth);\n" +
- " innerCenter.style.height = innerCenterHeight + 'px';\n" +
- " innerCenter.style.width = innerCenterWidth + 'px';\n" +
- " if (innerElems[7]) innerElems[7].style.height = innerCenterHeight + 'px';\n" +
- " if (innerElems[8]) innerElems[8].style.height = innerCenterHeight + 'px';\n" +
- "}";
-
- @Override
- public Object getScriptletKey()
- {
- return "TrPanelBorderLayoutResizeIE6()";
- };
-
- @Override
- protected void outputScriptletContent(
- FacesContext context,
- RenderingContext rc
- ) throws IOException
- {
- context.getResponseWriter().writeText(IE_JS_CODE, null);
- };
- };
-
- static
- {
- XhtmlUtils.registerScriptlet(IE6_SCRIPT.getScriptletKey(), IE6_SCRIPT);
- };
}
Added: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/PanelBorderIE6Scriptlet.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/PanelBorderIE6Scriptlet.java?rev=1059177&view=auto
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/PanelBorderIE6Scriptlet.java (added)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/PanelBorderIE6Scriptlet.java Fri Jan 14 21:24:41 2011
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.jsLibs;
+
+import java.io.IOException;
+import javax.faces.context.FacesContext;
+import org.apache.myfaces.trinidad.context.RenderingContext;
+
+
+// Since IE6 cannot stretch components using docking, we are forced to use
+// JavaScript to do the dirty work
+public class PanelBorderIE6Scriptlet extends Scriptlet
+{
+ static public Scriptlet sharedInstance()
+ {
+ return _sInstance;
+ }
+
+ @Override
+ public Object getScriptletKey()
+ {
+ return "TrPanelBorderLayoutResizeIE6()";
+ }
+
+ @Override
+ protected void outputScriptletContent(
+ FacesContext context,
+ RenderingContext rc
+ ) throws IOException
+ {
+ context.getResponseWriter().writeText(IE_JS_CODE, null);
+ }
+
+ private PanelBorderIE6Scriptlet()
+ {
+ super();
+ }
+
+
+ private static final String IE_JS_CODE =
+ "function TrPanelBorderLayoutResizeIE6(elem)\n" +
+ "{\n" +
+ " var id = elem.id;\n" +
+ " var innerElems = elem._trInnerElems;\n" +
+ " if (innerElems == null)\n" +
+ " {\n" +
+ " innerElems = elem._trInnerElems = new Array(\n" +
+ " document.getElementById(id + '::top'),\n" +
+ " document.getElementById(id + '::bottom'),\n" +
+ " document.getElementById(id + '::left'),\n" +
+ " document.getElementById(id + '::right'),\n" +
+ " document.getElementById(id + '::center'),\n" +
+ " document.getElementById(id + '::innerTop'),\n" +
+ " document.getElementById(id + '::innerBottom'),\n" +
+ " document.getElementById(id + '::innerLeft'),\n" +
+ " document.getElementById(id + '::innerRight'),\n" +
+ " document.getElementById(id + '::innerCenter'));\n" +
+ " }\n" +
+ " var topHeight = innerElems[0] ? innerElems[0].offsetHeight : 0;\n" +
+ " var bottomHeight = innerElems[1] ? innerElems[1].offsetHeight : 0;\n" +
+ " var leftWidth = innerElems[2] ? innerElems[2].offsetWidth : 0;\n" +
+ " var rightWidth = innerElems[3] ? innerElems[3].offsetWidth : 0;\n" +
+ " var center = innerElems[4];\n" +
+ " var innerCenter = innerElems[9];\n" +
+ " var width = elem.clientWidth;\n" +
+ " var height = elem.clientHeight;\n" +
+ " var centerHeight = (height - topHeight - bottomHeight);\n" +
+ " var centerWidth = (width - leftWidth - rightWidth);\n" +
+ " center.style.height = centerHeight + 'px';\n" +
+ " center.style.width = centerWidth + 'px';\n" +
+ " if (innerElems[2]) innerElems[2].style.height = centerHeight + 'px';\n" +
+ " if (innerElems[3]) innerElems[3].style.height = centerHeight + 'px';\n" +
+ " var innerTopHeight = innerElems[5] ? innerElems[5].offsetHeight : 0;\n" +
+ " var innerBottomHeight = innerElems[6] ? innerElems[6].offsetHeight : 0;\n" +
+ " var innerLeftWidth = innerElems[7] ? innerElems[7].offsetWidth : 0;\n" +
+ " var innerRightWidth = innerElems[8] ? innerElems[8].offsetWidth : 0;\n" +
+ " var innerCenterHeight = (centerHeight - innerTopHeight - innerBottomHeight);\n" +
+ " var innerCenterWidth = (centerWidth - innerLeftWidth - innerRightWidth);\n" +
+ " innerCenter.style.height = innerCenterHeight + 'px';\n" +
+ " innerCenter.style.width = innerCenterWidth + 'px';\n" +
+ " if (innerElems[7]) innerElems[7].style.height = innerCenterHeight + 'px';\n" +
+ " if (innerElems[8]) innerElems[8].style.height = innerCenterHeight + 'px';\n" +
+ "}";
+
+
+ static private final Scriptlet _sInstance = new PanelBorderIE6Scriptlet();
+
+}
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/XhtmlScriptletFactory.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/XhtmlScriptletFactory.java?rev=1059177&r1=1059176&r2=1059177&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/XhtmlScriptletFactory.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/XhtmlScriptletFactory.java Fri Jan 14 21:24:41 2011
@@ -77,6 +77,7 @@ public class XhtmlScriptletFactory
ConfigurationScriptlet.sharedInstance().registerSelf();
GlobalVariablesScriptlet.sharedInstance().registerSelf();
DialogStyleScriptlet.sharedInstance().registerSelf();
+ PanelBorderIE6Scriptlet.sharedInstance().registerSelf();
}