|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.zkoss.zk.ui.util.Composition
public class Composition
Composition manager that compose the given components into a whole page per the "insert" components and "define" components annotations. The "define" components will attach itself on to the "insert" component with the same annotated joinId. That is, the "insert" component is the parent component of the "define" components with the same annotated joinId. Note that "insert" components can NOT have duplicate joinId in a page while "define" components can because you can have multiple child components but you cannot have multiple parent components. Also note that a "define" components must be a root component of the page.
This Composition manager is useful when you need to do layout injection or you want to design a common page template across multiple pages.
Initiator
and a InitiatorExt
, so
you have to specify in the real page as following to use it.
<?init class="org.zkoss.zk.ui.util.Composition" [arg0="TEMPLATE1"[, arg1="TEMPLATE2"]...]?> ...Where the arg0 ~ argx you can give zul template uri. This implementation use Excecutions.createComponents() to create them and then do the real composition in the
InitiatorExt.doAfterCompose(Page, Component[])
.
Field Summary | |
---|---|
static java.lang.String |
PARENT
|
Constructor Summary | |
---|---|
Composition()
|
Method Summary | |
---|---|
void |
doAfterCompose(Page page,
Component[] comps)
Called after all components are created (a.k.a., composed), and before any event is processed. |
boolean |
doCatch(java.lang.Throwable ex)
Called when an exception occurs during the evaluation of the page. |
void |
doFinally()
Do the cleanup after the page has been evaluated. |
void |
doInit(Page page,
java.util.Map<java.lang.String,java.lang.Object> args)
Does the initializes before the page is evaluated. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String PARENT
Constructor Detail |
---|
public Composition()
Method Detail |
---|
public boolean doCatch(java.lang.Throwable ex) throws java.lang.Exception
InitiatorExt
If you don't want to handle the exception, simply returns false.
boolean doCatch(Throwable ex) {return false;}
An exception thrown in this method is simply logged. It has no effect on the execution. If you want to ignore the exception, just return true.
Notice: this method won't be called if the exception occurs
in Initiator.doInit(org.zkoss.zk.ui.Page, java.util.Map
.
doCatch
in interface InitiatorExt
ex
- the exception being thrown
java.lang.Exception
public void doFinally() throws java.lang.Exception
InitiatorExt
Initiator.doInit(org.zkoss.zk.ui.Page, java.util.Map)
throws an exception.
However,it is always called no matter whether InitiatorExt.doCatch(java.lang.Throwable)
is called.
An exception thrown in this method is simply logged. It has no effect on the execution.
doFinally
in interface InitiatorExt
java.lang.Exception
public void doInit(Page page, java.util.Map<java.lang.String,java.lang.Object> args) throws java.lang.Exception
Initiator
Note: when it is called, Page.getDesktop()
,
Page.getId()
and Page.getTitle()
all return null, since
the page is not initialized yet.
To get the current desktop, you have to use
Execution.getDesktop()
(from
Executions.getCurrent()
) instead.
On the other hand, you can set the page's ID, title or style in
this method (to override the declarations in the page definition)
by Page.setId(java.lang.String)
, Page.setTitle(java.lang.String)
and Page.setStyle(java.lang.String)
.
In additions, Page.getRequestPath()
and Page.getAttribute(java.lang.String, int)
are all available.
doInit
in interface Initiator
page
- the page being evaluatedargs
- a map of arguments.
Prior to 3.6.2, it is an array. To upgrade, use args.get("arg0")
instead of args[0], args.get("arg1") instead of args[1] and so on.
Of course, it is better to have a more meaningful name for
each argument.
If no argument is specified, args is an empty map (never null).
java.lang.Exception
public void doAfterCompose(Page page, Component[] comps) throws java.lang.Exception
InitiatorExt
It won't be called if an un-caught exception occurs when creating components.
doAfterCompose
in interface InitiatorExt
page
- the page that new components are attached to. It is the same
as Initiator.doInit(org.zkoss.zk.ui.Page, java.util.Map)
's page argument.comps
- the root components being created (never null, but the length
might be zero).
Note: It is not necessary the same as Page.getRoots()
, since
this method might be called thru Executions.createComponents(java.lang.String, org.zkoss.zk.ui.Component, java.util.Map, ?>)
.
java.lang.Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |