Package org.htmlunit.html
Class HtmlOption
- java.lang.Object
-
- org.htmlunit.html.DomNode
-
- org.htmlunit.html.DomNamespaceNode
-
- org.htmlunit.html.DomElement
-
- org.htmlunit.html.HtmlElement
-
- org.htmlunit.html.HtmlOption
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,DisabledElement
,org.w3c.dom.Element
,org.w3c.dom.Node
public class HtmlOption extends HtmlElement implements DisabledElement
Wrapper for the HTML element "option".- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.htmlunit.html.HtmlElement
HtmlElement.DisplayStyle
-
Nested classes/interfaces inherited from class org.htmlunit.html.DomElement
DomElement.ChildElementsIterator
-
Nested classes/interfaces inherited from class org.htmlunit.html.DomNode
DomNode.ChildIterator, DomNode.DescendantElementsIterator<T extends DomNode>
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
TAG_NAME
The HTML tag represented by this element.-
Fields inherited from class org.htmlunit.html.HtmlElement
ATTRIBUTE_CHECKED, ATTRIBUTE_REQUIRED, TAB_INDEX_OUT_OF_BOUNDS
-
Fields inherited from class org.htmlunit.html.DomElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTE
-
Fields inherited from class org.htmlunit.html.DomNode
PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED
-
Fields inherited from interface org.htmlunit.html.DisabledElement
ATTRIBUTE_DISABLED
-
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
basicRemove()
Cuts off all relationships this node has with siblings and parents.<P extends Page>
Pclick(org.htmlunit.javascript.host.event.Event event, boolean shiftKey, boolean ctrlKey, boolean altKey, boolean ignoreVisibility)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Simulates clicking on this element, returning the page in the window that has the focus after the element has been clicked.protected boolean
doClickStateUpdate(boolean shiftKey, boolean ctrlKey)
Selects the option if it's not already selected.HtmlElement.DisplayStyle
getDefaultStyleDisplay()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.java.lang.String
getDisabledAttribute()
Returns the value of the attributedisabled
.HtmlSelect
getEnclosingSelect()
Gets the enclosing select of this option.protected DomNode
getEventTargetElement()
Returns the event target element.java.lang.String
getLabelAttribute()
Returns the value of the attributelabel
.java.lang.String
getSelectedAttribute()
Returns the value of the attributeselected
.java.lang.String
getText()
Gets the text.java.lang.String
getValueAttribute()
Returns the value of the attributevalue
.boolean
handles(org.htmlunit.javascript.host.event.Event event)
Indicates if the provided event can be applied to this node.void
insertBefore(DomNode newNode)
Inserts the specified node as 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()
Returnstrue
if the disabled attribute is set for this element.boolean
isSelected()
Returnstrue
if this option is currently selected.protected boolean
isStateUpdateFirst()
Returnstrue
if state updates should be done before onclick event handling.Page
mouseDown(boolean shiftKey, boolean ctrlKey, boolean altKey, int button)
Selects the option if it's not already selected.Page
mouseOver(boolean shiftKey, boolean ctrlKey, boolean altKey, int button)
Simulates moving the mouse over this element, returning the page which this element's window contains after the mouse move.Page
mouseUp(boolean shiftKey, boolean ctrlKey, boolean altKey, int button)
Selects the option if it's not already selected.protected void
printOpeningTagContentAsXml(java.io.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(java.lang.String newLabel)
Sets the value of the attributelabel
.Page
setSelected(boolean selected)
Sets the selected state of this option.void
setSelectedFromJavaScript(boolean selected)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Sets the selected state of this option.void
setText(java.lang.String text)
Sets the text for this HtmlOption.void
setValueAttribute(java.lang.String newValue)
Sets the value of the attributevalue
.-
Methods inherited from class org.htmlunit.html.HtmlElement
acceptChar, addHtmlAttributeChangeListener, appendChildIfNoneExists, checkChildHierarchy, cloneNode, detach, doType, doType, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, getCanonicalXPath, getElementsByAttribute, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getLangAttribute, getNodeName, getOnClickAttribute, getOnDblClickAttribute, getOneHtmlElementByAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getSrcAttributeNormalized, getTabIndex, getTextDirectionAttribute, getXmlLangAttribute, hasEventHandlers, isAltPressed, isAttributeCaseSensitive, isCtrlPressed, isDisplayed, isHidden, isOptional, isRequired, isRequiredSupported, isShiftPressed, isSubmittableByEnter, isValid, notifyAttributeChangeListeners, removeAttribute, removeChild, removeHtmlAttributeChangeListener, setAttributeNode, setAttributeNS, setOwningForm, setRequired, type, type, type, type, typeDone
-
Methods inherited from class org.htmlunit.html.DomElement
blur, click, click, click, click, dblClick, dblClick, doClickFireChangeEvent, doClickFireClickEvent, fireEvent, fireEvent, focus, getAttribute, getAttributeDirect, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getChildElementCount, getChildElements, getElementsByTagName, getElementsByTagNameNS, getFirstElementChild, getId, getLastElementChild, getNodeType, getSchemaTypeInfo, getStyleElement, getStyleElementCaseInSensitive, getStyleMap, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isDisabledElementAndDisabled, isEmptyXmlTagExpanded, isMouseOver, matches, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseUp, preventDefault, printXml, propagateClickStateUpdateToParent, removeAttributeNode, removeAttributeNS, removeFocus, removeStyleAttribute, replaceStyleAttribute, rightClick, rightClick, setAttribute, setAttributeNodeNS, setAttributeNS, setDefaults, setId, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInnerHtml, setNodeValue, toString, writeStyleToElement
-
Methods inherited from class org.htmlunit.html.DomNamespaceNode
getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, processImportNode, setPrefix
-
Methods inherited from class org.htmlunit.html.DomNode
addCharacterDataChangeListener, addDomChangeListener, appendChild, asNormalizedText, asXml, closest, compareDocumentPosition, fireCharacterDataChanged, fireNodeAdded, fireNodeDeleted, getAncestors, getBaseURI, getByXPath, getByXPath, getChildNodes, getChildren, getDescendants, getDomElementDescendants, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstByXPath, getFirstChild, getHtmlElementDescendants, getHtmlPageOrNull, getIndex, getLastChild, getNextElementSibling, getNextSibling, getNodeValue, getOwnerDocument, getPage, getParentNode, getPreviousElementSibling, getPreviousSibling, getReadyState, getScriptableObject, getSelectorList, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, getVisibleText, hasChildNodes, hasFeature, insertBefore, isAncestorOf, isAncestorOfAny, isAttachedToPage, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, mayBeDisplayed, normalize, notifyIncorrectness, onAddedToDocumentFragment, onAddedToPage, onAllChildrenAddedToPage, parseHtmlSnippet, printChildrenAsXml, querySelector, querySelectorAll, quietlyRemoveAndMoveChildrenTo, remove, removeAllChildren, removeCharacterDataChangeListener, removeChild, removeDomChangeListener, replace, replaceChild, setEndLocation, setParentNode, setReadyState, setScriptableObject, setStartLocation, 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, setPrefix, setTextContent, setUserData
-
-
-
-
Field Detail
-
TAG_NAME
public static final java.lang.String TAG_NAME
The HTML tag represented by this element.- See Also:
- Constant Field Values
-
-
Method Detail
-
isSelected
public boolean isSelected()
Returnstrue
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)
-
setSelectedFromJavaScript
public void setSelectedFromJavaScript(boolean selected)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
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
-
insertBefore
public void insertBefore(DomNode newNode)
Inserts the specified node as 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 classDomNode
- Parameters:
newNode
- the new node to insert
-
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 java.lang.String getSelectedAttribute()
Returns the value of the attributeselected
. 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()
Returnstrue
if the disabled attribute is set for this element. Note that this method always returnsfalse
when emulating IE, because IE does not allow individual options to be disabled.- Specified by:
isDisabled
in interfaceDisabledElement
- Returns:
true
if the disabled attribute is set for this element (alwaysfalse
when emulating IE)
-
getDisabledAttribute
public final java.lang.String getDisabledAttribute()
Returns the value of the attributedisabled
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Specified by:
getDisabledAttribute
in interfaceDisabledElement
- Returns:
- the value of the attribute
disabled
or an empty string if that attribute isn't defined
-
getLabelAttribute
public final java.lang.String getLabelAttribute()
Returns the value of the attributelabel
. 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(java.lang.String newLabel)
Sets the value of the attributelabel
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Parameters:
newLabel
- the value of the attributelabel
-
getValueAttribute
public final java.lang.String getValueAttribute()
Returns the value of the attributevalue
. 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(java.lang.String newValue)
Sets the value of the attributevalue
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Parameters:
newValue
- the value of the attributevalue
-
mouseDown
public Page mouseDown(boolean shiftKey, boolean ctrlKey, boolean altKey, int button)
Selects the option if it's not already selected. Simulates clicking the mouse on this element, returning the page which this element's window contains after the mouse click. The returned page may or may not be the same as the original page, depending on JavaScript event handlers, etc.- Overrides:
mouseDown
in classDomElement
- Parameters:
shiftKey
-true
if SHIFT is pressed during the mouse clickctrlKey
-true
if CTRL is pressed during the mouse clickaltKey
-true
if ALT is pressed during the mouse clickbutton
- the button code, must beMouseEvent.BUTTON_LEFT
,MouseEvent.BUTTON_MIDDLE
orMouseEvent.BUTTON_RIGHT
- Returns:
- the page which this element's window contains after the mouse click
-
mouseUp
public Page mouseUp(boolean shiftKey, boolean ctrlKey, boolean altKey, int button)
Selects the option if it's not already selected. Simulates releasing the mouse click on this element, returning the page which this element's window contains after the mouse click release. The returned page may or may not be the same as the original page, depending on JavaScript event handlers, etc.- Overrides:
mouseUp
in classDomElement
- Parameters:
shiftKey
-true
if SHIFT is pressed during the mouse click releasectrlKey
-true
if CTRL is pressed during the mouse click releasealtKey
-true
if ALT is pressed during the mouse click releasebutton
- the button code, must beMouseEvent.BUTTON_LEFT
,MouseEvent.BUTTON_MIDDLE
orMouseEvent.BUTTON_RIGHT
- Returns:
- the page which this element's window contains after the mouse click release
-
click
public <P extends Page> P click(org.htmlunit.javascript.host.event.Event event, boolean shiftKey, boolean ctrlKey, boolean altKey, boolean ignoreVisibility) throws java.io.IOException
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Simulates clicking on this element, returning the page in the window that has the focus after the element has been clicked. Note that the returned page may or may not be the same as the original page, depending on the type of element being clicked, the presence of JavaScript action listeners, etc.- Overrides:
click
in classDomElement
- Type Parameters:
P
- the page type- Parameters:
event
- the click event usedshiftKey
-true
if SHIFT is pressed during the clickctrlKey
-true
if CTRL is pressed during the clickaltKey
-true
if ALT is pressed during the clickignoreVisibility
- whether to ignore visibility or not- Returns:
- the page contained in the current window as returned by
WebClient.getCurrentWindow()
- Throws:
java.io.IOException
- if an IO error occurs
-
doClickStateUpdate
protected boolean doClickStateUpdate(boolean shiftKey, boolean ctrlKey) throws java.io.IOException
Selects the option if it's not already selected. This method implements the control state update part of the click action.The default implementation only calls doClickStateUpdate on parent's DomElement (if any). Subclasses requiring different behavior (like
HtmlSubmitInput
) will override this method.- Overrides:
doClickStateUpdate
in classDomElement
- Parameters:
shiftKey
-true
if SHIFT is pressedctrlKey
-true
if CTRL is pressed- Returns:
- true if doClickFireEvent method has to be called later on (to signal, that the value was changed)
- Throws:
java.io.IOException
- if an IO error occurs
-
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 classDomElement
- Returns:
- the event target element.
-
isStateUpdateFirst
protected boolean isStateUpdateFirst()
Returnstrue
if state updates should be done before onclick event handling. This method returnsfalse
by default, and is expected to be overridden to returntrue
by derived classes likeHtmlCheckBoxInput
.- Overrides:
isStateUpdateFirst
in classDomElement
- Returns:
true
if state updates should be done before onclick event handling
-
printOpeningTagContentAsXml
protected void printOpeningTagContentAsXml(java.io.PrintWriter printWriter)
Prints the content between "<" and ">" (or "/>") in the output of the tag name and its attributes in XML format.- Overrides:
printOpeningTagContentAsXml
in classDomElement
- Parameters:
printWriter
- the writer to print in
-
setText
public void setText(java.lang.String text)
Sets the text for this HtmlOption.- Parameters:
text
- the text
-
getText
public java.lang.String getText()
Gets the text.- Returns:
- the text of this option.
-
mouseOver
public Page mouseOver(boolean shiftKey, boolean ctrlKey, boolean altKey, int button)
Simulates moving the mouse over this element, returning the page which this element's window contains after the mouse move. The returned page may or may not be the same as the original page, depending on JavaScript event handlers, etc.- Overrides:
mouseOver
in classDomElement
- Parameters:
shiftKey
-true
if SHIFT is pressed during the mouse movectrlKey
-true
if CTRL is pressed during the mouse movealtKey
-true
if ALT is pressed during the mouse movebutton
- the button code, must beMouseEvent.BUTTON_LEFT
,MouseEvent.BUTTON_MIDDLE
orMouseEvent.BUTTON_RIGHT
- Returns:
- the page which this element's window contains after the mouse move
-
getDefaultStyleDisplay
public HtmlElement.DisplayStyle getDefaultStyleDisplay()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.- Overrides:
getDefaultStyleDisplay
in classHtmlElement
- Returns:
- the default display style
-
handles
public boolean handles(org.htmlunit.javascript.host.event.Event event)
Indicates if the provided event can be applied to this node. Overwrite this.- Overrides:
handles
in classHtmlElement
- Parameters:
event
- the event- Returns:
false
if the event can't be applied
-
basicRemove
protected void basicRemove()
Cuts off all relationships this node has with siblings and parents.- Overrides:
basicRemove
in classDomNode
-
-