You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2007/07/28 20:15:57 UTC

svn commit: r560586 - in /tapestry/tapestry4/trunk: tapestry-examples/Workbench/src/context/ tapestry-examples/Workbench/src/context/WEB-INF/ tapestry-examples/Workbench/src/context/css/ tapestry-examples/Workbench/src/java/org/apache/tapestry/workbenc...

Author: jkuhnert
Date: Sat Jul 28 11:15:56 2007
New Revision: 560586

URL: http://svn.apache.org/viewvc?view=rev&rev=560586
Log:
-) Fixed dojo client side validation bug for form array like fields. TAPESTRY-1663.

-) Removed old dojo 0.4.2.

-) Updated Workbench to have a sample @RadioGroup using client side validation.

Removed:
    tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.2/
Modified:
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/css/workbench.css
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/Visit.java
    tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/dojo2.js
    tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/src/validate/check.js

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html?view=diff&rev=560586&r1=560585&r2=560586
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html Sat Jul 28 11:15:56 2007
@@ -58,7 +58,7 @@
     <th><label jwcid="@FieldLabel" accessKey="z" field="component:zipCode"/></th>
     <td><input jwcid="zipCode" /></td>
   </tr>
- 
+  
   <tr>
     <th><label for="phone" accessKey="p">Phone</label></th>
     <td><input jwcid="phone" /></td>
@@ -74,7 +74,17 @@
   </tr>
 
   <tr>
-  	<td></td>
+      <th><label jwcid="@FieldLabel" field="component:choose" /></th>
+      <td>
+          <div jwcid="choose@RadioGroup" selected="ognl:visit.choice" displayName="Choose" validators="validators:required" >
+           <input jwcid="@Radio" value="literal:2" />&nbsp;Yes&nbsp;
+           <input jwcid="@Radio" value="literal:4" />&nbsp;No
+          </div>
+      </td>
+  </tr>
+
+  <tr>
+  	<td> </td>
   	<td><input jwcid="continue@ImageSubmit" image="asset:continue"/></td>
   </tr>
 

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page?view=diff&rev=560586&r1=560585&r2=560586
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page Sat Jul 28 11:15:56 2007
@@ -15,108 +15,108 @@
    limitations under the License.
 -->
 
-<!DOCTYPE page-specification PUBLIC 
-  "-//Apache Software Foundation//Tapestry Specification 4.0//EN" 
-  "http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">
+<!DOCTYPE page-specification PUBLIC
+        "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
+        "http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">
 
 <page-specification class="org.apache.tapestry.workbench.fields.Fields">
-  
-  <property name="clientValidationEnabled" persist="client" initial-value="true"/>
-  
-  <property name="mask" initial-value="literal:(###) ###-####" />
-  
-  <bean name="required" class="org.apache.tapestry.form.validator.Required"/>
-  <bean name="delegate" class="org.apache.tapestry.workbench.WorkbenchValidationDelegate" />
-
-  <bean name="dateValidator" lifecycle="render" class="org.apache.tapestry.form.validator.MinDate">
-    <set name="minDate" value="new java.util.Date()"/>
-  </bean>
-  
-  <component id="inputEnabled" type="Checkbox">
-    <binding name="value" value="clientValidationEnabled"/> 
-    <binding name="onClick" value="literal:tapestry.form.submit(this.form)"/>
-  </component>
-  
-  <component id="showError" type="form/ShowError">
-     <binding name="delegate" value="bean:delegate"/>
-  </component>
-
-  <component id="inputDate" type="TextField">
-    <binding name="value" value="visit.dateValue"/>
-    <binding name="translator" value="translator:date,pattern=MM-dd-yyyy,lenient=false"/>
-    <binding name="validators" value="{ beans.required, beans.dateValidator }"/>
-    <binding name="displayName" value="literal:Date Field"/>
-  </component>
- 
-
-  <component id="inputInt" type="TextField">
-    <binding name="value" value="visit.intValue"/>
-    <binding name="translator" value="translator:number,pattern=#"/>
-    <binding name="displayName" value="literal:Integer Field"/>
-    <binding name="validators" value="validators:required,min=5,max=20"/>
-  </component>
-  
-  <component id="inputDouble" type="TextField">
-    <binding name="value" value="visit.doubleValue"/>
-    <binding name="translator" value="translator:number,pattern=#.#"/>
-    <binding name="validators" value="validators:required,min=3.14,max=4627.5"/>
-    <binding name="displayName" value="literal:Double Field"/>
-  </component>
-
-  <component id="inputBigDecimal" type="TextField">
-    <binding name="value" value="visit.bigDecimalValue"/>
-    <binding name="translator" value="translator:number,pattern=#.#"/>
-    <binding name="validators" value="validators:required,min=2,max=100.123456234563456734563456356734567456784567456784567845675678456785678"/>
-    <binding name="displayName" value="literal:Big Decimal Field"/>
-  </component>
-
-  <component id="inputLong" type="TextField">
-    <binding name="value" value="visit.longValue"/>
-    <binding name="translator" value="translator:number,pattern=#"/>
-    <binding name="validators" value="validators:required,min=6,max=21"/>
-    <binding name="displayName" value="literal:Long Field"/>
-  </component>
-
-  <component id="inputString" type="TextField">
-    <binding name="value" value="visit.stringValue"/>
-    <binding name="validators" value="validators:required,minLength=3"/>
-    <binding name="displayName" value="literal:String Field"/>
-  </component>
-
-  <component id="inputEmail" type="TextField">
-    <binding name="value" value="visit.emailValue"/>
-    <binding name="validators" value="validators:required,email"/>
-    <binding name="displayName" value="literal:Email Field"/>
-  </component>
-  
-  <bean name="zipValidator" class="org.apache.tapestry.form.validator.Pattern">
-    <set name="pattern" value="message:zip-code-pattern"/>
-    <set name="message" value="message:zip-code-message"/>
-  </bean>
-  
-  <component id="zipCode" type="TextField">
-    <binding name="value" value="visit.zipCode"/>
-    <binding name="validators" value="validators:required,$zipValidator"/>
-    <binding name="displayName" value="message:zip-code-label"/>
-  </component>
-  
-  <component id="phone" type="contrib:MaskEdit">
-    <binding name="value" value="visit.phone"/>
-    <binding name="mask" value="literal:(###) ###-####"/>
-  </component>
-
-  <component id="ipaddress" type="TextField">
-    <binding name="value" value="visit.ipaddress"/>
-    <binding name="displayName" value="literal:IP Address"/>
-    <binding name="validators" value="validators:required"/>
-    <binding name="mask" value="literal:###.###.###.###"/>
-  </component>
-
-  <component id="textArea" type="TextArea">
-    <binding name="value" value="visit.textValue"></binding>
-    <binding name="validators" value="validators:required,minLength=20"/>
-    <binding name="displayName" value="literal:Text Area"/>
-  </component>
 
+    <property name="clientValidationEnabled" persist="client" initial-value="true"/>
+
+    <property name="mask" initial-value="literal:(###) ###-####" />
+
+    <bean name="required" class="org.apache.tapestry.form.validator.Required"/>
+    <bean name="delegate" class="org.apache.tapestry.workbench.WorkbenchValidationDelegate" />
+
+    <bean name="dateValidator" lifecycle="render" class="org.apache.tapestry.form.validator.MinDate">
+        <set name="minDate" value="new java.util.Date()"/>
+    </bean>
+
+    <component id="inputEnabled" type="Checkbox">
+        <binding name="value" value="clientValidationEnabled"/>
+        <binding name="onClick" value="literal:tapestry.form.submit(this.form)"/>
+    </component>
+
+    <component id="showError" type="form/ShowError">
+        <binding name="delegate" value="bean:delegate"/>
+    </component>
+
+    <component id="inputDate" type="TextField">
+        <binding name="value" value="visit.dateValue"/>
+        <binding name="translator" value="translator:date,pattern=MM-dd-yyyy,lenient=false"/>
+        <binding name="validators" value="{ beans.required, beans.dateValidator }"/>
+        <binding name="displayName" value="literal:Date Field"/>
+    </component>
+
+
+    <component id="inputInt" type="TextField">
+        <binding name="value" value="visit.intValue"/>
+        <binding name="translator" value="translator:number,pattern=#"/>
+        <binding name="displayName" value="literal:Integer Field"/>
+        <binding name="validators" value="validators:required,min=5,max=20"/>
+    </component>
+
+    <component id="inputDouble" type="TextField">
+        <binding name="value" value="visit.doubleValue"/>
+        <binding name="translator" value="translator:number,pattern=#.#"/>
+        <binding name="validators" value="validators:required,min=3.14,max=4627.5"/>
+        <binding name="displayName" value="literal:Double Field"/>
+    </component>
+
+    <component id="inputBigDecimal" type="TextField">
+        <binding name="value" value="visit.bigDecimalValue"/>
+        <binding name="translator" value="translator:number,pattern=#.#"/>
+        <binding name="validators" value="validators:required,min=2,max=100.123456234563456734563456356734567456784567456784567845675678456785678"/>
+        <binding name="displayName" value="literal:Big Decimal Field"/>
+    </component>
+
+    <component id="inputLong" type="TextField">
+        <binding name="value" value="visit.longValue"/>
+        <binding name="translator" value="translator:number,pattern=#"/>
+        <binding name="validators" value="validators:required,min=6,max=21"/>
+        <binding name="displayName" value="literal:Long Field"/>
+    </component>
+
+    <component id="inputString" type="TextField">
+        <binding name="value" value="visit.stringValue"/>
+        <binding name="validators" value="validators:required,minLength=3"/>
+        <binding name="displayName" value="literal:String Field"/>
+    </component>
+
+    <component id="inputEmail" type="TextField">
+        <binding name="value" value="visit.emailValue"/>
+        <binding name="validators" value="validators:required,email"/>
+        <binding name="displayName" value="literal:Email Field"/>
+    </component>
+
+    <bean name="zipValidator" class="org.apache.tapestry.form.validator.Pattern">
+        <set name="pattern" value="message:zip-code-pattern"/>
+        <set name="message" value="message:zip-code-message"/>
+    </bean>
+
+    <component id="zipCode" type="TextField">
+        <binding name="value" value="visit.zipCode"/>
+        <binding name="validators" value="validators:required,$zipValidator"/>
+        <binding name="displayName" value="message:zip-code-label"/>
+    </component>
+
+    <component id="phone" type="contrib:MaskEdit">
+        <binding name="value" value="visit.phone"/>
+        <binding name="mask" value="literal:(###) ###-####"/>
+    </component>
+
+    <component id="ipaddress" type="TextField">
+        <binding name="value" value="visit.ipaddress"/>
+        <binding name="displayName" value="literal:IP Address"/>
+        <binding name="validators" value="validators:required"/>
+        <binding name="mask" value="literal:###.###.###.###"/>
+    </component>
+
+    <component id="textArea" type="TextArea">
+        <binding name="value" value="visit.textValue" />
+        <binding name="validators" value="validators:required,minLength=20"/>
+        <binding name="displayName" value="literal:Text Area"/>
+    </component>
+    
 </page-specification>
 

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/css/workbench.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/css/workbench.css?view=diff&rev=560586&r1=560585&r2=560586
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/css/workbench.css (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/css/workbench.css Sat Jul 28 11:15:56 2007
@@ -282,32 +282,3 @@
     list-style:none;
     font-style:italic;
 }
-/*
-.tablePages {
-    background-color: #5298D9;
-    padding-top: 0.1em;
-    padding-bottom: 0.1em;
-    padding-left: 0.1em;
-    margin: 0;
-    padding-bottom: 0;
-    -moz-border-radius-topleft: 0.3em;
-    -moz-border-radius-topright: 0.3em;
-}
-
-.tablePagesLinks {
-    background-color: #E0F3F7;
-    display:block;
-    padding-top: 0.4em;
-    padding-bottom: 0.1em;
-    padding-left: 0.4em;
-    margin:0;
-    -moz-border-radius-topleft: 0.3em;
-    -moz-border-radius-topright: 0.3em;
-}
-*/
-/*
-.tablePagesLinks span a, .tablePagesLinks a, .tablePagesLinks {
-    color: #7E7E7E;
-    font-size: 1.1em;
-}
-*/
\ No newline at end of file

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/Visit.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/Visit.java?view=diff&rev=560586&r1=560585&r2=560586
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/Visit.java (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/java/org/apache/tapestry/workbench/Visit.java Sat Jul 28 11:15:56 2007
@@ -49,26 +49,17 @@
      */
 
     private Integer _intValue;
-
     private Double _doubleValue;
-
     private BigDecimal _bigDecimalValue;
-
     private Long _longValue;
-
     private Date _dateValue;
-
     private String _stringValue;
-
     private String _emailValue;
-
     private String _textValue;
-
     private String _zipCode;
-    
     private String _phone;
-
     private String _ipAddress;
+    private int _choice;
 
     /**
      * @return the phone
@@ -78,7 +69,6 @@
         return _phone;
     }
 
-    
     /**
      * @param phone the phone to set
      */
@@ -215,5 +205,15 @@
     public void setIpaddress(String address)
     {
         _ipAddress = address;
+    }
+
+    public int getChoice()
+    {
+        return _choice;
+    }
+
+    public void setChoice(int choice)
+    {
+        _choice = choice;
     }
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/dojo2.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/dojo2.js?view=diff&rev=560586&r1=560585&r2=560586
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/dojo2.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/dojo2.js Sat Jul 28 11:15:56 2007
@@ -671,9 +671,7 @@
 }
 if(_84.required instanceof Array){
 for(var i=0;i<_84.required.length;i++){
-if(!dojo.lang.isString(_84.required[i])){
-continue;
-}
+if(!dojo.lang.isString(_84.required[i])){continue;}
 var _8d=_83[_84.required[i]];
 if(!dj_undef("type",_8d)&&(_8d.type=="text"||_8d.type=="textarea"||_8d.type=="password"||_8d.type=="file")&&/^\s*$/.test(_8d.value)){
 _85[_85.length]=_8d.name;
@@ -681,7 +679,7 @@
 if(!dj_undef("type",_8d)&&(_8d.type=="select-one"||_8d.type=="select-multiple")&&(_8d.selectedIndex==-1||/^\s*$/.test(_8d.options[_8d.selectedIndex].value))){
 _85[_85.length]=_8d.name;
 }else{
-if(_8d instanceof Array){
+if(dojo.lang.isArrayLike(_8d)){
 var _8f=false;
 for(var j=0;j<_8d.length;j++){
 if(_8d[j].checked){
@@ -690,23 +688,16 @@
 }
 if(!_8f){
 _85[_85.length]=_8d[0].name;
-}
-}
-}
-}
-}
-}
+}}}}}}
 if(_84.required instanceof Array){
 for(var i=0;i<_84.required.length;i++){
-if(!dojo.lang.isObject(_84.required[i])){
-continue;
-}
+if(!dojo.lang.isObject(_84.required[i])){continue;}
 var _8d,_91;
 for(var _92 in _84.required[i]){
 _8d=_83[_92];
 _91=_84.required[i][_92];
 }
-if(_8d instanceof Array){
+if(dojo.lang.isArrayLike(_8d)){
 var _8f=0;
 for(var j=0;j<_8d.length;j++){
 if(_8d[j].checked){
@@ -726,11 +717,7 @@
 }
 if(_93<_91){
 _85[_85.length]=_8d.name;
-}
-}
-}
-}
-}
+}}}}}
 if(dojo.lang.isObject(_84.dependencies)||dojo.lang.isObject(_84.dependancies)){
 if(_84["dependancies"]){
 dojo.deprecated("dojo.validate.check","profile 'dependancies' is deprecated, please use "+"'dependencies'","0.5");

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/src/validate/check.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/src/validate/check.js?view=diff&rev=560586&r1=560585&r2=560586
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/src/validate/check.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.3/src/validate/check.js Sat Jul 28 11:15:56 2007
@@ -88,7 +88,7 @@
 if(!dj_undef("type",_b)&&(_b.type=="select-one"||_b.type=="select-multiple")&&(_b.selectedIndex==-1||/^\s*$/.test(_b.options[_b.selectedIndex].value))){
 _3[_3.length]=_b.name;
 }else{
-if(_b instanceof Array){
+if(dojo.lang.isArrayLike(_b)){
 var _d=false;
 for(var j=0;j<_b.length;j++){
 if(_b[j].checked){
@@ -113,7 +113,7 @@
 _b=_1[_10];
 _f=_2.required[i][_10];
 }
-if(_b instanceof Array){
+if(dojo.lang.isArrayLike(_b)){
 var _d=0;
 for(var j=0;j<_b.length;j++){
 if(_b[j].checked){