You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by hu...@apache.org on 2006/11/06 16:02:22 UTC

svn commit: r471756 [9/31] - in /struts/struts2/trunk: apps/blank/ apps/blank/src/main/java/example/ apps/blank/src/test/java/example/ apps/mailreader/src/main/java/mailreader2/ apps/portlet/src/main/java/org/apache/struts2/portlet/example/ apps/portle...

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Set.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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
  *
- *      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.
+ * 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.components;
 
@@ -27,7 +30,7 @@
  * complex expression and then simply reference that variable each time rather than the complex expression. This is
  * useful in both cases: when the complex expression takes time (performance improvement) or is hard to read (code
  * readability improvement).</P>
- * 
+ *
  * The scopes available are as follows :-
  * <ul>
  *   <li>application - the value will be set in application scope according to servlet spec. using the name as its key</li>
@@ -36,7 +39,7 @@
  *   <li>page - the value will be set in request scope according to servlet sepc. using the name as key</li>
  *   <li>action - the value will be set in the request scope and Struts' action context using the name as key</li>
  * </ul>
- * 
+ *
  * NOTE:<p/>
  * If no scope is specified, it will default to action scope.
  *

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Submit.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * 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.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package org.apache.struts2.components;
 
@@ -42,7 +45,7 @@
  * &lt;s:submit value="%{'Submit'}" /&gt;
  * <!-- END SNIPPET: example -->
  * </pre>
- * 
+ *
  * <pre>
  * <!-- START SNIPPET: example2 -->
  * Render an image submit:
@@ -60,24 +63,24 @@
  * <!-- START SNIPPET: ajaxJavadoc -->
  * <B>THE FOLLOWING IS ONLY VALID WHEN AJAX IS CONFIGURED</B>
  * <ul>
- * 		<li>resultDivId</li>
- * 		<li>notifyTopics</li>
- * 		<li>onLoadJS</li>
- * 		<li>preInvokeJS</li>
+ *      <li>resultDivId</li>
+ *      <li>notifyTopics</li>
+ *      <li>onLoadJS</li>
+ *      <li>preInvokeJS</li>
  * </ul>
- * The remote form has three basic modes of use, using the resultDivId, 
- * the notifyTopics, or the onLoadJS. You can mix and match any combination of 
- * them to get your desired result. All of these examples are contained in the 
+ * The remote form has three basic modes of use, using the resultDivId,
+ * the notifyTopics, or the onLoadJS. You can mix and match any combination of
+ * them to get your desired result. All of these examples are contained in the
  * Ajax example webapp. Lets go through some scenarios to see how you might use it:
  * <!-- END SNIPPET: ajaxJavadoc -->
- * 
+ *
  * <!-- START SNIPPET: ajxExDescription1 -->
- * Show the results in another div. If you want your results to be shown in 
- * a div, use the resultDivId where the id is the id of the div you want them 
- * shown in. This is an inner HTML approah. Your results get jammed into 
+ * Show the results in another div. If you want your results to be shown in
+ * a div, use the resultDivId where the id is the id of the div you want them
+ * shown in. This is an inner HTML approah. Your results get jammed into
  * the div for you. Here is a sample of this approach:
  * <!-- END SNIPPET: ajxExDescription1 -->
- * 
+ *
  * <pre>
  * <!-- START SNIPPET: ajxExample1 -->
  * Remote form replacing another div:
@@ -95,24 +98,24 @@
  * &lt;/s:form &gt;
  * <!-- END SNIPPET: ajxExample1 -->
  * </pre>
- * 
- * 
+ *
+ *
  * <!-- START SNIPPET: ajxExDescription2 -->
- * Notify other controls(divs) of a change. Using an pub-sub model you can 
- * notify others that your control changed and they can take the appropriate action. 
- * Most likely they will execute some action to refresh. The notifyTopics does this 
- * for you. You can have many topic names in a comma delimited list. 
+ * Notify other controls(divs) of a change. Using an pub-sub model you can
+ * notify others that your control changed and they can take the appropriate action.
+ * Most likely they will execute some action to refresh. The notifyTopics does this
+ * for you. You can have many topic names in a comma delimited list.
  * eg: notifyTopics="newPerson, dataChanged" .
  * Here is an example of this approach:
  * <!-- END SNIPPET: ajxExDescription2 -->
- * 
+ *
  * <pre>
  * <!-- START SNIPPET: ajxExample2 -->
  * &lt;s:form id="frm1" action="newPersonWithXMLResult" theme="ajax"  &gt;
  *     &lt;s:textfield label="Name" name="person.name" value="person.name" size="20" required="true" /&gt;
  *     &lt;s:submit id="submitBtn" value="Save" theme="ajax"  cssClass="primary"  notifyTopics="personUpdated, systemWorking" /&gt;
  * &lt;/s:form &gt;
- * 
+ *
  * &lt;s:div href="/listPeople.action" theme="ajax" errorText="error opps"
  *         loadingText="loading..." id="cart-body" &gt;
  *     &lt;s:action namespace="" name="listPeople" executeResult="true" /&gt;
@@ -122,12 +125,12 @@
  *
  * <!-- START SNIPPET: ajxExDescription3 -->
  * Massage the results with JavaScript. Say that your result returns some h
- * appy XML and you want to parse it and do lots of cool things with it. 
+ * appy XML and you want to parse it and do lots of cool things with it.
  * The way to do this is with a onLoadJS handler. Here you provide the name of
  * a JavaScript function to be called back with the result and the event type.
- * The only key is that you must use the variable names 'data' and 'type' when 
+ * The only key is that you must use the variable names 'data' and 'type' when
  * defining the callback. For example: onLoadJS="myFancyDancyFunction(data, type)".
- * While I talked about XML in this example, your not limited to XML, the data in 
+ * While I talked about XML in this example, your not limited to XML, the data in
  * the callback will be exactly whats returned as your result.
  * Here is an example of this approach:
  * <!-- END SNIPPET: ajxExDescription3 -->
@@ -136,7 +139,7 @@
  * <!-- START SNIPPET: ajxExample3 -->
  * &lt;script language="JavaScript" type="text/javascript"&gt;
  *     function doGreatThings(data, type) {
- *         //Do whatever with your returned fragment... 
+ *         //Do whatever with your returned fragment...
  *         //Perhapps.... if xml...
  *               var xml = dojo.xml.domUtil.createDocumentFromText(data);
  *               var people = xml.getElementsByTagName("person");
@@ -179,14 +182,14 @@
     }
 
     public void evaluateParams() {
-    	if (value == null) {
+        if (value == null) {
             value = "Submit";
         }
-    	super.evaluateParams();
+        super.evaluateParams();
     }
-    
+
     public void evaluateExtraParams() {
-    	super.evaluateExtraParams();
+        super.evaluateExtraParams();
 
        /* if (value == null) {
             value = "Submit";

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TabbedPanel.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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
  *
- *      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.
+ * 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.components;
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Text.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * 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.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package org.apache.struts2.components;
 
@@ -33,8 +36,8 @@
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * Render a I18n text message. 
- * 
+ * Render a I18n text message.
+ *
  * <p/>
  *
  * The message must be in a resource bundle
@@ -47,17 +50,17 @@
  *
  * If the named message is not found, then the body of the tag will be used as default message.
  * If no body is used, then the name of the message will be used.
- * 
+ *
  * <!-- END SNIPPET: javadoc -->
  *
  *
  *
  * <!-- START SNIPPET: params -->
- * 
+ *
  * <ul>
  *      <li>name* (String) - the i18n message key</li>
  * </ul>
- * 
+ *
  * <!-- END SNIPPET: params -->
  *
  * <p/>
@@ -65,15 +68,15 @@
  * Example:
  * <pre>
  * <!-- START SNIPPET: exdescription -->
- * 
+ *
  * Accessing messages from a given bundle (the i18n Shop example bundle in the first example) and using bundle defined through the framework in the second example.</p>
- * 
+ *
  * <!-- END SNIPPET: exdescription -->
  * </pre>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
- * 
+ *
  * &lt;!-- First Example --&gt;
  * &lt;s:i18n name="struts.action.test.i18n.Shop"&gt;
  *     &lt;s:text name="main.title"/&gt;
@@ -81,30 +84,30 @@
  *
  * &lt;!-- Second Example --&gt;
  * &lt;s:text name="main.title" /&gt;
- * 
+ *
  * &lt;!-- Third Examlpe --&gt;
  * &lt;s:text name="i18n.label.greetings"&gt;
  *    &lt;s:param &gt;Mr Smith&lt;/s:param&gt;
  * &lt;/s:text&gt;
- * 
+ *
  * <!-- END SNIPPET: example -->
  * </pre>
- * 
- * 
+ *
+ *
  * <pre>
  * <!-- START SNIPPET: i18nExample -->
- * 
+ *
  * &lt;-- Fourth Example --&gt;
  * &lt;s:text name="some.key" /&gt;
- * 
+ *
  * &lt;-- Fifth Example --&gt;
  * &lt;s:text name="some.invalid.key" &gt;
  *    The Default Message That Will Be Displayed
  * &lt;/s:text&gt;
- * 
+ *
  * <!-- END SNIPPET: i18nExample -->
  * </pre>
- * 
+ *
  * @see Param
  *
  * @s.tag name="text" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.TextTag"
@@ -128,13 +131,13 @@
     public void setName(String name) {
         this.name = name;
     }
-    
-    
+
+
     public boolean usesBody() {
-    	// overriding this to true such that EVAL_BODY_BUFFERED is return and 
-    	// bodyContent will be valid hence, text between start & end tag will
-    	// be honoured as default message (WW-1268)
-    	return true;
+        // overriding this to true such that EVAL_BODY_BUFFERED is return and
+        // bodyContent will be valid hence, text between start & end tag will
+        // be honoured as default message (WW-1268)
+        return true;
     }
 
     public boolean end(Writer writer, String body) {

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextArea.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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
  *
- *      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.
+ * 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.components;
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TextField.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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
  *
- *      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.
+ * 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.components;
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TimePicker.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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.
+ *  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.components;
 
@@ -28,23 +31,23 @@
  * Format supported by this component are:-
  * <table border="1">
  *   <tr>
- *   	<td>Format</td>
- *    	<td>Description</td>
+ *      <td>Format</td>
+ *      <td>Description</td>
  *   </tr>
  *   <tr>
- *   	<td>#HH</td>
- *   	<td>Display hour in two digit format</td>
+ *      <td>#HH</td>
+ *      <td>Display hour in two digit format</td>
  *   </tr>
  *   <tr>
- *   	<td>#H</td>
- *    	<td>Try to display hour in one digit format, if cannot use 2 digits</td>
+ *      <td>#H</td>
+ *      <td>Try to display hour in one digit format, if cannot use 2 digits</td>
  *   </tr>
  *   <tr>
- *   	<td>#hh</td>
- *   	<td>Display hour in two digit format</td>
+ *      <td>#hh</td>
+ *      <td>Display hour in two digit format</td>
  *   </tr>
  *   <tr>
- *   	<td>#h</td>
+ *      <td>#h</td>
  *      <td>Try to display hour in one digit format, if cannot use 2 digits</td>
  *   </tr>
  *   <tr>
@@ -52,102 +55,102 @@
  *      <td>Display minutes in 2 digits format</td>
  *   </tr>
  *   <tr>
- *   	<td>#m</td>
+ *      <td>#m</td>
  *      <td>Try to display minutes in 2 digits fomrat, if cannot use 2 digits</td>
  *   </tr>
  * </table>
- * 
+ *
  * <!-- END SNIPPET: javadoc -->
- * 
- * 
+ *
+ *
  * <pre>
  * <!-- START SNIPPET: example -->
- * 
+ *
  * &lt;s:timepicker label="Show Time" name="showTime" value="05:00" format="#hh:#mm" /&gt;
- * 
+ *
  * &lt;s:timepicker label="Dinner Time" name="dinnerTime" format="#hh-#mm" /&gt;
- * 
+ *
  * <!-- END SNIPPET: example -->
  * </pre>
- * 
+ *
  * @version $Date$ $Id$
  */
 public class TimePicker extends TextField {
 
-	final public static String TEMPLATE = "timepicker";
-	
-	protected String format;
-	protected String templatePath;
-	protected String templateCssPath;
-	protected String timeIconPath;
-	protected String size;
-	
-	public TimePicker(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
-		super(stack, request, response);
-	}
-
-	protected void evaluateExtraParams() {
-		super.evaluateExtraParams();
-		
-		if (format != null) {
+    final public static String TEMPLATE = "timepicker";
+
+    protected String format;
+    protected String templatePath;
+    protected String templateCssPath;
+    protected String timeIconPath;
+    protected String size;
+
+    public TimePicker(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
+        super(stack, request, response);
+    }
+
+    protected void evaluateExtraParams() {
+        super.evaluateExtraParams();
+
+        if (format != null) {
             addParameter("format", findString(format));
         }
         if (timeIconPath != null) {
-        	addParameter("timeIconPath", timeIconPath);
+            addParameter("timeIconPath", timeIconPath);
         }
         if (templatePath != null) {
-        	addParameter("templatePath", templatePath);
+            addParameter("templatePath", templatePath);
         }
         if (templateCssPath != null) {
-        	addParameter("templateCssPath", templateCssPath);
+            addParameter("templateCssPath", templateCssPath);
         }
         if (size != null) {
-        	addParameter("size", findValue(size, Integer.class));
+            addParameter("size", findValue(size, Integer.class));
         }
-	}
-	
-	protected String getDefaultTemplate() {
+    }
+
+    protected String getDefaultTemplate() {
         return TEMPLATE;
     }
-	
-	/**
+
+    /**
      * The format to use for time field.
      * @s.tagattribute required="false" type="String" default="Dateformat specified by language preset (%Y/%m/%d for en)"
      */
     public void setFormat(String format) {
         this.format = format;
     }
-    
+
     /**
      * The time picker icon path
      * @s.tagattribute required="false" type="String" default="/struts/dojo/struts/widgets/dateIcon.gif"
      */
     public void setTimeIconPath(String timeIconPath) {
-    	this.timeIconPath = timeIconPath;
+        this.timeIconPath = timeIconPath;
     }
-    
+
     /**
      * The time picker template path.
      * @s.tagattribute required="false" type="String"
      */
     public void setTemplatePath(String templatePath) {
-    	this.templatePath = templatePath;
+        this.templatePath = templatePath;
     }
-    
+
     /**
      * The time picker template css path.
      * @s.tagattribute required="false" type="String"
      */
     public void setTemplateCssPath(String templateCssPath) {
-    	this.templateCssPath = templateCssPath;
+        this.templateCssPath = templateCssPath;
     }
-    
+
     /**
      * The time picker text field size.
      * @s.tagattribute required="false" type="String"
      */
     public void setSize(String size) {
-    	this.size = size;
+        this.size = size;
     }
-	
+
 }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Token.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * 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.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package org.apache.struts2.components;
 
@@ -50,7 +53,7 @@
  * description="Stop double-submission of forms"
  */
 public class Token extends UIBean {
-    
+
     public static final String TEMPLATE = "token";
 
     public Token(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Tree.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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.
+ *  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.components;
 
@@ -28,7 +31,7 @@
  * <!-- START SNIPPET: javadoc -->
  *
  * Renders a tree widget with AJAX support.<p/>
- * 
+ *
  * The id attribute is normally specified, such that it could be looked up using
  * javascript if necessary.<p/>
  *
@@ -38,7 +41,7 @@
  *
  * <pre>
  * <!-- START SNIPPET: example -->
- * 
+ *
  * &lt-- statically --&gt;
  * &lt;s:tree id="..." label="..."&gt;
  *    &lt;s:treenode id="..." label="..." /&gt;
@@ -48,27 +51,27 @@
  *    &;lt;/s:treenode&gt;
  *    &lt;s:treenode id="..." label="..." /&gt;
  * &lt;/s:tree&gt;
- * 
+ *
  * &lt;-- dynamically --&gt;
  * &lt;s:tree
- * 			id="..."
+ *          id="..."
  *          rootNode="..."
  *          nodeIdProperty="..."
  *          nodeTitleProperty="..."
  *          childCollectionProperty="..." /&gt;
- * 
+ *
  * <!-- END SNIPPET: example -->
  * </pre>
- * 
+ *
  *
  * @s.tag name="tree" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.TreeTag"
  * description="Render a tree widget."
  */
 public class Tree extends ClosingUIBean {
-    
-	private static final String TEMPLATE = "tree-close";
+
+    private static final String TEMPLATE = "tree-close";
     private static final String OPEN_TEMPLATE = "tree";
-    
+
     private String toggle = "fade";
     private String treeSelectedTopic;
     private String treeExpandedTopic;
@@ -78,20 +81,20 @@
     protected String nodeTitleProperty;
     protected String nodeIdProperty;
     private String showRootGrid;
-    
+
     private String showGrid;
     private String blankIconSrc;
-	private String gridIconSrcL;
-	private String gridIconSrcV;
-	private String gridIconSrcP;
-	private String gridIconSrcC;
-	private String gridIconSrcX;
-	private String gridIconSrcY;
-	private String expandIconSrcPlus;
-	private String expandIconSrcMinus;
-	private String iconWidth;
-	private String iconHeight;
-	private String toggleDuration;
+    private String gridIconSrcL;
+    private String gridIconSrcV;
+    private String gridIconSrcP;
+    private String gridIconSrcC;
+    private String gridIconSrcX;
+    private String gridIconSrcY;
+    private String expandIconSrcPlus;
+    private String expandIconSrcMinus;
+    private String iconWidth;
+    private String iconHeight;
+    private String toggleDuration;
     private String templateCssPath;
 
     public Tree(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
@@ -147,63 +150,63 @@
         if (nodeIdProperty != null) {
             addParameter("nodeIdProperty", findString(nodeIdProperty));
         }
-        
+
         if (showRootGrid != null) {
-        	addParameter("showRootGrid", findValue(showRootGrid, Boolean.class));
+            addParameter("showRootGrid", findValue(showRootGrid, Boolean.class));
         }
-        
-        
+
+
         if (showGrid != null) {
-        	addParameter("showGrid", findValue(showGrid, Boolean.class));
+            addParameter("showGrid", findValue(showGrid, Boolean.class));
         }
-        
+
         if (blankIconSrc != null) {
-        	addParameter("blankIconSrc", findString(blankIconSrc));
+            addParameter("blankIconSrc", findString(blankIconSrc));
+        }
+
+        if (gridIconSrcL != null) {
+            addParameter("gridIconSrcL", findString(gridIconSrcL));
+        }
+
+        if (gridIconSrcV != null) {
+            addParameter("gridIconSrcV", findString(gridIconSrcV));
+        }
+
+        if (gridIconSrcP != null)  {
+            addParameter("gridIconSrcP", findString(gridIconSrcP));
+        }
+
+        if (gridIconSrcC != null) {
+            addParameter("gridIconSrcC", findString(gridIconSrcC));
+        }
+
+        if (gridIconSrcX != null) {
+            addParameter("gridIconSrcX", findString(gridIconSrcX));
+        }
+
+        if (gridIconSrcY != null) {
+            addParameter("gridIconSrcY", findString(gridIconSrcY));
+        }
+
+        if (expandIconSrcPlus != null) {
+            addParameter("expandIconSrcPlus", findString(expandIconSrcPlus));
+        }
+
+        if (expandIconSrcMinus != null) {
+            addParameter("expandIconSrcMinus", findString(expandIconSrcMinus));
+        }
+
+        if (iconWidth != null) {
+            addParameter("iconWidth", findValue(iconWidth, Integer.class));
+        }
+        if (iconHeight != null) {
+            addParameter("iconHeight", findValue(iconHeight, Integer.class));
+        }
+        if (toggleDuration != null) {
+            addParameter("toggleDuration", findValue(toggleDuration, Integer.class));
         }
-        
-    	if (gridIconSrcL != null) {
-    		addParameter("gridIconSrcL", findString(gridIconSrcL));
-    	}
-    	
-    	if (gridIconSrcV != null) {
-    		addParameter("gridIconSrcV", findString(gridIconSrcV));
-    	}
-    	
-    	if (gridIconSrcP != null)  {
-    		addParameter("gridIconSrcP", findString(gridIconSrcP));
-    	}
-    	
-    	if (gridIconSrcC != null) {
-    		addParameter("gridIconSrcC", findString(gridIconSrcC));
-    	}
-    	
-    	if (gridIconSrcX != null) {
-    		addParameter("gridIconSrcX", findString(gridIconSrcX));
-    	}
-    	
-    	if (gridIconSrcY != null) {
-    		addParameter("gridIconSrcY", findString(gridIconSrcY));
-    	}
-    	
-    	if (expandIconSrcPlus != null) {
-    		addParameter("expandIconSrcPlus", findString(expandIconSrcPlus));
-    	}
-    	
-    	if (expandIconSrcMinus != null) {
-    		addParameter("expandIconSrcMinus", findString(expandIconSrcMinus));
-    	}
-    	
-    	if (iconWidth != null) {
-    		addParameter("iconWidth", findValue(iconWidth, Integer.class));
-    	}
-    	if (iconHeight != null) {
-    		addParameter("iconHeight", findValue(iconHeight, Integer.class));
-    	}
-    	if (toggleDuration != null) {
-    		addParameter("toggleDuration", findValue(toggleDuration, Integer.class));
-    	}
         if (templateCssPath != null) {
-        	addParameter("templateCssPath", findString(templateCssPath));
+            addParameter("templateCssPath", findString(templateCssPath));
         }
     }
 
@@ -310,189 +313,189 @@
     public void setNodeIdProperty(String nodeIdProperty) {
         this.nodeIdProperty = nodeIdProperty;
     }
-    
+
     /**
      * The showRootGrid property (default true).
      * @s.tagattribute required="false"
      */
     public void setShowRootGrid(String showRootGrid) {
-    	this.showRootGrid = showRootGrid;
+        this.showRootGrid = showRootGrid;
     }
-    
+
     public String getShowRootGrid() {
-    	return showRootGrid;
+        return showRootGrid;
+    }
+
+    public String getBlankIconSrc() {
+        return blankIconSrc;
+    }
+
+    /**
+     * Blank icon image source.
+     * @s.tagattribute required="false"
+     */
+    public void setBlankIconSrc(String blankIconSrc) {
+        this.blankIconSrc = blankIconSrc;
+    }
+
+    public String getExpandIconSrcMinus() {
+        return expandIconSrcMinus;
+    }
+
+    /**
+     * Expand icon (-) image source.
+     * @s.tagattribute required="false"
+     */
+    public void setExpandIconSrcMinus(String expandIconSrcMinus) {
+        this.expandIconSrcMinus = expandIconSrcMinus;
+    }
+
+    public String getExpandIconSrcPlus() {
+        return expandIconSrcPlus;
+    }
+
+    /**
+     * Expand Icon (+) image source.
+     * @s.tagattribute required="false"
+     */
+    public void setExpandIconSrcPlus(String expandIconSrcPlus) {
+        this.expandIconSrcPlus = expandIconSrcPlus;
+    }
+
+    public String getGridIconSrcC() {
+        return gridIconSrcC;
+    }
+
+    /**
+     * Image source for under child item child icons.
+     * @s.tagattribute required="false"
+     */
+    public void setGridIconSrcC(String gridIconSrcC) {
+        this.gridIconSrcC = gridIconSrcC;
+    }
+
+    public String getGridIconSrcL() {
+        return gridIconSrcL;
+    }
+
+
+    /**
+     * Image source for last child grid.
+     * @s.tagattribute required="false"
+     */
+    public void setGridIconSrcL(String gridIconSrcL) {
+        this.gridIconSrcL = gridIconSrcL;
+    }
+
+    public String getGridIconSrcP() {
+        return gridIconSrcP;
+    }
+
+    /**
+     * Image source for under parent item child icons.
+     * @s.tagattribute required="false"
+     */
+    public void setGridIconSrcP(String gridIconSrcP) {
+        this.gridIconSrcP = gridIconSrcP;
+    }
+
+    public String getGridIconSrcV() {
+        return gridIconSrcV;
+    }
+
+    /**
+     * Image source for vertical line.
+     * @s.tagattribute required="false"
+     */
+    public void setGridIconSrcV(String gridIconSrcV) {
+        this.gridIconSrcV = gridIconSrcV;
+    }
+
+    public String getGridIconSrcX() {
+        return gridIconSrcX;
+    }
+
+    /**
+     * Image source for grid for sole root item.
+     * @s.tagattribute required="false"
+     */
+    public void setGridIconSrcX(String gridIconSrcX) {
+        this.gridIconSrcX = gridIconSrcX;
+    }
+
+    public String getGridIconSrcY() {
+        return gridIconSrcY;
+    }
+
+    /**
+     * Image source for grid for last root item.
+     * @s.tagattribute required="false"
+     */
+    public void setGridIconSrcY(String gridIconSrcY) {
+        this.gridIconSrcY = gridIconSrcY;
+    }
+
+    public String getIconHeight() {
+        return iconHeight;
+    }
+
+
+    /**
+     * Icon height (default 18 pixels).
+     * @s.tagattribute required="false"
+     */
+    public void setIconHeight(String iconHeight) {
+        this.iconHeight = iconHeight;
+    }
+
+    public String getIconWidth() {
+        return iconWidth;
+    }
+
+    /**
+     * Icon width (default 19 pixels).
+     * @s.tagattribute required="false"
+     */
+    public void setIconWidth(String iconWidth) {
+        this.iconWidth = iconWidth;
+    }
+
+
+
+    public String getTemplateCssPath() {
+        return templateCssPath;
+    }
+
+    /**
+     * Template css path (default {contextPath}/struts/tree.css.
+     * @s.tagattribute required="false"
+     */
+    public void setTemplateCssPath(String templateCssPath) {
+        this.templateCssPath = templateCssPath;
     }
 
-	public String getBlankIconSrc() {
-		return blankIconSrc;
-	}
-
-	/**
-	 * Blank icon image source.
-	 * @s.tagattribute required="false"
-	 */
-	public void setBlankIconSrc(String blankIconSrc) {
-		this.blankIconSrc = blankIconSrc;
-	}
-
-	public String getExpandIconSrcMinus() {
-		return expandIconSrcMinus;
-	}
-
-	/**
-	 * Expand icon (-) image source.
-	 * @s.tagattribute required="false"
-	 */
-	public void setExpandIconSrcMinus(String expandIconSrcMinus) {
-		this.expandIconSrcMinus = expandIconSrcMinus;
-	}
-
-	public String getExpandIconSrcPlus() {
-		return expandIconSrcPlus;
-	}
-
-	/**
-	 * Expand Icon (+) image source.
-	 * @s.tagattribute required="false"
-	 */
-	public void setExpandIconSrcPlus(String expandIconSrcPlus) {
-		this.expandIconSrcPlus = expandIconSrcPlus;
-	}
-
-	public String getGridIconSrcC() {
-		return gridIconSrcC;
-	}
-
-	/**
-	 * Image source for under child item child icons.
-	 * @s.tagattribute required="false"
-	 */
-	public void setGridIconSrcC(String gridIconSrcC) {
-		this.gridIconSrcC = gridIconSrcC;
-	}
-
-	public String getGridIconSrcL() {
-		return gridIconSrcL;
-	}
-
-	
-	/**
-	 * Image source for last child grid.
-	 * @s.tagattribute required="false"
-	 */
-	public void setGridIconSrcL(String gridIconSrcL) {
-		this.gridIconSrcL = gridIconSrcL;
-	}
-
-	public String getGridIconSrcP() {
-		return gridIconSrcP;
-	}
-
-	/**
-	 * Image source for under parent item child icons.
-	 * @s.tagattribute required="false"
-	 */
-	public void setGridIconSrcP(String gridIconSrcP) {
-		this.gridIconSrcP = gridIconSrcP;
-	}
-
-	public String getGridIconSrcV() {
-		return gridIconSrcV;
-	}
-
-	/**
-	 * Image source for vertical line.
-	 * @s.tagattribute required="false"
-	 */
-	public void setGridIconSrcV(String gridIconSrcV) {
-		this.gridIconSrcV = gridIconSrcV;
-	}
-
-	public String getGridIconSrcX() {
-		return gridIconSrcX;
-	}
-
-	/**
-	 * Image source for grid for sole root item.
-	 * @s.tagattribute required="false"
-	 */
-	public void setGridIconSrcX(String gridIconSrcX) {
-		this.gridIconSrcX = gridIconSrcX;
-	}
-
-	public String getGridIconSrcY() {
-		return gridIconSrcY;
-	}
-
-	/**
-	 * Image source for grid for last root item.
-	 * @s.tagattribute required="false"
-	 */
-	public void setGridIconSrcY(String gridIconSrcY) {
-		this.gridIconSrcY = gridIconSrcY;
-	}
-
-	public String getIconHeight() {
-		return iconHeight;
-	}
-
-	
-	/**
-	 * Icon height (default 18 pixels).
-	 * @s.tagattribute required="false"
-	 */
-	public void setIconHeight(String iconHeight) {
-		this.iconHeight = iconHeight;
-	}
-
-	public String getIconWidth() {
-		return iconWidth;
-	}
-
-	/**
-	 * Icon width (default 19 pixels).
-	 * @s.tagattribute required="false"
-	 */
-	public void setIconWidth(String iconWidth) {
-		this.iconWidth = iconWidth;
-	}
-
-	
-
-	public String getTemplateCssPath() {
-		return templateCssPath;
-	}
-
-	/**
-	 * Template css path (default {contextPath}/struts/tree.css.
-	 * @s.tagattribute required="false"
-	 */
-	public void setTemplateCssPath(String templateCssPath) {
-		this.templateCssPath = templateCssPath;
-	}
-
-	public String getToggleDuration() {
-		return toggleDuration;
-	}
-
-	/**
-	 * Toggle duration (default 150 ms)
-	 * @s.tagattribute required="false"
-	 */
-	public void setToggleDuration(String toggleDuration) {
-		this.toggleDuration = toggleDuration;
-	}
-
-	public String getShowGrid() {
-		return showGrid;
-	}
-
-	/**
-	 * Show grid (default true).
-	 * @s.tagattribute required="false"
-	 */
-	public void setShowGrid(String showGrid) {
-		this.showGrid = showGrid;
-	}
+    public String getToggleDuration() {
+        return toggleDuration;
+    }
+
+    /**
+     * Toggle duration (default 150 ms)
+     * @s.tagattribute required="false"
+     */
+    public void setToggleDuration(String toggleDuration) {
+        this.toggleDuration = toggleDuration;
+    }
+
+    public String getShowGrid() {
+        return showGrid;
+    }
+
+    /**
+     * Show grid (default true).
+     * @s.tagattribute required="false"
+     */
+    public void setShowGrid(String showGrid) {
+        this.showGrid = showGrid;
+    }
 }
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/TreeNode.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * 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.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package org.apache.struts2.components;
 
@@ -27,21 +30,21 @@
  *
  * Renders a tree node within a tree widget with AJAX support.<p/>
  *
- * Either of the following combinations should be used depending on if the tree 
+ * Either of the following combinations should be used depending on if the tree
  * is to be constrcted dynamically or statically. <p/>
- * 
+ *
  * <b>Dynamically</b>
  * <ul>
- * 		<li>id - id of this tree node</li>
- * 		<li>title - label to be displayed for this tree node</li>
+ *      <li>id - id of this tree node</li>
+ *      <li>title - label to be displayed for this tree node</li>
  * </ul>
- * 
+ *
  * <b>Statically</b>
  * <ul>
- * 		<li>rootNode - the parent node of which this tree is derived from</li>
- * 		<li>nodeIdProperty - property to obtained this current tree node's id</li>
- * 		<li>nodeTitleProperty - property to obtained this current tree node's title</li>
- * 		<li>childCollectionProperty - property that returnds this current tree node's children</li>
+ *      <li>rootNode - the parent node of which this tree is derived from</li>
+ *      <li>nodeIdProperty - property to obtained this current tree node's id</li>
+ *      <li>nodeTitleProperty - property to obtained this current tree node's title</li>
+ *      <li>childCollectionProperty - property that returnds this current tree node's children</li>
  * </ul>
  *
  * <!-- END SNIPPET: javadoc -->
@@ -50,7 +53,7 @@
  *
  * <pre>
  * <!-- START SNIPPET: example -->
- * 
+ *
  * &lt-- statically --&gt;
  * &lt;s:tree id="..." label="..."&gt;
  *    &lt;s:treenode id="..." label="..." /&gt;
@@ -60,7 +63,7 @@
  *    &;lt;/s:treenode&gt;
  *    &lt;s:treenode id="..." label="..." /&gt;
  * &lt;/s:tree&gt;
- * 
+ *
  * &lt;-- dynamically --&gt;
  * &lt;s:tree
  *          id="..."
@@ -68,7 +71,7 @@
  *          nodeIdProperty="..."
  *          nodeTitleProperty="..."
  *          childCollectionProperty="..." /&gt;
- * 
+ *
  * <!-- END SNIPPET: example -->
  * </pre>
  *

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * 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.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package org.apache.struts2.components;
 
@@ -272,10 +275,10 @@
  *     <td>Description</td>
  *  </tr>
  *  <tr>
- *  	<td>tooltip</td>
- *  	<td>String</td>
- *  	<td>none</td>
- *  	<td>Set the tooltip of this particular component</td>
+ *      <td>tooltip</td>
+ *      <td>String</td>
+ *      <td>none</td>
+ *      <td>Set the tooltip of this particular component</td>
  *  </tr>
  *  <tr>
  *      <td>jsTooltipEnabled</td>
@@ -284,15 +287,15 @@
  *      <td>Enable js tooltip rendering</td>
  *  </tr>
  *    <tr>
- *   	<td>tooltipIcon</td>
- *   	<td>String</td>
- *   	<td>/struts/static/tooltip/tooltip.gif</td>
- *   	<td>The url to the tooltip icon</td>
+ *      <td>tooltipIcon</td>
+ *      <td>String</td>
+ *      <td>/struts/static/tooltip/tooltip.gif</td>
+ *      <td>The url to the tooltip icon</td>
  *   <tr>
- *   	<td>tooltipDelay</td>
- *   	<td>String</td>
- *   	<td>500</td>
- *   	<td>Tooltip shows up after the specified timeout (miliseconds). A behavior similar to that of OS based tooltips.</td>
+ *      <td>tooltipDelay</td>
+ *      <td>String</td>
+ *      <td>500</td>
+ *      <td>Tooltip shows up after the specified timeout (miliseconds). A behavior similar to that of OS based tooltips.</td>
  *   </tr>
  * </table>
  *
@@ -335,7 +338,7 @@
  *
  * &lt;!-- Example 1: --&gt;
  * &lt;s:form
- * 			tooltipConfig="#{'tooltipDelay':'500',
+ *          tooltipConfig="#{'tooltipDelay':'500',
  *                           'tooltipIcon='/myImages/myIcon.gif'}" .... &gt;
  *   ....
  *     &lt;s:textfield label="Customer Name" tooltip="Enter the customer name" .... /&gt;
@@ -345,7 +348,7 @@
  * &lt;!-- Example 2: --&gt;
  * &lt;s:form
  *         tooltipConfig="#{'tooltipDelay':'500',
- *          				'tooltipIcon':'/myImages/myIcon.gif'}" ... &gt;
+ *                          'tooltipIcon':'/myImages/myIcon.gif'}" ... &gt;
  *   ....
  *     &lt;s:textfield label="Address"
  *          tooltip="Enter your address"
@@ -357,19 +360,19 @@
  * &lt;-- Example 3: --&gt;
  * &lt;s:textfield
  *        label="Customer Name"
- *	      tooltip="One of our customer Details'"&gt;
+ *        tooltip="One of our customer Details'"&gt;
  *        &lt;s:param name="tooltipConfig"&gt;
  *             tooltipDelay = 500 |
- *             tooltipIcon = /myImages/myIcon.gif 
+ *             tooltipIcon = /myImages/myIcon.gif
  *        &lt;/s:param&gt;
  * &lt;/s:textfield&gt;
  *
  *
  * &lt;-- Example 4: --&gt;
  * &lt;s:textfield
- *	        label="Customer Address"
- *	        tooltip="Enter The Customer Address" &gt;
- *	        &lt;s:param
+ *          label="Customer Address"
+ *          tooltip="Enter The Customer Address" &gt;
+ *          &lt;s:param
  *              name="tooltipConfig"
  *              value="#{'tooltipDelay':'500',
  *                       'tooltipIcon':'/myImages/myIcon.gif'}" /&gt;
@@ -437,7 +440,7 @@
     protected String onkeyup;
     protected String onselect;
     protected String onchange;
-    
+
     // common html attributes
     protected String accesskey;
 
@@ -455,7 +458,7 @@
             LOG.error("error when rendering", e);
         }
         finally {
-        	popComponentStack();
+            popComponentStack();
         }
 
         return false;
@@ -645,9 +648,9 @@
         }
 
         if (accesskey != null) {
-        	addParameter("accesskey", findString(accesskey));
+            addParameter("accesskey", findString(accesskey));
         }
-        
+
         if (cssClass != null) {
             addParameter("cssClass", findString(cssClass));
         }
@@ -698,7 +701,7 @@
             addParameter("form", form.getParameters());
 
             if ( name != null ) {
-            	// list should have been created by the form component
+                // list should have been created by the form component
                 List tags = (List) form.getParameters().get("tagNames");
                 tags.add(name);
             }
@@ -710,29 +713,29 @@
 
         // tooltip & tooltipConfig
         if (tooltipConfig != null) {
-    		addParameter("tooltipConfig", findValue(tooltipConfig));
-    	}
+            addParameter("tooltipConfig", findValue(tooltipConfig));
+        }
         if (tooltip != null) {
-        	addParameter("tooltip", findString(tooltip));
+            addParameter("tooltip", findString(tooltip));
+
+            Map tooltipConfigMap = getTooltipConfig(this);
 
-        	Map tooltipConfigMap = getTooltipConfig(this);
+            if (form != null) { // inform the containing form that we need tooltip javascript included
+                form.addParameter("hasTooltip", Boolean.TRUE);
 
-        	if (form != null) { // inform the containing form that we need tooltip javascript included
-        		form.addParameter("hasTooltip", Boolean.TRUE);
+                // tooltipConfig defined in component itseilf will take precedence
+                // over those defined in the containing form
+                Map overallTooltipConfigMap = getTooltipConfig(form);
+                overallTooltipConfigMap.putAll(tooltipConfigMap); // override parent form's tooltip config
 
-        		// tooltipConfig defined in component itseilf will take precedence
-        		// over those defined in the containing form
-        		Map overallTooltipConfigMap = getTooltipConfig(form);
-        		overallTooltipConfigMap.putAll(tooltipConfigMap); // override parent form's tooltip config
-
-        		for (Iterator i = overallTooltipConfigMap.entrySet().iterator(); i.hasNext(); ) {
-        			Map.Entry entry = (Map.Entry) i.next();
-        			addParameter((String) entry.getKey(), entry.getValue());
-        		}
-        	}
-        	else {
-        		LOG.warn("No ancestor Form found, javascript based tooltip will not work, however standard HTML tooltip using alt and title attribute will still work ");
-        	}
+                for (Iterator i = overallTooltipConfigMap.entrySet().iterator(); i.hasNext(); ) {
+                    Map.Entry entry = (Map.Entry) i.next();
+                    addParameter((String) entry.getKey(), entry.getValue());
+                }
+            }
+            else {
+                LOG.warn("No ancestor Form found, javascript based tooltip will not work, however standard HTML tooltip using alt and title attribute will still work ");
+            }
         }
         evaluateExtraParams();
 
@@ -766,62 +769,62 @@
     }
 
     protected void enableAncestorFormCustomOnsubmit() {
-    	Form form = (Form) findAncestor(Form.class);
-    	if (form != null) {
-    		form.addParameter("customOnsubmitEnabled", Boolean.TRUE);
-    	} else {
-    		LOG.warn("Cannot find an Ancestor form, custom onsubmit is NOT enabled");
-    	}
+        Form form = (Form) findAncestor(Form.class);
+        if (form != null) {
+            form.addParameter("customOnsubmitEnabled", Boolean.TRUE);
+        } else {
+            LOG.warn("Cannot find an Ancestor form, custom onsubmit is NOT enabled");
+        }
     }
 
     protected Map getTooltipConfig(UIBean component) {
-    	Object tooltipConfigObj = component.getParameters().get("tooltipConfig");
-    	Map tooltipConfig = new LinkedHashMap();
+        Object tooltipConfigObj = component.getParameters().get("tooltipConfig");
+        Map tooltipConfig = new LinkedHashMap();
 
-    	if (tooltipConfigObj instanceof Map) {
-    		// we get this if its configured using
-    		// 1] UI component's tooltipConfig attribute  OR
-    		// 2] <param name="tooltip" value="" /> param tag value attribute
-
-    		tooltipConfig = new LinkedHashMap((Map)tooltipConfigObj);
-    	} else if (tooltipConfigObj instanceof String) {
-
-    		// we get this if its configured using
-    		// <param name="tooltipConfig"> ... </param> tag's body
-    		String tooltipConfigStr = (String) tooltipConfigObj;
-    		String[] tooltipConfigArray = tooltipConfigStr.split("\\|");
-
-    		for (int a=0; a<tooltipConfigArray.length; a++) {
-    			String[] configEntry = ((String)tooltipConfigArray[a].trim()).split("=");
-    			String key = configEntry[0].trim();
-    			String value = null;
-    			if (configEntry.length > 1) {
-    				value = configEntry[1].trim();
-    				tooltipConfig.put(key, value.toString());
-    			}
-    			else {
-    				LOG.warn("component "+component+" tooltip config param "+key+" has no value defined, skipped");
-    			}
-    		}
-    	}
-    	return tooltipConfig;
+        if (tooltipConfigObj instanceof Map) {
+            // we get this if its configured using
+            // 1] UI component's tooltipConfig attribute  OR
+            // 2] <param name="tooltip" value="" /> param tag value attribute
+
+            tooltipConfig = new LinkedHashMap((Map)tooltipConfigObj);
+        } else if (tooltipConfigObj instanceof String) {
+
+            // we get this if its configured using
+            // <param name="tooltipConfig"> ... </param> tag's body
+            String tooltipConfigStr = (String) tooltipConfigObj;
+            String[] tooltipConfigArray = tooltipConfigStr.split("\\|");
+
+            for (int a=0; a<tooltipConfigArray.length; a++) {
+                String[] configEntry = ((String)tooltipConfigArray[a].trim()).split("=");
+                String key = configEntry[0].trim();
+                String value = null;
+                if (configEntry.length > 1) {
+                    value = configEntry[1].trim();
+                    tooltipConfig.put(key, value.toString());
+                }
+                else {
+                    LOG.warn("component "+component+" tooltip config param "+key+" has no value defined, skipped");
+                }
+            }
+        }
+        return tooltipConfig;
     }
 
     /**
      * Create HTML id element for the component and populate this component parmaeter
      * map.
-     * 
+     *
      * The order is as follows :-
      * <ol>
      *   <li>This component id attribute</li>
      *   <li>[containing_form_id]_[this_component_name]</li>
      *   <li>[this_component_name]</li>
      * </ol>
-     * 
+     *
      * @param form
      */
     protected void populateComponentHtmlId(Form form) {
-    	if (id != null) {
+        if (id != null) {
             // this check is needed for backwards compatibility with 2.1.x
             if (altSyntax()) {
                 addParameter("id", findString(id));
@@ -834,14 +837,14 @@
             addParameter("id", escape(name));
         }
     }
-    
+
 
     /**
      * The template directory.
      * @s.tagattribute required="false"
      */
     public void setTemplateDir(String templateDir) {
-    	this.templateDir = templateDir;
+        this.templateDir = templateDir;
     }
 
     /**
@@ -1063,13 +1066,13 @@
     public void setOnchange(String onchange) {
         this.onchange = onchange;
     }
-    
+
     /**
      * Set the html accesskey attribute on rendered html element
      * @s.tagattribute required="false"
      */
     public void setAccesskey(String accesskey) {
-    	this.accesskey = accesskey;
+        this.accesskey = accesskey;
     }
 
     /**
@@ -1077,7 +1080,7 @@
      * @s.tagattribute required="false" type="String" default=""
      */
     public void setTooltip(String tooltip) {
-    	this.tooltip = tooltip;
+        this.tooltip = tooltip;
     }
 
     /**
@@ -1085,6 +1088,6 @@
      * @s.tagattribute required="false" type="String" default=""
      */
     public void setTooltipConfig(String tooltipConfig) {
-    	this.tooltipConfig = tooltipConfig;
+        this.tooltipConfig = tooltipConfig;
     }
 }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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.
+ *  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.components;
 
@@ -43,25 +46,25 @@
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * 
+ *
  * <p>This tag is used to create a URL.</p>
  *
  * <p>You can use the "param" tag inside the body to provide
  * additional request parameters.</p>
- * 
+ *
  * <b>NOTE:</b>
  * <p>When includeParams is 'all' or 'get', the parameter defined in param tag will take
- * precedence and will not be overriden if they exists in the parameter submitted. For 
+ * precedence and will not be overriden if they exists in the parameter submitted. For
  * example, in Example 3 below, if there is a id parameter in the url where the page this
  * tag is included like http://<host>:<port>/<context>/editUser.action?id=3333&name=John
  * the generated url will be http://<host>:<port>/context>/editUser.action?id=22&name=John
  * cause the parameter defined in the param tag will take precedence.</p>
- * 
+ *
  * <!-- END SNIPPET: javadoc -->
  *
  *
  * <!-- START SNIPPET: params -->
- * 
+ *
  * <ul>
  *      <li>action (String) - (value or action choose either one, if both exist value takes precedence) action's name (alias) <li>
  *      <li>value (String) - (value or action choose either one, if both exist value takes precedence) the url itself</li>
@@ -76,13 +79,13 @@
  *      </li>
  *      <li>includeContext (Boolean) - determine wheather to include the web app context path. Default is true.</li>
  * </ul>
- * 
+ *
  * <!-- END SNIPPET: params -->
  *
  * <p/> <b>Examples</b>
  * <pre>
  * <!-- START SNIPPET: example -->
- * 
+ *
  * &lt;-- Example 1 --&gt;
  * &lt;s:url value="editGadget.action"&gt;
  *     &lt;s:param name="id" value="%{selected}" /&gt;
@@ -92,12 +95,12 @@
  * &lt;s:url action="editGadget"&gt;
  *     &lt;s:param name="id" value="%{selected}" /&gt;
  * &lt;/s:url&gt;
- * 
+ *
  * &lt;-- Example 3--&gt;
  * &lt;s:url includeParams="get"  &gt;
  *     &lt:param name="id" value="%{'22'}" /&gt;
  * &lt;/s:url&gt;
- * 
+ *
  * <!-- END SNIPPET: example -->
  * </pre>
  *
@@ -154,7 +157,7 @@
         // no explicit url set so attach params from current url, do
         // this at start so body params can override any of these they wish.
         try {
-        	// ww-1266
+            // ww-1266
             String includeParams =
                     Settings.isSet(StrutsConstants.STRUTS_URL_INCLUDEPARAMS) ?
                     Settings.get(StrutsConstants.STRUTS_URL_INCLUDEPARAMS).toLowerCase() : GET;
@@ -165,7 +168,7 @@
             }
 
             if (NONE.equalsIgnoreCase(includeParams)) {
-            	mergeRequestParameters(value, parameters, Collections.EMPTY_MAP);
+                mergeRequestParameters(value, parameters, Collections.EMPTY_MAP);
                 ActionContext.getContext().put(XWorkContinuationConfig.CONTINUE_KEY, null);
             } else if (ALL.equalsIgnoreCase(includeParams)) {
                 mergeRequestParameters(value, parameters, req.getParameterMap());
@@ -227,13 +230,13 @@
                 result = PortletUrlHelper.buildResourceUrl(value, parameters);
             }
             else {
-            	String _value = value;
-            	
-            	// We don't include the request parameters cause they would have been 
-            	// prioritised before this [in start(Writer) method]
-            	if (_value != null && _value.indexOf("?") > 0) {
-            		_value = _value.substring(0, _value.indexOf("?"));
-            	}
+                String _value = value;
+
+                // We don't include the request parameters cause they would have been
+                // prioritised before this [in start(Writer) method]
+                if (_value != null && _value.indexOf("?") > 0) {
+                    _value = _value.substring(0, _value.indexOf("?"));
+                }
                 result = UrlHelper.buildUrl(_value, req, res, parameters, scheme, includeContext, encode);
             }
         }
@@ -321,7 +324,7 @@
     public void setIncludeContext(boolean includeContext) {
         this.includeContext = includeContext;
     }
-    
+
     /**
      * The resulting portlet mode
      * @s.tagattribute required="false"
@@ -357,55 +360,55 @@
 
     /**
      * Merge request parameters into current parameters. If a parameter is
-     * already present, than the request parameter in the current request and value atrribute 
+     * already present, than the request parameter in the current request and value atrribute
      * will not override its value.
-     * 
+     *
      * The priority is as follows:-
      * <ul>
-     * 	<li>parameter from the current request (least priority)</li>
+     *  <li>parameter from the current request (least priority)</li>
      *  <li>parameter form the value attribute (more priority)</li>
      *  <li>parameter from the param tag (most priority)</li>
      * </ul>
-     * 
+     *
      * @param value the value attribute (url to be generated by this component)
      * @param parameters component parameters
      * @param contextParameters request parameters
      */
     protected void mergeRequestParameters(String value, Map parameters, Map contextParameters){
-    	
-    	Map mergedParams = new LinkedHashMap(contextParameters);
-    	
-    	// Merge contextParameters (from current request) with parameters specified in value attribute
-    	// eg. value="someAction.action?id=someId&venue=someVenue" 
-    	// where the parameters specified in value attribute takes priority.
-    	
-    	if (value != null && value.trim().length() > 0 && value.indexOf("?") > 0) {
-    		mergedParams = new LinkedHashMap();
-    		
-    		String queryString = value.substring(value.indexOf("?")+1);
-    		
-    		mergedParams = UrlHelper.parseQueryString(queryString);
-    		for (Iterator iterator = contextParameters.entrySet().iterator(); iterator.hasNext();) {
-    			Map.Entry entry = (Map.Entry) iterator.next();
-    			Object key = entry.getKey();
-    			
-    			if (!mergedParams.containsKey(key)) {
-    				mergedParams.put(key, entry.getValue());
-    			}
-    		}
-    	}
-    	
-    	
-    	// Merge parameters specified in value attribute 
-    	// eg. value="someAction.action?id=someId&venue=someVenue" 
-    	// with parameters specified though param tag 
-    	// eg. <param name="id" value="%{'someId'}" />
-    	// where parameters specified through param tag takes priority.
-    	
+
+        Map mergedParams = new LinkedHashMap(contextParameters);
+
+        // Merge contextParameters (from current request) with parameters specified in value attribute
+        // eg. value="someAction.action?id=someId&venue=someVenue"
+        // where the parameters specified in value attribute takes priority.
+
+        if (value != null && value.trim().length() > 0 && value.indexOf("?") > 0) {
+            mergedParams = new LinkedHashMap();
+
+            String queryString = value.substring(value.indexOf("?")+1);
+
+            mergedParams = UrlHelper.parseQueryString(queryString);
+            for (Iterator iterator = contextParameters.entrySet().iterator(); iterator.hasNext();) {
+                Map.Entry entry = (Map.Entry) iterator.next();
+                Object key = entry.getKey();
+
+                if (!mergedParams.containsKey(key)) {
+                    mergedParams.put(key, entry.getValue());
+                }
+            }
+        }
+
+
+        // Merge parameters specified in value attribute
+        // eg. value="someAction.action?id=someId&venue=someVenue"
+        // with parameters specified though param tag
+        // eg. <param name="id" value="%{'someId'}" />
+        // where parameters specified through param tag takes priority.
+
         for (Iterator iterator = mergedParams.entrySet().iterator(); iterator.hasNext();) {
             Map.Entry entry = (Map.Entry) iterator.next();
             Object key = entry.getKey();
-            
+
             if (!parameters.containsKey(key)) {
                 parameters.put(key, entry.getValue());
             }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UpDownSelect.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UpDownSelect.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UpDownSelect.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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.
+ *  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.components;
 
@@ -30,201 +33,201 @@
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * 
+ *
  * Create a Select component with buttons to move the elements in the select component
- * up and down. When the containing form is submited, its elements will be submitted in 
+ * up and down. When the containing form is submited, its elements will be submitted in
  * the order they are arranged (top to bottom).
- * 
+ *
  * <!-- END SNIPPET: javadoc -->
- * 
+ *
  * <p/>
- * 
+ *
  * <pre>
  * <!-- START SNIPPET: example -->
- * 
+ *
  * &lt;!-- Example 1: simple example --&gt;
  * &lt;s:updownselect
- * list="#{'england':'England', 'america':'America', 'germany':'Germany'}" 
- * name="prioritisedFavouriteCountries" 
- * headerKey="-1" 
- * headerValue="--- Please Order Them Accordingly ---" 
+ * list="#{'england':'England', 'america':'America', 'germany':'Germany'}"
+ * name="prioritisedFavouriteCountries"
+ * headerKey="-1"
+ * headerValue="--- Please Order Them Accordingly ---"
  * emptyOption="true" /&gt;
  *
  * &lt;!-- Example 2: more complex example --&gt;
  * &lt;s:updownselect
- * list="defaultFavouriteCartoonCharacters" 
- * name="prioritisedFavouriteCartoonCharacters" 
- * headerKey="-1" 
- * headerValue="--- Please Order ---" 
- * emptyOption="true" 
- * allowMoveUp="true" 
- * allowMoveDown="true" 
- * allowSelectAll="true" 
+ * list="defaultFavouriteCartoonCharacters"
+ * name="prioritisedFavouriteCartoonCharacters"
+ * headerKey="-1"
+ * headerValue="--- Please Order ---"
+ * emptyOption="true"
+ * allowMoveUp="true"
+ * allowMoveDown="true"
+ * allowSelectAll="true"
  * moveUpLabel="Move Up"
- * moveDownLabel="Move Down" 
+ * moveDownLabel="Move Down"
  * selectAllLabel="Select All" /&gt;
- * 
+ *
  * <!-- END SNIPPET: example -->
  * </pre>
- * 
+ *
  * @version $Date$ $Id$
- * 
+ *
  * @s.tag name="updownselect" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.UpDownSelectTag"
  * description="Render a up down select element"
  */
 public class UpDownSelect extends Select {
-	
-	private static final Log _log = LogFactory.getLog(UpDownSelect.class);
-	
-
-	final public static String TEMPLATE = "updownselect";
-	
-	protected String allowMoveUp;
-	protected String allowMoveDown;
-	protected String allowSelectAll;
-	
-	protected String moveUpLabel;
-	protected String moveDownLabel;
-	protected String selectAllLabel;
-	
-	
-	public String getDefaultTemplate() {
-		return TEMPLATE;
-	}
-	
-	public UpDownSelect(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
-		super(stack, request, response);
-	}
-	
-	public void evaluateParams() {
-		super.evaluateParams();
-		
-		
-		// override Select's default
-		if (size == null || size.trim().length() <= 0) {
-			addParameter("size", "5");
-		}
-		if (multiple == null || multiple.trim().length() <= 0) {
-			addParameter("multiple", Boolean.TRUE);
-		}
-		
-		
-		
-		if (allowMoveUp != null) {
-			addParameter("allowMoveUp", findValue(allowMoveUp, Boolean.class));
-		}
-		if (allowMoveDown != null) {
-			addParameter("allowMoveDown", findValue(allowMoveDown, Boolean.class));
-		}
-		if (allowSelectAll != null) {
-			addParameter("allowSelectAll", findValue(allowSelectAll, Boolean.class));
-		}
-		
-		if (moveUpLabel != null) {
-			addParameter("moveUpLabel", findString(moveUpLabel));
-		}
-		if (moveDownLabel != null) {
-			addParameter("moveDownLabel", findString(moveDownLabel));
-		}
-		if (selectAllLabel != null) {
-			addParameter("selectAllLabel", findString(selectAllLabel));
-		}
-		
-		
-		// inform our form ancestor about this UpDownSelect so the form knows how to 
-		// auto select all options upon it submission
-		Form ancestorForm = (Form) findAncestor(Form.class);
-		if (ancestorForm != null) {
-			
-			// inform form ancestor that we are using a custom onsubmit
-			enableAncestorFormCustomOnsubmit();
-			
-			Map m = (Map) ancestorForm.getParameters().get("updownselectIds");
-			if (m == null) {
-				// map with key -> id ,  value -> headerKey
-				m = new LinkedHashMap();
-			}
-			m.put(getParameters().get("id"), getParameters().get("headerKey"));
-			ancestorForm.getParameters().put("updownselectIds", m);
-		}
-		else {
-			_log.warn("no ancestor form found for updownselect "+this+", therefore autoselect of all elements upon form submission will not work ");
-		}
-	}
-
-	
-	public String getAllowMoveUp() { 
-		return allowMoveUp;
-	}
-	/**
+
+    private static final Log _log = LogFactory.getLog(UpDownSelect.class);
+
+
+    final public static String TEMPLATE = "updownselect";
+
+    protected String allowMoveUp;
+    protected String allowMoveDown;
+    protected String allowSelectAll;
+
+    protected String moveUpLabel;
+    protected String moveDownLabel;
+    protected String selectAllLabel;
+
+
+    public String getDefaultTemplate() {
+        return TEMPLATE;
+    }
+
+    public UpDownSelect(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
+        super(stack, request, response);
+    }
+
+    public void evaluateParams() {
+        super.evaluateParams();
+
+
+        // override Select's default
+        if (size == null || size.trim().length() <= 0) {
+            addParameter("size", "5");
+        }
+        if (multiple == null || multiple.trim().length() <= 0) {
+            addParameter("multiple", Boolean.TRUE);
+        }
+
+
+
+        if (allowMoveUp != null) {
+            addParameter("allowMoveUp", findValue(allowMoveUp, Boolean.class));
+        }
+        if (allowMoveDown != null) {
+            addParameter("allowMoveDown", findValue(allowMoveDown, Boolean.class));
+        }
+        if (allowSelectAll != null) {
+            addParameter("allowSelectAll", findValue(allowSelectAll, Boolean.class));
+        }
+
+        if (moveUpLabel != null) {
+            addParameter("moveUpLabel", findString(moveUpLabel));
+        }
+        if (moveDownLabel != null) {
+            addParameter("moveDownLabel", findString(moveDownLabel));
+        }
+        if (selectAllLabel != null) {
+            addParameter("selectAllLabel", findString(selectAllLabel));
+        }
+
+
+        // inform our form ancestor about this UpDownSelect so the form knows how to
+        // auto select all options upon it submission
+        Form ancestorForm = (Form) findAncestor(Form.class);
+        if (ancestorForm != null) {
+
+            // inform form ancestor that we are using a custom onsubmit
+            enableAncestorFormCustomOnsubmit();
+
+            Map m = (Map) ancestorForm.getParameters().get("updownselectIds");
+            if (m == null) {
+                // map with key -> id ,  value -> headerKey
+                m = new LinkedHashMap();
+            }
+            m.put(getParameters().get("id"), getParameters().get("headerKey"));
+            ancestorForm.getParameters().put("updownselectIds", m);
+        }
+        else {
+            _log.warn("no ancestor form found for updownselect "+this+", therefore autoselect of all elements upon form submission will not work ");
+        }
+    }
+
+
+    public String getAllowMoveUp() {
+        return allowMoveUp;
+    }
+    /**
      * Whether move up button should be displayed
-	 * @s.tagattribute required="false" type="Boolean" default="true"
-	 */
-	public void setAllowMoveUp(String allowMoveUp) {
-		this.allowMoveUp = allowMoveUp;
-	}
-	
-	
-	
-	public String getAllowMoveDown() {
-		return allowMoveDown;
-	}
-	/**
+     * @s.tagattribute required="false" type="Boolean" default="true"
+     */
+    public void setAllowMoveUp(String allowMoveUp) {
+        this.allowMoveUp = allowMoveUp;
+    }
+
+
+
+    public String getAllowMoveDown() {
+        return allowMoveDown;
+    }
+    /**
      * Whether move down button should be displayed
-	 * @s.tagattribute required="false" type="Boolean" default="true"
-	 */
-	public void setAllowMoveDown(String allowMoveDown) {
-		this.allowMoveDown = allowMoveDown;
-	}
-	
-	
-	
-	public String getAllowSelectAll() {
-		return allowSelectAll;
-	}
-	/**
+     * @s.tagattribute required="false" type="Boolean" default="true"
+     */
+    public void setAllowMoveDown(String allowMoveDown) {
+        this.allowMoveDown = allowMoveDown;
+    }
+
+
+
+    public String getAllowSelectAll() {
+        return allowSelectAll;
+    }
+    /**
      * Whether or not select all button should be displayed
-	 * @s.tagattribute required="false" type="Boolean" default="true"
-	 */
-	public void setAllowSelectAll(String allowSelectAll) {
-		this.allowSelectAll = allowSelectAll;
-	}
-	
-	
-	public String getMoveUpLabel() {
-		return moveUpLabel;
-	}
-	/**
+     * @s.tagattribute required="false" type="Boolean" default="true"
+     */
+    public void setAllowSelectAll(String allowSelectAll) {
+        this.allowSelectAll = allowSelectAll;
+    }
+
+
+    public String getMoveUpLabel() {
+        return moveUpLabel;
+    }
+    /**
      * Text to display on the move up button
-	 * @s.tagattribute required="false" type="String" default="^"
-	 */
-	public void setMoveUpLabel(String moveUpLabel) {
-		this.moveUpLabel = moveUpLabel;
-	}
-	
-	
-	
-	public String getMoveDownLabel() {
-		return moveDownLabel;
-	}
-	/**
+     * @s.tagattribute required="false" type="String" default="^"
+     */
+    public void setMoveUpLabel(String moveUpLabel) {
+        this.moveUpLabel = moveUpLabel;
+    }
+
+
+
+    public String getMoveDownLabel() {
+        return moveDownLabel;
+    }
+    /**
      * Text to display on the move down button
-	 * @s.tagattribute required="false" type="String" default="v"
-	 */
-	public void setMoveDownLabel(String moveDownLabel) {
-		this.moveDownLabel = moveDownLabel;
-	}
-	
-
-	
-	public String getSelectAllLabel() {
-		return selectAllLabel;
-	}
-	/**
+     * @s.tagattribute required="false" type="String" default="v"
+     */
+    public void setMoveDownLabel(String moveDownLabel) {
+        this.moveDownLabel = moveDownLabel;
+    }
+
+
+
+    public String getSelectAllLabel() {
+        return selectAllLabel;
+    }
+    /**
      * Text to display on the select all button
-	 * @s.tagattribute required="false" type="String" default="*"
-	 */
-	public void setSelectAllLabel(String selectAllLabel) {
-		this.selectAllLabel = selectAllLabel;
-	}
+     * @s.tagattribute required="false" type="String" default="*"
+     */
+    public void setSelectAllLabel(String selectAllLabel) {
+        this.selectAllLabel = selectAllLabel;
+    }
 }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/table/AbstractFilterModel.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/table/AbstractFilterModel.java?view=diff&rev=471756&r1=471755&r2=471756
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/table/AbstractFilterModel.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/table/AbstractFilterModel.java Mon Nov  6 07:01:43 2006
@@ -1,19 +1,22 @@
 /*
  * $Id$
  *
- * Copyright 2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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
  *
- *      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.
+ * 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.components.table;