KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > gargoylesoftware > htmlunit > javascript > host > Option


1 /*
2  * Copyright (c) 2002, 2005 Gargoyle Software Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12  * 3. The end-user documentation included with the redistribution, if any, must
13  * include the following acknowledgment:
14  *
15  * "This product includes software developed by Gargoyle Software Inc.
16  * (http://www.GargoyleSoftware.com/)."
17  *
18  * Alternately, this acknowledgment may appear in the software itself, if
19  * and wherever such third-party acknowledgments normally appear.
20  * 4. The name "Gargoyle Software" must not be used to endorse or promote
21  * products derived from this software without prior written permission.
22  * For written permission, please contact info@GargoyleSoftware.com.
23  * 5. Products derived from this software may not be called "HtmlUnit", nor may
24  * "HtmlUnit" appear in their name, without prior written permission of
25  * Gargoyle Software Inc.
26  *
27  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
28  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
29  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARGOYLE
30  * SOFTWARE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
31  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
33  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
36  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37  */

38 package com.gargoylesoftware.htmlunit.javascript.host;
39
40 import com.gargoylesoftware.htmlunit.html.DomNode;
41 import com.gargoylesoftware.htmlunit.html.HtmlOption;
42
43 /**
44  * The javascript object that represents a select
45  *
46  * @version $Revision: 100 $
47  * @author <a HREF="mailto:mbowler@GargoyleSoftware.com">Mike Bowler</a>
48  * @author David K. Taylor
49  * @author Chris Erskine
50  */

51 public class Option extends HTMLElement {
52     private static final long serialVersionUID = 947015932373556314L;
53     private String JavaDoc text_;
54     private String JavaDoc value_;
55
56     /**
57      * Create an instance.
58      */

59     public Option() {
60     }
61
62
63     /**
64      * Javascript constructor. This must be declared in every javascript file because
65      * the rhino engine won't walk up the hierarchy looking for constructors.
66      * @param newText The text
67      * @param newValue The value
68      */

69     public void jsConstructor( final String JavaDoc newText, final String JavaDoc newValue ) {
70         if ( newText != null && ! newText.equals( "undefined" ) ) {
71             text_ = newText;
72         }
73         if ( newValue != null && ! newValue.equals( "undefined" ) ) {
74             value_ = newValue;
75         }
76     }
77
78      /**
79       * Set the DOM node that corresponds to this javascript object
80       * @param domNode The DOM node
81       */

82     public void setDomNode( final DomNode domNode ) {
83         super.setDomNode( domNode );
84         if ( value_ != null ) {
85             jsxSet_value( value_ );
86         }
87         if ( text_ != null ) {
88             jsxSet_text( text_ );
89         }
90     }
91
92     /**
93      * Return the value of the "value" property
94      * @return The value property
95      */

96     public String JavaDoc jsxGet_value() {
97         return ((HtmlOption)getHtmlElementOrDie()).getValue();
98     }
99
100     /**
101      * Set the value of the "value" property
102      * @param newValue The value property
103      */

104     public void jsxSet_value( final String JavaDoc newValue ) {
105         ((HtmlOption)getHtmlElementOrDie()).setValueAttribute( newValue );
106     }
107
108
109     /**
110      * Return the value of the "text" property
111      * @return The text property
112      */

113     public String JavaDoc jsxGet_text() {
114         final HtmlOption htmlOption = (HtmlOption) getHtmlElementOrDie();
115         if ( htmlOption.isAttributeDefined( "label" ) ) {
116             return htmlOption.getLabelAttribute();
117         }
118         return htmlOption.asText();
119     }
120
121
122     /**
123      * Set the value of the "text" property
124      * @param newText The text property
125      */

126     public void jsxSet_text( final String JavaDoc newText ) {
127         ((HtmlOption)getHtmlElementOrDie()).setLabelAttribute( newText );
128     }
129
130     /**
131      * Return the value of the "selected" property
132      * @return The text property
133      */

134     public boolean jsxGet_selected() {
135         final HtmlOption htmlOption = (HtmlOption) getHtmlElementOrDie();
136         return htmlOption.isSelected();
137     }
138
139
140     /**
141      * Set the value of the "selected" property
142      * @param selected The new selected property
143      */

144     public void jsxSet_selected( final boolean selected ) {
145         ((HtmlOption)getHtmlElementOrDie()).setSelected( selected );
146     }
147 }
148
Popular Tags