Package org.htmlunit
Class WebWindowImpl
- java.lang.Object
-
- org.htmlunit.WebWindowImpl
-
- All Implemented Interfaces:
java.io.Serializable
,WebWindow
- Direct Known Subclasses:
DialogWindow
,FrameWindow
,TopLevelWindow
public abstract class WebWindowImpl extends java.lang.Object implements WebWindow
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Base class for common WebWindow functionality. While public, this class is not exposed in any other places of the API. Internally we can cast to this class when we need access to functionality that is not present inWebWindow
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<WebWindowImpl>
childWindows_
private boolean
closed_
private Page
enclosedPage_
private History
history_
private int
innerHeight_
private int
innerWidth_
private JavaScriptJobManager
jobManager_
private static org.apache.commons.logging.Log
LOG
private java.lang.String
name_
private int
outerHeight_
private int
outerWidth_
private Screen
screen_
private HtmlUnitScriptable
scriptObject_
private WebClient
webClient_
-
Constructor Summary
Constructors Constructor Description WebWindowImpl(WebClient webClient)
Creates a window and associates it with the client.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addChildWindow(WebWindowImpl child)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.protected void
destroyChildren()
Destroy our children.ComputedCssStyleDeclaration
getComputedStyle(DomElement element, java.lang.String pseudoElement)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns computed style of the element.Page
getEnclosedPage()
Returns the currently loaded page or null if no page has been loaded.History
getHistory()
Returns this window's navigation history.int
getInnerHeight()
Returns the height (in pixels) of the browser window viewport including, if rendered, the horizontal scrollbar.int
getInnerWidth()
Returns the width (in pixels) of the browser window viewport including, if rendered, the vertical scrollbar.JavaScriptJobManager
getJobManager()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the job manager for this window.java.lang.String
getName()
Returns the name of this window.int
getOuterHeight()
Returns the height in pixels of the whole browser window.int
getOuterWidth()
Returns the width of the outside of the browser window.Screen
getScreen()
<T> T
getScriptableObject()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the JavaScript object that corresponds to this element.WebClient
getWebClient()
Returns the web client that "owns" this window.boolean
isClosed()
Indicates if this window is closed.protected abstract boolean
isJavaScriptInitializationNeeded(Page page)
Returnstrue
if this window needs JavaScript initialization to occur when the enclosed page is set.protected void
performRegistration()
Registers the window with the client.private void
readObject(java.io.ObjectInputStream ois)
void
removeChildWindow(WebWindowImpl window)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.protected void
setClosed()
Sets this window as closed.void
setEnclosedPage(Page page)
Sets the currently loaded page.void
setInnerHeight(int innerHeight)
Sets the height (in pixels) of the browser window viewport including, if rendered, the horizontal scrollbar.void
setInnerWidth(int innerWidth)
Sets the width (in pixels) of the browser window viewport including, if rendered, the vertical scrollbar.void
setJobManager(JavaScriptJobManager jobManager)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.void
setName(java.lang.String name)
Sets the name of this window.void
setOuterHeight(int outerHeight)
Sets the height in pixels of the whole browser window.void
setOuterWidth(int outerWidth)
Sets the width of the outside of the browser window.<T extends HtmlUnitScriptable>
voidsetScriptableObject(T scriptObject)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Sets the JavaScript object that corresponds to this element.private void
writeObject(java.io.ObjectOutputStream oos)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.htmlunit.WebWindow
getParentWindow, getTopWindow
-
-
-
-
Field Detail
-
LOG
private static final org.apache.commons.logging.Log LOG
-
webClient_
private final WebClient webClient_
-
screen_
private final Screen screen_
-
enclosedPage_
private Page enclosedPage_
-
scriptObject_
private transient HtmlUnitScriptable scriptObject_
-
jobManager_
private JavaScriptJobManager jobManager_
-
childWindows_
private final java.util.List<WebWindowImpl> childWindows_
-
name_
private java.lang.String name_
-
history_
private final History history_
-
closed_
private boolean closed_
-
innerHeight_
private int innerHeight_
-
outerHeight_
private int outerHeight_
-
innerWidth_
private int innerWidth_
-
outerWidth_
private int outerWidth_
-
-
Constructor Detail
-
WebWindowImpl
public WebWindowImpl(WebClient webClient)
Creates a window and associates it with the client.- Parameters:
webClient
- the web client that "owns" this window
-
-
Method Detail
-
performRegistration
protected void performRegistration()
Registers the window with the client.
-
getWebClient
public WebClient getWebClient()
Returns the web client that "owns" this window.- Specified by:
getWebClient
in interfaceWebWindow
- Returns:
- the web client or null if this window has been closed
-
getScreen
public Screen getScreen()
-
getEnclosedPage
public Page getEnclosedPage()
Returns the currently loaded page or null if no page has been loaded.- Specified by:
getEnclosedPage
in interfaceWebWindow
- Returns:
- the currently loaded page or null if no page has been loaded
-
setEnclosedPage
public void setEnclosedPage(Page page)
Sets the currently loaded page.- Specified by:
setEnclosedPage
in interfaceWebWindow
- Parameters:
page
- the new page or null if there is no page (ie empty window)
-
isJavaScriptInitializationNeeded
protected abstract boolean isJavaScriptInitializationNeeded(Page page)
Returnstrue
if this window needs JavaScript initialization to occur when the enclosed page is set.- Parameters:
page
- the page that will become the enclosing page- Returns:
true
if this window needs JavaScript initialization to occur when the enclosed page is set
-
setScriptableObject
public <T extends HtmlUnitScriptable> void setScriptableObject(T scriptObject)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Sets the JavaScript object that corresponds to this element. This is not guaranteed to be set even if there is a JavaScript object for this HTML element.- Specified by:
setScriptableObject
in interfaceWebWindow
- Type Parameters:
T
- the object type- Parameters:
scriptObject
- the JavaScript object
-
getScriptableObject
public <T> T getScriptableObject()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the JavaScript object that corresponds to this element.- Specified by:
getScriptableObject
in interfaceWebWindow
- Type Parameters:
T
- the object type- Returns:
- the JavaScript object that corresponds to this element
-
getJobManager
public JavaScriptJobManager getJobManager()
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the job manager for this window.- Specified by:
getJobManager
in interfaceWebWindow
- Returns:
- the job manager for this window
-
setJobManager
public void setJobManager(JavaScriptJobManager jobManager)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Sets the JavaScript job manager for this window.
- Parameters:
jobManager
- the JavaScript job manager to use
-
addChildWindow
public void addChildWindow(WebWindowImpl child)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Adds a child to this window, for shutdown purposes.
- Parameters:
child
- the child window to associate with this window
-
destroyChildren
protected void destroyChildren()
Destroy our children.
-
removeChildWindow
public void removeChildWindow(WebWindowImpl window)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Destroy the child window.- Parameters:
window
- the child to destroy
-
getName
public java.lang.String getName()
Returns the name of this window.
-
setName
public void setName(java.lang.String name)
Sets the name of this window.
-
getHistory
public History getHistory()
Returns this window's navigation history.- Specified by:
getHistory
in interfaceWebWindow
- Returns:
- this window's navigation history
-
isClosed
public boolean isClosed()
Indicates if this window is closed. No action should be performed on a closed window.
-
setClosed
protected void setClosed()
Sets this window as closed.
-
getInnerWidth
public int getInnerWidth()
Returns the width (in pixels) of the browser window viewport including, if rendered, the vertical scrollbar.- Specified by:
getInnerWidth
in interfaceWebWindow
- Returns:
- the inner width.
-
setInnerWidth
public void setInnerWidth(int innerWidth)
Sets the width (in pixels) of the browser window viewport including, if rendered, the vertical scrollbar.- Specified by:
setInnerWidth
in interfaceWebWindow
- Parameters:
innerWidth
- the inner width
-
getOuterWidth
public int getOuterWidth()
Returns the width of the outside of the browser window. It represents the width of the whole browser window including sidebar (if expanded), window chrome and window resizing borders/handles.- Specified by:
getOuterWidth
in interfaceWebWindow
- Returns:
- the outer width
-
setOuterWidth
public void setOuterWidth(int outerWidth)
Sets the width of the outside of the browser window. It represents the width of the whole browser window including sidebar (if expanded), window chrome and window resizing borders/handles.- Specified by:
setOuterWidth
in interfaceWebWindow
- Parameters:
outerWidth
- the outer width
-
getInnerHeight
public int getInnerHeight()
Returns the height (in pixels) of the browser window viewport including, if rendered, the horizontal scrollbar.- Specified by:
getInnerHeight
in interfaceWebWindow
- Returns:
- a inner height
-
setInnerHeight
public void setInnerHeight(int innerHeight)
Sets the height (in pixels) of the browser window viewport including, if rendered, the horizontal scrollbar.- Specified by:
setInnerHeight
in interfaceWebWindow
- Parameters:
innerHeight
- the inner height
-
getOuterHeight
public int getOuterHeight()
Returns the height in pixels of the whole browser window. It represents the height of the whole browser window including sidebar (if expanded), window chrome and window resizing borders/handles.- Specified by:
getOuterHeight
in interfaceWebWindow
- Returns:
- the outer height
-
setOuterHeight
public void setOuterHeight(int outerHeight)
Sets the height in pixels of the whole browser window. It represents the height of the whole browser window including sidebar (if expanded), window chrome and window resizing borders/handles.- Specified by:
setOuterHeight
in interfaceWebWindow
- Parameters:
outerHeight
- the outer height
-
writeObject
private void writeObject(java.io.ObjectOutputStream oos) throws java.io.IOException
- Throws:
java.io.IOException
-
readObject
private void readObject(java.io.ObjectInputStream ois) throws java.lang.ClassNotFoundException, java.io.IOException
- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
getComputedStyle
public ComputedCssStyleDeclaration getComputedStyle(DomElement element, java.lang.String pseudoElement)
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns computed style of the element. Computed style represents the final computed values of all CSS properties for the element. This method's return value is of the same type as that ofelement.style
, but the value returned by this method is read-only.- Specified by:
getComputedStyle
in interfaceWebWindow
- Parameters:
element
- the elementpseudoElement
- a string specifying the pseudo-element to match (may benull
); e.g. ':before'- Returns:
- the computed style
-
-