You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by gv...@apache.org on 2005/09/15 05:56:29 UTC
svn commit: r289140 [1/2] - in /struts/shale/trunk: clay-plugin/src/conf/
clay-plugin/src/java/org/apache/shale/clay/component/
clay-plugin/src/java/org/apache/shale/clay/component/chain/
clay-plugin/src/java/org/apache/shale/clay/config/ clay-plugin/s...
Author: gvanmatre
Date: Wed Sep 14 20:56:06 2005
New Revision: 289140
URL: http://svn.apache.org/viewcvs?rev=289140&view=rev
Log:
Fix for bug# 36659, 36644 and 36660. Added the capability to build HTML views without an XML configuration file.
Modified:
struts/shale/trunk/clay-plugin/src/conf/view-config.xml
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/Clay.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/AssignPropertiesCommand.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionCommand.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionListenerCommand.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValidatorCommand.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueChangeListenerCommand.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/shale-clay-config.xml
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/TemplateConfigBean.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/faces/ClayViewHandler.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/Builder.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/CommandButtonBuilder.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/VerbatimBuilder.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/Rolodex.java
struts/shale/trunk/use-cases/src/web/rolodex/hrolodex.html
Modified: struts/shale/trunk/clay-plugin/src/conf/view-config.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/conf/view-config.xml?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/conf/view-config.xml (original)
+++ struts/shale/trunk/clay-plugin/src/conf/view-config.xml Wed Sep 14 20:56:06 2005
@@ -25,28 +25,115 @@
validated (on a subsequent form submit) to catch cases where the
same form was submitted more than once.
-->
- <component jsfid="token" id="token" componentType="org.apache.shale.Token" allowBody="false"/>
+ <component jsfid="token" id="token" componentType="org.apache.shale.Token" allowBody="false">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ </attributes>
+ </component>
+
+ <!-- Provides access to Commons Validators -->
+ <component jsfid="commonsValidator" id="commonsValidator" componentType="org.apache.shale.CommonsValidator" allowBody="false">
+ <attributes>
+ <set name="type" useValueLateBinding="true" />
+ <set name="min" useValueLateBinding="true" />
+ <set name="max" useValueLateBinding="true" />
+ <set name="minlength" useValueLateBinding="true" />
+ <set name="maxlength" useValueLateBinding="true" />
+ <set name="mask" useValueLateBinding="true" />
+ <set name="message" useValueLateBinding="true" />
+ <set name="arg" useValueLateBinding="true" />
+ <set name="client" useValueLateBinding="true" />
+ <set name="server" useValueLateBinding="true" />
+ </attributes>
+ </component>
+
+ <!-- Provide ViewController support functionality for the nested content
+ (typically a JSP dynamic include) of this component.
+ -->
+ <component jsfid="subview" id="subview" componentType="org.apache.shale.Subview" allowBody="true">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ </attributes>
+ </component>
+
+ <!-- Generates JavaScript for client-side validation -->
+ <component jsfid="validatorScript" id="validatorScript" componentType="org.apache.shale.ValidatorScript" allowBody="false">
+ <attributes>
+ <set name="functionName" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render readonly text
-->
<component jsfid="outputText" componentType="javax.faces.HtmlOutputText">
<attributes>
- <!-- The current value of this component. -->
- <set name="value" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="rendered" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <set name="escape" useValueLateBinding="true" />
+
</attributes>
</component>
<!--
Render a url query parameter argument
-->
- <component jsfid="parameter" componentType="javax.faces.Parameter"/>
- <component jsfid="param" componentType="javax.faces.Parameter"/>
+ <component jsfid="parameter" componentType="javax.faces.Parameter">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="name" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ </attributes>
+ </component>
+ <component jsfid="param" extends="parameter"/>
<!--
Render a single html option tag
-->
- <component jsfid="selectItem" componentType="javax.faces.SelectItem"/>
+ <component jsfid="selectItem" componentType="javax.faces.SelectItem">
+ <attributes>
+ <set name="itemDisabled" useValueLateBinding="true" />
+ <set name="itemDescription" useValueLateBinding="true" />
+ <set name="itemLabel" useValueLateBinding="true" />
+ <set name="itemValue" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ </attributes>
+
+ </component>
+
+ <!--
+ Render plain text
+ -->
+ <component jsfid="verbatim" componentType="javax.faces.HtmlOutputText">
+ <attributes>
+ <set name="escape" useValueLateBinding="true" />
+ <set name="isTransient" useValueLateBinding="false" value="true" />
+ <set name="value" useValueLateBinding="true" />
+ </attributes>
+ </component>
+
+
<!--
Render an html option tag for each item in the bound collection
@@ -60,111 +147,951 @@
<!--
Render a set of html "input" elements of type "radio".
-->
- <component jsfid="selectOneRadio" componentType="javax.faces.HtmlSelectOneRadio"/>
+ <component jsfid="selectOneRadio" componentType="javax.faces.HtmlSelectOneRadio">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <set name="layout" useValueLateBinding="true" />
+ <set name="border" useValueLateBinding="true" />
+
+ </attributes>
+ </component>
<!--
Render a "select" element without a multiple attribute.
-->
- <component jsfid="selectOneMenu" componentType="javax.faces.HtmlSelectOneMenu"/>
+ <component jsfid="selectOneMenu" componentType="javax.faces.HtmlSelectOneMenu">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+ </attributes>
+
+ </component>
<!--
Render a "select" element with a multiple attribute.
-->
- <component jsfid="selectManyMenu" componentType="javax.faces.HtmlSelectManyMenu"/>
+ <component jsfid="selectManyMenu" componentType="javax.faces.HtmlSelectManyMenu">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a set of html "input" elements of type "checkbox".
-->
- <component jsfid="manyCheckbox" componentType="javax.faces.HtmlSelectManyCheckbox"/>
+ <component jsfid="manySelectCheckbox" componentType="javax.faces.HtmlSelectManyCheckbox">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <set name="layout" useValueLateBinding="true" />
+
+ </attributes>
+ </component>
<!--
Render a html "input" element of type "checkbox".
-->
- <component jsfid="selectBooleanCheckbox" componentType="javax.faces.HtmlSelectBooleanCheckbox"/>
+ <component jsfid="selectBooleanCheckbox" componentType="javax.faces.HtmlSelectBooleanCheckbox">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ </attributes>
+ </component>
<!--
Render a html "table" element.
-->
- <component jsfid="panelGroup" componentType="javax.faces.HtmlPanelGroup"/>
+ <component jsfid="panelGroup" componentType="javax.faces.HtmlPanelGroup">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ </attributes>
+ </component>
<!--
Render a html "a" element.
-->
- <component jsfid="outputLink" componentType="javax.faces.HtmlOutputLink"/>
+ <component jsfid="outputLink" componentType="javax.faces.HtmlOutputLink">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 anchor (=a) attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="charset" useValueLateBinding="true" />
+ <set name="coords" useValueLateBinding="true" />
+ <set name="hreflang" useValueLateBinding="true" />
+ <set name="rel" useValueLateBinding="true" />
+ <set name="rev" useValueLateBinding="true" />
+ <set name="shape" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+ <set name="type" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="target" useValueLateBinding="true" />
+
+ </attributes>
+ </component>
<!--
Render a html "label" element.
-->
- <component jsfid="outputLabel" componentType="javax.faces.HtmlOutputLabel"/>
+ <component jsfid="outputLabel" componentType="javax.faces.HtmlOutputLabel">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 label attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="for" useValueLateBinding="true" />
+
+ </attributes>
+ </component>
<!--
Render a html "textarea" element.
-->
- <component jsfid="inputTextarea" componentType="javax.faces.HtmlInputTextarea"/>
+ <component jsfid="inputTextarea" componentType="javax.faces.HtmlInputTextarea">
+ <attributes>
+
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="rows" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a html "input" element of type "password".
-->
- <component jsfid="inputSecret" componentType="javax.faces.HtmlInputSecret"/>
+ <component jsfid="inputSecret" componentType="javax.faces.HtmlInputSecret">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="maxlength" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="size" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- SecretRenderer attributes -->
+ <set name="redisplay" useValueLateBinding="true" />
+
+ </attributes>
+
+ </component>
<!--
Render a html "input" element of type "hidden".
-->
- <component jsfid="inputHidden" componentType="javax.faces.HtmlInputHidden"/>
+ <component jsfid="inputHidden" componentType="javax.faces.HtmlInputHidden">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a html "img" element.
-->
- <component jsfid="image" componentType="javax.faces.HtmlGraphicImage"/>
+ <component jsfid="image" componentType="javax.faces.HtmlGraphicImage">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="url" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 img attributes -->
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="border" useValueLateBinding="true" />
+ <set name="height" useValueLateBinding="true" />
+ <set name="hspace" useValueLateBinding="true" />
+ <set name="ismap" useValueLateBinding="true" />
+ <set name="longdesc" useValueLateBinding="true" />
+ <set name="usemap" useValueLateBinding="true" />
+ <set name="vspace" useValueLateBinding="true" />
+ <set name="width" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a html "form" element.
-->
- <component jsfid="form" componentType="javax.faces.HtmlForm"/>
+ <component jsfid="form" componentType="javax.faces.HtmlForm">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 form attributes -->
+ <set name="accept" useValueLateBinding="true" />
+ <set name="acceptCharset" useValueLateBinding="true" />
+ <set name="enctype" useValueLateBinding="true" />
+ <set name="name" useValueLateBinding="true" />
+ <set name="onreset" useValueLateBinding="true" />
+ <set name="onsubmit" useValueLateBinding="true" />
+ <set name="target" useValueLateBinding="true" />
+
+ </attributes>
+ </component>
<!--
Render a html "table" element.
-->
- <component jsfid="dataTable" componentType="javax.faces.HtmlDataTable"/>
+ <component jsfid="dataTable" componentType="javax.faces.HtmlDataTable">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 table attributes -->
+ <set name="align" useValueLateBinding="true" />
+ <set name="border" useValueLateBinding="true" />
+ <set name="bgcolor" useValueLateBinding="true" />
+ <set name="cellpadding" useValueLateBinding="true" />
+ <set name="cellspacing" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="frame" useValueLateBinding="true" />
+ <set name="rules" useValueLateBinding="true" />
+ <set name="summary" useValueLateBinding="true" />
+ <set name="width" useValueLateBinding="true" />
+ <set name="value" useMethodLateBinding="true" />
+ <set name="var" useMethodLateBinding="false" />
+ <set name="rows" useMethodLateBinding="true" />
+ <set name="first" useMethodLateBinding="true" />
+ <set name="columnClasses" useMethodLateBinding="true" />
+ <set name="footerClass" useMethodLateBinding="true" />
+ <set name="headerClass" useMethodLateBinding="true" />
+ <set name="rowClasses" useMethodLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a html "input" element of type "button".
-->
- <component jsfid="commandLink" componentType="javax.faces.HtmlCommandLink"/>
+ <component jsfid="commandLink" componentType="javax.faces.HtmlCommandLink">
+ <attributes>
+ <!-- UIComponent attributes -->
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="action" useMethodLateBinding="true" />
+ <set name="actionListener" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 anchor (=a) attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="coords" useValueLateBinding="true" />
+ <set name="hreflang" useValueLateBinding="true" />
+ <set name="rel" useValueLateBinding="true" />
+ <set name="rev" useValueLateBinding="true" />
+ <set name="shape" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+ <set name="type" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="target" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Defines a html "td" element within a "dataTable".
-->
- <component jsfid="column" componentType="javax.faces.Column"/>
+ <component jsfid="column" componentType="javax.faces.Column">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="facetName" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a html "input" element of type "text".
-->
- <component jsfid="inputText" componentType="javax.faces.HtmlInputText"/>
+ <component jsfid="inputText" componentType="javax.faces.HtmlInputText">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="validator" useMethodLateBinding="true" />
+ <set name="valueChangeListener" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="align" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="maxlength" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="readonly" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="size" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <set name="escape" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a readonly text value substituting inline string parameters.
-->
- <component jsfid="outputFormat" componentType="javax.faces.HtmlOutputFormat"/>
+ <component jsfid="outputFormat" componentType="javax.faces.HtmlOutputFormat">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+ <set name="converter" useMethodLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+ <set name="escape" useValueLateBinding="true" />
+ </attributes>
+
+ </component>
<!--
Render a set of readonly text messages.
-->
- <component jsfid="messages" componentType="javax.faces.HtmlMessages"/>
+ <component jsfid="messages" componentType="javax.faces.HtmlMessages">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="showSummary" useValueLateBinding="true" />
+ <set name="showDetail" useValueLateBinding="true" />
+ <set name="globalOnly" useValueLateBinding="true" />
+
+ <set name="infoClass" useValueLateBinding="true" />
+ <set name="infoStyle" useValueLateBinding="true" />
+ <set name="warnClass" useValueLateBinding="true" />
+ <set name="warnStyle" useValueLateBinding="true" />
+ <set name="errorClass" useValueLateBinding="true" />
+ <set name="errorStyle" useValueLateBinding="true" />
+ <set name="fatalClass" useValueLateBinding="true" />
+ <set name="fatalStyle" useValueLateBinding="true" />
+ <set name="tooltip" useValueLateBinding="true" />
+ <set name="layout" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a readonly text messages associated with an "input" element.
-->
- <component jsfid="message" componentType="javax.faces.HtmlMessage"/>
+ <component jsfid="message" componentType="javax.faces.HtmlMessage">
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="for" useValueLateBinding="true" />
+ <set name="showSummary" useValueLateBinding="true" />
+ <set name="showDetail" useValueLateBinding="true" />
+ <set name="infoClass" useValueLateBinding="true" />
+ <set name="infoStyle" useValueLateBinding="true" />
+ <set name="warnClass" useValueLateBinding="true" />
+ <set name="warnStyle" useValueLateBinding="true" />
+ <set name="errorClass" useValueLateBinding="true" />
+ <set name="errorStyle" useValueLateBinding="true" />
+ <set name="fatalClass" useValueLateBinding="true" />
+ <set name="fatalStyle" useValueLateBinding="true" />
+ <set name="tooltip" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a html "input" element of type "submit".
-->
- <component jsfid="commandButton" componentType="javax.faces.HtmlCommandButton"/>
+ <component jsfid="commandButton" componentType="javax.faces.HtmlCommandButton">
+ <attributes>
+ <!-- UIComponent attributes -->
+ <set name="rendered" useValueLateBinding="true" />
+ <set name="action" useMethodLateBinding="true" />
+ <set name="actionListener" useMethodLateBinding="true" />
+ <set name="immediate" useValueLateBinding="true" />
+ <set name="value" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 button attributes -->
+ <set name="accesskey" useValueLateBinding="true" />
+ <set name="alt" useValueLateBinding="true" />
+ <set name="disabled" useValueLateBinding="true" />
+ <set name="onblur" useValueLateBinding="true" />
+ <set name="onchange" useValueLateBinding="true" />
+ <set name="onfocus" useValueLateBinding="true" />
+ <set name="onselect" useValueLateBinding="true" />
+ <set name="size" useValueLateBinding="true" />
+ <set name="tabindex" useValueLateBinding="true" />
+ <set name="type" useValueLateBinding="true" />
+
+ <!-- HtmlCommandButton attributes -->
+ <set name="image" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Render a html "table" element.
-->
- <component jsfid="panelGrid" componentType="javax.faces.HtmlPanelGrid" />
+ <component jsfid="panelGrid" componentType="javax.faces.HtmlPanelGrid">
+ <attributes>
+ <set name="value" useValueLateBinding="true" />
+ <set name="rendered" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" useValueLateBinding="true" />
+ <set name="lang" useValueLateBinding="true" />
+ <set name="style" useValueLateBinding="true" />
+ <set name="title" useValueLateBinding="true" />
+ <set name="styleClass" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" useValueLateBinding="true" />
+ <set name="ondblclick" useValueLateBinding="true" />
+ <set name="onmousedown" useValueLateBinding="true" />
+ <set name="onmouseup" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmouseover" useValueLateBinding="true" />
+ <set name="onmousemove" useValueLateBinding="true" />
+ <set name="onmouseout" useValueLateBinding="true" />
+ <set name="onkeypress" useValueLateBinding="true" />
+ <set name="onkeydown" useValueLateBinding="true" />
+ <set name="onkeyup" useValueLateBinding="true" />
+
+ <!-- HTML 4.0 table attributes -->
+ <set name="align" useValueLateBinding="true" />
+ <set name="border" useValueLateBinding="true" />
+ <set name="bgcolor" useValueLateBinding="true" />
+ <set name="cellpadding" useValueLateBinding="true" />
+ <set name="cellspacing" useValueLateBinding="true" />
+ <set name="datafld" useValueLateBinding="true" />
+ <set name="datasrc" useValueLateBinding="true" />
+ <set name="dataformatas" useValueLateBinding="true" />
+ <set name="frame" useValueLateBinding="true" />
+ <set name="rules" useValueLateBinding="true" />
+ <set name="summary" useValueLateBinding="true" />
+ <set name="width" useValueLateBinding="true" />
+
+ <!-- GridRenderer attributes -->
+ <set name="columnClasses" useValueLateBinding="true" />
+ <set name="columns" useValueLateBinding="true" />
+ <set name="footerClass" useValueLateBinding="true" />
+ <set name="headerClass" useValueLateBinding="true" />
+ <set name="rowClasses" useValueLateBinding="true" />
+ </attributes>
+ </component>
<!--
Not associated with an html element.
@@ -191,7 +1118,10 @@
-->
<component jsfid="dateTimeConverter" componentType="javax.faces.DateTime" >
<attributes>
- <set name="pattern" value="MM/dd/yyyy" />
+ <set name="dateStyle" useValueLateBinding="true" />
+ <set name="pattern" useValueLateBinding="true"/>
+ <set name="timeStyle" useValueLateBinding="true"/>
+ <set name="type" useValueLateBinding="true"/>
</attributes>
</component>
@@ -209,10 +1139,13 @@
<!-- Nested Clay Component -->
<component jsfid="clay" componentType="org.apache.shale.clay.component.Clay"
allowBody="false">
- <attributes>
+ <attributes>
+ <set name="rendered" useValueLateBinding="true" />
<set name="jsfid" value="RUNTIME"/>
- <set name="managedBeanName" useValueLateBinding="false"/>
- <set name="shapeValidator" useMethodLateBinding="true"/>
+ <set name="managedBeanName" useValueLateBinding="false"/>
+ <!--
+ <set name="shapeValidator" useMethodLateBinding="true"/>
+ -->
</attributes>
</component>
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/Clay.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/Clay.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/Clay.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/Clay.java Wed Sep 14 20:56:06 2005
@@ -207,10 +207,10 @@
.getMessage("clay.config.notloaded"));
// find the top-level display element associated with the subtree
- ComponentBean b = (ComponentBean) config.getElement(jsfid);
+ ComponentBean b = (ComponentBean) config.getElement(getJsfid());
if (b == null)
throw new NullPointerException(messages.getMessage(
- "clay.jsfid.notfound", new Object[] { jsfid }));
+ "clay.jsfid.notfound", new Object[] { getJsfid() }));
return b;
}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/AssignPropertiesCommand.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/AssignPropertiesCommand.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/AssignPropertiesCommand.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/AssignPropertiesCommand.java Wed Sep 14 20:56:06 2005
@@ -80,8 +80,11 @@
Catalog catalog = getCatalog();
Command command = catalog
.getCommand(Globals.SET_ATTRIBUTE_COMMAND_NAME);
- while (ai.hasNext()) {
+ next: while (ai.hasNext()) {
AttributeBean a = (AttributeBean) ai.next();
+ if (a.getValue() == null)
+ continue next;
+
clayContext.setAttribute(a);
try {
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionCommand.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionCommand.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionCommand.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionCommand.java Wed Sep 14 20:56:06 2005
@@ -88,7 +88,7 @@
if (tagUtils == null)
throw new NullPointerException(messages.getMessage("clay.null.tagUtils"));
- if (attributeBean.getName().equals("action")) {
+ if (attributeBean.getName().equals("action") && attributeBean.getValue() != null) {
isFinal = true;
UIComponent child = (UIComponent) clayContext.getChild();
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionListenerCommand.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionListenerCommand.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionListenerCommand.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyActionListenerCommand.java Wed Sep 14 20:56:06 2005
@@ -77,7 +77,7 @@
if (facesContext == null)
throw new NullPointerException(messages.getMessage("clay.null.facesContext"));
- if (attributeBean.getName().equals("actionListener")) {
+ if (attributeBean.getName().equals("actionListener") && attributeBean.getValue() != null) {
isFinal = true;
UIComponent child = (UIComponent) clayContext.getChild();
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValidatorCommand.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValidatorCommand.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValidatorCommand.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValidatorCommand.java Wed Sep 14 20:56:06 2005
@@ -76,7 +76,7 @@
FacesContext facesContext = clayContext.getFacesContext();
if (facesContext == null)
throw new NullPointerException(messages.getMessage("clay.null.facesContext"));
- if (attributeBean.getName().equals("validator")) {
+ if (attributeBean.getName().equals("validator") && attributeBean.getValue() != null) {
isFinal = true;
UIComponent child = (UIComponent) clayContext.getChild();
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueChangeListenerCommand.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueChangeListenerCommand.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueChangeListenerCommand.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueChangeListenerCommand.java Wed Sep 14 20:56:06 2005
@@ -76,7 +76,7 @@
FacesContext facesContext = clayContext.getFacesContext();
if (facesContext == null)
throw new NullPointerException(messages.getMessage("clay.null.facesContext"));
- if (attributeBean.getName().equals("valueChangeListener")) {
+ if (attributeBean.getName().equals("valueChangeListener") && attributeBean.getValue() != null) {
isFinal = true;
UIComponent child = (UIComponent) clayContext.getChild();
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java Wed Sep 14 20:56:06 2005
@@ -98,7 +98,7 @@
((UIComponent) child).setValueBinding(attributeBean.getName(), binding);
- } else if (attributeBean.useMethodLateBinding()) {
+ } else if (attributeBean.useMethodLateBinding() && child instanceof UIComponent) {
// Should pass a method value binding expressions to the components
// that use non-standard names like the clay component's shapValidator
// method binding expression. Standard method binding properties will
@@ -118,12 +118,18 @@
// an attribute that has no corresponding component property.
// After all, clay can be shaped into anything - it's all good.
log.error(e);
- ((UIComponent) child).getAttributes().put(attributeBean.getName(), expr);
+ if (child instanceof UIComponent)
+ ((UIComponent) child).getAttributes().put(attributeBean.getName(), expr);
}
}
- } else {
- PropUtils.setProperty(child, attributeBean.getName(), attributeBean.getValue());
+ } else if (attributeBean.getValue() != null) {
+ try {
+ PropUtils.setProperty(child, attributeBean.getName(), attributeBean.getValue());
+ } catch (Exception e) {
+ log.error(e);
+ ((UIComponent) child).getAttributes().put(attributeBean.getName(), attributeBean.getValue());
+ }
}
return isFinal;
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/shale-clay-config.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/shale-clay-config.xml?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/shale-clay-config.xml (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/shale-clay-config.xml Wed Sep 14 20:56:06 2005
@@ -29,7 +29,6 @@
name = "createComponent"
optional = "false"/>
- <command className="org.apache.shale.clay.component.chain.AssignPropertiesCommand"/>
<command className="org.apache.shale.clay.component.chain.AssignChildrenCommand"/>
</chain>
@@ -40,7 +39,8 @@
<command className="org.apache.shale.clay.component.chain.CreateComponentCommand"/>
<command className="org.apache.shale.clay.component.chain.AssignValidatorsCommand"/>
<command className="org.apache.shale.clay.component.chain.AssignValueChangeListenersCommand"/>
- <command className="org.apache.shale.clay.component.chain.AssignActionListenersCommand"/>
+ <command className="org.apache.shale.clay.component.chain.AssignActionListenersCommand"/>
+ <command className="org.apache.shale.clay.component.chain.AssignPropertiesCommand"/>
<command className="org.apache.shale.clay.component.chain.AssignConverterCommand"/>
</chain>
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/Globals.java Wed Sep 14 20:56:06 2005
@@ -164,35 +164,7 @@
*/
public static final String BUILDER_RESOURCE_NAME = "org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml";
- /**
- * <p>A constants array of attribute names used by the faces components
- * as method binding events.</p
- */
- public static final String[] METHOD_ATTRIBUTES = { "converter",
- "validator", "valueChangeListener", "action", "actionListener" };
-
- /**
- * <p>A constants array of attribute names used by the faces components
- * to define additional behavior using a value binding expression.</b>
- */
- public static final String[] VALUE_ATTRIBUTES = { "value", "for",
- "immediate", "rendered", "required", "disabledClass",
- "enabledClass" };
-
- /**
- * <p>A constants array of component attributes that are HTML related. This
- * list is used by the abstract {@link org.apache.shale.clay.parser.builder.Builder}
- * to override component attributes defined in the view XML files.
- * </p>
- */
- public static final String[] HTML_ATTRIBUTES = { "accesskey", "dir",
- "disabled", "lang", "onblur", "onchange", "onclick", "ondblclick",
- "onfocus", "onkeydown", "onkeypress", "onkeyup", "onmousedown",
- "onmousemove", "onmouseout", "onmouseover", "onmouseup",
- "onselect", "readonly", "size", "style", "styleClass", "tabindex",
- "title", };
-
-
+
/**
* <p>The Map key used by the {@link org.apache.shale.clay.config.beans.ComponentConfigBean} to identify the
* {@link org.apache.shale.clay.config.beans.ComponentConfigBean$WatchDog}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/AttributeBean.java Wed Sep 14 20:56:06 2005
@@ -159,12 +159,13 @@
* method binding expression and should be invoked by the component</p>
*/
public boolean useMethodLateBinding() {
+ boolean flag = true;
try {
- return Boolean.valueOf(methodLateBinding).booleanValue();
+ flag = Boolean.valueOf(methodLateBinding).booleanValue();
} catch (RuntimeException e) {
}
- return true;
+ return flag;
}
/**
@@ -188,12 +189,13 @@
* value binding expression and should be invoked by the component</p>
*/
public boolean useValueLateBinding() {
+ boolean flag = true;
try {
- return Boolean.valueOf(valueLateBinding).booleanValue();
+ flag = Boolean.valueOf(valueLateBinding).booleanValue();
} catch (RuntimeException e) {
}
- return true;
+ return flag;
}
/**
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/TemplateConfigBean.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/TemplateConfigBean.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/TemplateConfigBean.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/TemplateConfigBean.java Wed Sep 14 20:56:06 2005
@@ -51,17 +51,18 @@
* web application</p>
*/
public ComponentBean getElement(String templateName) {
-
+
+ StringBuffer jsfid = new StringBuffer(templateName);
+ if (jsfid.length() > 0 && jsfid.charAt(0) != '/')
+ jsfid.insert(0, '/');
+
// look for a watcher identified by the template name
- WatchDog watchDog = (WatchDog) watchDogs.get(templateName);
- if (watchDog == null) {
+ WatchDog watchDog = (WatchDog) watchDogs.get(jsfid.toString());
+ if (watchDog == null || super.getElement(jsfid.toString()) == null) {
//The first time the page is created, create a watcher
-
- StringBuffer uri = new StringBuffer(templateName);
- if (uri.length() > 0 && uri.charAt(0) != '/')
- uri.insert(0, '/');
+
- watchDog = new WatchDog(getConfigDefinitions(uri.toString()), templateName);
+ watchDog = new WatchDog(getConfigDefinitions(jsfid.toString()), jsfid.toString());
// register by name
watchDogs.put(watchDog.getName(), watchDog);
@@ -72,7 +73,7 @@
watchDog.refresh();
// returns the cached element
- return super.getElement(templateName);
+ return super.getElement(jsfid.toString());
}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/faces/ClayViewHandler.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/faces/ClayViewHandler.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/faces/ClayViewHandler.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/faces/ClayViewHandler.java Wed Sep 14 20:56:06 2005
@@ -124,7 +124,7 @@
buff.setLength(i);
buff.append(suffix);
}
-
+
return buff.toString();
}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/Builder.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/Builder.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/Builder.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/Builder.java Wed Sep 14 20:56:06 2005
@@ -19,14 +19,14 @@
package org.apache.shale.clay.parser.builder;
import java.util.Iterator;
+import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.shale.clay.config.Globals;
import org.apache.shale.clay.config.beans.AttributeBean;
+import org.apache.shale.clay.config.beans.ComponentBean;
import org.apache.shale.clay.config.beans.ConfigBean;
import org.apache.shale.clay.config.beans.ConfigBeanFactory;
-import org.apache.shale.clay.config.beans.ComponentBean;
import org.apache.shale.clay.config.beans.ElementBean;
import org.apache.shale.clay.parser.Node;
import org.apache.shale.util.Messages;
@@ -147,6 +147,7 @@
AttributeBean attr = new AttributeBean();
attr.setName(key);
attr.setValue(value);
+ attr.setUseValueLateBinding(Boolean.TRUE.toString());
target.addAttribute(attr);
return attr;
}
@@ -230,18 +231,6 @@
}
- /**
- * <p>
- * Returns a <code>String</code> array of html attribute names from
- * <code>Globals.HTML_ATTRIBUTES</code>. These values will override any
- * attribute defined in the XML configuration file for a defined component. A
- * builder might override this method if certain attributes should be
- * ignored for a particular Builder.
- * </p>
- */
- protected String[] getHtmlAttributes() {
- return Globals.HTML_ATTRIBUTES;
- }
/**
* <p>
@@ -292,13 +281,31 @@
*/
protected void assignAttributes(Node node, ElementBean target) {
// override with html attributes
- String[] attrs = getHtmlAttributes();
- for (int i = 0; i < attrs.length; i++) {
- if (node.getAttributes().containsKey(attrs[i])) {
- String value = (String) node.getAttributes().get(attrs[i]);
- AttributeBean attr = createAttribute(attrs[i], value, target);
+
+ Iterator ai = target.getAttributes().entrySet().iterator();
+ while (ai.hasNext()) {
+ Map.Entry e = (Map.Entry) ai.next();
+ AttributeBean attr = (AttributeBean) e.getValue();
+ if (!attr.getName().equals("jsfid") && node.getAttributes().containsKey(attr.getName())) {
+ String value = (String) node.getAttributes().get(attr.getName());
+ if (value != null)
+ createAttribute(attr.getName(), value, target);
}
}
+
+
+ if (node.getAttributes().containsKey("allowBody"))
+ target.setAllowBody((String) node.getAttributes().get("allowBody"));
+
+ if (node.getAttributes().containsKey("facetName"))
+ target.setAllowBody((String) node.getAttributes().get("facetName"));
+
+ if (node.getAttributes().containsKey("componentType"))
+ target.setAllowBody((String) node.getAttributes().get("componentType"));
+
+ if (node.getAttributes().containsKey("id"))
+ target.setAllowBody((String) node.getAttributes().get("id"));
+
}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/CommandButtonBuilder.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/CommandButtonBuilder.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/CommandButtonBuilder.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/CommandButtonBuilder.java Wed Sep 14 20:56:06 2005
@@ -60,20 +60,5 @@
protected String getComponentType(Node node) {
return "javax.faces.HtmlCommandButton";
}
-
- /**
- * <p>Add the <code>value</code> attribute as a "HTML" attribute. For the
- * commandButton, the value holds the label.</p>
- */
- protected String[] getHtmlAttributes() {
-
- String[] tmp = super.getHtmlAttributes();
- String[] attrs = new String[tmp.length + 1];
- System.arraycopy(tmp, 0, attrs, 0, tmp.length);
- attrs[attrs.length - 1] = "value";
-
- return attrs;
- }
-
}
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/VerbatimBuilder.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/VerbatimBuilder.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/VerbatimBuilder.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/VerbatimBuilder.java Wed Sep 14 20:56:06 2005
@@ -71,7 +71,8 @@
attr = createAttribute("value", value, target);
- attr.setUseValueLateBinding(Boolean.FALSE.toString());
+ attr.setUseMethodLateBinding(Boolean.FALSE.toString());
+ attr.setUseValueLateBinding(Boolean.TRUE.toString());
createAttribute("escape", Boolean.FALSE.toString(), target);
createAttribute("isTransient", Boolean.TRUE.toString(), target);
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/DefaultBuilderRule.java Wed Sep 14 20:56:06 2005
@@ -24,6 +24,7 @@
import org.apache.shale.clay.parser.builder.Builder;
import org.apache.shale.clay.parser.builder.BuilderFactory;
import org.apache.shale.clay.parser.builder.CommentBuilder;
+import org.apache.shale.clay.parser.builder.MorphBuilder;
import org.apache.shale.clay.parser.builder.OutputLinkBuilder;
import org.apache.shale.clay.parser.builder.VerbatimBuilder;
@@ -45,16 +46,16 @@
* Default static instance of {@link VerbatimBuilder}
* <p>
*/
- private static final Builder[] builders = {new CommentBuilder(), new VerbatimBuilder()};
+ private static final Builder[] builders = {new CommentBuilder(), new MorphBuilder(), new VerbatimBuilder()};
/**
* <p>
* Uses the {@link BuilderRuleContext} to find the current html
* {@link org.apache.shale.clay.parser.Node}. This is the default rule that
- * will return a {@link VerbatimBuilder} when the node is not a comment.
- * When the html node is the start of a comment, the {@link CommentBuilder}
- * with handle creating the correct {@link org.apache.shale.clay.config.beans.ElementBean}
- * used to create a faces component.
+ * will return a {@link VerbatimBuilder} when the node is not a comment or
+ * has a <code>jsfid</code> attribute. When the html node is a
+ * comment, the {@link CommentBuilder} is returned. If the node is not a comment
+ * but has a <code>jsfid</code> attribute, the {@link MorphBuilder} is returned.
* </p>
*/
public boolean execute(Context context) throws Exception {
@@ -62,10 +63,12 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("--")) {
- builderRuleContext.setBuilder(builders[0]);
+ if (node.getName() != null && node.isComment()) {
+ builderRuleContext.setBuilder(builders[0]);
+ } else if (node.getName() != null && node.getAttributes().containsKey("jsfid")) {
+ builderRuleContext.setBuilder(builders[1]);
} else {
- builderRuleContext.setBuilder(builders[1]);
+ builderRuleContext.setBuilder(builders[2]);
}
return true;
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/SpanBuilderRule.java Wed Sep 14 20:56:06 2005
@@ -28,7 +28,7 @@
* <p>
* This <code>Command</code> rule matches a html span {@link Node} to a
* {@link MorphBuilder}. This rule is different in that <code>jsfid</code> is
- * used to find the target compoentType to replace the html span tag. If a
+ * used to find the target componentType to replace the html span tag. If a
* <code>jsfid</code> is not found as an attribute in the html {@link Node},
* no match is made.
* <p>
@@ -46,8 +46,8 @@
/**
* <p>
* Returns a <code>true</code> value, ending the chain execution if the
- * html {@link Node} is a span and there is a <code>jsfid</code> html
- * attribute.
+ * html {@link Node} has a <code>jsfid</code> html attribute and is a span
+ * HTML element.
* </p>
*/
public boolean execute(Context context) throws Exception {
@@ -55,8 +55,8 @@
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
Node node = builderRuleContext.getNode();
- if (node.getName() != null && node.getName().equalsIgnoreCase("span")
- && node.getAttributes().containsKey("jsfid")) {
+ if (node.getName() != null && node.getName().equals("span")
+ && node.getAttributes().containsKey("jsfid")) {
builderRuleContext.setBuilder(builder);
isFinal = true;
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml?rev=289140&r1=289139&r2=289140&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml Wed Sep 14 20:56:06 2005
@@ -30,8 +30,9 @@
<command className="org.apache.shale.clay.parser.builder.chain.OptionBuilderRule"/>
<command className="org.apache.shale.clay.parser.builder.chain.LabelBuilderRule"/>
<command className="org.apache.shale.clay.parser.builder.chain.AnchorBuilderRule"/>
- <command className="org.apache.shale.clay.parser.builder.chain.SpanBuilderRule"/>
- <command className="org.apache.shale.clay.parser.builder.chain.TextareaBuilderRule"/>
+ <command className="org.apache.shale.clay.parser.builder.chain.TextareaBuilderRule"/>
+
+ <command className="org.apache.shale.clay.parser.builder.chain.SpanBuilderRule"/>
<command className="org.apache.shale.clay.parser.builder.chain.DefaultBuilderRule"/>
</chain>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org