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

public class HtmlOption
extends HtmlElement
implements DisabledElement

Wrapper for the HTML element "option".

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

Nested Class Summary
 
Nested classes/interfaces inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
HtmlElement.ChildElementsIterator
 
Nested classes/interfaces inherited from class com.gargoylesoftware.htmlunit.html.DomNode
DomNode.ChildIterator, DomNode.DescendantElementsIterator<T extends DomNode>
 
Field Summary
static String TAG_NAME
          The HTML tag represented by this element.
 
Fields inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
TAB_INDEX_OUT_OF_BOUNDS
 
Fields inherited from class com.gargoylesoftware.htmlunit.html.DomElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY
 
Fields inherited from class com.gargoylesoftware.htmlunit.html.DomNode
AS_TEXT_BLANK, AS_TEXT_BLOCK_SEPARATOR, AS_TEXT_NEW_LINE, AS_TEXT_TAB, PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Method Summary
 String asText()
          Returns a textual representation of this element that represents what would be visible to the user if this page was shown in a web browser.
protected  void doClickAction()
          Selects the option if it's not already selected.
 String getDisabledAttribute()
          Returns the value of the attribute "disabled".
 HtmlSelect getEnclosingSelect()
          Gets the enclosing select of this option.
protected  DomNode getEventTargetElement()
          Returns the event target element.
 String getLabelAttribute()
          Returns the value of the attribute "label".
 String getSelectedAttribute()
          Returns the value of the attribute "selected".
 String getText()
          Gets the text.
 String getValueAttribute()
          Returns 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()
          Returns whether this Option is selected by default.
 boolean isDisabled()
          Returns true if the disabled attribute is set for this element.
 boolean isSelected()
          Returns true if this option is currently selected.
protected  void printOpeningTagContentAsXml(PrintWriter printWriter)
          Prints the content between "<" and ">" (or "/>") in the output of the tag name and its attributes in XML format.
 void reset()
          Resets the option to its original selected state.
 void setLabelAttribute(String newLabel)
          Sets the value of the attribute "label".
 Page setSelected(boolean selected)
          Sets the selected state of this option.
 void setText(String text)
          Sets the text for this HtmlOption.
 void setValueAttribute(String newValue)
          Sets the value of the attribute "value".
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
addHtmlAttributeChangeListener, appendChildIfNoneExists, blur, checkChildHierarchy, click, click, click, dblClick, dblClick, doType, fireEvent, fireEvent, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, focus, getCanonicalXPath, getChildElements, getElementById, getElementsByAttribute, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getHtmlElementsByTagName, getHtmlElementsByTagNames, getId, getLangAttribute, getNodeName, getOnClickAttribute, getOnDblClickAttribute, getOneHtmlElementByAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getTabIndex, getTextDirectionAttribute, getXmlLangAttribute, hasEventHandlers, hasHtmlElementWithId, isAttributeCaseSensitive, isStateUpdateFirst, isSubmittableByEnter, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, preventDefault, removeAttribute, removeChild, removeEventHandler, removeHtmlAttributeChangeListener, rightClick, rightClick, setAttributeNS, setEventHandler, setEventHandler, setId, toString, type, type, type, type
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.DomElement
cloneNode, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getElementsByTagName, getElementsByTagNameNS, getNodeType, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isEmptyXmlTagExpanded, namespaces, printXml, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.DomNamespaceNode
getLocalName, getNamespaceURI, getPrefix, getQualifiedName, setPrefix
 
Methods inherited from class com.gargoylesoftware.htmlunit.html.DomNode
addDomChangeListener, appendChild, asXml, compareDocumentPosition, fireNodeAdded, fireNodeDeleted, getAllHtmlChildElements, getAncestors, getBaseURI, getByXPath, getChildNodes, getChildren, getDescendants, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstChild, getHtmlElementDescendants, getIndex, getLastChild, getNextSibling, getNodeValue, getOwnerDocument, getPage, getParentNode, getPreviousSibling, getReadyState, getScriptObject, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, hasChildNodes, insertBefore, isAncestorOf, isAncestorOfAny, isBlock, isDefaultNamespace, isDisplayed, isEqualNode, isSameNode, isSupported, isTrimmedText, lookupNamespaceURI, lookupPrefix, mayBeDisplayed, normalize, notifyIncorrectness, onAddedToPage, onAllChildrenAddedToPage, printChildrenAsXml, remove, removeAllChildren, removeChild, removeDomChangeListener, replace, replaceChild, setNextSibling, setNodeValue, setParentNode, setPreviousSibling, setReadyState, setScriptObject, setTextContent, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.w3c.dom.Node
appendChild, compareDocumentPosition, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

Field Detail

TAG_NAME

public static final String TAG_NAME
The HTML tag represented by this element.

See Also:
Constant Field Values
Method Detail

isSelected

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

Returns:
true if this option is currently selected

setSelected

public Page setSelected(boolean selected)
Sets 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 (may or may not be the same as the original page)

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

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()
Resets the option to its original selected state.


getSelectedAttribute

public final String getSelectedAttribute()
Returns 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()
Returns 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()
Returns true if the disabled attribute is set for this element. Note that this method always returns false when emulating IE, because IE does not allow individual options to be disabled.

Specified by:
isDisabled in interface DisabledElement
Returns:
true if the disabled attribute is set for this element (always false when emulating IE)

getDisabledAttribute

public final String getDisabledAttribute()
Returns 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()
Returns 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)
Sets 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()
Returns 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)
Sets 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 void doClickAction()
                      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 if there was one, 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 HtmlElement
Throws:
IOException - if an IO error occurs

printOpeningTagContentAsXml

protected void printOpeningTagContentAsXml(PrintWriter printWriter)
Prints the content between "<" and ">" (or "/>") in the output of the tag name and its attributes in XML format.

Overrides:
printOpeningTagContentAsXml in class DomElement
Parameters:
printWriter - the writer to print in

asText

public String asText()
Returns a textual 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:
a textual representation of this element that represents what would be visible to the user if this page was shown in a web browser

setText

public void setText(String text)
Sets the text for this HtmlOption.

Parameters:
text - the text

getText

public String getText()
Gets the text.

Returns:
the text of this option.

getEventTargetElement

protected DomNode getEventTargetElement()
Returns the event target element. This could be overridden by subclasses to have other targets. The default implementation returns 'this'.

Overrides:
getEventTargetElement in class HtmlElement
Returns:
the event target element.


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