Package com.meterware.httpunit
Class FormControl
- java.lang.Object
-
- com.meterware.httpunit.FormControl
-
- All Implemented Interfaces:
HTMLElement
,ScriptingEventHandler
- Direct Known Subclasses:
Button
,RadioButtonFormControl
,RadioGroupFormControl
public abstract class FormControl extends java.lang.Object
Represents a control in an HTML form.- Author:
- Russell Gold
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
FormControl.Scriptable
implementation of Scriptable input elements
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BUTTON_TYPE
static java.lang.String
CHECKBOX_TYPE
static java.lang.String
FILE_TYPE
static java.lang.String
HIDDEN_TYPE
static java.lang.String
IMAGE_BUTTON_TYPE
static java.lang.String
MULTIPLE_TYPE
static java.lang.String
PASSWORD_TYPE
static java.lang.String
RADIO_BUTTON_TYPE
static java.lang.String
RESET_BUTTON_TYPE
static java.lang.String
SINGLE_TYPE
static java.lang.String
SUBMIT_BUTTON_TYPE
static java.lang.String
TEXT_TYPE
static java.lang.String
TEXTAREA_TYPE
static java.lang.String
UNDEFINED_TYPE
-
Constructor Summary
Constructors Modifier Constructor Description protected
FormControl(WebForm form, com.meterware.httpunit.dom.HTMLControl control)
initialize the given form control from a Webform and a HTMLControl
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected abstract void
addValues(com.meterware.httpunit.protocol.ParameterProcessor processor, java.lang.String characterSet)
protected void
claimUniqueValue(java.util.List values)
Sets this control to the next compatible value from the list, removing it from the list.protected void
claimValueIsRequired(java.util.List values, java.lang.String value)
Removes the specified required value from the list of values, throwing an exception if it is missing.boolean
doEvent(java.lang.String eventScript)
Deprecated.since 1.7 - use doEventScript insteadboolean
doEventScript(java.lang.String eventScript)
optional do the event if it's definedprotected boolean
doOnChangeEvent()
Performs the 'onchange' event defined for this control.protected boolean
doOnClickEvent()
Performs the 'onClick' event defined for this control.protected boolean
doOnMouseDownEvent()
Performs the 'onMouseDown' event defined for this control.protected boolean
doOnMouseUpEvent()
Performs the 'onMouseUp' event defined for this control.protected java.lang.String
emptyIfNull(java.lang.String value)
java.lang.String
getAttribute(java.lang.String name)
get the Attribute with the given name - by delegating to NodeUtilsprotected java.lang.String
getAttribute(java.lang.String name, java.lang.String defaultValue)
java.lang.String
getClassName()
Returns the class associated with this element.protected java.lang.String[]
getDisplayedOptions()
Returns the list of values displayed by this control, if any.protected WebForm
getForm()
java.lang.String
getID()
Returns the ID associated with this element.java.lang.String
getName()
Returns the name associated with this element.org.w3c.dom.Node
getNode()
Returns the DOM node underlying this element.java.lang.String[]
getOptionValues()
Returns the values permitted in this control.ScriptableDelegate
getParentDelegate()
Returns the scriptable delegate which can provide the scriptable delegate for this element.ScriptingHandler
getScriptingHandler()
Returns a scriptable object which can act as a proxy for this control.java.lang.String
getTagName()
Returns the tag name of this node.java.lang.String
getText()
Returns the text value of this block.java.lang.String
getTitle()
Returns the title associated with this element.abstract java.lang.String
getType()
Return the type of the control, as seen from JavaScript.protected java.lang.String
getValueAttribute()
Returns the value of this control in the form.protected abstract java.lang.String[]
getValues()
Returns the current value(s) associated with this control.boolean
handleEvent(java.lang.String eventName)
handle the event with the given name by getting the attribute and then executing the eventScript for itboolean
isDisabled()
Returns true if this control is disabled, meaning that it will not send a value to the server as part of a request.boolean
isHidden()
Returns true if this control is hidden.protected boolean
isMultiValued()
Returns true if a single control can have multiple values.protected boolean
isReadOnly()
Returns true if this control is read-only.boolean
isSupportedAttribute(java.lang.String name)
Returns true if this element may have an attribute with the specified name.ScriptableDelegate
newScriptable()
Creates and returns a scriptable object for this control.void
removeAttribute(java.lang.String name)
remove the Attribute with the given name - by delegating to NodeUtilsprotected void
reset()
Resets this control to its initial value.protected void
sendOnChangeEvent()
Deprecated.since 1.7 use doOnChangeEvent insteadprotected void
sendOnClickEvent()
Deprecated.since 1.7 use doOnClickEvent insteadprotected void
sendOnMouseDownEvent()
Deprecated.since 1.7 use doOnMouseDownEvent insteadprotected void
sendOnMouseUpEvent()
Deprecated.since 1.7 use doOnMouseUpEvent insteadvoid
setAttribute(java.lang.String name, java.lang.Object value)
set the Attribute with the given name - by delegating to NodeUtilsvoid
setState(boolean state)
Sets the state of this boolean control.protected void
setValueAttribute(java.lang.String value)
Sets the value of this control in the form.protected void
supportAttribute(java.lang.String name)
void
toggle()
Toggles the value of this control.
-
-
-
Field Detail
-
UNDEFINED_TYPE
public static final java.lang.String UNDEFINED_TYPE
- See Also:
- Constant Field Values
-
BUTTON_TYPE
public static final java.lang.String BUTTON_TYPE
- See Also:
- Constant Field Values
-
RESET_BUTTON_TYPE
public static final java.lang.String RESET_BUTTON_TYPE
- See Also:
- Constant Field Values
-
SUBMIT_BUTTON_TYPE
public static final java.lang.String SUBMIT_BUTTON_TYPE
- See Also:
- Constant Field Values
-
IMAGE_BUTTON_TYPE
public static final java.lang.String IMAGE_BUTTON_TYPE
- See Also:
- Constant Field Values
-
RADIO_BUTTON_TYPE
public static final java.lang.String RADIO_BUTTON_TYPE
- See Also:
- Constant Field Values
-
CHECKBOX_TYPE
public static final java.lang.String CHECKBOX_TYPE
- See Also:
- Constant Field Values
-
TEXT_TYPE
public static final java.lang.String TEXT_TYPE
- See Also:
- Constant Field Values
-
PASSWORD_TYPE
public static final java.lang.String PASSWORD_TYPE
- See Also:
- Constant Field Values
-
HIDDEN_TYPE
public static final java.lang.String HIDDEN_TYPE
- See Also:
- Constant Field Values
-
TEXTAREA_TYPE
public static final java.lang.String TEXTAREA_TYPE
- See Also:
- Constant Field Values
-
FILE_TYPE
public static final java.lang.String FILE_TYPE
- See Also:
- Constant Field Values
-
SINGLE_TYPE
public static final java.lang.String SINGLE_TYPE
- See Also:
- Constant Field Values
-
MULTIPLE_TYPE
public static final java.lang.String MULTIPLE_TYPE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FormControl
protected FormControl(WebForm form, com.meterware.httpunit.dom.HTMLControl control)
initialize the given form control from a Webform and a HTMLControl- Parameters:
form
-control
-
-
-
Method Detail
-
getType
public abstract java.lang.String getType()
Return the type of the control, as seen from JavaScript.
-
getValues
protected abstract java.lang.String[] getValues()
Returns the current value(s) associated with this control. These values will be transmitted to the server if the control is 'successful'.
-
getForm
protected final WebForm getForm()
-
getParentDelegate
public ScriptableDelegate getParentDelegate()
Description copied from interface:HTMLElement
Returns the scriptable delegate which can provide the scriptable delegate for this element.
-
getOptionValues
public java.lang.String[] getOptionValues()
Returns the values permitted in this control. Does not apply to text or file controls.
-
getDisplayedOptions
protected java.lang.String[] getDisplayedOptions()
Returns the list of values displayed by this control, if any.
-
isReadOnly
protected boolean isReadOnly()
Returns true if this control is read-only.
-
isHidden
public boolean isHidden()
Returns true if this control is hidden.
-
isDisabled
public boolean isDisabled()
Returns true if this control is disabled, meaning that it will not send a value to the server as part of a request.
-
isMultiValued
protected boolean isMultiValued()
Returns true if a single control can have multiple values.
-
addValues
protected abstract void addValues(com.meterware.httpunit.protocol.ParameterProcessor processor, java.lang.String characterSet) throws java.io.IOException
- Throws:
java.io.IOException
-
claimUniqueValue
protected void claimUniqueValue(java.util.List values)
Sets this control to the next compatible value from the list, removing it from the list.
-
reset
protected void reset()
Resets this control to its initial value.
-
toggle
public void toggle()
Toggles the value of this control.
-
setState
public void setState(boolean state)
Sets the state of this boolean control.
-
sendOnChangeEvent
protected void sendOnChangeEvent()
Deprecated.since 1.7 use doOnChangeEvent insteadPerforms the 'onChange' event defined for this control.
-
doOnChangeEvent
protected boolean doOnChangeEvent()
Performs the 'onchange' event defined for this control.
-
sendOnClickEvent
protected void sendOnClickEvent()
Deprecated.since 1.7 use doOnClickEvent insteadPerforms the 'onClick' event defined for this control.
-
doOnClickEvent
protected boolean doOnClickEvent()
Performs the 'onClick' event defined for this control.
-
sendOnMouseUpEvent
protected void sendOnMouseUpEvent()
Deprecated.since 1.7 use doOnMouseUpEvent insteadPerforms the 'onMouseUp' event defined for this control.
-
doOnMouseUpEvent
protected boolean doOnMouseUpEvent()
Performs the 'onMouseUp' event defined for this control.
-
sendOnMouseDownEvent
protected void sendOnMouseDownEvent()
Deprecated.since 1.7 use doOnMouseDownEvent insteadPerforms the 'onMouseDown' event defined for this control.
-
doOnMouseDownEvent
protected boolean doOnMouseDownEvent()
Performs the 'onMouseDown' event defined for this control.
-
newScriptable
public ScriptableDelegate newScriptable()
Creates and returns a scriptable object for this control. Subclasses should override this if they use a different implementation of Scriptable.- Specified by:
newScriptable
in interfaceHTMLElement
-
getValueAttribute
protected java.lang.String getValueAttribute()
Returns the value of this control in the form. If no value is specified, defaults to the empty string.
-
setValueAttribute
protected void setValueAttribute(java.lang.String value)
Sets the value of this control in the form.
-
claimValueIsRequired
protected final void claimValueIsRequired(java.util.List values, java.lang.String value)
Removes the specified required value from the list of values, throwing an exception if it is missing.
-
emptyIfNull
protected java.lang.String emptyIfNull(java.lang.String value)
-
getID
public java.lang.String getID()
Description copied from interface:HTMLElement
Returns the ID associated with this element. IDs are unique throughout the HTML document.- Specified by:
getID
in interfaceHTMLElement
-
getClassName
public java.lang.String getClassName()
Description copied from interface:HTMLElement
Returns the class associated with this element.- Specified by:
getClassName
in interfaceHTMLElement
-
getTitle
public java.lang.String getTitle()
Description copied from interface:HTMLElement
Returns the title associated with this element.- Specified by:
getTitle
in interfaceHTMLElement
-
getName
public java.lang.String getName()
Description copied from interface:HTMLElement
Returns the name associated with this element.- Specified by:
getName
in interfaceHTMLElement
-
getScriptingHandler
public ScriptingHandler getScriptingHandler()
Returns a scriptable object which can act as a proxy for this control.- Specified by:
getScriptingHandler
in interfaceHTMLElement
-
doEvent
public boolean doEvent(java.lang.String eventScript)
Deprecated.since 1.7 - use doEventScript insteadhandle the event that has the given script attached by compiling the eventScript as a function and executing it- Specified by:
doEvent
in interfaceScriptingEventHandler
- Parameters:
eventScript
- - the script to use- Returns:
- true if the script is empty or the result of the script
-
doEventScript
public boolean doEventScript(java.lang.String eventScript)
optional do the event if it's defined- Specified by:
doEventScript
in interfaceScriptingEventHandler
- Returns:
- true if the script is empty or the result of the script
-
handleEvent
public boolean handleEvent(java.lang.String eventName)
Description copied from interface:ScriptingEventHandler
handle the event with the given name by getting the attribute and then executing the eventScript for it- Specified by:
handleEvent
in interfaceScriptingEventHandler
- Returns:
- the result of doEventScript
-
getText
public java.lang.String getText()
Returns the text value of this block.- Specified by:
getText
in interfaceHTMLElement
-
getTagName
public java.lang.String getTagName()
Description copied from interface:HTMLElement
Returns the tag name of this node.- Specified by:
getTagName
in interfaceHTMLElement
-
getAttribute
public java.lang.String getAttribute(java.lang.String name)
get the Attribute with the given name - by delegating to NodeUtils- Specified by:
getAttribute
in interfaceHTMLElement
- Parameters:
name
- - the name of the attribute to get- Returns:
- the attribute
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.Object value)
set the Attribute with the given name - by delegating to NodeUtils- Specified by:
setAttribute
in interfaceHTMLElement
- Parameters:
name
- - the name of the attribute to setvalue
- - the value to set
-
removeAttribute
public void removeAttribute(java.lang.String name)
remove the Attribute with the given name - by delegating to NodeUtils- Specified by:
removeAttribute
in interfaceHTMLElement
- Parameters:
name
- - the name of the attribute to remove
-
isSupportedAttribute
public boolean isSupportedAttribute(java.lang.String name)
Description copied from interface:HTMLElement
Returns true if this element may have an attribute with the specified name.- Specified by:
isSupportedAttribute
in interfaceHTMLElement
-
getAttribute
protected java.lang.String getAttribute(java.lang.String name, java.lang.String defaultValue)
-
getNode
public org.w3c.dom.Node getNode()
Description copied from interface:HTMLElement
Returns the DOM node underlying this element.- Specified by:
getNode
in interfaceHTMLElement
-
supportAttribute
protected void supportAttribute(java.lang.String name)
-
-