org.zkoss.zk.ui.impl
Class PageImpl

java.lang.Object
  extended by org.zkoss.zk.ui.impl.PageImpl
All Implemented Interfaces:
java.io.Serializable, IdSpace, Page, PageCtrl

public class PageImpl
extends java.lang.Object
implements Page, PageCtrl, java.io.Serializable

An implmentation of Page and PageCtrl. Refer to them for more details.

Note: though PageImpl is serializable, it is designed to work with Web container to enable the serialization of sessions. It is not suggested to serialize and desrialize it directly since many fields might be lost.

On the other hand, it is OK to serialize and deserialize Component.

Implementation Notes:
It is not thread-safe because it is protected by the spec: at most one thread can access a page and all its components at the same time.

Author:
tomyeh
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.zkoss.zk.ui.Page
APPLICATION_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE
 
Fields inherited from interface org.zkoss.zk.ui.sys.PageCtrl
ATTR_REDRAW_BY_INCLUDE
 
Constructor Summary
PageImpl(LanguageDefinition langdef, ComponentDefinitionMap compdefs, java.lang.String path, java.lang.String zslang)
          Constructs a page without page definition and richlet.
PageImpl(PageDefinition pgdef)
          Constructs a page by giving the page definition.
PageImpl(Richlet richlet, java.lang.String path)
          Constructs a page by specifying a richlet.
 
Method Summary
 void addDeferredZScript(Component parent, ZScript zscript)
          Adds a deferred zscript.
 boolean addEventListener(java.lang.String evtnm, EventListener listener)
          Adds an event listener to specified event for all components in this page.
 void addFellow(Component comp)
          Adds a fellow.
 void addFunctionMapper(org.zkoss.xel.FunctionMapper mapper)
          Adds the function mapper in addition to the current one.
 void addRoot(Component comp)
          Adds a root component to a page.
 boolean addVariableResolver(org.zkoss.xel.VariableResolver resolver)
          Adds a name resolver that will be used to resolve a variable by Page.getVariable(java.lang.String).
 boolean containsVariable(java.lang.String name)
          Returns whether the specified variable is defined.
 void destroy()
          Called when this page is about to be detroyed.
 java.lang.Object getAttribute(java.lang.String name)
          Returns the value of the specified attribute associated with this page.
 java.lang.Object getAttribute(java.lang.String name, int scope)
          Returns the value of the specified custom attribute in the specified scope.
 java.util.Map getAttributes()
          Returns all custom attributes associated with this page.
 java.util.Map getAttributes(int scope)
          Returns all custom attributes of the specified scope.
 java.lang.Boolean getCacheable()
          Returns if the client can cache the rendered result, or null to use the device default.
 ComponentDefinition getComponentDefinition(java.lang.Class cls, boolean recur)
          Returns the component definition of the specified class, or null if not found.
 ComponentDefinition getComponentDefinition(java.lang.String name, boolean recur)
          Returns the component definition of the specified name, or null if not found.
 ComponentDefinitionMap getComponentDefinitionMap()
          Returns the map of component definitions (never null).
 java.lang.String getContentType()
          Returns the content type, or null to use the device default.
 Component getDefaultParent()
          Returns the default parent, or null if no such parent.
 Desktop getDesktop()
          Returns the desktop that this page belongs to.
 java.lang.String getDocType()
          Returns the doc type (<!
 java.lang.Object getELVariable(java.lang.String name)
          Deprecated. As of release of 3.0.0, replaced with getXelVariable(java.lang.String).
 Component getFellow(java.lang.String compId)
          Returns a component of the specified ID in the same ID space.
 Component getFellowIfAny(java.lang.String compId)
          Returns a component of the specified ID in the same ID space, or null if not found.
 java.lang.String getFirstLine()
          Returns the first line to be generated to the output, or null if nothing to generate.
 org.zkoss.xel.FunctionMapper getFunctionMapper()
          Returns the function mapper for resolving XEL functions, or null if not available.
 java.lang.String getHeaders()
          Returns the header elements declared in this page (never null).
 java.lang.String getId()
          Returns ID which is unique in the request (never null).
 Interpreter getInterpreter(java.lang.String zslang)
          Returns the interpreter of the specified scripting language.
 LanguageDefinition getLanguageDefinition()
          Returns the language definition that this page belongs to (never null).
 java.util.Iterator getListenerIterator(java.lang.String evtnm)
          Returns an iterator for iterating listener for the specified event.
 java.util.Collection getLoadedInterpreters()
          Returns all loaded interpreters.
 Namespace getNamespace()
          Returns the namespace used to store variables belonging to the ID space of this page.
 Component getOwner()
          Returns the owner of this page, or null if it is not owned by any component.
 java.lang.String getRequestPath()
          Returns the request path of this page, or "" if not available.
 java.lang.String getRootAttributes()
          Returns the attributes of the root element declared in this page (never null).
 java.util.Collection getRoots()
          Returns a readonly list of the root components.
 java.lang.String getStyle()
          Returns the CSS style of this page, or empty if not specified.
 java.lang.String getTitle()
          Returns the title of the desktop this page belongs to (and evaluate it if it contains an expression).
 java.lang.String getUuid()
          Returns UUID (universal unique ID) which is unquie in the whole session.
 java.lang.Object getVariable(java.lang.String name)
          Returns the value of a variable defined in the namespace (Page.getNamespace()).
 java.lang.Object getXelVariable(java.lang.String name)
          Returns a variable that is visible to XEL expressions.
 java.lang.Class getZScriptClass(java.lang.String clsnm)
          Returns the class of the specified name by searching the thread class loader and the classes defined in the loaded interpreters.
 org.zkoss.xel.Function getZScriptFunction(Component comp, java.lang.String name, java.lang.Class[] argTypes)
          Returns the variable of the specified name by searching the logical scope of the namespace of the specified component for all the loaded interpreters.
 org.zkoss.xel.Function getZScriptFunction(Namespace ns, java.lang.String name, java.lang.Class[] argTypes)
          Returns the variable of the specified name by searching the logical scope of the specified namespace for all the loaded interpreters.
 org.zkoss.xel.Function getZScriptFunction(java.lang.String name, java.lang.Class[] argTypes)
          Returns the variable of the specified name by searching the loaded interpreters.
 java.lang.String getZScriptLanguage()
          Returns the default scripting language which is assumed when a zscript element doesn't specify any language.
 Method getZScriptMethod(Namespace ns, java.lang.String name, java.lang.Class[] argTypes)
          Deprecated. As of release 3.0.0, replaced by getZScriptFunction(String,Class[]).
 Method getZScriptMethod(java.lang.String name, java.lang.Class[] argTypes)
          Deprecated. As of release 3.0.0, replaced by getZScriptFunction(String,Class[]).
 java.lang.Object getZScriptVariable(Component comp, java.lang.String name)
          Returns the value of the variable of the specified name by searching the logical scope of the namespace of the specified component for all the loaded interpreters, if any.
 java.lang.Object getZScriptVariable(Namespace ns, java.lang.String name)
          Returns the value of the variable of the specified name by searching the logical scope of the specified namespace for all the loaded interpreters, if any.
 java.lang.Object getZScriptVariable(java.lang.String name)
          Returns the value of the variable of the specified name by searching the loaded interpreters, if any.
 boolean hasFellow(java.lang.String compId)
          Returns whether a fellow exists with the specified component ID.
protected  void init()
          Initialized the page when contructed or deserialized.
 void init(PageConfig config)
          Initializes this page by assigning the info provided by the specified PageConfig, and then adds it to a desktop (by use of Execution.getDesktop()).
 void interpret(java.lang.String zslang, java.lang.String script, Namespace ns)
          Interpret a script of the specified scripting language against the specified namespace.
 void invalidate()
          Invalidates this page to cause all components to redraw.
 boolean isListenerAvailable(java.lang.String evtnm)
          Returns whether the event listener is available.
 void moveRoot(Component comp, Component refRoot)
          Moves a root component before the reference component.
 void redraw(java.util.Collection responses, java.io.Writer out)
          Redraws the whole page into the specified output.
 java.lang.Object removeAttribute(java.lang.String name)
          Removes the specified attribute custom associated with the page.
 java.lang.Object removeAttribute(java.lang.String name, int scope)
          Removes the specified custom attribute in the specified scope.
 void removeComponents()
          Removes all components in this page.
 boolean removeEventListener(java.lang.String evtnm, EventListener listener)
          Removes an event listener.
 void removeFellow(Component comp)
          Removes a fellow.
 void removeRoot(Component comp)
          Detaches a root component from this page.
 boolean removeVariableResolver(org.zkoss.xel.VariableResolver resolver)
          Removes a name resolve that was added by Page.addVariableResolver(org.zkoss.xel.VariableResolver).
 void sessionDidActivate(Desktop desktop)
          Notification that the session, which owns this page, has just been activated (aka., deserialized).
 void sessionWillPassivate(Desktop desktop)
          Notification that the session, which owns this page, is about to be passivated (aka., serialized).
 java.lang.Object setAttribute(java.lang.String name, java.lang.Object value)
          Sets the value of the specified custom attribute associated with this page.
 java.lang.Object setAttribute(java.lang.String name, java.lang.Object value, int scope)
          Sets the value of the specified custom attribute in the specified scope.
 void setCacheable(java.lang.Boolean cacheable)
          Sets if the client can cache the rendered result.
 void setContentType(java.lang.String contentType)
          Sets the content type.
 void setDefaultParent(Component comp)
          Sets the default parent.
 void setDocType(java.lang.String docType)
          Sets the doc type (<!
 void setFirstLine(java.lang.String firstLine)
          Sets the first line to be generated to the output.
 void setId(java.lang.String id)
          Sets the identifier of this page.
 void setOwner(Component comp)
          Sets the owner of this page.
 void setRootAttributes(java.lang.String rootAttrs)
          Set the attributes of the root element declared in this page Default: "".
 void setStyle(java.lang.String style)
          Sets the CSS style of this page.
 void setTitle(java.lang.String title)
          Sets the title of the desktop this page belongs to (it might contain an expression).
 void setVariable(java.lang.String name, java.lang.Object val)
          Sets a variable to the namespace (Page.getNamespace()).
 void setZScriptLanguage(java.lang.String zslang)
          Sets the defafult scripting language which will be assumed if a zscript element doesn't specify any language.
 java.lang.String toString()
           
 void unsetVariable(java.lang.String name)
          Unsets a variable from the namespace (Page.getNamespace()).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PageImpl

public PageImpl(PageDefinition pgdef)
Constructs a page by giving the page definition.

Note: when a page is constructed, it doesn't belong to a desktop yet. Caller has to invoke init() to complete the creation of a page. Why two phase? Contructor could be called before execution is activated, but init() must be called in an execution.

Also note that getId() and getTitle() are not ready until init() is called.

Parameters:
pgdef - the page definition (never null).

PageImpl

public PageImpl(LanguageDefinition langdef,
                ComponentDefinitionMap compdefs,
                java.lang.String path,
                java.lang.String zslang)
Constructs a page without page definition and richlet.

Parameters:
langdef - the language definition (never null)
compdefs - the component definition map. If null, an empty map is assumed.
path - the request path. If null, empty is assumed.
zslang - the zscript language. If null, "Java" is assumed.

PageImpl

public PageImpl(Richlet richlet,
                java.lang.String path)
Constructs a page by specifying a richlet.

Note: when a page is constructed, it doesn't belong to a desktop yet. Caller has to invoke init() to complete the creation of a page.

Also note that getId() and getTitle() are not ready until init() is called.

Parameters:
richlet - the richlet to serve this page.
path - the request path, or null if not available
Method Detail

init

protected void init()
Initialized the page when contructed or deserialized.


getFunctionMapper

public final org.zkoss.xel.FunctionMapper getFunctionMapper()
Description copied from interface: Page
Returns the function mapper for resolving XEL functions, or null if not available.

Specified by:
getFunctionMapper in interface Page

addFunctionMapper

public void addFunctionMapper(org.zkoss.xel.FunctionMapper mapper)
Description copied from interface: Page
Adds the function mapper in addition to the current one.

The new added function mapper has the higher priority. Page.getFunctionMapper() will return the new

Specified by:
addFunctionMapper in interface Page
Parameters:
mapper - the new function mapper (null to ignore).

getRequestPath

public java.lang.String getRequestPath()
Description copied from interface: Page
Returns the request path of this page, or "" if not available.

It is the same as the servlet path (javax.servlet.http.HttpServletRequest's getServletPath), if ZK is running at a servlet container.

Note: Desktop.getRequestPath() returns the request path that causes the desktop to create. And, there might be multiple pages in the same desktop.

Specified by:
getRequestPath in interface Page
See Also:
Execution.getContextPath(), Desktop.getRequestPath()

getId

public final java.lang.String getId()
Description copied from interface: Page
Returns ID which is unique in the request (never null).

Note: it returns null when Initiator.doInit(org.zkoss.zk.ui.Page, java.lang.Object[]) is called.

Specified by:
getId in interface Page

getUuid

public final java.lang.String getUuid()
Description copied from interface: Page
Returns UUID (universal unique ID) which is unquie in the whole session. The UUID is generated automatically and immutable.

It is mainly used for communication between client and server and you rarely need to access it.

Specified by:
getUuid in interface Page

setId

public void setId(java.lang.String id)
Description copied from interface: Page
Sets the identifier of this page.

Note: you can change the page's ID only in Initiator.doInit(org.zkoss.zk.ui.Page, java.lang.Object[]) or ExecutionInit.init(org.zkoss.zk.ui.Execution, org.zkoss.zk.ui.Execution). Once the page is initialized (by PageCtrl.init(org.zkoss.zk.ui.sys.PageConfig)), calling this method will cause an exception.

Specified by:
setId in interface Page

getTitle

public java.lang.String getTitle()
Description copied from interface: Page
Returns the title of the desktop this page belongs to (and evaluate it if it contains an expression).

Default: "".

Specified by:
getTitle in interface Page

setTitle

public void setTitle(java.lang.String title)
Description copied from interface: Page
Sets the title of the desktop this page belongs to (it might contain an expression).

Specified by:
setTitle in interface Page

getStyle

public java.lang.String getStyle()
Description copied from interface: Page
Returns the CSS style of this page, or empty if not specified.

Specified by:
getStyle in interface Page

setStyle

public void setStyle(java.lang.String style)
Description copied from interface: Page
Sets the CSS style of this page.

Note: Unlike Page.setTitle(java.lang.String), you can change the style only in the lifecycle of the loading page.

Specified by:
setStyle in interface Page

getRoots

public java.util.Collection getRoots()
Description copied from interface: Page
Returns a readonly list of the root components.

Specified by:
getRoots in interface Page

getAttributes

public java.util.Map getAttributes(int scope)
Description copied from interface: Page
Returns all custom attributes of the specified scope. You could reference them thru componentScope, spaceScope, pageScope, requestScope and desktopScope in zscript and EL.

If scope is Page.PAGE_SCOPE, it means custom attributes shared by components from the same page as this one's.

If scope is Page.DESKTOP_SCOPE, it means custom attributes shared by components from the same desktopas this one's.

Specified by:
getAttributes in interface Page
Parameters:
scope - Page.APPLICATION_SCOPE, Page.SESSION_SCOPE, Page.PAGE_SCOPE, Page.REQUEST_SCOPE or Page.DESKTOP_SCOPE.

getAttribute

public java.lang.Object getAttribute(java.lang.String name,
                                     int scope)
Description copied from interface: Page
Returns the value of the specified custom attribute in the specified scope.

If scope is Page.PAGE_SCOPE, it means custom attributes shared by components from the same page as this one's.

If scope is Page.DESKTOP_SCOPE, it means custom attributes shared by components from the same desktopas this one's.

Specified by:
getAttribute in interface Page
scope - Page.APPLICATION_SCOPE, Page.SESSION_SCOPE, Page.PAGE_SCOPE, Page.REQUEST_SCOPE or Page.DESKTOP_SCOPE.

setAttribute

public java.lang.Object setAttribute(java.lang.String name,
                                     java.lang.Object value,
                                     int scope)
Description copied from interface: Page
Sets the value of the specified custom attribute in the specified scope.

If scope is Page.PAGE_SCOPE, it means custom attributes shared by components from the same page as this one's.

If scope is Page.DESKTOP_SCOPE, it means custom attributes shared by components from the same desktopas this one's.

Specified by:
setAttribute in interface Page
scope - Page.APPLICATION_SCOPE, Page.SESSION_SCOPE, Page.PAGE_SCOPE, Page.REQUEST_SCOPE or Page.DESKTOP_SCOPE.

removeAttribute

public java.lang.Object removeAttribute(java.lang.String name,
                                        int scope)
Description copied from interface: Page
Removes the specified custom attribute in the specified scope.

If scope is Page.PAGE_SCOPE, it means custom attributes shared by components from the same page as this one's.

If scope is Page.DESKTOP_SCOPE, it means custom attributes shared by components from the same desktopas this one's.

Specified by:
removeAttribute in interface Page
scope - Page.APPLICATION_SCOPE, Page.SESSION_SCOPE, Page.PAGE_SCOPE, Page.REQUEST_SCOPE or Page.DESKTOP_SCOPE.

getAttributes

public java.util.Map getAttributes()
Description copied from interface: Page
Returns all custom attributes associated with this page.

Specified by:
getAttributes in interface Page

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
Description copied from interface: Page
Returns the value of the specified attribute associated with this page.

Specified by:
getAttribute in interface Page

setAttribute

public java.lang.Object setAttribute(java.lang.String name,
                                     java.lang.Object value)
Description copied from interface: Page
Sets the value of the specified custom attribute associated with this page.

Note: The attribute is removed (by Page.removeAttribute(java.lang.String, int) if value is null, while Page.setVariable(java.lang.String, java.lang.Object) considers null as a legal value.

Specified by:
setAttribute in interface Page
value - the value. If null, the attribute is removed.

removeAttribute

public java.lang.Object removeAttribute(java.lang.String name)
Description copied from interface: Page
Removes the specified attribute custom associated with the page.

Specified by:
removeAttribute in interface Page

invalidate

public void invalidate()
Description copied from interface: Page
Invalidates this page to cause all components to redraw.

Specified by:
invalidate in interface Page

removeComponents

public void removeComponents()
Description copied from interface: Page
Removes all components in this page.

Specified by:
removeComponents in interface Page
See Also:
Execution.createComponents(String,Component,Map)

setVariable

public void setVariable(java.lang.String name,
                        java.lang.Object val)
Description copied from interface: Page
Sets a variable to the namespace (Page.getNamespace()).

It is the same as getNamespace().setVariable(name, value, true).

Specified by:
setVariable in interface Page
See Also:
Component.setVariable(java.lang.String, java.lang.Object, boolean), Component.getNamespace()

containsVariable

public boolean containsVariable(java.lang.String name)
Description copied from interface: Page
Returns whether the specified variable is defined.

Note: null is a valid value for variable, so this method is used to know whether a variable is defined. On the other hand, Page.setAttribute(java.lang.String, java.lang.Object, int) actually remove an attribute (by Page.removeAttribute(java.lang.String, int) if value is null.

Specified by:
containsVariable in interface Page

getVariable

public java.lang.Object getVariable(java.lang.String name)
Description copied from interface: Page
Returns the value of a variable defined in the namespace (Page.getNamespace()).

It is the same as getNamespace().getVariable(name, true).

Differences between Page.getVariable(java.lang.String) and Page.getZScriptVariable(java.lang.String)

Page.getVariable(java.lang.String) returns only variables defined by Page.setVariable(java.lang.String, java.lang.Object) (i.e., a shortcut to Namespace.setVariable(java.lang.String, java.lang.Object, boolean)). On the other hand, Page.getZScriptVariable(java.lang.String) returns these variables and those defined when executing zscripts.

Specified by:
getVariable in interface Page
See Also:
Component.getVariable(java.lang.String, boolean), Component.getNamespace()

unsetVariable

public void unsetVariable(java.lang.String name)
Description copied from interface: Page
Unsets a variable from the namespace (Page.getNamespace()).

It is the same as getNamespace().unsetVariable(name, true).

Specified by:
unsetVariable in interface Page
See Also:
Component.unsetVariable(java.lang.String, boolean), Component.getNamespace()

getZScriptClass

public java.lang.Class getZScriptClass(java.lang.String clsnm)
Description copied from interface: Page
Returns the class of the specified name by searching the thread class loader and the classes defined in the loaded interpreters.

Note: it also looks for the class by use of the current thread's class loader.

Specified by:
getZScriptClass in interface Page
Returns:
the class, or null if not found
See Also:
Page.getLoadedInterpreters()

getZScriptFunction

public org.zkoss.xel.Function getZScriptFunction(java.lang.String name,
                                                 java.lang.Class[] argTypes)
Description copied from interface: Page
Returns the variable of the specified name by searching the loaded interpreters.

Specified by:
getZScriptFunction in interface Page
Returns:
the method, or null if not found
See Also:
Page.getLoadedInterpreters()

getZScriptFunction

public org.zkoss.xel.Function getZScriptFunction(Namespace ns,
                                                 java.lang.String name,
                                                 java.lang.Class[] argTypes)
Description copied from interface: Page
Returns the variable of the specified name by searching the logical scope of the specified namespace for all the loaded interpreters.

It is similar to Page.getZScriptVariable(String), except it uses the specified namespace as a reference to identify the correct scope for searching the variable. If the interpreter does NOT support hierachical scopes, this method is the same as Page.getZScriptVariable(String).

Specified by:
getZScriptFunction in interface Page
Parameters:
ns - the namespace used as a reference to identify the correct scope for searching the variable. It is ignored if the interpreter doesn't support hierachical scopes. Note: this method doesn't look for any variable stored in ns.
Returns:
the method, or null if not found
See Also:
Page.getLoadedInterpreters()

getZScriptFunction

public org.zkoss.xel.Function getZScriptFunction(Component comp,
                                                 java.lang.String name,
                                                 java.lang.Class[] argTypes)
Description copied from interface: Page
Returns the variable of the specified name by searching the logical scope of the namespace of the specified component for all the loaded interpreters.

It is a shortcut: getZScriptFunction(comp.getNamespace(), name, argTypes);

Specified by:
getZScriptFunction in interface Page

getZScriptMethod

public Method getZScriptMethod(java.lang.String name,
                               java.lang.Class[] argTypes)
Deprecated. As of release 3.0.0, replaced by getZScriptFunction(String,Class[]).

Specified by:
getZScriptMethod in interface Page

getZScriptMethod

public Method getZScriptMethod(Namespace ns,
                               java.lang.String name,
                               java.lang.Class[] argTypes)
Deprecated. As of release 3.0.0, replaced by getZScriptFunction(String,Class[]).

Specified by:
getZScriptMethod in interface Page

getZScriptVariable

public java.lang.Object getZScriptVariable(java.lang.String name)
Description copied from interface: Page
Returns the value of the variable of the specified name by searching the loaded interpreters, if any.

Differences between Page.getVariable(java.lang.String) and Page.getZScriptVariable(java.lang.String)

Page.getVariable(java.lang.String) returns variables defined by Page.setVariable(java.lang.String, java.lang.Object) (i.e., a shortcut to Namespace.setVariable(java.lang.String, java.lang.Object, boolean)). On the other hand, Page.getZScriptVariable(java.lang.String) returns the variables that are defined when executing zscripts.

Specified by:
getZScriptVariable in interface Page
Returns:
the value of the variable, or null if not found
See Also:
Page.getLoadedInterpreters()

getZScriptVariable

public java.lang.Object getZScriptVariable(Namespace ns,
                                           java.lang.String name)
Description copied from interface: Page
Returns the value of the variable of the specified name by searching the logical scope of the specified namespace for all the loaded interpreters, if any.

It is similar to Page.getZScriptVariable(String), except it uses the specified namespace as a reference to identify the correct scope for searching the variable. If the interpreter does NOT support hierachical scopes, this method is the same as Page.getZScriptVariable(String).

Specified by:
getZScriptVariable in interface Page
Parameters:
ns - the namespace used as a reference to identify the correct scope for searching the variable. It is ignored if the interpreter doesn't support hierachical scopes. Note: this method doesn't look for any variable stored in ns.

getZScriptVariable

public java.lang.Object getZScriptVariable(Component comp,
                                           java.lang.String name)
Description copied from interface: Page
Returns the value of the variable of the specified name by searching the logical scope of the namespace of the specified component for all the loaded interpreters, if any.

It is a shortcut: getZScriptVariable(comp.getNamespace(), name);

Specified by:
getZScriptVariable in interface Page

getXelVariable

public java.lang.Object getXelVariable(java.lang.String name)
Description copied from interface: Page
Returns a variable that is visible to XEL expressions.

This method is mainly used to access special variable, such as request parameters (if this page is requested by HTTP).

Note: components that are specified with an ID are already accessible by Page.getVariable(java.lang.String).

Specified by:
getXelVariable in interface Page

getELVariable

public java.lang.Object getELVariable(java.lang.String name)
Deprecated. As of release of 3.0.0, replaced with getXelVariable(java.lang.String).

Description copied from interface: Page
Returns a variable that is visible to XEL expressions.

Specified by:
getELVariable in interface Page

addVariableResolver

public boolean addVariableResolver(org.zkoss.xel.VariableResolver resolver)
Description copied from interface: Page
Adds a name resolver that will be used to resolve a variable by Page.getVariable(java.lang.String).

Note: the variables resolved by the specified resolver are accessible to both zscript and EL expressions.

Specified by:
addVariableResolver in interface Page
Returns:
wether the resolver is added successfully. Note: if the resolver was added before, it won't be added again and this method returns false.

removeVariableResolver

public boolean removeVariableResolver(org.zkoss.xel.VariableResolver resolver)
Description copied from interface: Page
Removes a name resolve that was added by Page.addVariableResolver(org.zkoss.xel.VariableResolver).

Specified by:
removeVariableResolver in interface Page
Returns:
false if resolved is not added before.

addEventListener

public boolean addEventListener(java.lang.String evtnm,
                                EventListener listener)
Description copied from interface: Page
Adds an event listener to specified event for all components in this page.

Due to performance consideration, unlike Component.addEventListener(java.lang.String, org.zkoss.zk.ui.event.EventListener), all event listeners for the page are deferrable, no matter Deferrable is implemented or not.

Specified by:
addEventListener in interface Page
Parameters:
evtnm - what event to listen (never null)
Returns:
whether the listener is added; false if it was added before.
See Also:
Component.addEventListener(java.lang.String, org.zkoss.zk.ui.event.EventListener)

removeEventListener

public boolean removeEventListener(java.lang.String evtnm,
                                   EventListener listener)
Description copied from interface: Page
Removes an event listener.

Specified by:
removeEventListener in interface Page
Returns:
whether the listener is removed; false if it was never added.

getFellow

public Component getFellow(java.lang.String compId)
Description copied from interface: IdSpace
Returns a component of the specified ID in the same ID space. Components in the same ID space are called fellows.

Unlike IdSpace.getFellowIfAny(java.lang.String), it throws an exception if not found.

Specified by:
getFellow in interface IdSpace

getFellowIfAny

public Component getFellowIfAny(java.lang.String compId)
Description copied from interface: IdSpace
Returns a component of the specified ID in the same ID space, or null if not found.

Unlike IdSpace.getFellow(java.lang.String), it returns null if not found.

Specified by:
getFellowIfAny in interface IdSpace

init

public void init(PageConfig config)
Description copied from interface: PageCtrl
Initializes this page by assigning the info provided by the specified PageConfig, and then adds it to a desktop (by use of Execution.getDesktop()).

This method shall be called only after the current execution is activated.

Specified by:
init in interface PageCtrl
Parameters:
config - the info about how to initialize this page

destroy

public void destroy()
Description copied from interface: PageCtrl
Called when this page is about to be detroyed. It is called by desktop, after removing it from the desktop.

Specified by:
destroy in interface PageCtrl

getHeaders

public java.lang.String getHeaders()
Description copied from interface: PageCtrl
Returns the header elements declared in this page (never null). An empty string is returned if special header is defined.

For HTML, the header element is the HEAD element.

Specified by:
getHeaders in interface PageCtrl

getRootAttributes

public java.lang.String getRootAttributes()
Description copied from interface: PageCtrl
Returns the attributes of the root element declared in this page (never null). An empty string is returned if no special attribute is declared.

For HTML, the root element is the HTML element.

Specified by:
getRootAttributes in interface PageCtrl

setRootAttributes

public void setRootAttributes(java.lang.String rootAttrs)
Description copied from interface: PageCtrl
Set the attributes of the root element declared in this page

Default: "".

Specified by:
setRootAttributes in interface PageCtrl

getContentType

public java.lang.String getContentType()
Description copied from interface: PageCtrl
Returns the content type, or null to use the device default.

Specified by:
getContentType in interface PageCtrl

setContentType

public void setContentType(java.lang.String contentType)
Description copied from interface: PageCtrl
Sets the content type.

Specified by:
setContentType in interface PageCtrl

getDocType

public java.lang.String getDocType()
Description copied from interface: PageCtrl
Returns the doc type (<!DOCTYPE>), or null to use the device default.

Specified by:
getDocType in interface PageCtrl

setDocType

public void setDocType(java.lang.String docType)
Description copied from interface: PageCtrl
Sets the doc type (<!DOCTYPE>).

Default: null (i.e., the device default)

Specified by:
setDocType in interface PageCtrl

getFirstLine

public java.lang.String getFirstLine()
Description copied from interface: PageCtrl
Returns the first line to be generated to the output, or null if nothing to generate.

For XML devices, it is usually the xml processing instruction:
<?xml version="1.0" encoding="UTF-8"?>

Specified by:
getFirstLine in interface PageCtrl

setFirstLine

public void setFirstLine(java.lang.String firstLine)
Description copied from interface: PageCtrl
Sets the first line to be generated to the output.

Default: null (i.e., nothing generated)

Specified by:
setFirstLine in interface PageCtrl

getCacheable

public java.lang.Boolean getCacheable()
Description copied from interface: PageCtrl
Returns if the client can cache the rendered result, or null to use the device default.

Specified by:
getCacheable in interface PageCtrl

setCacheable

public void setCacheable(java.lang.Boolean cacheable)
Description copied from interface: PageCtrl
Sets if the client can cache the rendered result.

Default: null (use the device default).

Specified by:
setCacheable in interface PageCtrl

getDesktop

public final Desktop getDesktop()
Description copied from interface: Page
Returns the desktop that this page belongs to.

Note: it returns null when Initiator.doInit(org.zkoss.zk.ui.Page, java.lang.Object[]) is called.

Specified by:
getDesktop in interface Page

addRoot

public void addRoot(Component comp)
Description copied from interface: PageCtrl
Adds a root component to a page.

It is used internally and developers shall not invoke it explicityly.

Specified by:
addRoot in interface PageCtrl
See Also:
Component.setPage(org.zkoss.zk.ui.Page)

removeRoot

public void removeRoot(Component comp)
Description copied from interface: PageCtrl
Detaches a root component from this page.

It is used internally and developers shall not invoke it explicitly

Specified by:
removeRoot in interface PageCtrl
See Also:
Component.setPage(org.zkoss.zk.ui.Page)

moveRoot

public void moveRoot(Component comp,
                     Component refRoot)
Description copied from interface: PageCtrl
Moves a root component before the reference component.

Note: it assumes removeRoot was called before for comp. Otherwise, nothing happens.

It is used internally and developers shall not invoke it explicitly

Specified by:
moveRoot in interface PageCtrl
See Also:
Component.setPageBefore(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Component)

addFellow

public void addFellow(Component comp)
Description copied from interface: PageCtrl
Adds a fellow.

Specified by:
addFellow in interface PageCtrl

removeFellow

public void removeFellow(Component comp)
Description copied from interface: PageCtrl
Removes a fellow.

Specified by:
removeFellow in interface PageCtrl

hasFellow

public boolean hasFellow(java.lang.String compId)
Description copied from interface: PageCtrl
Returns whether a fellow exists with the specified component ID.

Specified by:
hasFellow in interface PageCtrl

redraw

public void redraw(java.util.Collection responses,
                   java.io.Writer out)
            throws java.io.IOException
Description copied from interface: PageCtrl
Redraws the whole page into the specified output.

You could use PageCtrl.ATTR_REDRAW_BY_INCLUDE to control whether to include, instead of forward, the page content. By default, Execution.forward(java.io.Writer, java.lang.String, java.util.Map, int) is used if possible.

Specified by:
redraw in interface PageCtrl
Parameters:
responses - a list of responses that the page has to generate corresponding javascript to process them; or null if no such responses. The responses is not null, if and only if the page is creating
Throws:
java.io.IOException

getNamespace

public final Namespace getNamespace()
Description copied from interface: Page
Returns the namespace used to store variables belonging to the ID space of this page.

Specified by:
getNamespace in interface Page
See Also:
Page.interpret(java.lang.String, java.lang.String, org.zkoss.zk.scripting.Namespace)

interpret

public void interpret(java.lang.String zslang,
                      java.lang.String script,
                      Namespace ns)
Description copied from interface: Page
Interpret a script of the specified scripting language against the specified namespace.

Specified by:
interpret in interface Page
Parameters:
zslang - the scripting language. If null, Page.getZScriptLanguage() is assumed.
ns - the namspace. If null, the current namespace is assumed. The current namespace is the event target's namespace (Event.getTarget()), if the thread is processing an event. Otherwise, the current namespace is this page's namespace

getInterpreter

public Interpreter getInterpreter(java.lang.String zslang)
Description copied from interface: Page
Returns the interpreter of the specified scripting language.

The interpreter will be loaded and initialized, if it is not loaded yet.

Specified by:
getInterpreter in interface Page
Parameters:
zslang - the scripting language. If null, Page.getZScriptLanguage() is assumed.

getLoadedInterpreters

public java.util.Collection getLoadedInterpreters()
Description copied from interface: Page
Returns all loaded interpreters.

Specified by:
getLoadedInterpreters in interface Page

getZScriptLanguage

public java.lang.String getZScriptLanguage()
Description copied from interface: Page
Returns the default scripting language which is assumed when a zscript element doesn't specify any language.

Specified by:
getZScriptLanguage in interface Page
Returns:
the default scripting language, say, Java. Never null.

setZScriptLanguage

public void setZScriptLanguage(java.lang.String zslang)
                        throws InterpreterNotFoundException
Description copied from interface: Page
Sets the defafult scripting language which will be assumed if a zscript element doesn't specify any language.

Specified by:
setZScriptLanguage in interface Page
Throws:
InterpreterNotFoundException - if no such language

addDeferredZScript

public void addDeferredZScript(Component parent,
                               ZScript zscript)
Description copied from interface: PageCtrl
Adds a deferred zscript.

Specified by:
addDeferredZScript in interface PageCtrl
Parameters:
parent - the component that is the parent of zscript (in the ZUML page), or null if it belongs to the page.
zscript - the zscript that shall be evaluated as late as when the interpreter of the same language is being loaded.

isListenerAvailable

public boolean isListenerAvailable(java.lang.String evtnm)
Description copied from interface: Page
Returns whether the event listener is available.

Specified by:
isListenerAvailable in interface Page

getListenerIterator

public java.util.Iterator getListenerIterator(java.lang.String evtnm)
Description copied from interface: Page
Returns an iterator for iterating listener for the specified event.

Specified by:
getListenerIterator in interface Page

getOwner

public final Component getOwner()
Description copied from interface: PageCtrl
Returns the owner of this page, or null if it is not owned by any component. A page is included by a component. We say it is owned by the component.

Specified by:
getOwner in interface PageCtrl

setOwner

public final void setOwner(Component comp)
Description copied from interface: PageCtrl
Sets the owner of this page.

Used only internally.

Specified by:
setOwner in interface PageCtrl

getDefaultParent

public Component getDefaultParent()
Description copied from interface: PageCtrl
Returns the default parent, or null if no such parent. If a default parent is defined (by use of PageCtrl.setDefaultParent(org.zkoss.zk.ui.Component)), Executions.createComponents(String, Component, java.util.Map) will use it as the default parent, if developers didn't specify one.

Specified by:
getDefaultParent in interface PageCtrl

setDefaultParent

public void setDefaultParent(Component comp)
Description copied from interface: PageCtrl
Sets the default parent.

It is rarely used by application developers. Rather, it is used by ZHTML's body to make sure new created compnents are placed correctly.

Caller has to ensure the comp is part of the page. Otherwise, the result is unpreditable.

Specified by:
setDefaultParent in interface PageCtrl
See Also:
PageCtrl.getDefaultParent()

sessionWillPassivate

public void sessionWillPassivate(Desktop desktop)
Description copied from interface: PageCtrl
Notification that the session, which owns this page, is about to be passivated (aka., serialized).

Specified by:
sessionWillPassivate in interface PageCtrl

sessionDidActivate

public void sessionDidActivate(Desktop desktop)
Description copied from interface: PageCtrl
Notification that the session, which owns this page, has just been activated (aka., deserialized).

Specified by:
sessionDidActivate in interface PageCtrl

getLanguageDefinition

public LanguageDefinition getLanguageDefinition()
Description copied from interface: Page
Returns the language definition that this page belongs to (never null).

Specified by:
getLanguageDefinition in interface Page

getComponentDefinitionMap

public ComponentDefinitionMap getComponentDefinitionMap()
Description copied from interface: Page
Returns the map of component definitions (never null).

Note: the map is shared among all instance of the same page definition. Any component definition added (by ComponentDefinitionMap.add(org.zkoss.zk.ui.metainfo.ComponentDefinition)) are visible to all other instances of the same page definition. Thus, it is NOT a good idea to change its content.

Specified by:
getComponentDefinitionMap in interface Page

getComponentDefinition

public ComponentDefinition getComponentDefinition(java.lang.String name,
                                                  boolean recur)
Description copied from interface: Page
Returns the component definition of the specified name, or null if not found.

Note: unlike LanguageDefinition.getComponentDefinition(java.lang.String), this method doesn't throw ComponentNotFoundException if not found. It just returns null.

Specified by:
getComponentDefinition in interface Page
recur - whether to look up the component from Page.getLanguageDefinition()

getComponentDefinition

public ComponentDefinition getComponentDefinition(java.lang.Class cls,
                                                  boolean recur)
Description copied from interface: Page
Returns the component definition of the specified class, or null if not found.

Note: unlike LanguageDefinition.getComponentDefinition(java.lang.String), this method doesn't throw ComponentNotFoundException if not found. It just returns null.

Specified by:
getComponentDefinition in interface Page
recur - whether to look up the component from Page.getLanguageDefinition()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2005-2007 Potix Corporation. All Rights Reserved.