-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hi all,
I want to change a window title while user double klick tree node. so in window title will fill form java file.
i have like this
MainMenu.zul
<?xml version="1.0" encoding="UTF-8"?> <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./mainMenu" ?> <?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> <?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?> <zk xmlns="http://www.zkoss.org/2005/zul" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"> <window id="mainMenu" width="1084px" height="600px" apply="zk.wnd.form.FormWindowComposer"> <borderlayout id="bl"> <north size="85px"> <div> </div> </north> <west size="200px" splittable="true" flex="true" collapsible="true" > <tree id="tree" width="300px" > <treecols> <treecol label="*" /> </treecols> </tree> </west> <center id="center" border="none" margins="0,0,0,0" flex="true" autoscroll="true" style="background-color: #D6DCDE; padding: 5px"> <div id="contentDiv"> </div> </center> <south size="20px"> </south> </borderlayout> </window> </zk>
Salary.zul
<?xml version="1.0" encoding="UTF-8"?> <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./winSalary" ?> <zk xmlns="http://www.zkoss.org/2005/zul" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"> <zscript> <![CDATA[ import zk.wnd.form.FormWindowComposer; ]]> </zscript> <window id="winSalary" width="650px" border="normal" > </window> </zk>
FormWindowComposer.java
import org.apache.log4j.Logger; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.ComponentNotFoundException; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zul.Center; import org.zkoss.zul.Div; import org.zkoss.zul.Hlayout; import org.zkoss.zul.Label; import org.zkoss.zul.Tree; import org.zkoss.zul.Treecell; import org.zkoss.zul.Treeitem; import org.zkoss.zul.TreeitemRenderer; import org.zkoss.zul.Treerow; import org.zkoss.zul.Window; public class FormWindowComposer extends SelectorComposer<Component>{ private final static Logger logger = Logger.getLogger(FormWindowComposer.class); @Wire private Tree tree; @Wire Div contentDiv; @Wire Center center; @Wire Window winSalary; private AdvancedTreeModel formWindowTreeModel; protected Tabs tabsIndexCenter; // autowired public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); formWindowTreeModel = new AdvancedTreeModel(new FormWindowList().getRoot()); tree.setItemRenderer(new FormWindowTreeRenderer()); tree.setModel(formWindowTreeModel); } private final class FormWindowTreeRenderer implements TreeitemRenderer<FormWindowTreeNode> { @Override public void render(final Treeitem treeItem, FormWindowTreeNode treeNode, int index) throws Exception { FormWindowTreeNode ctn = treeNode; FormWindow formWindow = (FormWindow) ctn.getData(); Treerow dataRow = new Treerow(); dataRow.setParent(treeItem); treeItem.setValue(ctn); treeItem.setOpen(ctn.isOpen()); if (!isCategory(formWindow)) { // formWindow Row Hlayout hl = new Hlayout(); hl.appendChild(new Label(formWindow.getName())); Treecell treeCell = new Treecell(); treeCell.appendChild(hl); dataRow.appendChild(treeCell); dataRow.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener<Event>() { @Override public void onEvent(Event event) throws Exception { try{ FormWindowTreeNode clickedNodeValue = (FormWindowTreeNode) ((Treeitem) event.getTarget().getParent()).getValue(); String form=((FormWindow) clickedNodeValue.getData()).getName(); checkForm(form); }catch(Exception e){ e.printStackTrace(); } } }); } else { // Category Row dataRow.appendChild(new Treecell(formWindow.getCategory())); } } private boolean isCategory(FormWindow formWindow) { return formWindow.getName() == null; } } private void checkForm(String form) throws InterruptedException{ if(form.equalsIgnoreCase("Salary")){ //this line i face error winSalary.setTitle("Add Data - Salary"); Executions.createComponents("/WEB-INF/zk/master/Salary.zul",contentDiv,null); } } }
i got error
SEVERE: java.lang.NullPointerException at zk.wnd.form.FormWindowComposer.checkForm(FormWindowComposer.java:103) at zk.wnd.form.FormWindowComposer.access$100(FormWindowComposer.java:29) at zk.wnd.form.FormWindowComposer$FormWindowTreeRenderer$1.onEvent(FormWindowComposer.java:80) at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2741) at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2712) at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2653) at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1699) at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1484) at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1201) at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:558) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:456) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:464) at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722)
thanks
Asked: 2012-05-31 07:36:12 +0800
Seen: 126 times
Last updated: May 31 '12