View Javadoc

1   /*
2    * $Id: DoubleSelect.java 451544 2006-09-30 05:38:02Z mrdon $
3    *
4    * Copyright 2006 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.struts2.components;
19  
20  import javax.servlet.http.HttpServletRequest;
21  import javax.servlet.http.HttpServletResponse;
22  
23  import com.opensymphony.xwork2.util.ValueStack;
24  
25  /***
26   * <!-- START SNIPPET: javadoc -->
27   * Renders two HTML select elements with second one changing displayed values depending on selected entry of first one.
28   * <!-- END SNIPPET: javadoc -->
29   *
30   * <p/> <b>Examples</b>
31   *
32   * <pre>
33   * <!-- START SNIPPET: example -->
34   * &lt;s:doubleselect label="doubleselect test1" name="menu" list="{'fruit','other'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" /&gt;
35   * &lt;s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" /&gt;
36   * <!-- END SNIPPET: example -->
37   * </pre>
38   *
39   * @s.tag name="doubleselect" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.DoubleSelectTag"
40   * description="Renders two HTML select elements with second one changing displayed values depending on selected entry of first one."
41   */
42  public class DoubleSelect extends DoubleListUIBean {
43      final public static String TEMPLATE = "doubleselect";
44  
45  
46      public DoubleSelect(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
47          super(stack, request, response);
48      }
49  
50      protected String getDefaultTemplate() {
51          return TEMPLATE;
52      }
53  
54      public void evaluateExtraParams() {
55          super.evaluateExtraParams();
56  
57          // force the onchange parameter
58          addParameter("onchange", getParameters().get("name") + "Redirect(this.options.selectedIndex)");
59      }
60  }