Class HtmlImage
- All Implemented Interfaces:
Serializable, Cloneable, Element, Node
-
Nested Class Summary
Nested classes/interfaces inherited from class HtmlElement
HtmlElement.DisplayStyleNested classes/interfaces inherited from class DomElement
DomElement.ChildElementsIteratorNested classes/interfaces inherited from class DomNode
DomNode.ChildIterator, DomNode.DescendantElementsIterator<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate booleanprivate intprivate ImageDataprivate WebResponseprivate booleanprivate intprivate intprivate static final org.apache.commons.logging.Logprivate booleanprivate final Stringstatic final StringThe HTML tag represented by this element.static final StringAnother HTML tag represented by this element.private intFields inherited from class HtmlElement
ATTRIBUTE_CHECKED, ATTRIBUTE_REQUIRED, TAB_INDEX_OUT_OF_BOUNDSFields inherited from class DomElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTEFields inherited from class DomNode
PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZEDFields inherited from interface 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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclick()Simulates clicking this element at the position(0, 0).click(int x, int y) Simulates clicking this element at the specified position.private voidprivate voidprotected booleandoClickStateUpdate(boolean shiftKey, boolean ctrlKey) Performs the click action on the enclosing A tag (if any).voiddoOnLoad()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.private voidDownloads the image contained by this image element.INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Fires the event on the element.final StringReturns the value of the attributealign.final StringReturns the value of the attributealt.final StringReturns the value of the attributeborder.INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.intReturns the image's actual height (not the image'sheight attribute).final StringReturns the value of the attributeheight.intReturns the value same value as the js height property.final StringReturns the value of the attributehspace.final StringReturns the value of the attributeismap.final StringReturns the value of the attributelongdesc.final StringReturns the value of the attributename.Returns the original element qualified name, this is needed to differentiate betweenimgandimage.getSrc()Returns the value of thesrcvalue.final StringReturns the value of the attributesrc.final StringReturns the value of the attributeusemap.final StringReturns the value of the attributevspace.getWebResponse(boolean downloadIfNeeded) Returns theWebResponsefor the image contained by this image element.intgetWidth()Returns the image's actual width (not the image'swidth attribute).final StringReturns the value of the attributewidth.intReturns the value same value as the js width property.booleanbooleanReturnstrueif this node is displayed and can be visible to the user (ignoring screen size, scrolling limitations, color, font-size, or overlapping nodes).voidINTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Marks this frame as created by javascript.protected voidLifecycle method invoked whenever a node is added to a page.voidINTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.private voidvoidSaves this image as the specified file.protected voidsetAttributeNS(String namespaceURI, String qualifiedName, String value, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) Sets the value of the attribute specified by namespace and qualified name.private static StringunifyLocalName(String qualifiedName) booleanINTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns true if this frame was created by javascript.Methods inherited from class 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, handles, hasEventHandlers, isAltPressed, isAttributeCaseSensitive, isCtrlPressed, isHidden, isOptional, isRequired, isRequiredSupported, isShiftPressed, isSubmittableByEnter, isValid, notifyAttributeChangeListeners, removeAttribute, removeChild, removeHtmlAttributeChangeListener, setAttributeNode, setOwningForm, setRequired, type, type, type, type, typeDoneMethods inherited from class DomElement
blur, click, click, click, click, dblClick, dblClick, doClickFireChangeEvent, doClickFireClickEvent, fireEvent, focus, getAttribute, getAttributeDirect, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getChildElementCount, getChildElements, getElementsByTagName, getElementsByTagNameImpl, getElementsByTagNameNS, getEventTargetElement, getFirstElementChild, getId, getLastElementChild, getNodeType, getQualifiedName, getSchemaTypeInfo, getStyleElement, getStyleElementCaseInSensitive, getStyleMap, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isDisabledElementAndDisabled, isEmptyXmlTagExpanded, isMouseOver, isStateUpdateFirst, matches, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, preventDefault, printOpeningTagContentAsXml, printXml, propagateClickStateUpdateToParent, removeAttributeNode, removeAttributeNS, removeFocus, removeStyleAttribute, replaceStyleAttribute, rightClick, rightClick, setAttribute, setAttributeNodeNS, setAttributeNS, setDefaults, setId, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInnerHtml, setNodeValue, toString, writeStyleToElementMethods inherited from class DomNamespaceNode
getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, setPrefixMethods inherited from class DomNode
addCharacterDataChangeListener, addDomChangeListener, appendChild, asNormalizedText, asXml, basicRemove, 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, insertBefore, isAncestorOf, isAncestorOfAny, isAttachedToPage, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, mayBeDisplayed, normalize, notifyIncorrectness, onAddedToDocumentFragment, onAllChildrenAddedToPage, parseHtmlSnippet, printChildrenAsXml, querySelector, querySelectorAll, quietlyRemoveAndMoveChildrenTo, remove, removeAllChildren, removeCharacterDataChangeListener, removeChild, removeDomChangeListener, replace, replaceChild, setEndLocation, setParentNode, setReadyState, setScriptableObject, setStartLocation, setTextContent, setUserDataMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Node
appendChild, compareDocumentPosition, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getNamespaceURI, getNextSibling, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setPrefix, setTextContent, setUserData
-
Field Details
-
LOG
private static final org.apache.commons.logging.Log LOG -
TAG_NAME
-
TAG_NAME2
-
originalQualifiedName_
-
lastClickX_
private int lastClickX_ -
lastClickY_
private int lastClickY_ -
imageWebResponse_
-
imageData_
-
width_
private int width_ -
height_
private int height_ -
downloaded_
private boolean downloaded_ -
isComplete_
private boolean isComplete_ -
onloadProcessed_
private boolean onloadProcessed_ -
createdByJavascript_
private boolean createdByJavascript_
-
-
Constructor Details
-
HtmlImage
-
-
Method Details
-
unifyLocalName
-
onAddedToPage
protected void onAddedToPage()Lifecycle method invoked whenever a node is added to a page. Intended to be overridden by nodes which need to perform custom logic when they are added to a page. This method is recursive, so if you override it, please be sure to callsuper.onAddedToPage().- Overrides:
onAddedToPagein classDomNode
-
setAttributeNS
protected void setAttributeNS(String namespaceURI, String qualifiedName, String value, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) Sets the value of the attribute specified by namespace and qualified name.- Overrides:
setAttributeNSin classHtmlElement- Parameters:
namespaceURI- the URI that identifies an XML namespacequalifiedName- the qualified name (prefix:local) of the attributevalue- the value of the attributenotifyAttributeChangeListeners- to notify the associatedHtmlAttributeChangeListenersnotifyMutationObservers- to notifyMutationObservers or not
-
processImportNode
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.- Overrides:
processImportNodein classDomNamespaceNode- Parameters:
doc- the import target document- See Also:
-
doOnLoad
public void doOnLoad()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Executes this element's
onloadoronerrorhandler. This method downloads the image if either of these handlers are present (prior to invoking the resulting handler), because applications sometimes use images to send information to the server and use these handlers to get notified when the information has been received by the server.See here and here for the discussion which lead up to this method.
This method may be called multiple times, but will only attempt to execute the
onloadoronerrorhandler the first time it is invoked. -
getSrcAttribute
-
getSrc
-
getAltAttribute
-
getNameAttribute
-
getLongDescAttribute
-
getHeightAttribute
-
getWidthAttribute
-
getUseMapAttribute
-
getIsmapAttribute
-
getAlignAttribute
-
getBorderAttribute
-
getHspaceAttribute
-
getVspaceAttribute
-
getHeight
Returns the image's actual height (not the image's
height attribute).POTENTIAL PERFORMANCE KILLER - DOWNLOADS THE IMAGE - USE AT YOUR OWN RISK
If the image has not already been downloaded, this method triggers a download and caches the image.
- Returns:
- the image's actual height
- Throws:
IOException- if an error occurs while downloading or reading the image
-
getHeightOrDefault
public int getHeightOrDefault()Returns the value same value as the js height property.- Returns:
- the value of the
heightproperty
-
getWidth
Returns the image's actual width (not the image's
width attribute).POTENTIAL PERFORMANCE KILLER - DOWNLOADS THE IMAGE - USE AT YOUR OWN RISK
If the image has not already been downloaded, this method triggers a download and caches the image.
- Returns:
- the image's actual width
- Throws:
IOException- if an error occurs while downloading or reading the image
-
getWidthOrDefault
public int getWidthOrDefault()Returns the value same value as the js width property.- Returns:
- the value of the
widthproperty
-
getImageData
- Throws:
IOException
-
determineWidthAndHeight
- Throws:
IOException
-
closeImageData
- Throws:
IOException
-
getWebResponse
Returns the
WebResponsefor the image contained by this image element.POTENTIAL PERFORMANCE KILLER - DOWNLOADS THE IMAGE - USE AT YOUR OWN RISK
If the image has not already been downloaded and
downloadIfNeededistrue, this method triggers a download and caches the image.- Parameters:
downloadIfNeeded- whether or not the image should be downloaded (if it hasn't already been downloaded)- Returns:
nullif no download should be performed and one hasn't already been triggered; otherwise, the response received when performing a request for the image referenced by this element- Throws:
IOException- if an error occurs while downloading the image
-
downloadImageIfNeeded
Downloads the image contained by this image element.
POTENTIAL PERFORMANCE KILLER - DOWNLOADS THE IMAGE - USE AT YOUR OWN RISK
If the image has not already been downloaded, this method triggers a download and caches the image.
- Throws:
IOException- if an error occurs while downloading the image
-
readImageIfNeeded
- Throws:
IOException
-
click
Simulates clicking this element at the specified position. This only makes sense for an image map (currently only server side), where the position matters. This method returns the page contained by this image's window after the click, which may or may not be the same as the original page, depending on JavaScript event handlers, etc.- Parameters:
x- the x position of the clicky- the y position of the click- Returns:
- the page contained by this image's window after the click
- Throws:
IOException- if an IO error occurs
-
click
Simulates clicking this element at the position(0, 0). This method returns the page contained by this image's window after the click, which may or may not be the same as the original page, depending on JavaScript event handlers, etc.- Overrides:
clickin classDomElement- Returns:
- the page contained by this image's window after the click
- Throws:
IOException- if an IO error occurs
-
doClickStateUpdate
Performs the click action on the enclosing A tag (if any). 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:
doClickStateUpdatein classDomElement- Parameters:
shiftKey-trueif SHIFT is pressedctrlKey-trueif CTRL is pressed- Returns:
- true if doClickFireEvent method has to be called later on (to signal, that the value was changed)
- Throws:
IOException- if an IO error occurred
-
saveAs
Saves this image as the specified file.- Parameters:
file- the file to save to- Throws:
IOException- if an IO error occurs
-
getDefaultStyleDisplay
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.- Overrides:
getDefaultStyleDisplayin classHtmlElement- Returns:
- the default display style
-
isComplete
public boolean isComplete()- Returns:
- true if the image was successfully downloaded
-
isDisplayed
public boolean isDisplayed()Returns
trueif this node is displayed and can be visible to the user (ignoring screen size, scrolling limitations, color, font-size, or overlapping nodes).NOTE: If CSS is
Overwritten to support the hidden attribute (html5).disabled, this method does not take this element's style into consideration!- Overrides:
isDisplayedin classHtmlElement- Returns:
trueif the node is visible to the user,falseotherwise- See Also:
-
markAsCreatedByJavascript
public void markAsCreatedByJavascript()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Marks this frame as created by javascript. -
wasCreatedByJavascript
public boolean wasCreatedByJavascript()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns true if this frame was created by javascript.- Returns:
- true or false
-
getOriginalQualifiedName
Returns the original element qualified name, this is needed to differentiate betweenimgandimage.- Returns:
- the original element qualified name
-
getLocalName
- Specified by:
getLocalNamein interfaceNode- Overrides:
getLocalNamein classDomNamespaceNode
-
fireEvent
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Fires the event on the element. Nothing is done if JavaScript is disabled.- Overrides:
fireEventin classDomElement- Parameters:
event- the event to fire- Returns:
- the execution result, or
nullif nothing is executed
-