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/30 03:14:33 UTC
svn commit: r292595 [1/2] - in /struts/shale/trunk: clay-plugin/src/conf/
clay-plugin/src/java/org/apache/shale/clay/
clay-plugin/src/java/org/apache/shale/clay/component/
clay-plugin/src/java/org/apache/shale/clay/component/chain/
clay-plugin/src/java...
Author: gvanmatre
Date: Thu Sep 29 18:14:12 2005
New Revision: 292595
URL: http://svn.apache.org/viewcvs?rev=292595&view=rev
Log:
Refactored the clay component attributes making it more explicit.
Added:
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyConverterCommand.java
Modified:
struts/shale/trunk/clay-plugin/src/conf/clay-config_1_0.dtd
struts/shale/trunk/clay-plugin/src/conf/view-config.xml
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties
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/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/ComponentBean.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/config/beans/ComponentConfigBean.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/faces/ClayViewHandlerCommand.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/IgnoreBuilder.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectItemBuilder.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectManyMenuBuilder.java
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectOneMenuBuilder.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/utils/ClayAmalgam.java
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/address-config.xml
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/Rolodex.java
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties
struts/shale/trunk/use-cases/src/web/WEB-INF/clay-config.xml
struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml
struts/shale/trunk/use-cases/src/web/rolodex/hrolodex.html
struts/shale/trunk/use-cases/src/web/rolodex/xhrolodex.html
struts/shale/trunk/use-cases/src/web/usecases.jsp
Modified: struts/shale/trunk/clay-plugin/src/conf/clay-config_1_0.dtd
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/conf/clay-config_1_0.dtd?rev=292595&r1=292594&r2=292595&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/conf/clay-config_1_0.dtd (original)
+++ struts/shale/trunk/clay-plugin/src/conf/clay-config_1_0.dtd Thu Sep 29 18:14:12 2005
@@ -33,6 +33,17 @@
-->
+<!--
+ The BindingType enumeration defines how Expression Language (EL) binding is
+ handled.
+ VB - Use Value Binding
+ MB - Use Method Binding
+ None - No use of EL. The value passes through
+ Early - EL evaluated before setting the component property/attribute.
+-->
+<!ENTITY % BindingType "(VB|MB|None|Early)">
+
+
<!--Boolean enumeration as two values that correspond to a boolean primitive data type-->
<!ENTITY % Boolean "(true|false)">
@@ -55,24 +66,17 @@
name - The attribute name that corresponds to a component property. The parent "attributes" node
container can be inherited. The "name" attribute acts as the "method signature" when
resolving inheritance.
-
- useMethodLateBinding - This attribute informs the Clay component to pass a MethodBinding object to
- to the component. Currently all the standard method binding events, "action", "actionListener",
- "validator" and "valueChangeListner" are handled. This attribute is meant to be used by a custom
- component that has a non-standard attribute name for binding a method event.
-
- useValueLateBinding - When this attribute is toggled on with a "true" value, the Clay component will pass
- a ValueBinding object to the component; otherwise, the component will receive the resulting value.
- The resulting value can be a literal or a expression language binding expression.
+ bindingType - This attribute is of BindingType. It indicates the contract that a component
+ property/attribute has with the proper use of EL.
+
value - This attribute holds the value of the named attribute. A literal string value or a dynamic bound
expression.
-->
<!ELEMENT set EMPTY>
<!ATTLIST set
name CDATA #REQUIRED
- useMethodLateBinding %Boolean; #IMPLIED
- useValueLateBinding %Boolean; #IMPLIED
+ bindingType %BindingType; #IMPLIED
value CDATA #IMPLIED
>
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=292595&r1=292594&r2=292595&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/conf/view-config.xml (original)
+++ struts/shale/trunk/clay-plugin/src/conf/view-config.xml Thu Sep 29 18:14:12 2005
@@ -23,6 +23,76 @@
"-//Apache Software Foundation//DTD Shale Clay View Configuration 1.0//EN"
"http://struts.apache.org/dtds/shale-clay-config_1_0.dtd">
<view>
+ <component jsfid="baseHtml" componentType="override">
+ <attributes>
+ <set name="rendered" bindingType="VB" />
+
+ <!-- HTML 4.0 universal attributes -->
+ <set name="dir" bindingType="VB" />
+ <set name="lang" bindingType="VB" />
+ <set name="style" bindingType="VB" />
+ <set name="title" bindingType="VB" />
+ <set name="styleClass" bindingType="VB" />
+
+ <!-- HTML 4.0 event-handler attributes -->
+ <set name="onclick" bindingType="VB" />
+ <set name="ondblclick" bindingType="VB" />
+ <set name="onmousedown" bindingType="VB" />
+ <set name="onmouseup" bindingType="VB" />
+ <set name="onmouseover" bindingType="VB" />
+ <set name="onmouseover" bindingType="VB" />
+ <set name="onmousemove" bindingType="VB" />
+ <set name="onmouseout" bindingType="VB" />
+ <set name="onkeypress" bindingType="VB" />
+ <set name="onkeydown" bindingType="VB" />
+ <set name="onkeyup" bindingType="VB" />
+ </attributes>
+ </component>
+
+
+ <component jsfid="baseInput" extends="baseHtml">
+ <attributes>
+ <!-- HTML 4.0 input attributes -->
+ <set name="accesskey" bindingType="VB" />
+ <set name="align" bindingType="VB" />
+ <set name="alt" bindingType="VB" />
+ <set name="datafld" bindingType="VB" />
+ <set name="datasrc" bindingType="VB" />
+ <set name="dataformatas" bindingType="VB" />
+ <set name="disabled" bindingType="VB" />
+ <set name="onblur" bindingType="VB" />
+ <set name="onchange" bindingType="VB" />
+ <set name="onfocus" bindingType="VB" />
+ <set name="readonly" bindingType="VB" />
+ <set name="onselect" bindingType="VB" />
+ <set name="tabindex" bindingType="VB" />
+
+ <set name="value" bindingType="VB" />
+ <set name="converter" bindingType="VB" />
+ <set name="immediate" bindingType="VB" />
+ <set name="validator" bindingType="MB" />
+ <set name="valueChangeListener" bindingType="MB" />
+
+ </attributes>
+ </component>
+
+ <component jsfid="baseOutput" extends="baseHtml">
+ <attributes>
+ <set name="value" bindingType="VB" />
+ <set name="converter" bindingType="VB" />
+ </attributes>
+ </component>
+
+ <component jsfid="baseAction" extends="baseHtml">
+ <attributes>
+ <!-- UIComponent attributes -->
+ <set name="action" bindingType="MB" />
+ <set name="actionListener" bindingType="MB" />
+ <set name="immediate" bindingType="VB" />
+ <set name="value" bindingType="VB" />
+ </attributes>
+ </component>
+
<!--
The "Token" component emits a transactional token that is then
validated (on a subsequent form submit) to catch cases where the
@@ -30,23 +100,23 @@
-->
<component jsfid="token" id="token" componentType="org.apache.shale.Token" allowBody="false">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
+ <set name="rendered" bindingType="VB" />
</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" />
+ <set name="type" bindingType="Early" />
+ <set name="min" bindingType="Early" />
+ <set name="max" bindingType="Early" />
+ <set name="minlength" bindingType="Early" />
+ <set name="maxlength" bindingType="Early" />
+ <set name="mask" bindingType="Early" />
+ <set name="message" bindingType="Early" />
+ <set name="arg" bindingType="Early" />
+ <set name="client" bindingType="Early" />
+ <set name="server" bindingType="Early" />
</attributes>
</component>
@@ -55,47 +125,24 @@
-->
<component jsfid="subview" id="subview" componentType="org.apache.shale.Subview" allowBody="true">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
+ <set name="rendered" bindingType="VB" />
</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" />
+ <set name="functionName" bindingType="None" />
</attributes>
</component>
<!--
Render readonly text
-->
- <component jsfid="outputText" componentType="javax.faces.HtmlOutputText">
+ <component jsfid="outputText" componentType="javax.faces.HtmlOutputText" extends="baseHtml">
<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" />
-
- <set name="escape" useValueLateBinding="true" />
-
+ <set name="value" bindingType="VB" />
+ <set name="escape" bindingType="VB" />
</attributes>
</component>
@@ -104,9 +151,9 @@
-->
<component jsfid="parameter" componentType="javax.faces.Parameter">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="name" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
+ <set name="rendered" bindingType="VB" />
+ <set name="name" bindingType="VB" />
+ <set name="value" bindingType="VB" />
</attributes>
</component>
<component jsfid="param" extends="parameter"/>
@@ -116,11 +163,11 @@
-->
<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" />
+ <set name="itemDisabled" bindingType="VB" />
+ <set name="itemDescription" bindingType="VB" />
+ <set name="itemLabel" bindingType="VB" />
+ <set name="itemValue" bindingType="VB" />
+ <set name="value" bindingType="VB" />
</attributes>
</component>
@@ -130,9 +177,9 @@
-->
<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" />
+ <set name="escape" bindingType="VB" />
+ <set name="isTransient" bindingType="VB" value="true" />
+ <set name="value" bindingType="VB" />
</attributes>
</component>
<!-- acts like a comment tag treating child nodes as verbatim -->
@@ -145,483 +192,85 @@
-->
<component jsfid="selectItems" componentType="javax.faces.SelectItems">
<attributes>
- <set name="value" useValueLateBinding="true" />
+ <set name="value" bindingType="VB" />
</attributes>
</component>
<!--
Render a set of html "input" elements of type "radio".
-->
- <component jsfid="selectOneRadio" componentType="javax.faces.HtmlSelectOneRadio">
- <attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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" />
-
+ <component jsfid="selectOneRadio" componentType="javax.faces.HtmlSelectOneRadio" extends="baseInput">
+ <attributes>
+ <set name="layout" bindingType="VB" />
+ <set name="border" bindingType="VB" />
</attributes>
</component>
<!--
Render a "select" element without a multiple attribute.
-->
- <component jsfid="selectOneMenu" componentType="javax.faces.HtmlSelectOneMenu">
- <attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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" />
+ <component jsfid="selectOneMenu" componentType="javax.faces.HtmlSelectOneMenu" extends="baseInput"/>
- <!-- 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">
- <attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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>
+ <component jsfid="selectManyMenu" componentType="javax.faces.HtmlSelectManyMenu" extends="baseInput"/>
<!--
Render a set of html "input" elements of type "checkbox".
-->
- <component jsfid="manySelectCheckbox" componentType="javax.faces.HtmlSelectManyCheckbox">
+ <component jsfid="manySelectCheckbox" componentType="javax.faces.HtmlSelectManyCheckbox" extends="baseInput">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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="layout" bindingType="VB" />
</attributes>
</component>
<!--
Render a html "input" element of type "checkbox".
-->
- <component jsfid="selectBooleanCheckbox" componentType="javax.faces.HtmlSelectBooleanCheckbox">
- <attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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>
+ <component jsfid="selectBooleanCheckbox" componentType="javax.faces.HtmlSelectBooleanCheckbox" extends="baseInput"/>
<!--
Render a html "table" element.
-->
- <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>
+ <component jsfid="panelGroup" componentType="javax.faces.HtmlPanelGroup" extends="baseHtml"/>
<!--
Render a html "a" element.
-->
- <component jsfid="outputLink" componentType="javax.faces.HtmlOutputLink">
- <attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" 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="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>
+ <component jsfid="outputLink" componentType="javax.faces.HtmlOutputLink" extends="baseOutput"/>
<!--
Render a html "label" element.
-->
- <component jsfid="outputLabel" componentType="javax.faces.HtmlOutputLabel">
- <attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" 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 label attributes -->
- <set name="accesskey" useValueLateBinding="true" />
- <set name="onblur" useValueLateBinding="true" />
- <set name="onfocus" useValueLateBinding="true" />
- <set name="for" useValueLateBinding="true" />
-
- </attributes>
+ <component jsfid="outputLabel" componentType="javax.faces.HtmlOutputLabel" extends="baseOutput" >
+ <attributes>
+ <set name="for" bindingType="VB" />
+ </attributes>
+
</component>
<!--
Render a html "textarea" element.
-->
- <component jsfid="inputTextarea" componentType="javax.faces.HtmlInputTextarea">
+ <component jsfid="inputTextarea" componentType="javax.faces.HtmlInputTextarea" extends="baseInput">
<attributes>
-
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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" />
+ <set name="rows" bindingType="VB" />
+ <set name="cols" bindingType="VB" />
</attributes>
</component>
<!--
Render a html "input" element of type "password".
-->
- <component jsfid="inputSecret" componentType="javax.faces.HtmlInputSecret">
+ <component jsfid="inputSecret" componentType="javax.faces.HtmlInputSecret" extends="baseInput">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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" />
-
+ <set name="redisplay" bindingType="Early" />
+ <set name="maxLength" bindingType="VB" />
+ <set name="size" bindingType="VB" />
</attributes>
-
</component>
<!--
@@ -629,192 +278,100 @@
-->
<component jsfid="inputHidden" componentType="javax.faces.HtmlInputHidden">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
+ <set name="rendered" bindingType="VB" />
+ <set name="value" bindingType="VB" />
- <set name="converter" useValueLateBinding="true" />
- <set name="immediate" useValueLateBinding="true" />
- <set name="validator" useMethodLateBinding="true" />
- <set name="valueChangeListener" useMethodLateBinding="true" />
+ <set name="converter" bindingType="VB" />
+ <set name="immediate" bindingType="VB" />
+ <set name="validator" bindingType="MB" />
+ <set name="valueChangeListener" bindingType="MB" />
</attributes>
</component>
<!--
Render a html "img" element.
-->
- <component jsfid="image" componentType="javax.faces.HtmlGraphicImage">
+ <component jsfid="image" componentType="javax.faces.HtmlGraphicImage" extends="baseHtml">
<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" />
+ <set name="url" bindingType="VB" />
+ <set name="value" bindingType="VB" />
<!-- 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" />
+ <set name="align" bindingType="VB" />
+ <set name="alt" bindingType="VB" />
+ <set name="border" bindingType="VB" />
+ <set name="height" bindingType="VB" />
+ <set name="hspace" bindingType="VB" />
+ <set name="ismap" bindingType="VB" />
+ <set name="longdesc" bindingType="VB" />
+ <set name="usemap" bindingType="VB" />
+ <set name="vspace" bindingType="VB" />
+ <set name="width" bindingType="VB" />
</attributes>
</component>
<!--
Render a html "form" element.
-->
- <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" />
-
+ <component jsfid="form" componentType="javax.faces.HtmlForm" extends="baseHtml">
+ <attributes>
<!-- 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" />
-
+ <set name="accept" bindingType="VB" />
+ <set name="acceptCharset" bindingType="VB" />
+ <set name="enctype" bindingType="VB" />
+ <set name="name" bindingType="VB" />
+ <set name="onreset" bindingType="VB" />
+ <set name="onsubmit" bindingType="VB" />
+ <set name="target" bindingType="VB" />
</attributes>
</component>
<!--
Render a html "table" element.
-->
- <component jsfid="dataTable" componentType="javax.faces.HtmlDataTable">
+ <component jsfid="dataTable" componentType="javax.faces.HtmlDataTable" extends="baseHtml">
<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" useValueLateBinding="true" />
- <set name="var" useValueLateBinding="false" />
- <set name="rows" useValueLateBinding="true" />
- <set name="first" useValueLateBinding="true" />
- <set name="columnClasses" useValueLateBinding="true" />
- <set name="footerClass" useValueLateBinding="true" />
- <set name="headerClass" useValueLateBinding="true" />
- <set name="rowClasses" useValueLateBinding="true" />
+ <set name="align" bindingType="VB" />
+ <set name="border" bindingType="VB" />
+ <set name="bgcolor" bindingType="VB" />
+ <set name="cellpadding" bindingType="VB" />
+ <set name="cellspacing" bindingType="VB" />
+ <set name="datafld" bindingType="VB" />
+ <set name="datasrc" bindingType="VB" />
+ <set name="dataformatas" bindingType="VB" />
+ <set name="frame" bindingType="VB" />
+ <set name="rules" bindingType="VB" />
+ <set name="summary" bindingType="VB" />
+ <set name="width" bindingType="VB" />
+ <set name="value" bindingType="VB" />
+ <set name="var" bindingType="None" />
+ <set name="rows" bindingType="VB" />
+ <set name="first" bindingType="VB" />
+ <set name="columnClasses" bindingType="VB" />
+ <set name="footerClass" bindingType="VB" />
+ <set name="headerClass" bindingType="VB" />
+ <set name="rowClasses" bindingType="VB" />
</attributes>
</component>
<!--
Render a html "input" element of type "button".
-->
- <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" />
+ <component jsfid="commandLink" componentType="javax.faces.HtmlCommandLink" extends="baseAction">
+ <attributes>
+ <!-- HTML 4.0 anchor (=a) attributes -->
+ <set name="accesskey" bindingType="VB" />
+ <set name="coords" bindingType="VB" />
+ <set name="hreflang" bindingType="VB" />
+ <set name="rel" bindingType="VB" />
+ <set name="rev" bindingType="VB" />
+ <set name="shape" bindingType="VB" />
+ <set name="tabindex" bindingType="VB" />
+ <set name="type" bindingType="VB" />
+ <set name="onblur" bindingType="VB" />
+ <set name="onfocus" bindingType="VB" />
+ <set name="target" bindingType="VB" />
</attributes>
</component>
@@ -823,278 +380,121 @@
-->
<component jsfid="column" componentType="javax.faces.Column">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="facetName" useValueLateBinding="true" />
+ <set name="rendered" bindingType="VB" />
+ <set name="facetName" bindingType="VB" />
</attributes>
</component>
<!--
Render a html "input" element of type "text".
-->
- <component jsfid="inputText" componentType="javax.faces.HtmlInputText">
+ <component jsfid="inputText" componentType="javax.faces.HtmlInputText" extends="baseInput">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" useValueLateBinding="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" />
+ <set name="escape" bindingType="VB" />
+ <set name="maxLength" bindingType="VB" />
+ <set name="size" bindingType="VB" />
</attributes>
</component>
<!--
Render a readonly text value substituting inline string parameters.
-->
- <component jsfid="outputFormat" componentType="javax.faces.HtmlOutputFormat">
- <attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="value" useValueLateBinding="true" />
- <set name="converter" 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>
+ <component jsfid="outputFormat" componentType="javax.faces.HtmlOutputFormat" extends="baseOutput"/>
<!--
Render a set of readonly text messages.
-->
- <component jsfid="messages" componentType="javax.faces.HtmlMessages">
+ <component jsfid="messages" componentType="javax.faces.HtmlMessages" extends="baseHtml">
<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" />
+ <set name="rendered" bindingType="VB" />
+ <set name="showSummary" bindingType="VB" />
+ <set name="showDetail" bindingType="VB" />
+ <set name="globalOnly" bindingType="VB" />
+
+ <set name="infoClass" bindingType="VB" />
+ <set name="infoStyle" bindingType="VB" />
+ <set name="warnClass" bindingType="VB" />
+ <set name="warnStyle" bindingType="VB" />
+ <set name="errorClass" bindingType="VB" />
+ <set name="errorStyle" bindingType="VB" />
+ <set name="fatalClass" bindingType="VB" />
+ <set name="fatalStyle" bindingType="VB" />
+ <set name="tooltip" bindingType="VB" />
+ <set name="layout" bindingType="VB" />
</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" extends="baseHtml">
<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" />
+ <set name="rendered" bindingType="VB" />
+ <set name="for" bindingType="VB" />
+ <set name="showSummary" bindingType="VB" />
+ <set name="showDetail" bindingType="VB" />
+ <set name="infoClass" bindingType="VB" />
+ <set name="infoStyle" bindingType="VB" />
+ <set name="warnClass" bindingType="VB" />
+ <set name="warnStyle" bindingType="VB" />
+ <set name="errorClass" bindingType="VB" />
+ <set name="errorStyle" bindingType="VB" />
+ <set name="fatalClass" bindingType="VB" />
+ <set name="fatalStyle" bindingType="VB" />
+ <set name="tooltip" bindingType="VB" />
+
</attributes>
</component>
<!--
Render a html "input" element of type "submit".
-->
- <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" />
-
+ <component jsfid="commandButton" componentType="javax.faces.HtmlCommandButton" extends="baseAction">
+ <attributes>
<!-- 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" />
+ <set name="accesskey" bindingType="VB" />
+ <set name="alt" bindingType="VB" />
+ <set name="disabled" bindingType="VB" />
+ <set name="onblur" bindingType="VB" />
+ <set name="onchange" bindingType="VB" />
+ <set name="onfocus" bindingType="VB" />
+ <set name="onselect" bindingType="VB" />
+ <set name="size" bindingType="VB" />
+ <set name="tabindex" bindingType="VB" />
+ <set name="type" bindingType="VB" />
<!-- HtmlCommandButton attributes -->
- <set name="image" useValueLateBinding="true" />
+ <set name="image" bindingType="VB" />
</attributes>
</component>
<!--
Render a html "table" element.
-->
- <component jsfid="panelGrid" componentType="javax.faces.HtmlPanelGrid">
+ <component jsfid="panelGrid" componentType="javax.faces.HtmlPanelGrid" extends="baseHtml">
<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" />
+ <set name="value" bindingType="VB" />
<!-- 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="align" bindingType="VB" />
+ <set name="border" bindingType="VB" />
+ <set name="bgcolor" bindingType="VB" />
+ <set name="cellpadding" bindingType="VB" />
+ <set name="cellspacing" bindingType="VB" />
+ <set name="datafld" bindingType="VB" />
+ <set name="datasrc" bindingType="VB" />
+ <set name="dataformatas" bindingType="VB" />
+ <set name="frame" bindingType="VB" />
+ <set name="rules" bindingType="VB" />
+ <set name="summary" bindingType="VB" />
+ <set name="width" bindingType="VB" />
<!-- 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" />
+ <set name="columnClasses" bindingType="VB" />
+ <set name="columns" bindingType="VB" />
+ <set name="footerClass" bindingType="VB" />
+ <set name="headerClass" bindingType="VB" />
+ <set name="rowClasses" bindingType="VB" />
</attributes>
</component>
@@ -1108,8 +508,8 @@
-->
<component jsfid="space" extends="outputText">
<attributes>
- <set name="value" value="&nbsp;" />
- <set name="escape" value="false" />
+ <set name="value" value="&nbsp;" bindingType="None"/>
+ <set name="escape" value="false" bindingType="None"/>
</attributes>
</component>
@@ -1123,10 +523,10 @@
-->
<component jsfid="dateTimeConverter" componentType="javax.faces.DateTime" >
<attributes>
- <set name="dateStyle" useValueLateBinding="true" />
- <set name="pattern" useValueLateBinding="true"/>
- <set name="timeStyle" useValueLateBinding="true"/>
- <set name="type" useValueLateBinding="true"/>
+ <set name="dateStyle" bindingType="Early" />
+ <set name="pattern" bindingType="Early"/>
+ <set name="timeStyle" bindingType="Early"/>
+ <set name="type" bindingType="Early"/>
</attributes>
</component>
@@ -1135,20 +535,20 @@
-->
<component jsfid="validateLongRange" componentType="javax.faces.LongRange" >
<attributes>
- <set name="minimum" value="5" />
- <set name="maximum" value="10" />
+ <set name="minimum" bindingType="Early" />
+ <set name="maximum" bindingType="Early" />
</attributes>
</component>
<!-- Nested Clay Component -->
<component jsfid="clay" componentType="org.apache.shale.clay.component.Clay"
- allowBody="false">
+ allowBody="false">
<attributes>
- <set name="rendered" useValueLateBinding="true" />
- <set name="clayJsfid" value="RUNTIME"/>
- <set name="managedBeanName" />
- <set name="shapeValidator" useMethodLateBinding="true"/>
+ <set name="rendered" bindingType="VB" />
+ <set name="clayJsfid" bindingType="VB" value="RUNTIME"/>
+ <set name="managedBeanName" bindingType="VB"/>
+ <set name="shapeValidator" bindingType="None"/>
</attributes>
</component>
@@ -1156,26 +556,26 @@
<component jsfid="loadBundle" componentType="org.apache.shale.clay.component.LoadBundle"
allowBody="false">
<attributes>
- <set name="basename" />
- <set name="var" value="msgs"/>
+ <set name="basename" bindingType="Early"/>
+ <set name="var" bindingType="None" value="msgs"/>
</attributes>
</component>
<!-- Inline HTML Tag -->
<component jsfid="clayOut" extends="clay">
<attributes>
- <set name="shapeValidator" useMethodLateBinding="true" value="#{ClayAmalgam.clayOut}"/>
- <set name="value" useValueLateBinding="false"/>
- <set name="excapeXml" useValueLateBinding="false" value="true"/>
+ <set name="shapeValidator" bindingType="MB" value="#{ClayAmalgam.clayOut}"/>
+ <set name="value" bindingType="None"/>
+ <set name="excapeXml" bindingType="None" value="true"/>
</attributes>
</component>
<!-- Inline Import Tag -->
<component jsfid="clayImport" extends="clay">
<attributes>
- <set name="shapeValidator" useMethodLateBinding="true" value="#{ClayAmalgam.clayImport}"/>
- <set name="url" useValueLateBinding="false"/>
- <set name="excapeXml" useValueLateBinding="false" value="false"/>
+ <set name="shapeValidator" bindingType="MB" value="#{ClayAmalgam.clayImport}"/>
+ <set name="url" bindingType="None"/>
+ <set name="excapeXml" bindingType="None" value="false"/>
</attributes>
</component>
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties?rev=292595&r1=292594&r2=292595&view=diff
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties (original)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/Bundle.properties Thu Sep 29 18:14:12 2005
@@ -56,7 +56,8 @@
assign.action.listener.error=Cannot add actionListener to a component not implementing interface ActionSource: {0}.
-#org.apache.shale.clay.component.chain.AssignConverterCommand
+#org.apache.shale.clay.component.chain.AssignConverterCommand
+#org.apache.shale.clay.component.chain.PropertyConverterCommand
assign.converter.error=Cannot add converter to a component not implementing interface ValueHolder: {0}.
#org.apache.shale.clay.component.chain.AssignPropertiesCommand
@@ -98,6 +99,9 @@
#org.apache.shale.clay.component.chain.PropertyValueChangeListenerCommand
property.valueChangeListener.error=Cannot bind valueChangeListener expression to a component not implementing interface EditableValueHolder: {0}
+#org.apache.shale.clay.component.chain.PropertyConverterCommand
+property.converter.error=Cannot bind a converter to a component not implementing interface ValueHolder: {0}
+
#org.apache.shale.clay.config.beans (ALL)
missing.jsfid.error=Missing {0}, cannot add child element to parent {1}
@@ -134,3 +138,6 @@
missing.attribute=The "{0}" attribute is required when using the ClayAmalgam.{1}() validator method binding event.
invalid.binding=Invalid use of the ClayAmalgam.{0}() validator method binding event. This method assume the use of the Clay component's "shapeValidator" property binding.
invalid.attribute=The "{0}" attribute is required when using the ClayAmalgam.{1}() validator method binding event.
+
+#(ALL)
+clay.null.tagUtils=The utility managed bean "org.apache.shale.TAG_UTILITY_BEAN" registered in the core shale jar cannot be resolved.
\ No newline at end of file
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=292595&r1=292594&r2=292595&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 Thu Sep 29 18:14:12 2005
@@ -282,10 +282,11 @@
// using the getter and setter for the displayElementRoot
if (this.getShapeValidator() != null) {
+ //Short cut to reuse logic for resolving the literal "managed-bean-name"
AttributeBean attr = new AttributeBean();
attr.setName("validator");
attr.setValue(getShapeValidator());
- attr.setUseMethodLateBinding(Boolean.TRUE.toString());
+ attr.setBindingType(AttributeBean.BINDING_TYPE_NONE);
ClayContext clayContext = new ClayContext();
clayContext.setAttribute(attr);
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=292595&r1=292594&r2=292595&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 Thu Sep 29 18:14:12 2005
@@ -78,12 +78,15 @@
Iterator ai = displayElement.getAttributeIterator();
Catalog catalog = getCatalog();
- Command command = catalog
- .getCommand(Globals.SET_ATTRIBUTE_COMMAND_NAME);
+ Command defaultCommand = catalog.getCommand(Globals.SET_ATTRIBUTE_COMMAND_NAME);
next: while (ai.hasNext()) {
AttributeBean a = (AttributeBean) ai.next();
if (a.getValue() == null)
continue next;
+
+ Command command = null;
+ if ((command = catalog.getCommand(a.getName())) == null)
+ command = defaultCommand;
clayContext.setAttribute(a);
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=292595&r1=292594&r2=292595&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 Thu Sep 29 18:14:12 2005
@@ -21,7 +21,6 @@
import javax.faces.component.ActionSource;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import javax.faces.el.MethodBinding;
import org.apache.commons.chain.Command;
import org.apache.commons.chain.Context;
@@ -29,6 +28,8 @@
import org.apache.commons.logging.LogFactory;
import org.apache.shale.clay.config.beans.AttributeBean;
import org.apache.shale.clay.config.beans.ComponentBean;
+import org.apache.shale.faces.ShaleConstants;
+import org.apache.shale.util.Tags;
/**
* <p>
@@ -79,7 +80,12 @@
if (attributeBean.getName().equals("actionListener") && attributeBean.getValue() != null) {
isFinal = true;
-
+
+ Tags tagUtils = (Tags) facesContext.getApplication().getVariableResolver()
+ .resolveVariable(facesContext, ShaleConstants.TAG_UTILITY_BEAN);
+ if (tagUtils == null)
+ throw new NullPointerException(messages.getMessage("clay.null.tagUtils"));
+
UIComponent child = (UIComponent) clayContext.getChild();
if (child == null)
throw new NullPointerException(messages.getMessage("clay.null.childComponent"));
@@ -87,13 +93,8 @@
if (child instanceof ActionSource) {
String expr = replaceMnemonic(clayContext);
- Class[] methodSignature = { javax.faces.event.ActionEvent.class };
-
- MethodBinding binding = facesContext.getApplication()
- .createMethodBinding(expr, methodSignature);
-
- ((ActionSource) child)
- .setActionListener((MethodBinding) binding);
+ tagUtils.setActionListener(child, expr);
+
} else {
log.error(messages.getMessage("property.actionListener.error", new Object[] {attributeBean}));
}
Added: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyConverterCommand.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyConverterCommand.java?rev=292595&view=auto
==============================================================================
--- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyConverterCommand.java (added)
+++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyConverterCommand.java Thu Sep 29 18:14:12 2005
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * $Id: PropertyActionCommand.java 291247 2005-09-24 04:20:32Z wsmoak $
+ */
+
+package org.apache.shale.clay.component.chain;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.ValueHolder;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.webapp.UIComponentTag;
+
+import org.apache.commons.chain.Command;
+import org.apache.commons.chain.Context;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.shale.clay.config.beans.AttributeBean;
+import org.apache.shale.clay.config.beans.ComponentBean;
+import org.apache.shale.faces.ShaleConstants;
+import org.apache.shale.util.Tags;
+
+/**
+ * <p>
+ * This <code>Command</code> will create an <code>converter</code> value
+ * binding and assign it to the <code>UIComponent</code> implementing the
+ * <code>ValueHolder</code> interface.
+ * </p>
+ */
+
+public class PropertyConverterCommand extends AbstractCommand implements Command {
+
+ /**
+ * <p>
+ * Common logger utility class
+ * </p>
+ */
+ private static Log log;
+ static {
+ log = LogFactory.getLog(PropertyActionCommand.class);
+ }
+
+ /**
+ * <p>
+ * Looks to see if the {@link AttributeBean} on the {@link ClayContext} is a
+ * <code>converter</code> attribute. If it is, create a
+ * <code>ValueBinding</code> or a <code>Converter</code> and assign it to the
+ * component returning a <code>true</code> value. Otherwise, return a <code>false</code>
+ * value. This <code>Command</code> is invoked from the
+ * {@link AssignPropertiesCommand} chain.
+ * </p>
+ */
+ public boolean execute(Context context) throws Exception {
+
+ boolean isFinal = false;
+
+ ClayContext clayContext = (ClayContext) context;
+ if (clayContext == null)
+ throw new NullPointerException(messages.getMessage("clay.null.clayContext"));
+ AttributeBean attributeBean = clayContext.getAttribute();
+ if (attributeBean == null)
+ throw new NullPointerException(messages.getMessage("clay.null.attributeBean"));
+ ComponentBean displayElement = clayContext.getDisplayElement();
+ if (displayElement == null)
+ throw new NullPointerException(messages.getMessage("clay.null.componentBean"));
+ FacesContext facesContext = clayContext.getFacesContext();
+ if (facesContext == null)
+ throw new NullPointerException(messages.getMessage("clay.null.facesContext"));
+
+ Tags tagUtils = (Tags) facesContext
+ .getApplication()
+ .getVariableResolver()
+ .resolveVariable(facesContext,
+ ShaleConstants.TAG_UTILITY_BEAN);
+
+ if (tagUtils == null)
+ throw new NullPointerException(messages.getMessage("clay.null.tagUtils"));
+
+ if (attributeBean.getName().equals("converter") && attributeBean.getValue() != null) {
+ isFinal = true;
+
+ UIComponent child = (UIComponent) clayContext.getChild();
+ if (child == null)
+ throw new NullPointerException(messages.getMessage("clay.null.childComponent"));
+
+ if (child instanceof ValueHolder) {
+ String expr = null;
+
+ boolean isEL = UIComponentTag.isValueReference(attributeBean.getValue());
+ if (isEL)
+ expr = replaceMnemonic(clayContext);
+ else
+ expr = attributeBean.getValue();
+
+ if (isEL) {
+ tagUtils.setValueBinding(child, "converter", expr);
+ } else {
+ Converter converter = null;
+ try {
+ converter = facesContext.getApplication().createConverter(expr);
+ } catch (Exception e) {
+ log.error(messages.getMessage("create.converter.error",
+ new Object[] { displayElement }), e);
+ throw e;
+ }
+ ((ValueHolder) child).setConverter(converter);
+ }
+
+ } else {
+ log.error(messages.getMessage("property.converter.error", new Object[] {attributeBean}));
+ }
+ }
+
+ return isFinal;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org