com.gargoylesoftware.htmlunit.html
Class HtmlSelect

java.lang.Object
  extended by com.gargoylesoftware.htmlunit.html.DomNode
      extended by com.gargoylesoftware.htmlunit.html.DomNamespaceNode
          extended by com.gargoylesoftware.htmlunit.html.DomElement
              extended by com.gargoylesoftware.htmlunit.html.HtmlElement
                  extended by com.gargoylesoftware.htmlunit.html.StyledElement
                      extended by com.gargoylesoftware.htmlunit.html.ClickableElement
                          extended by com.gargoylesoftware.htmlunit.html.FocusableElement
                              extended by com.gargoylesoftware.htmlunit.html.HtmlSelect
All Implemented Interfaces:
DisabledElement, SubmittableElement, Serializable, Cloneable

public class HtmlSelect
extends FocusableElement
implements DisabledElement, SubmittableElement

Wrapper for the HTML element "select".

Version:
$Revision: 2132 $
Author:
Mike Bowler, Mike J. Bresnahan, David K. Taylor, Christian Sell, David D. Kilzer, Marc Guillemot, Daniel Gredler, Ahmed Ashour
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
HtmlElement.ChildElementsIterator, HtmlElement.MapEntryWrappingIterator
 
Nested classes/interfaces inherited from class com.gargoylesoftware.htmlunit.html.DomNode
DomNode.ChildIterator, DomNode.DescendantElementsIterator
 
Field Summary
static String TAG_NAME
          the HTML tag represented by this element
 
Fields inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, TAB_INDEX_OUT_OF_BOUNDS
 
Fields inherited from class com.gargoylesoftware.htmlunit.html.DomNode
ATTRIBUTE_NODE, COMMENT_NODE, DOCUMENT_NODE, ELEMENT_NODE, PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED, TEXT_NODE
 
Constructor Summary
HtmlSelect(HtmlPage page, Map attributes)
          Deprecated. You should not directly construct HtmlSelect.
 
Method Summary
 DomNode appendDomChild(DomNode node)
          append a child node to the end of the current list
 void appendOption(HtmlOption newOption)
          Add a new option at the end.
 String asText()
          Returns a text representation of this element that represents what would be visible to the user if this page was shown in a web browser.
 void fakeSelectedAttribute(String optionValue)
          Deprecated.  
 void fakeSelectedAttribute(String[] optionValues)
          Deprecated.  
 String getDefaultValue()
          Returns the default value to use when this element gets reset, if applicable.
 String getDisabledAttribute()
          Return the value of the attribute "disabled".
 String getMultipleAttribute()
          Return the value of the attribute "multiple".
 String getNameAttribute()
          Return the value of the attribute "name".
 String getOnBlurAttribute()
          Return the value of the attribute "onblur".
 String getOnChangeAttribute()
          Return the value of the attribute "onchange".
 String getOnFocusAttribute()
          Return the value of the attribute "onfocus".
 HtmlOption getOption(int index)
          Return the indexed option.
 HtmlOption getOptionByValue(String value)
          Return the HtmlOption object that corresponds to the specified value
 List getOptions()
          Return a List containing all the options
 int getOptionSize()
          Return the number of options
 List getSelectedOptions()
          Return a List containing all of the currently selected options.
 String getSizeAttribute()
          Return the value of the attribute "size".
 KeyValuePair[] getSubmitKeyValuePairs()
          Return an array of KeyValuePairs that are the values that will be sent back to the server whenever the current form is submitted.
 String getTabIndexAttribute()
          Return the value of the attribute "tabindex".
 boolean isDefaultChecked()
          Returns the default checked state to use when this element gets reset, if applicable. This implementation returns false; only checkboxes and radio buttons really care what the default checked value is.
 boolean isDisabled()
          Return true if the disabled attribute is set for this element.
 boolean isMultipleSelectEnabled()
          Return true if this select is using "multiple select"
protected  void onAllChildrenAddedToPage()
          If we were given an invalid size attribute, normalize it.
 void removeOption(int index)
          Remove an option at the given index.
 void replaceOption(int index, HtmlOption newOption)
          Replace an option at the given index with a new option.
 void reset()
          Return the value of this element to what it was at the time the page was loaded.
 void setDefaultChecked(boolean defaultChecked)
          Sets the default checked state to use when this element gets reset, if applicable. This implementation is empty; only checkboxes and radio buttons really care what the default checked value is.
 void setDefaultValue(String defaultValue)
          Sets the default value to use when this element gets reset, if applicable.
 void setOptionSize(int newLength)
          Remove options by reducing the "length" property.
 Page setSelectedAttribute(HtmlOption selectedOption, boolean isSelected)
          Set the "selected" state of the specified option.
 Page setSelectedAttribute(String optionValue, boolean isSelected)
          Set the "selected" state of the specified option.
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.ClickableElement
click, click, click, dblClick, dblClick, doClickAction, getLangAttribute, getOnClickAttribute, getOnDblClickAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getTextDirectionAttribute, getXmlLangAttribute, isStateUpdateFirst
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.StyledElement
getClassAttribute, getIdAttribute, getStyleAttribute, getTitleAttribute, isRenderedVisible
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
addHtmlAttributeChangeListener, appendChildIfNoneExists, assertNotEmpty, blur, cloneDomNode, cloneNode, fireEvent, fireEvent, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, focus, getAttribute, getAttributeEntriesIterator, getAttributeNS, getAttributeValue, getChildElementsIterator, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getEventHandler, getHtmlElementById, getHtmlElementsByAttribute, getHtmlElementsByTagName, getHtmlElementsByTagNames, getId, getNodeName, getNodeType, getOneHtmlElementByAttribute, getTabIndex, getTagName, hasAttribute, hasAttributeNS, hasAttributes, hasHtmlElementWithId, isAttributeDefined, isEmptyXmlTagExpanded, isSubmittableByEnter, keyDown, keyDown, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, notImplemented, preventDefault, printOpeningTagContentAsXml, printXml, removeAttribute, removeAttributeNS, removeChild, removeEventHandler, removeHtmlAttributeChangeListener, rightClick, rightClick, setAttribute, setAttributeNS, setAttributeValue, setAttributeValue, setEventHandler, setEventHandler, setId, toString, type, type, type, type
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.DomNamespaceNode
getLocalName, getNamespaceURI, getPrefix, getQualifiedName, setPrefix
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.DomNode
addDomChangeListener, addPropertyChangeListener, appendChild, asXml, fireNodeAdded, fireNodeDeleted, firePropertyChange, getAllHtmlChildElements, getByXPath, getChildIterator, getChildrenAsText, getEndColumnNumber, getEndLineNumber, getFirstByXPath, getFirstChild, getFirstDomChild, getLastChild, getLastDomChild, getLog, getNativePage, getNextDomSibling, getNextSibling, getNodeValue, getPage, getParentDomNode, getParentNode, getPreviousDomSibling, getPreviousSibling, getReadyState, getScriptObject, getStartColumnNumber, getStartLineNumber, insertBefore, isAncestorOf, isTrimmedText, notifyIncorrectness, onAddedToPage, printChildrenAsXml, reduceWhitespace, remove, removeAllChildren, removeDomChangeListener, removePropertyChangeListener, replace, setNextSibling, setNodeValue, setParentNode, setPreviousSibling, setReadyState, setScriptObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TAG_NAME

public static final String TAG_NAME
the HTML tag represented by this element

See Also:
Constant Field Values
Constructor Detail

HtmlSelect

public HtmlSelect(HtmlPage page,
                  Map attributes)
Deprecated. You should not directly construct HtmlSelect.

Create an instance

Parameters:
page - The page that contains this element
attributes - the initial attributes
Method Detail

onAllChildrenAddedToPage

protected void onAllChildrenAddedToPage()
If we were given an invalid size attribute, normalize it. Then set a default selected option if none was specified and the size is 1 or less and this isn't a multiple selection input.

Overrides:
onAllChildrenAddedToPage in class DomNode

getSelectedOptions

public List getSelectedOptions()
Return a List containing all of the currently selected options. The following special conditions can occur if the element is in single select mode:

Returns:
See above

getOptions

public List getOptions()
Return a List containing all the options

Returns:
See above

getOption

public HtmlOption getOption(int index)
Return the indexed option.

Parameters:
index - The index
Returns:
The option specified by the index

getOptionSize

public int getOptionSize()
Return the number of options

Returns:
The number of options

setOptionSize

public void setOptionSize(int newLength)
Remove options by reducing the "length" property. This has no effect if the length is set to the same or greater.

Parameters:
newLength - The new length property value

removeOption

public void removeOption(int index)
Remove an option at the given index.

Parameters:
index - The index of the option to remove

replaceOption

public void replaceOption(int index,
                          HtmlOption newOption)
Replace an option at the given index with a new option.

Parameters:
index - The index of the option to remove
newOption - The new option to replace to indexed option

appendOption

public void appendOption(HtmlOption newOption)
Add a new option at the end.

Parameters:
newOption - The new option to add

appendDomChild

public DomNode appendDomChild(DomNode node)
append a child node to the end of the current list

Overrides:
appendDomChild in class DomNode
Parameters:
node - the node to append
Returns:
the node added
See Also:
DomNode.appendDomChild(DomNode)

setSelectedAttribute

public Page setSelectedAttribute(String optionValue,
                                 boolean isSelected)
Set the "selected" state of the specified option. If this "select" is single select then calling this will deselect all other options

Only options that are actually in the document may be selected. If you need to select an option that really isn't there (ie testing error cases) then use fakeSelectedAttribute(String) or fakeSelectedAttribute(String[]) instead.

Parameters:
isSelected - true if the option is to become selected
optionValue - The value of the option that is to change
Returns:
The page that occupies this window after this change is made. It may be the same window or it may be a freshly loaded one.

setSelectedAttribute

public Page setSelectedAttribute(HtmlOption selectedOption,
                                 boolean isSelected)
Set the "selected" state of the specified option. If this "select" is single select then calling this will deselect all other options

Only options that are actually in the document may be selected. If you need to select an option that really isn't there (ie testing error cases) then use fakeSelectedAttribute(String) or fakeSelectedAttribute(String[]) instead.

Parameters:
isSelected - true if the option is to become selected
selectedOption - The value of the option that is to change
Returns:
The page that occupies this window after this change is made. It may be the same window or it may be a freshly loaded one.

fakeSelectedAttribute

public void fakeSelectedAttribute(String optionValue)
Deprecated. 

Set the selected value to be something that was not originally contained in the document.

Parameters:
optionValue - The value of the new "selected" option

fakeSelectedAttribute

public void fakeSelectedAttribute(String[] optionValues)
Deprecated. 

Set the selected values to be something that were not originally contained in the document.

Parameters:
optionValues - The values of the new "selected" options

getSubmitKeyValuePairs

public KeyValuePair[] getSubmitKeyValuePairs()
Return an array of KeyValuePairs that are the values that will be sent back to the server whenever the current form is submitted.

THIS METHOD IS INTENDED FOR THE USE OF THE FRAMEWORK ONLY AND SHOULD NOT BE USED BY CONSUMERS OF HTMLUNIT. USE AT YOUR OWN RISK.

Specified by:
getSubmitKeyValuePairs in interface SubmittableElement
Returns:
See above

reset

public void reset()
Return the value of this element to what it was at the time the page was loaded.

Specified by:
reset in interface SubmittableElement

setDefaultValue

public void setDefaultValue(String defaultValue)
Sets the default value to use when this element gets reset, if applicable.

Specified by:
setDefaultValue in interface SubmittableElement
Parameters:
defaultValue - The default value to use when this element gets reset, if applicable.
See Also:
SubmittableElement.setDefaultValue(String)

getDefaultValue

public String getDefaultValue()
Returns the default value to use when this element gets reset, if applicable.

Specified by:
getDefaultValue in interface SubmittableElement
Returns:
the default value to use when this element gets reset, if applicable.
See Also:
SubmittableElement.setDefaultValue(String)

setDefaultChecked

public void setDefaultChecked(boolean defaultChecked)
Sets the default checked state to use when this element gets reset, if applicable. This implementation is empty; only checkboxes and radio buttons really care what the default checked value is.

Specified by:
setDefaultChecked in interface SubmittableElement
Parameters:
defaultChecked - The default checked state to use when this element gets reset, if applicable.
See Also:
SubmittableElement.setDefaultChecked(boolean), HtmlRadioButtonInput.setDefaultChecked(boolean), HtmlCheckBoxInput.setDefaultChecked(boolean)

isDefaultChecked

public boolean isDefaultChecked()
Returns the default checked state to use when this element gets reset, if applicable. This implementation returns false; only checkboxes and radio buttons really care what the default checked value is.

Specified by:
isDefaultChecked in interface SubmittableElement
Returns:
The default checked state to use when this element gets reset, if applicable.
See Also:
SubmittableElement.isDefaultChecked(), HtmlRadioButtonInput.isDefaultChecked(), HtmlCheckBoxInput.isDefaultChecked()

isMultipleSelectEnabled

public boolean isMultipleSelectEnabled()
Return true if this select is using "multiple select"

Returns:
See above

getOptionByValue

public HtmlOption getOptionByValue(String value)
                            throws ElementNotFoundException
Return the HtmlOption object that corresponds to the specified value

Parameters:
value - The value to search by
Returns:
See above
Throws:
ElementNotFoundException - If a particular xml element could not be found in the dom model

asText

public String asText()
Returns a text representation of this element that represents what would be visible to the user if this page was shown in a web browser. If the user can only select one option at a time, this method returns the selected option. If the user can select multiple options, this method returns all options.

Overrides:
asText in class DomNode
Returns:
The element as text.

getNameAttribute

public final String getNameAttribute()
Return the value of the attribute "name". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Returns:
The value of the attribute "name" or an empty string if that attribute isn't defined.

getSizeAttribute

public final String getSizeAttribute()
Return the value of the attribute "size". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Returns:
The value of the attribute "size" or an empty string if that attribute isn't defined.

getMultipleAttribute

public final String getMultipleAttribute()
Return the value of the attribute "multiple". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Returns:
The value of the attribute "multiple" or an empty string if that attribute isn't defined.

getDisabledAttribute

public final String getDisabledAttribute()
Return the value of the attribute "disabled". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Specified by:
getDisabledAttribute in interface DisabledElement
Returns:
The value of the attribute "disabled" or an empty string if that attribute isn't defined.

isDisabled

public final boolean isDisabled()
Return true if the disabled attribute is set for this element.

Specified by:
isDisabled in interface DisabledElement
Returns:
Return true if this element is disabled.

getTabIndexAttribute

public final String getTabIndexAttribute()
Return the value of the attribute "tabindex". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Returns:
The value of the attribute "tabindex" or an empty string if that attribute isn't defined.

getOnFocusAttribute

public final String getOnFocusAttribute()
Return the value of the attribute "onfocus". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Returns:
The value of the attribute "onfocus" or an empty string if that attribute isn't defined.

getOnBlurAttribute

public final String getOnBlurAttribute()
Return the value of the attribute "onblur". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Returns:
The value of the attribute "onblur" or an empty string if that attribute isn't defined.

getOnChangeAttribute

public final String getOnChangeAttribute()
Return the value of the attribute "onchange". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Returns:
The value of the attribute "onchange" or an empty string if that attribute isn't defined.


Copyright © 2002-2010 Gargoyle Software Inc.. All Rights Reserved.