|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface Page
A page. A desktop consists of a set of pages.
When a ZK request is asking to render a new page, a new page is created and components that are created duing this request all belong to this page.
If a ZK requst is asking an update, it must have at lease one UUID of
a component (Component.getUuid().
From this UUID, we know which page it belongs and activate it
to process the update.
By activation, the system guarantees no concurrent access to pages and components (so you don't need use synchronized for them).
In portal and some environments, a client request (e.g., ServletRequest)
might consists of several ZK requests (AuRequest).
While each ZK request might ask to create an independent page,
all these pages are grouped as a desktop, such that they are activated
and removed at the same time.
Moreover, pages in the same desktop could communicate to eath other
(see Inter-page communication).
A session, Session, might have multiple desktops of pages,
Page, while a page belongs to exactly one session.
A page, Page, might have many components, Component, while
a component belongs to exactly one page.
All components of the same desktop of pages are removed at the same time if a page become 'obsolete'.
During each execution (${link Execution}), exactly one desktop of
pages are locked (aka., activated). Though an execution serves
a client request (e.g., ServletRequest), a client request might consist
of multiple ZK request (AuRequest).
Each ZK request might target to a different page (of the same desktop).
To do inter-page communication, you could do:
Execution.postEvent(org.zkoss.zk.ui.event.Event) to post events to components from
another page.They are the same as handling components from the same page.
However, invoking method directly for components from another page has
one restriction:
It cannot create component.
| Field Summary | |
|---|---|
static int |
APPLICATION_SCOPE
Used with getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the whole application. |
static int |
DESKTOP_SCOPE
Used with getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same desktop. |
static int |
PAGE_SCOPE
Used with getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same page. |
static int |
REQUEST_SCOPE
Used with getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same request. |
static int |
SESSION_SCOPE
Used with getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same session. |
| Method Summary | |
|---|---|
boolean |
addEventListener(java.lang.String evtnm,
EventListener listener)
Adds an event listener to specified event for all components in this page. |
void |
addFunctionMapper(FunctionMapper mapper)
Adds the function mapper in addition to the current one. |
boolean |
addVariableResolver(VariableResolver resolver)
Adds a name resolver that will be used to resolve a variable by getVariable(java.lang.String). |
boolean |
containsVariable(java.lang.String name)
Returns whether the specified variable is defined. |
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. |
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). |
Desktop |
getDesktop()
Returns the desktop that this page belongs to. |
java.lang.Class |
getExpressionFactoryClass()
Returns the implementation of the expression factory that is used by this page, or null if Configuration.getExpressionFactoryClass()
is used. |
Component |
getFirstRoot()
Returns the first root component. |
FunctionMapper |
getFunctionMapper()
Returns the function mapper for resolving XEL functions, or null if not available. |
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). |
Component |
getLastRoot()
Returns the last root component. |
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. |
java.lang.String |
getRequestPath()
Returns the request path of this page, or "" if not available. |
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 ( 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. |
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. |
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. |
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. |
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. |
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 |
isComplete()
Returns if this page is a complete page. |
boolean |
isListenerAvailable(java.lang.String evtnm)
Returns whether the event listener is available. |
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. |
boolean |
removeVariableResolver(VariableResolver resolver)
Removes a name resolve that was added by addVariableResolver(org.zkoss.xel.VariableResolver). |
java.lang.Class |
resolveClass(java.lang.String clsnm)
Resolves the class of the specified name. |
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 |
setComplete(boolean complete)
Sets if the page is a complete page. |
void |
setExpressionFactoryClass(java.lang.Class expfcls)
Sets the implementation of the expression factory that is used by this page. |
void |
setId(java.lang.String id)
Sets the identifier of this page. |
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 ( 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. |
void |
unsetVariable(java.lang.String name)
Unsets a variable from the namespace ( getNamespace()). |
| Methods inherited from interface org.zkoss.zk.ui.IdSpace |
|---|
getFellow, getFellowIfAny, getFellows, hasFellow |
| Field Detail |
|---|
static final int PAGE_SCOPE
getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same page.
It is also known as the page attributes.
It is the same as getAttributes(int).
static final int DESKTOP_SCOPE
getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same desktop.
It is also known as the desktop attributes.
It is the same as Desktop.getAttributes().
static final int SESSION_SCOPE
getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same session.
It is also known as the session attributes.
It is the same as Session.getAttributes().
static final int APPLICATION_SCOPE
getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the whole application.
It is also known as the application attributes.
It is the same as WebApp.getAttributes().
static final int REQUEST_SCOPE
getAttribute(java.lang.String, int) and relevants to denote
custom attributes shared by the same request.
It is also known as the request attributes.
It is the same as Execution.getAttributes().
| Method Detail |
|---|
java.lang.String getId()
Note: it returns null when
Initiator.doInit(org.zkoss.zk.ui.Page, java.lang.Object[]) is called.
void setId(java.lang.String id)
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.
UiException - if the page is initialized, i.e.,
PageCtrl.init(org.zkoss.zk.ui.sys.PageConfig) is called.java.lang.String getUuid()
It is mainly used for communication between client and server and you rarely need to access it.
java.lang.String getTitle()
Default: "".
void setTitle(java.lang.String title)
java.lang.String getStyle()
void setStyle(java.lang.String style)
Note: Unlike setTitle(java.lang.String), you can change the style only in
the lifecycle of the loading page.
java.lang.String getRequestPath()
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.
Execution.getContextPath(),
Desktop.getRequestPath()Desktop getDesktop()
Note: it returns null when
Initiator.doInit(org.zkoss.zk.ui.Page, java.lang.Object[]) is called.
java.util.Collection getRoots()
Component getFirstRoot()
Component getLastRoot()
java.util.Map getAttributes(int scope)
If scope is PAGE_SCOPE, it means custom attributes shared
by components from the same page as this one's.
If scope is DESKTOP_SCOPE, it means custom attributes shared
by components from the same desktopas this one's.
scope - APPLICATION_SCOPE, SESSION_SCOPE,
PAGE_SCOPE, REQUEST_SCOPE or DESKTOP_SCOPE.
java.lang.Object getAttribute(java.lang.String name,
int scope)
If scope is PAGE_SCOPE, it means custom attributes shared
by components from the same page as this one's.
If scope is DESKTOP_SCOPE, it means custom attributes shared
by components from the same desktopas this one's.
scope - APPLICATION_SCOPE, SESSION_SCOPE,
PAGE_SCOPE, REQUEST_SCOPE or DESKTOP_SCOPE.
java.lang.Object setAttribute(java.lang.String name,
java.lang.Object value,
int scope)
If scope is PAGE_SCOPE, it means custom attributes shared
by components from the same page as this one's.
If scope is DESKTOP_SCOPE, it means custom attributes shared
by components from the same desktopas this one's.
scope - APPLICATION_SCOPE, SESSION_SCOPE,
PAGE_SCOPE, REQUEST_SCOPE or DESKTOP_SCOPE.
java.lang.Object removeAttribute(java.lang.String name,
int scope)
If scope is PAGE_SCOPE, it means custom attributes shared
by components from the same page as this one's.
If scope is DESKTOP_SCOPE, it means custom attributes shared
by components from the same desktopas this one's.
scope - APPLICATION_SCOPE, SESSION_SCOPE,
PAGE_SCOPE, REQUEST_SCOPE or DESKTOP_SCOPE.java.util.Map getAttributes()
getAttributes in interface Scopejava.lang.Object getAttribute(java.lang.String name)
getAttribute in interface Scope
java.lang.Object setAttribute(java.lang.String name,
java.lang.Object value)
Note: The attribute is removed (by removeAttribute(java.lang.String, int)
if value is null, while setVariable(java.lang.String, java.lang.Object) considers null as a legal value.
value - the value. If null, the attribute is removed.java.lang.Object removeAttribute(java.lang.String name)
void setVariable(java.lang.String name,
java.lang.Object val)
getNamespace()).
It is the same as getNamespace().setVariable(name, value, true).
Component.setVariable(java.lang.String, java.lang.Object, boolean),
Component.getNamespace()boolean containsVariable(java.lang.String name)
Note: null is a valid value for variable, so this method is used
to know whether a variable is defined.
On the other hand, setAttribute(java.lang.String, java.lang.Object, int) actually remove
an attribute (by removeAttribute(java.lang.String, int) if value is null.
java.lang.Object getVariable(java.lang.String name)
getNamespace()).
It is the same as getNamespace().getVariable(name, true).
getVariable(java.lang.String) and getZScriptVariable(java.lang.String)getVariable(java.lang.String) returns only variables defined by
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, getZScriptVariable(java.lang.String) returns these variables
and those defined when executing zscripts.
Component.getVariable(java.lang.String, boolean),
Component.getNamespace()void unsetVariable(java.lang.String name)
getNamespace()).
It is the same as getNamespace().unsetVariable(name, true).
Component.unsetVariable(java.lang.String, boolean),
Component.getNamespace()java.lang.Class getZScriptClass(java.lang.String clsnm)
Note: if not defined in the interpeter, it will also look for
the class by use of the current thread's class loader.
See resolveClass(java.lang.String).
getLoadedInterpreters()
java.lang.Class resolveClass(java.lang.String clsnm)
throws java.lang.ClassNotFoundException
getLoadedInterpreters().
It is similar to getZScriptClass(java.lang.String), except
java.lang.ClassNotFoundExceptiongetZScriptClass(java.lang.String)
Function getZScriptFunction(java.lang.String name,
java.lang.Class[] argTypes)
getLoadedInterpreters()
Function getZScriptFunction(Namespace ns,
java.lang.String name,
java.lang.Class[] argTypes)
It is similar to 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 getZScriptVariable(String).
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.
getLoadedInterpreters()
Function getZScriptFunction(Component comp,
java.lang.String name,
java.lang.Class[] argTypes)
It is a shortcut: getZScriptFunction(comp.getNamespace(), name, argTypes);
java.lang.Object getZScriptVariable(java.lang.String name)
getVariable(java.lang.String) and getZScriptVariable(java.lang.String)getVariable(java.lang.String) returns variables defined by
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, getZScriptVariable(java.lang.String) returns the variables
that are defined when executing zscripts.
getLoadedInterpreters()
java.lang.Object getZScriptVariable(Namespace ns,
java.lang.String name)
It is similar to 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 getZScriptVariable(String).
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.
java.lang.Object getZScriptVariable(Component comp,
java.lang.String name)
It is a shortcut: getZScriptVariable(comp.getNamespace(), name);
java.lang.Object getXelVariable(java.lang.String name)
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 getVariable(java.lang.String).
boolean addVariableResolver(VariableResolver resolver)
getVariable(java.lang.String).
Note: the variables resolved by the specified resolver are accessible to both zscript and EL expressions.
boolean removeVariableResolver(VariableResolver resolver)
addVariableResolver(org.zkoss.xel.VariableResolver).
boolean addEventListener(java.lang.String evtnm,
EventListener listener)
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.
evtnm - what event to listen (never null)
Component.addEventListener(java.lang.String, org.zkoss.zk.ui.event.EventListener)
boolean removeEventListener(java.lang.String evtnm,
EventListener listener)
boolean isListenerAvailable(java.lang.String evtnm)
java.util.Iterator getListenerIterator(java.lang.String evtnm)
void removeComponents()
Execution.createComponents(String,Component,Map)void invalidate()
Namespace getNamespace()
interpret(java.lang.String, java.lang.String, org.zkoss.zk.scripting.Namespace)
void interpret(java.lang.String zslang,
java.lang.String script,
Namespace ns)
zslang - the scripting language. If null, 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 namespaceInterpreter getInterpreter(java.lang.String zslang)
The interpreter will be loaded and initialized, if it is not loaded yet.
zslang - the scripting language. If null, getZScriptLanguage()
is assumed.
InterpreterNotFoundException - if not found.java.util.Collection getLoadedInterpreters()
java.lang.String getZScriptLanguage()
void setZScriptLanguage(java.lang.String zslang)
throws InterpreterNotFoundException
InterpreterNotFoundException - if no such languagejava.lang.Class getExpressionFactoryClass()
Configuration.getExpressionFactoryClass()
is used.
Default: null.
setExpressionFactoryClass(java.lang.Class)void setExpressionFactoryClass(java.lang.Class expfcls)
expfcls - the class that implements
ExpressionFactory,
If null, Configuration.getExpressionFactoryClass()
is used.getExpressionFactoryClass()boolean isComplete()
Default: false. It means that we assume a page is complete if and only if it is not included by other page.
If you have a page that has a complete HTML page and it is included by other page, you have to specify the complete flag to be true.
void setComplete(boolean complete)
Default: false. It means a page is complete if and only if it is not included by other page.
complete - whether the page is complete.
If true, this page is assumed to be complete no matter it is included
or not. If false, this page is assumed to be complete if it is
not included by other page.isComplete()FunctionMapper getFunctionMapper()
void addFunctionMapper(FunctionMapper mapper)
The new added function mapper has the higher priority.
getFunctionMapper() will return the new
mapper - the new function mapper (null to ignore).LanguageDefinition getLanguageDefinition()
ComponentDefinitionMap getComponentDefinitionMap()
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.
ComponentDefinition getComponentDefinition(java.lang.String name,
boolean recur)
Note: unlike LanguageDefinition.getComponentDefinition(java.lang.String),
this method doesn't throw ComponentNotFoundException if not found.
It just returns null.
recur - whether to look up the component from getLanguageDefinition()
ComponentDefinition getComponentDefinition(java.lang.Class cls,
boolean recur)
Note: unlike LanguageDefinition.getComponentDefinition(java.lang.String),
this method doesn't throw ComponentNotFoundException if not found.
It just returns null.
recur - whether to look up the component from getLanguageDefinition()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||