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