com.gargoylesoftware.htmlunit.html
Class HtmlOption

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.HtmlOption
All Implemented Interfaces:
DisabledElement, Serializable, Cloneable

public class HtmlOption
extends ClickableElement
implements DisabledElement

Wrapper for the html element "option"

Version:
$Revision: 2132 $
Author:
Mike Bowler, David K. Taylor, Christian Sell, David D. Kilzer, Marc Guillemot, 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
HtmlOption(HtmlPage page, Map attributes)
          Deprecated. You should not directly construct HtmlOption.
 
Method Summary
 DomNode appendDomChild(DomNode node)
          append a child node to the end of the current list
 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. This implementation will show the label attribute before the content of the tag if the attribute exists.
protected  Page doClickAction(Page defaultPage)
          Selects the option if it's not already selected.
 String getDisabledAttribute()
          Return the value of the attribute "disabled".
 HtmlSelect getEnclosingSelect()
          Gets the enclosing select of this option
 String getLabelAttribute()
          Return the value of the attribute "label".
 String getSelectedAttribute()
          Return the value of the attribute "selected".
 String getValueAttribute()
          Return the value of the attribute "value".
 void insertBefore(DomNode newNode)
          Inserts a new child node before this node into the child relationship this node is a part of.
 boolean isDefaultSelected()
          Return whether this Option is selected by default.
 boolean isDisabled()
          Return true if the disabled attribute is set for this element.
 boolean isSelected()
          Return true if this option is currently selected
 void reset()
          Reset the option to its original selected state.
 void setLabelAttribute(String newLabel)
          Set the value of the attribute "label".
 Page setSelected(boolean selected)
          Set the selected state of this option.
 void setValueAttribute(String newValue)
          Set the value of the attribute "value".
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.ClickableElement
click, click, click, dblClick, dblClick, 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, isAncestorOf, isTrimmedText, notifyIncorrectness, onAddedToPage, onAllChildrenAddedToPage, 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

HtmlOption

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

Create an instance

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

isSelected

public boolean isSelected()
Return true if this option is currently selected

Returns:
See above

setSelected

public Page setSelected(boolean selected)
Set the selected state of this option. This will possibly also change the selected properties of sibling option elements

Parameters:
selected - true if this option should be selected.
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.

insertBefore

public void insertBefore(DomNode newNode)
                  throws IllegalStateException
Inserts a new child node before this node into the child relationship this node is a part of. If the specified node is this node, this method is a no-op.

Overrides:
insertBefore in class DomNode
Parameters:
newNode - the new node to insert
Throws:
IllegalStateException - if this node is not a child of any other node
See Also:
DomNode.insertBefore(DomNode)

getEnclosingSelect

public HtmlSelect getEnclosingSelect()
Gets the enclosing select of this option

Returns:
null if no select is found (for instance malformed html)

reset

public void reset()
Reset the option to its original selected state.


getSelectedAttribute

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

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

isDefaultSelected

public final boolean isDefaultSelected()
Return whether this Option is selected by default. That is whether the "selected" attribute exists when the Option is constructed. This also determines the value of getSelectedAttribute() after a reset() on the form.

Returns:
whether the option is selected by default.

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.

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.

getLabelAttribute

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

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

setLabelAttribute

public final void setLabelAttribute(String newLabel)
Set the value of the attribute "label". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Parameters:
newLabel - The value of the attribute "label".

getValueAttribute

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

Returns:
The value of the attribute "value"
See Also:
initial value if value attribute is not set

setValueAttribute

public final void setValueAttribute(String newValue)
Set the value of the attribute "value". Refer to the HTML 4.01 documentation for details on the use of this attribute.

Parameters:
newValue - The value of the attribute "value".

doClickAction

protected Page doClickAction(Page defaultPage)
                      throws IOException
Selects the option if it's not already selected. This method will be called if there either wasn't an onclick handler or there was but the result of that handler wasn't false. This is the default behavior of clicking the element. The default implementation returns the current page - subclasses requiring different behavior (like HtmlSubmitInput) will override this method.

Overrides:
doClickAction in class ClickableElement
Parameters:
defaultPage - The default page to return if the action does not load a new page.
Returns:
The page that is currently loaded after execution of this method
Throws:
IOException - If an IO error occurred

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

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. For example, a single-selection select element would return the currently selected value as text. This implementation will show the label attribute before the content of the tag if the attribute exists.

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


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