# ZK MVC : how can i wait till the compose of another componant

elmetni
145 7

hello , i m working on a ZK project , using ZK MVC approach. what i did try to do is to initalize "a panel" after doAfterCompose a div , but the problem is that i got a "java.lang.NullPointerException"

java.lang.NullPointerException dashboard.display.doAfterCompose(display.java:24) dashboard.display.doAfterCompose(display.java:1)

and those are a simple exemple of what i did try to do . My view "mypage.zul"

<zk>
<borderlayout>
<west width="140px" splittable="true" collapsible="true" maxsize="140">
<div align="center" apply="dashboard.display">
</div>
</west>

<center autoscroll="true"  >
<div>
<portallayout id="portalLayout" maximizedMode="whole" width="100%" >

<portalchildren   >
<panelchildren>
<div width="100%"  >
</div>
</panelchildren>
</panel>
</portalchildren>
</portallayout>
</div>
</center>

</borderlayout>
</zk>


My conroler : "display"

public class display extends SelectorComposer<Div>{

@Wire
Checkbox  objectif_checkbox;

@Wire

public void doAfterCompose(Div comp) throws Exception {
super.doAfterCompose(comp);

}
}


and this is the exception that i got

java.lang.NullPointerException dashboard.display.doAfterCompose(display.java:24) dashboard.display.doAfterCompose(display.java:1) org.zkoss.zk.ui.impl.UiEngineImpl.doAfterCompose(UiEngineImpl.java:578) org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:880) org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:826) org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:735) org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:699)

what i have throught of it so far is that the div has been composed before the portallayout , that why the server cant reconize portallayout when div is created

can anyone help me pls ? i m kinda stuck here ...and thank you

delete retag edit

hello mhj , sry i cant comment on ur post yet so i will put my replay here :) ya i have noticed it and i corrected it , it still give me the same exception , this s not my realy project i wrote this simple example to decript my case i dont know really what i have done wrong .

( 2014-05-28 16:43:01 +0800 )edit

i edit the post , u can try the code source to see if you can find something about it , and thank you so much

( 2014-05-28 16:43:35 +0800 )edit

Sort by » oldest newest most voted

mhj
806 1 7

I believe your problem is that the panel is not in the div's hierarchy, look what happens in zkfiddle: link

elmetni
145 7

Ya exactly , i solved the problem by adding another doAfterCompose methode to wait till initialisation of panel . the code source was something like this

SelectorComposer<Panel> s = new SelectorComposer<Panel>();

s.doAfterCompose((Panel)comp.getParent().getParent().getParent().getParent()....getChildren().get(0));


thank you bro for pointing to the problem

mhj
806 1 7

Hello elmetni, i saw that you declared differents names for panelworkload (panelworkload on zul and panelworkloadday on java) maybe that helps you...

[hide preview]