You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by he...@apache.org on 2006/11/14 00:09:37 UTC

svn commit: r474560 [2/3] - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/ main/java/org/apache/struts2/views/freemarker/tags/ main/java/org/apache/struts2/views/jsp/ui/ main/java/org/apache/struts2/views/velocity/ main/jav...

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/TimePickerTag.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/TimePickerTag.java?view=diff&rev=474560&r1=474559&r2=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/TimePickerTag.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/TimePickerTag.java Mon Nov 13 15:09:31 2006
@@ -33,40 +33,34 @@
  */
 public class TimePickerTag extends TextFieldTag {
 
-    private static final long serialVersionUID = 3527737048468381376L;
+	private static final long serialVersionUID = 3527737048468381376L;
 
-    protected String format;
-    protected String timeIconPath;
-    protected String templatePath;
-    protected String templateCssPath;
+    protected String useDefaultTime;
+    protected String useDefaultMinutes;
+    protected String language;
+
+	public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
+		return new TimePicker(stack, req, res);
+	}
+
+	protected void populateParams() {
+		super.populateParams();
+
+		final TimePicker timePicker = (TimePicker) component;
+        timePicker.setUseDefaultMinutes(useDefaultMinutes);
+        timePicker.setUseDefaultTime(useDefaultTime);
+        timePicker.setLanguage(language);
+	}
 
-    public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new TimePicker(stack, req, res);
+    public void setUseDefaultMinutes(String useDefaultMinutes) {
+        this.useDefaultMinutes = useDefaultMinutes;
     }
 
-    protected void populateParams() {
-        super.populateParams();
-
-        final TimePicker timePicker = (TimePicker) component;
-        timePicker.setFormat(format);
-        timePicker.setTimeIconPath(timeIconPath);
-        timePicker.setTemplatePath(templatePath);
-        timePicker.setTemplateCssPath(templateCssPath);
-    }
-
-    public void setFormat(String format) {
-        this.format = format;
-    }
-
-    public void setTimeIconPath(String timeIconPath) {
-        this.timeIconPath = timeIconPath;
-    }
-
-    public void setTemplatePath(String templatePath) {
-        this.templatePath = templatePath;
+    public void setUseDefaultTime(String useDefaultTime) {
+        this.useDefaultTime = useDefaultTime;
     }
 
-    public void setTemplateCssPath(String templateCssPath) {
-        this.templateCssPath = templateCssPath;
+    public void setLanguage(String language) {
+        this.language = language;
     }
 }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java?view=diff&rev=474560&r1=474559&r2=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java Mon Nov 13 15:09:31 2006
@@ -56,6 +56,7 @@
 import org.apache.struts2.views.velocity.components.DatePickerDirective;
 import org.apache.struts2.views.velocity.components.DivDirective;
 import org.apache.struts2.views.velocity.components.DoubleSelectDirective;
+import org.apache.struts2.views.velocity.components.DropdownDateTimePickerDirective;
 import org.apache.struts2.views.velocity.components.FieldErrorDirective;
 import org.apache.struts2.views.velocity.components.FileDirective;
 import org.apache.struts2.views.velocity.components.FormDirective;
@@ -65,7 +66,6 @@
 import org.apache.struts2.views.velocity.components.IncludeDirective;
 import org.apache.struts2.views.velocity.components.LabelDirective;
 import org.apache.struts2.views.velocity.components.OptionTransferSelectDirective;
-import org.apache.struts2.views.velocity.components.PanelDirective;
 import org.apache.struts2.views.velocity.components.ParamDirective;
 import org.apache.struts2.views.velocity.components.PasswordDirective;
 import org.apache.struts2.views.velocity.components.PropertyDirective;
@@ -134,7 +134,7 @@
     private Properties velocityProperties;
 
     private String customConfigFile;
-    
+
     public VelocityManager() {
     }
 
@@ -398,17 +398,17 @@
 
         return properties;
     }
-    
+
     @Inject(StrutsConstants.STRUTS_VELOCITY_CONFIGFILE)
     public void setCustomConfigFile(String val) {
         this.customConfigFile = val;
     }
-    
+
     @Inject(StrutsConstants.STRUTS_VELOCITY_TOOLBOXLOCATION)
     public void setToolBoxLocation(String toolboxLocation) {
         this.toolBoxLocation = toolboxLocation;
     }
-    
+
     /**
      * allow users to specify via the struts.properties file a set of additional VelocityContexts to chain to the
      * the StrutsVelocityContext.  The intent is to allow these contexts to store helper objects that the ui
@@ -446,7 +446,7 @@
     }
 
 
-    
+
 
     /**
      * <p/>
@@ -569,6 +569,7 @@
         addDirective(sb, ComponentDirective.class);
         addDirective(sb, DateDirective.class);
         addDirective(sb, DatePickerDirective.class);
+        addDirective(sb, DropdownDateTimePickerDirective.class);
         addDirective(sb, DivDirective.class);
         addDirective(sb, DoubleSelectDirective.class);
         addDirective(sb, FileDirective.class);
@@ -579,7 +580,6 @@
         addDirective(sb, I18nDirective.class);
         addDirective(sb, IncludeDirective.class);
         addDirective(sb, LabelDirective.class);
-        addDirective(sb, PanelDirective.class);
         addDirective(sb, ParamDirective.class);
         addDirective(sb, PasswordDirective.class);
         addDirective(sb, PushDirective.class);

Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/DropdownDateTimePickerDirective.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/DropdownDateTimePickerDirective.java?view=auto&rev=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/DropdownDateTimePickerDirective.java (added)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/DropdownDateTimePickerDirective.java Mon Nov 13 15:09:31 2006
@@ -0,0 +1,41 @@
+/*
+ * $Id: DatePickerDirective.java 451544 2006-09-30 05:38:02Z mrdon $
+ *
+ * Copyright 2006 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.
+ */
+package org.apache.struts2.views.velocity.components;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts2.components.Component;
+import org.apache.struts2.components.DatePicker;
+import org.apache.struts2.components.DropdownDateTimePicker;
+
+import com.opensymphony.xwork2.util.ValueStack;
+
+/**
+ * @see DatePicker
+ */
+public class DropdownDateTimePickerDirective extends TextFieldDirective {
+
+    protected Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
+        return new DropdownDateTimePicker(stack, req, res);
+    }
+
+    public String getBeanName() {
+        return "dropdowndatetimepicker";
+    }
+}

Propchange: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/DropdownDateTimePickerDirective.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld?view=diff&rev=474560&r1=474559&r2=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld (original)
+++ struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld Mon Nov 13 15:09:31 2006
@@ -1566,74 +1566,115 @@
         <tag-class>org.apache.struts2.views.jsp.ui.SubmitTag</tag-class>
         <body-content>JSP</body-content>
         <description><![CDATA[Render a submit button]]></description>
+        <attribute>
+            <name>executeScripts</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Javascript code in the fetched content will be executed]]></description>
+
+        </attribute>
+        <attribute>
+            <name>targets</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Comma delimited list of ids of the elements whose content will be updated]]></description>
+
+        </attribute>
+        <attribute>
+            <name>handler</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Javascript function name that will make the request]]></description>
 
+        </attribute>
+        <attribute>
+            <name>formId</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Form id whose fields will be serialized and passed as parameters.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>formFilter</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Function name used to filter the fields of the form.]]></description>
+
+        </attribute>
         <attribute>
-            <name>resultDivId</name>
+            <name>loadingText</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[The id of the HTML element to place the result (this can the the form's id or any id on the page.]]></description>
+                <![CDATA[The text to display to the user while the new content is being fetched (especially good if the content will take awhile)]]></description>
 
         </attribute>
         <attribute>
-            <name>onLoadJS</name>
+            <name>refreshListenTopic</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[Javascript code that will be executed after the form has been submitted. The format is onLoadJS='yourMethodName(data,type)'. NOTE: the words data and type must be left like that if you want the event type and the returned data.]]></description>
+                <![CDATA[Topic name to listen to (comma delimited), that will cause the DIV's content to be re-fetched]]></description>
 
         </attribute>
         <attribute>
-            <name>notifyTopics</name>
+            <name>href</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Topic names to post an event to after the form has been submitted.]]></description>
+            <description><![CDATA[The URL to call to obtain the content]]></description>
 
         </attribute>
         <attribute>
-            <name>listenTopics</name>
+            <name>errorText</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Set listenTopics attribute.]]></description>
+            <description>
+                <![CDATA[The text to display to the user if the is an error fetching the content]]></description>
 
         </attribute>
         <attribute>
-            <name>preInvokeJS</name>
+            <name>beforeLoading</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[Javascript code that will be executed before invokation. The format is preInvokeJS='yourMethodName(data,type)'.]]></description>
+                <![CDATA[Javascript code that will be executed before the content has been fetched]]></description>
 
         </attribute>
         <attribute>
-            <name>label</name>
+            <name>afterLoading</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[Supply a submit button text apart from submit value. Will have no effect for <i>input</i> type submit, since button text will always be the value parameter. For the type <i>image</i>, alt parameter will be set to this value.]]></description>
+                <![CDATA[Javascript code that will be executed after the content has been fetched]]></description>
 
         </attribute>
         <attribute>
-            <name>src</name>
+            <name>label</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.]]></description>
+                <![CDATA[Supply a submit button text apart from submit value. Will have no effect for <i>input</i> type submit, since button text will always be the value parameter. For the type <i>image</i>, alt parameter will be set to this value.]]></description>
 
         </attribute>
         <attribute>
-            <name>action</name>
+            <name>src</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Set action attribute.]]></description>
+            <description>
+                <![CDATA[Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.]]></description>
 
         </attribute>
         <attribute>
@@ -2306,7 +2347,7 @@
         <description><![CDATA[Render HTML div providing content from remote call via AJAX]]></description>
 
         <attribute>
-            <name>updateFreq</name>
+            <name>updateInterval</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
@@ -2314,6 +2355,38 @@
 
         </attribute>
         <attribute>
+            <name>handler</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Javascript function name that will make the request]]></description>
+
+        </attribute>
+        <attribute>
+            <name>formId</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Form id whose fields will be serialized and passed as parameters.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>formFilter</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Function name used to filter the fields of the form.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>executeScripts</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Javascript code in the fetched content will be executed]]></description>
+
+        </attribute>
+        <attribute>
             <name>delay</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
@@ -2322,6 +2395,14 @@
 
         </attribute>
         <attribute>
+            <name>autoStart</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Starts the auto updater timer(if frequency > 0) or loads contents when created]]></description>
+
+        </attribute>
+        <attribute>
             <name>loadingText</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
@@ -2331,7 +2412,7 @@
 
         </attribute>
         <attribute>
-            <name>listenTopics</name>
+            <name>refreshListenTopic</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
@@ -2340,6 +2421,24 @@
 
         </attribute>
         <attribute>
+            <name>startTimerListenTopic</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Topic name to listen to (comma delimited), that will cause the auto updater timer to start]]></description>
+
+        </attribute>
+        <attribute>
+            <name>stopTimerListenTopic</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Topic name to listen to (comma delimited), that will cause the auto updater timer to stop]]></description>
+
+        </attribute>
+        <attribute>
             <name>theme</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
@@ -2366,11 +2465,12 @@
 
         </attribute>
         <attribute>
-            <name>showErrorTransportText</name>
+            <name>beforeLoading</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[when to show the error message as content when the URL had problems]]></description>
+            <description>
+                <![CDATA[Javascript code that will be executed before the content has been fetched]]></description>
 
         </attribute>
         <attribute>
@@ -2973,9 +3073,9 @@
          <name>flush</name>
          <required>false</required>
          <rtexprvalue>true</rtexprvalue>
-         
+
          	<description><![CDATA[whether the writer should be flush upon end of the action tag, default to true.]]></description>
-         	
+
       </attribute>
     </tag>
     <tag>
@@ -7297,32 +7397,59 @@
         <name>a</name>
         <tag-class>org.apache.struts2.views.jsp.ui.AnchorTag</tag-class>
         <body-content>JSP</body-content>
+
         <description>
-            <![CDATA[Render a HTML href element that when clicked calls a URL via remote XMLHttpRequest]]></description>
+            <![CDATA[Render a HTML href element that when clicked calls a URL via remote XMLHttpRequest]]>
+        </description>
 
         <attribute>
-            <name>id</name>
+            <name>executeScripts</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Javascript code in the fetched content will be executed]]></description>
+
+        </attribute>
+        <attribute>
+            <name>handler</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Javascript function name that will make the request]]></description>
+
+        </attribute>
+        <attribute>
+            <name>formId</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Form id whose fields will be serialized and passed as parameters.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>formFilter</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The id to assign the component]]></description>
+            <description><![CDATA[Function name used to filter the fields of the form.]]></description>
 
         </attribute>
         <attribute>
-            <name>notifyTopics</name>
+            <name>loadingText</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Topic names to post an event to after the remote call has been made]]></description>
+            <description>
+                <![CDATA[The text to display to the user while the new content is being fetched (especially good if the content will take awhile)]]></description>
 
         </attribute>
         <attribute>
-            <name>preInvokeJS</name>
+            <name>refreshListenTopic</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[A javascript snippet that will be invoked prior to the execution of the target href. If provided must return true or false. True indicates to continue executing target, false says do not execute link target. Possible uses are for confirm dialogs.]]></description>
+                <![CDATA[Topic name to listen to (comma delimited), that will cause the DIV's content to be re-fetched]]></description>
 
         </attribute>
         <attribute>
@@ -7352,11 +7479,12 @@
 
         </attribute>
         <attribute>
-            <name>showErrorTransportText</name>
+            <name>beforeLoading</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[when to show the error message as content when the URL had problems]]></description>
+            <description>
+                <![CDATA[Javascript code that will be executed before the content has been fetched]]></description>
 
         </attribute>
         <attribute>
@@ -7618,6 +7746,23 @@
             <description><![CDATA[Set the tooltip configuration]]></description>
 
         </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
+
+        </attribute>
+       <attribute>
+            <name>targets</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Comma delimited list of ids of the elements whose content will be updated]]></description>
+
+        </attribute>
 
     </tag>
     <tag>
@@ -8916,119 +9061,17 @@
     </tag>
     <tag>
 
-        <name>panel</name>
-        <tag-class>org.apache.struts2.views.jsp.ui.PanelTag</tag-class>
-        <body-content>JSP</body-content>
-        <description><![CDATA[Render a panel for tabbedPanel]]></description>
-
-        <attribute>
-            <name>tabName</name>
-            <required>true</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[The text of the tab to display in the header tab list]]></description>
-
-        </attribute>
-        <attribute>
-            <name>subscribeTopicName</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Set subscribeTopicName attribute]]></description>
-
-        </attribute>
-        <attribute>
-            <name>remote</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description>
-                <![CDATA[determines whether this is a remote panel (ajax) or a local panel (content loaded into visible/hidden containers)]]></description>
-
-        </attribute>
-        <attribute>
-            <name>updateFreq</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[How often to re-fetch the content (in milliseconds)]]></description>
-
-        </attribute>
-        <attribute>
-            <name>delay</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[How long to wait before fetching the content (in milliseconds)]]></description>
-
-        </attribute>
-        <attribute>
-            <name>loadingText</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description>
-                <![CDATA[The text to display to the user while the new content is being fetched (especially good if the content will take awhile)]]></description>
-
-        </attribute>
-        <attribute>
-            <name>listenTopics</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description>
-                <![CDATA[Topic name to listen to (comma delimited), that will cause the DIV's content to be re-fetched]]></description>
+        <name>actionmessage</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.ActionMessageTag</tag-class>
+        <body-content>empty</body-content>
+        <description><![CDATA[Render action messages if they exists]]></description>
 
-        </attribute>
         <attribute>
             <name>theme</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description>
-                <![CDATA[The theme to use for the element. <b>This tag will usually use the ajax theme.</b>]]></description>
-
-        </attribute>
-        <attribute>
-            <name>href</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[The URL to call to obtain the content]]></description>
-
-        </attribute>
-        <attribute>
-            <name>errorText</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description>
-                <![CDATA[The text to display to the user if the is an error fetching the content]]></description>
-
-        </attribute>
-        <attribute>
-            <name>showErrorTransportText</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[when to show the error message as content when the URL had problems]]></description>
-
-        </attribute>
-        <attribute>
-            <name>afterLoading</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description>
-                <![CDATA[Javascript code that will be executed after the content has been fetched]]></description>
-
-        </attribute>
-        <attribute>
-            <name>openTemplate</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Set template to use for opening the rendered html.]]></description>
+            <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
 
         </attribute>
         <attribute>
@@ -9286,34 +9329,226 @@
     </tag>
     <tag>
 
-        <name>actionmessage</name>
-        <tag-class>org.apache.struts2.views.jsp.ui.ActionMessageTag</tag-class>
-        <body-content>empty</body-content>
-        <description><![CDATA[Render action messages if they exists]]></description>
+        <name>tree</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.TreeTag</tag-class>
+        <body-content>JSP</body-content>
+        <description><![CDATA[Render a tree widget.]]></description>
 
         <attribute>
-            <name>theme</name>
+            <name>toggle</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
+            <description><![CDATA[The toggle property.]]></description>
 
         </attribute>
         <attribute>
-            <name>templateDir</name>
+            <name>treeSelectedTopic</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description>
-                <![CDATA[The template directory (other than default) to used to find the themes and hence the template.]]></description>
+            <description><![CDATA[The treeSelectedTopic property.]]></description>
 
         </attribute>
         <attribute>
-            <name>template</name>
+            <name>treeExpandedTopic</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
+            <description><![CDATA[The treeExpandedTopic property.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>treeCollapsedTopic</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The treeCollapsedTopic property.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>rootNode</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The rootNode property.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>childCollectionProperty</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The childCollectionProperty property.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>nodeTitleProperty</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The nodeTitleProperty property.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>nodeIdProperty</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The nodeIdProperty property.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>showRootGrid</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The showRootGrid property (default true).]]></description>
+
+        </attribute>
+        <attribute>
+            <name>blankIconSrc</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Blank icon image source.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>expandIconSrcMinus</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Expand icon (-) image source.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>expandIconSrcPlus</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Expand Icon (+) image source.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>gridIconSrcC</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Image source for under child item child icons.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>gridIconSrcL</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Image source for last child grid.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>gridIconSrcP</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Image source for under parent item child icons.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>gridIconSrcV</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Image source for vertical line.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>gridIconSrcX</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Image source for grid for sole root item.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>gridIconSrcY</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Image source for grid for last root item.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>iconHeight</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Icon height (default 18 pixels).]]></description>
+
+        </attribute>
+        <attribute>
+            <name>iconWidth</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Icon width (default 19 pixels).]]></description>
+
+        </attribute>
+        <attribute>
+            <name>templateCssPath</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Template css path (default {contextPath}/struts/tree.css.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>toggleDuration</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Toggle duration (default 150 ms)]]></description>
+
+        </attribute>
+        <attribute>
+            <name>showGrid</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Show grid (default true).]]></description>
+
+        </attribute>
+        <attribute>
+            <name>openTemplate</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set template to use for opening the rendered html.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>theme</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>templateDir</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[The template directory (other than default) to used to find the themes and hence the template.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>template</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
 
         </attribute>
         <attribute>
@@ -9554,193 +9789,364 @@
     </tag>
     <tag>
 
-        <name>tree</name>
-        <tag-class>org.apache.struts2.views.jsp.ui.TreeTag</tag-class>
+        <name>property</name>
+        <tag-class>org.apache.struts2.views.jsp.PropertyTag</tag-class>
+        <body-content>empty</body-content>
+        <description><![CDATA[Print out expression which evaluates against the stack]]></description>
+
+        <attribute>
+            <name>default</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The default value to be used if <u>value</u> attribute is null]]></description>
+
+        </attribute>
+        <attribute>
+            <name>escape</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Whether to escape HTML]]></description>
+
+        </attribute>
+        <attribute>
+            <name>value</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[value to be displayed]]></description>
+
+        </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
+
+        </attribute>
+
+    </tag>
+    <tag>
+
+        <name>tabbedPanel</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.TabbedPanelTag</tag-class>
         <body-content>JSP</body-content>
-        <description><![CDATA[Render a tree widget.]]></description>
+        <description><![CDATA[Render a tabbedPanel widget.]]></description>
 
         <attribute>
-            <name>toggle</name>
+            <name>id</name>
+            <required>true</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The id to assign to the component.]]></description>
+
+        </attribute>
+        <attribute>
+           <name>selectedTab</name>
+           <required>false</required>
+           <rtexprvalue>true</rtexprvalue>
+
+           <description>
+              <![CDATA[Set the default tab.]]>
+           </description>
+
+        </attribute>
+        <attribute>
+           <name>closeButton</name>
+           <required>false</required>
+           <rtexprvalue>true</rtexprvalue>
+
+           <description>
+              <![CDATA[Where the close button will be placed(tab/pane)]]>
+           </description>
+
+        </attribute>
+        <attribute>
+           <name>doLayout</name>
+           <required>false</required>
+           <rtexprvalue>true</rtexprvalue>
+
+           <description>
+              <![CDATA[Defines if the tabbed panel container's height equals the height of the currently selected tab(if false)]]>
+           </description>
+
+        </attribute>
+        <attribute>
+            <name>openTemplate</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The toggle property.]]></description>
+            <description><![CDATA[Set template to use for opening the rendered html.]]></description>
 
         </attribute>
         <attribute>
-            <name>treeSelectedTopic</name>
+            <name>theme</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The treeSelectedTopic property.]]></description>
+            <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
 
         </attribute>
         <attribute>
-            <name>treeExpandedTopic</name>
+            <name>templateDir</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The treeExpandedTopic property.]]></description>
+            <description>
+                <![CDATA[The template directory (other than default) to used to find the themes and hence the template.]]></description>
 
         </attribute>
         <attribute>
-            <name>treeCollapsedTopic</name>
+            <name>template</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The treeCollapsedTopic property.]]></description>
+            <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
 
         </attribute>
         <attribute>
-            <name>rootNode</name>
+            <name>cssClass</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The rootNode property.]]></description>
+            <description><![CDATA[The css class to use for element]]></description>
 
         </attribute>
         <attribute>
-            <name>childCollectionProperty</name>
+            <name>cssStyle</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The childCollectionProperty property.]]></description>
+            <description><![CDATA[The css style definitions for element ro use]]></description>
 
         </attribute>
         <attribute>
-            <name>nodeTitleProperty</name>
+            <name>title</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The nodeTitleProperty property.]]></description>
+            <description><![CDATA[Set the html title attribute on rendered html element]]></description>
 
         </attribute>
         <attribute>
-            <name>nodeIdProperty</name>
+            <name>disabled</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The nodeIdProperty property.]]></description>
+            <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
 
         </attribute>
         <attribute>
-            <name>showRootGrid</name>
+            <name>label</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The showRootGrid property (default true).]]></description>
+            <description><![CDATA[Label expression used for rendering a element specific label]]></description>
 
         </attribute>
         <attribute>
-            <name>blankIconSrc</name>
+            <name>labelposition</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Blank icon image source.]]></description>
+            <description><![CDATA[define label position of form element (top/right/bottom/left)]]></description>
 
         </attribute>
         <attribute>
-            <name>expandIconSrcMinus</name>
+            <name>requiredposition</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Expand icon (-) image source.]]></description>
+            <description><![CDATA[define required position of required form element (left|right)]]></description>
 
         </attribute>
         <attribute>
-            <name>expandIconSrcPlus</name>
+            <name>name</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Expand Icon (+) image source.]]></description>
+            <description><![CDATA[The name to set for element]]></description>
 
         </attribute>
         <attribute>
-            <name>gridIconSrcC</name>
+            <name>required</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Image source for under child item child icons.]]></description>
+            <description>
+                <![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
 
         </attribute>
         <attribute>
-            <name>gridIconSrcL</name>
+            <name>tabindex</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Image source for last child grid.]]></description>
+            <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
 
         </attribute>
         <attribute>
-            <name>gridIconSrcP</name>
+            <name>value</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Image source for under parent item child icons.]]></description>
+            <description><![CDATA[Preset the value of input element.]]></description>
 
         </attribute>
         <attribute>
-            <name>gridIconSrcV</name>
+            <name>onclick</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Image source for vertical line.]]></description>
+            <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
 
         </attribute>
         <attribute>
-            <name>gridIconSrcX</name>
+            <name>ondblclick</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Image source for grid for sole root item.]]></description>
+            <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
 
         </attribute>
         <attribute>
-            <name>gridIconSrcY</name>
+            <name>onmousedown</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Image source for grid for last root item.]]></description>
+            <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
 
         </attribute>
         <attribute>
-            <name>iconHeight</name>
+            <name>onmouseup</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Icon height (default 18 pixels).]]></description>
+            <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
 
         </attribute>
         <attribute>
-            <name>iconWidth</name>
+            <name>onmouseover</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onmousemove</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onmouseout</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onfocus</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onblur</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onblur attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onkeypress</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onkeydown</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onkeyup</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onselect</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>onchange</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
+
+        </attribute>
+        <attribute>
+            <name>accesskey</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Icon width (default 19 pixels).]]></description>
+            <description><![CDATA[Set the html accesskey attribute on rendered html ekement]]></description>
 
         </attribute>
         <attribute>
-            <name>templateCssPath</name>
+            <name>tooltip</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Template css path (default {contextPath}/struts/tree.css.]]></description>
+            <description><![CDATA[Set the tooltip of this particular component]]></description>
 
         </attribute>
         <attribute>
-            <name>toggleDuration</name>
+            <name>tooltipConfig</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Toggle duration (default 150 ms)]]></description>
+            <description><![CDATA[Set the tooltip configuration]]></description>
 
         </attribute>
+
+    </tag>
+    <tag>
+
+        <name>treenode</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.TreeNodeTag</tag-class>
+        <body-content>JSP</body-content>
+        <description><![CDATA[Render a tree node within a tree widget.]]></description>
+
         <attribute>
-            <name>showGrid</name>
-            <required>false</required>
+            <name>label</name>
+            <required>true</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Show grid (default true).]]></description>
+            <description><![CDATA[Label expression used for rendering tree node label.]]></description>
 
         </attribute>
         <attribute>
@@ -9809,14 +10215,6 @@
 
         </attribute>
         <attribute>
-            <name>label</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-
-        </attribute>
-        <attribute>
             <name>labelposition</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
@@ -10014,69 +10412,12 @@
     </tag>
     <tag>
 
-        <name>property</name>
-        <tag-class>org.apache.struts2.views.jsp.PropertyTag</tag-class>
-        <body-content>empty</body-content>
-        <description><![CDATA[Print out expression which evaluates against the stack]]></description>
-
-        <attribute>
-            <name>default</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[The default value to be used if <u>value</u> attribute is null]]></description>
-
-        </attribute>
-        <attribute>
-            <name>escape</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Whether to escape HTML]]></description>
-
-        </attribute>
-        <attribute>
-            <name>value</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[value to be displayed]]></description>
-
-        </attribute>
-        <attribute>
-            <name>id</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description>
-                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-
-        </attribute>
-
-    </tag>
-    <tag>
-
-        <name>tabbedPanel</name>
-        <tag-class>org.apache.struts2.views.jsp.ui.TabbedPanelTag</tag-class>
+        <name>fielderror</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.FieldErrorTag</tag-class>
         <body-content>JSP</body-content>
-        <description><![CDATA[Render a tabbedPanel widget.]]></description>
-
-        <attribute>
-            <name>id</name>
-            <required>true</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[The id to assign to the component.]]></description>
-
-        </attribute>
-        <attribute>
-            <name>openTemplate</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Set template to use for opening the rendered html.]]></description>
+        <description>
+            <![CDATA[Render field error (all or partial depending on param tag nested)if they exists]]></description>
 
-        </attribute>
         <attribute>
             <name>theme</name>
             <required>false</required>
@@ -10320,44 +10661,205 @@
 
         </attribute>
         <attribute>
-            <name>tooltipConfig</name>
+            <name>tooltipConfig</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Set the tooltip configuration]]></description>
+
+        </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
+
+        </attribute>
+
+    </tag>
+    <tag>
+
+        <name>subset</name>
+        <tag-class>org.apache.struts2.views.jsp.iterator.SubsetIteratorTag</tag-class>
+        <body-content>JSP</body-content>
+        <description><![CDATA[Takes an iterator and outputs a subset of it]]></description>
+
+        <attribute>
+            <name>count</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Indicate the number of entries to be in the resulting subset iterator]]></description>
+
+        </attribute>
+        <attribute>
+            <name>source</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Indicate the source of which the resulting subset iterator is to be derived base on]]></description>
+
+        </attribute>
+        <attribute>
+            <name>start</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator]]></description>
+
+        </attribute>
+        <attribute>
+            <name>decider</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator]]></description>
+
+        </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[The id of the tag element.]]></description>
+
+        </attribute>
+
+    </tag>
+    <tag>
+
+        <name>elseif</name>
+        <tag-class>org.apache.struts2.views.jsp.ElseIfTag</tag-class>
+        <body-content>JSP</body-content>
+        <description><![CDATA[Elseif tag]]></description>
+
+        <attribute>
+            <name>test</name>
+            <required>true</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Expression to determine if body of tag is to be displayed]]></description>
+
+        </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
+
+        </attribute>
+
+    </tag>
+    <tag>
+
+        <name>text</name>
+        <tag-class>org.apache.struts2.views.jsp.TextTag</tag-class>
+        <body-content>JSP</body-content>
+        <description><![CDATA[Render a I18n text message.]]></description>
+
+        <attribute>
+            <name>name</name>
+            <required>true</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Name of resource property to fetch]]></description>
+
+        </attribute>
+        <attribute>
+            <name>id</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
+
+        </attribute>
+
+    </tag>
+    <tag>
+
+        <name>datepicker</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.DatePickerTag</tag-class>
+        <body-content>JSP</body-content>
+        <description><![CDATA[Render datepicker]]></description>
+
+        <attribute>
+            <name>adjustWeeks</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[If true, weekly size of calendar changes to acomodate the month if false, 42 day format is used.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>language</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Language to display this widget in (like en-us).Defaults to brower's specified preferred language.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>dayWidth</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[How to render the names of the days in the header(narrow, abbr or wide).Default "narrow"]]></description>
+
+        </attribute>
+        <attribute>
+            <name>displayWeeks</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Total weeks to display.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>endDate</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Set the tooltip configuration]]></description>
+            <description>
+                <![CDATA[Last available date in the calendar set. Default "2941-10-12".]]></description>
 
         </attribute>
-
-    </tag>
-    <tag>
-
-        <name>treenode</name>
-        <tag-class>org.apache.struts2.views.jsp.ui.TreeNodeTag</tag-class>
-        <body-content>JSP</body-content>
-        <description><![CDATA[Render a tree node within a tree widget.]]></description>
-
         <attribute>
-            <name>label</name>
-            <required>true</required>
+            <name>startDate</name>
+            <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Label expression used for rendering tree node label.]]></description>
+            <description>
+                <![CDATA[First available date in the calendar set.Default "1492-10-12". ]]></description>
 
         </attribute>
         <attribute>
-            <name>openTemplate</name>
+            <name>staticDisplay</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[Set template to use for opening the rendered html.]]></description>
+            <description>
+                <![CDATA[Disable all incremental controls, must pick a date in the current display.]]></description>
 
         </attribute>
         <attribute>
-            <name>theme</name>
+            <name>weekStartsOn</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
+            <description>
+                <![CDATA[Adjusts the first day of the week 0==Sunday..6==Saturday. Default 0.]]></description>
 
         </attribute>
         <attribute>
@@ -10410,6 +10912,14 @@
 
         </attribute>
         <attribute>
+            <name>label</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Label expression used for rendering a element specific label]]></description>
+
+        </attribute>
+        <attribute>
             <name>labelposition</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
@@ -10607,18 +11117,138 @@
     </tag>
     <tag>
 
-        <name>fielderror</name>
-        <tag-class>org.apache.struts2.views.jsp.ui.FieldErrorTag</tag-class>
+        <name>dropdowndatetimepicker</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.DropdownDateTimePickerTag</tag-class>
         <body-content>JSP</body-content>
-        <description>
-            <![CDATA[Render field error (all or partial depending on param tag nested)if they exists]]></description>
+        <description><![CDATA[Render drodown datepicker]]></description>
 
         <attribute>
-            <name>theme</name>
+            <name>iconPath</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+
+            <description><![CDATA[Path to icon used for the dropdown.]]></description>
+
+        </attribute>
+         <attribute>
+            <name>type</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
+            <description><![CDATA[Type of picker used in the dropdow, "date" for DatePicker, "time" for TimePicker]]></description>
+
+        </attribute>
+        <attribute>
+            <name>toggleType</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+
+            <description><![CDATA[Toggle type of the dropdown. Possible values are plain,wipe,explode,fade]]></description>
+
+        </attribute>
+        <attribute>
+            <name>toggleDuration</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+
+            <description><![CDATA[Duration of toggle in seconds]]></description>
+
+        </attribute>
+        <attribute>
+            <name>formatLength</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Type of formatting used for visual display, appropriate to locale (choice of long, short, medium or full).]]></description>
+
+        </attribute>
+        <attribute>
+            <name>displayFormat</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[A pattern used for the visual display of the formatted date, e.g. dd/MM/yyyy]]></description>
+
+        </attribute>
+        <attribute>
+            <name>saveFormat</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description><![CDATA[Formatting scheme used when submitting the form element.Possible values are rfc,iso,posix and unix.]]></description>
+
+        </attribute>
+
+        <attribute>
+            <name>adjustWeeks</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[If true, weekly size of calendar changes to acomodate the month if false, 42 day format is used.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>language</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Language to display this widget in (like en-us).Defaults to brower's specified preferred language.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>dayWidth</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[How to render the names of the days in the header(narrow, abbr or wide).Default "narrow"]]></description>
+
+        </attribute>
+        <attribute>
+            <name>displayWeeks</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Total weeks to display.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>endDate</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Last available date in the calendar set. Default "2941-10-12".]]></description>
+
+        </attribute>
+        <attribute>
+            <name>startDate</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[First available date in the calendar set.Default "1492-10-12". ]]></description>
+
+        </attribute>
+        <attribute>
+            <name>staticDisplay</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Disable all incremental controls, must pick a date in the current display.]]></description>
+
+        </attribute>
+        <attribute>
+            <name>weekStartsOn</name>
+            <required>false</required>
+            <rtexprvalue>true</rtexprvalue>
+
+            <description>
+                <![CDATA[Adjusts the first day of the week 0==Sunday..6==Saturday. Default 0.]]></description>
 
         </attribute>
         <attribute>
@@ -10876,155 +11506,39 @@
     </tag>
     <tag>
 
-        <name>subset</name>
-        <tag-class>org.apache.struts2.views.jsp.iterator.SubsetIteratorTag</tag-class>
+        <name>timepicker</name>
+        <tag-class>org.apache.struts2.views.jsp.ui.TimePickerTag</tag-class>
         <body-content>JSP</body-content>
-        <description><![CDATA[Takes an iterator and outputs a subset of it]]></description>
-
-        <attribute>
-            <name>count</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Indicate the number of entries to be in the resulting subset iterator]]></description>
-
-        </attribute>
-        <attribute>
-            <name>source</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description>
-                <![CDATA[Indicate the source of which the resulting subset iterator is to be derived base on]]></description>
-
-        </attribute>
-        <attribute>
-            <name>start</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
+        <description><![CDATA[Render timepicker]]></description>
 
-            <description>
-                <![CDATA[Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator]]></description>
-
-        </attribute>
         <attribute>
-            <name>decider</name>
+            <name>language</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator]]></description>
-
-        </attribute>
-        <attribute>
-            <name>id</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[The id of the tag element.]]></description>
-
-        </attribute>
-
-    </tag>
-    <tag>
-
-        <name>elseif</name>
-        <tag-class>org.apache.struts2.views.jsp.ElseIfTag</tag-class>
-        <body-content>JSP</body-content>
-        <description><![CDATA[Elseif tag]]></description>
-
-        <attribute>
-            <name>test</name>
-            <required>true</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Expression to determine if body of tag is to be displayed]]></description>
+                <![CDATA[Language to display this widget in (like en-us).Defaults to brower's specified preferred language.]]></description>
 
         </attribute>
         <attribute>
-            <name>id</name>
+            <name>useDefaultTime</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-
-        </attribute>
-
-    </tag>
-    <tag>
-
-        <name>text</name>
-        <tag-class>org.apache.struts2.views.jsp.TextTag</tag-class>
-        <body-content>JSP</body-content>
-        <description><![CDATA[Render a I18n text message.]]></description>
-
-        <attribute>
-            <name>name</name>
-            <required>true</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Name of resource property to fetch]]></description>
+                <![CDATA[Set time to current time.]]></description>
 
         </attribute>
         <attribute>
-            <name>id</name>
+            <name>useDefaultMinutes</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
 
             <description>
-                <![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-
-        </attribute>
-
-    </tag>
-    <tag>
-
-        <name>datepicker</name>
-        <tag-class>org.apache.struts2.views.jsp.ui.DatePickerTag</tag-class>
-        <body-content>JSP</body-content>
-        <description><![CDATA[Render datepicker]]></description>
-
-        <attribute>
-            <name>format</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[The format to use for date field.]]></description>
+                <![CDATA[Set default minutes to current time.]]></description>
 
         </attribute>
-        <attribute>
-            <name>maxlength</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[HTML maxlength attribute]]></description>
-
-        </attribute>
-        <attribute>
-            <name>readonly</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[Whether the input is readonly]]></description>
-
-        </attribute>
-        <attribute>
-            <name>size</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
-
-            <description><![CDATA[HTML size attribute]]></description>
-
-        </attribute>
-        <attribute>
-            <name>theme</name>
-            <required>false</required>
-            <rtexprvalue>true</rtexprvalue>
 
-            <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-
-        </attribute>
         <attribute>
             <name>templateDir</name>
             <required>false</required>
@@ -11278,5 +11792,4 @@
         </attribute>
 
     </tag>
-
 </taglib>

Modified: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js?view=diff&rev=474560&r1=474559&r2=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js (original)
+++ struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js Mon Nov 13 15:09:31 2006
@@ -24,51 +24,6 @@
     }
 }
 
-/*
- * An object that represents a tabbed page.
- *
- * @param htmlId the id of the element that represents the tab page
- * @param remote whether this is a remote element and needs refreshing
- */
-function TabContent( htmlId, remote ) {
-
-    this.elementId = htmlId;
-    this.isRemote = remote;
-    var selected = false;
-    var self = this;
-
-    /*
-     * Shows or hides this page depending on whether the visible
-     * tab id matches this objects id.
-     *
-     * @param visibleTabId the id of the tab that was selected
-     */
-    this.updateVisibility = function( visibleTabId ) {
-        var thElement = document.getElementById( 'tab_header_'+self.elementId );
-        var tcElement = document.getElementById( 'tab_contents_'+self.elementId );
-        if (!selected && visibleTabId==self.elementId) {
-            thElement.className = selectedClass;
-            tcElement.className = selectedContentsClass;
-            self.selected = true;
-
-        } else {
-            thElement.className = unselectedClass;
-            tcElement.className = unselectedContentsClass;
-            self.selected = false;
-        }
-        if (self.isRemote==true && visibleTabId==self.elementId) {
-            var rel = window['tab_contents_update_'+self.elementId];
-            // If the first tab is a remote tab, rel is null on initial loading...
-            //  so don't try to call a method that doesn't exist.  This is only
-            //  for IE, and the workaround is to use a <a:action name="" executeResults="true" />
-            //  as the content of the DIV.
-            if (rel.bind)
-                rel.bind();
-        }
-    }
-
-}
-
 /**
  * Checks whether the current form include an ajax-ified submit button, if so
  * we return true (otherwise false).

Modified: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js?view=diff&rev=474560&r1=474559&r2=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js (original)
+++ struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js Mon Nov 13 15:09:31 2006
@@ -1,51 +1,51 @@
 dojo.provide("struts.Util");
 
 struts.Util.passThroughArgs = function(args, target){
-	// pass through the extra args, catering for special cases of style and class for html elements
-	for (n in args) {
-		var v = args[n];
-		if (n == "style") {
-			target.style.cssText = v;
-		}else if (n == "class") {
-			target.className = v;
-		}else if (n == "dojoType") {
-		}else if (n == "dojotype") {
-		}else{
-			target[n] = v;
-		}
-	}
+  // pass through the extra args, catering for special cases of style and class for html elements
+  for (n in args) {
+    var v = args[n];
+    if (n == "style") {
+      target.style.cssText = v;
+    }else if (n == "class") {
+      target.className = v;
+    }else if (n == "dojoType") {
+    }else if (n == "dojotype") {
+    }else{
+      target[n] = v;
+    }
+  }
 }
 
 struts.Util.passThroughWidgetTagContent = function(widget, frag, target) {
-	// fill in the target with the contents of the widget tag
-	var widgetTag = frag["dojo:" + widget.widgetType.toLowerCase()].nodeRef;
-	if(widgetTag) target.innerHTML = widgetTag.innerHTML;
+  // fill in the target with the contents of the widget tag
+  var widgetTag = frag["dojo:" + widget.widgetType.toLowerCase()].nodeRef;
+  if(widgetTag) target.innerHTML = widgetTag.innerHTML;
 }
 
 struts.Util.copyProperties = function(source, target){
-	// pass through the extra args, catering for special cases of style and class for html elements
-	for (key in source) target[key] = source[key];
+  // pass through the extra args, catering for special cases of style and class for html elements
+  for (key in source) target[key] = source[key];
 }
 
 
 struts.Util.globalCallbackCount = 0;
 
 struts.Util.makeGlobalCallback = function(target) {
-	var name = 'callback_hack_' + struts.Util.globalCallbackCount++;
-	window[name] = target;
-	return name;
+  var name = 'callback_hack_' + struts.Util.globalCallbackCount++;
+  window[name] = target;
+  return name;
 }
 
 struts.Util.setTimeout = function(callback, method, millis) {
-	window.setTimeout(callback + "." + method + "()", millis);
+  window.setTimeout(callback + "." + method + "()", millis);
 }
 struts.Util.clearTimeout = function(callback) {
-	window.clearTimeout(callback);
+  window.clearTimeout(callback);
 }
 
 
 struts.Util.nextIdValue = 0;
 
 struts.Util.nextId = function(scope) {
-	return (scope==null?"id":scope) + struts.Util.nextIdValue++;
+  return (scope==null?"id":scope) + struts.Util.nextIdValue++;
 }

Added: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js?view=auto&rev=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js (added)
+++ struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js Mon Nov 13 15:09:31 2006
@@ -0,0 +1,179 @@
+dojo.provide("struts.widget.Bind");
+
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.io");
+
+dojo.widget.defineWidget(
+  "struts.widget.Bind",
+  dojo.widget.HtmlWidget, {
+  widgetType : "Bind",
+  executeScripts : false,
+  targets : "",
+  targetsArray : null,
+  href : "",
+  handler : "",
+
+  //messages
+  loadingText : "Loading...",
+  errorText : "",
+
+  //pub/sub events
+  refreshListenTopic : "",
+
+  //callbacks
+  beforeLoading : "",
+  afterLoading : "",
+
+  formId : "",
+  formFilter : "",
+
+  event : "",
+
+  onDownloadStart : function(event) {
+    if(!dojo.string.isBlank(this.beforeLoading)) {
+      eval(this.beforeLoading);
+    }
+    if(!dojo.string.isBlank(this.loadingText)) {
+      event.text = this.loadingText;
+    }
+  },
+
+  postCreate : function() {
+    //attach listeners
+    if(!dojo.string.isBlank(this.refreshListenTopic)) {
+      this.log("Listening to " + this.refreshListenTopic + " to refresh");
+      dojo.event.topic.subscribe(this.refreshListenTopic, this, "reloadContents");
+    }
+
+    if(!dojo.string.isBlank(this.targets)) {
+      //split targets
+      this.targetsArray = this.targets.split(",");
+    }
+    if(!dojo.string.isBlank(this.event)) {
+      dojo.event.connect(this.domNode, this.event, this, "reloadContents");
+    }
+  },
+
+  log : function(text) {
+    dojo.debug("[" + this.widgetId + "] " + text);
+  },
+
+  setContent : function(text) {
+    dojo.lang.forEach(this.targetsArray, function(target) {
+      dojo.byId(target).innerHTML = text;
+    });
+  },
+
+  bindHandler : function(type, data, e) {
+     //post script
+     if(!dojo.string.isBlank(this.afterLoading)) {
+       this.log("Executing " + this.beforeLoading);
+       eval(this.afterLoading);
+     }
+     if(type == "load") {
+       if(this.executeScripts) {
+         //update targets content
+         var parsed = this.parse(data);
+         //eval scripts
+         if(parsed.scripts && parsed.scripts.length > 0) {
+           var scripts = "";
+           for(var i = 0; i < parsed.scripts.length; i++){
+             scripts += parsed.scripts[i];
+           }
+           (new Function('_container_', scripts+'; return this;'))(this);
+         }
+         this.setContent(parsed.text);
+       }
+       else {
+         this.setContent(data);
+       }
+     } else {
+       var message = dojo.string.isBlank(this.errorText) ? e.message : this.errorText;
+       this.setContent(message);
+     }
+  },
+
+  reloadContents : function() {
+    if(!dojo.string.isBlank(this.handler)) {
+      //use custom handler
+      this.log("Invoking handler: " + this.handler);
+      window[this.handler](this, this.domNode);
+    }
+    else {
+      //pre script
+      if(!dojo.string.isBlank(this.beforeLoading)) {
+        this.log("Executing " + this.beforeLoading);
+        eval(this.beforeLoading);
+      }
+      try {
+          var self = this;
+
+          this.setContent(this.loadingText);
+          dojo.io.bind({
+            url: this.href,
+            useCache: false,
+            preventCache: true,
+            formNode: dojo.byId(self.formId),
+            formFilter: window[self.formFilter],
+            handler: function(type, data, e) {
+              dojo.lang.hitch(self, "bindHandler")(type, data, e);
+            },
+            mimetype: "text/html"
+         });
+      }
+      catch(ex) {
+        var message = dojo.string.isBlank(this.errorText) ? ex : this.errorText;
+        this.setContent(message);
+      }
+    }
+  },
+
+  //from Dojo's ContentPane
+  parse : function(s) {
+    this.log("Parsing: " + s);
+    var match = [];
+    var tmp = [];
+    var scripts = [];
+    while(match){
+      match = s.match(/<script([^>]*)>([\s\S]*?)<\/script>/i);
+      if(!match){ break; }
+      if(match[1]){
+        attr = match[1].match(/src=(['"]?)([^"']*)\1/i);
+        if(attr){
+          // remove a dojo.js or dojo.js.uncompressed.js from remoteScripts
+          // we declare all files with dojo.js as bad, regardless of folder
+          var tmp2 = attr[2].search(/.*(\bdojo\b(?:\.uncompressed)?\.js)$/);
+          if(tmp2 > -1){
+            this.log("Security note! inhibit:"+attr[2]+" from  beeing loaded again.");
+          }
+        }
+      }
+      if(match[2]){
+        // strip out all djConfig variables from script tags nodeValue
+        // this is ABSOLUTLY needed as reinitialize djConfig after dojo is initialised
+        // makes a dissaster greater than Titanic, update remove writeIncludes() to
+        var sc = match[2].replace(/(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g, "");
+        if(!sc){ continue; }
+
+        // cut out all dojo.require (...) calls, if we have execute
+        // scripts false widgets dont get there require calls
+        // does suck out possible widgetpackage registration as well
+        tmp = [];
+        while(tmp){
+          tmp = sc.match(/dojo\.(?:(?:require(?:After)?(?:If)?)|(?:widget\.(?:manager\.)?registerWidgetPackage)|(?:(?:hostenv\.)?setModulePrefix))\((['"]).*?\1\)\s*;?/);
+          if(!tmp){ break;}
+          sc = sc.replace(tmp[0], "");
+        }
+        scripts.push(sc);
+      }
+      s = s.replace(/<script[^>]*>[\s\S]*?<\/script>/i, "");
+    }
+
+    return {
+      text: s,
+      scripts: scripts
+    };
+  }
+});
+
+

Propchange: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js?view=auto&rev=474560
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js (added)
+++ struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js Mon Nov 13 15:09:31 2006
@@ -0,0 +1,20 @@
+dojo.provide("struts.widget.BindAnchor");
+
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.io");
+dojo.require("struts.widget.Bind");
+
+dojo.widget.defineWidget(
+  "struts.widget.BindAnchor",
+  struts.widget.Bind, {
+  widgetType : "BindAnchor",
+
+  event: "onclick",
+
+  postCreate : function() {
+     this.domNode.href = "#";
+     struts.widget.BindAnchor.superclass.postCreate.apply(this);
+  }
+});
+
+

Propchange: struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
------------------------------------------------------------------------------
    svn:eol-style = native