-
FEATURED COMPONENTS
First time here? Check out the FAQ!
For those of you developers that need to generate a Tree menu dynamically with a GenericForwardComposer, I would like to share my source code. I hope this helps everyone:
navigation.zul
<?xml version="1.0" encoding="UTF-8"?> <zk xmlns="http://www.zkoss.org/2005/zul" 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"> <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?> <window id="navWin" title="Navigation" width="200px" apply="com.loquatic.cerescan.controller.NavigationController"> <tree id="tree"/> </window> </zk>
NavigationController.java
package com.loquatic.cerescan.controller; import java.util.ArrayList; import java.util.List; import javax.swing.tree.TreeNode; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Sessions; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Menubar; import org.zkoss.zul.Menuitem; import org.zkoss.zul.SimpleTreeModel; import org.zkoss.zul.SimpleTreeNode; import org.zkoss.zul.Tree; import org.zkoss.zul.Treecell; import org.zkoss.zul.Treechildren; import org.zkoss.zul.Treecol; import org.zkoss.zul.Treecols; import org.zkoss.zul.Treeitem; import org.zkoss.zul.TreeitemRenderer; import org.zkoss.zul.Treerow; import com.loquatic.cerescan.api.entities.Patient; import com.loquatic.cerescan.api.entities.SessionInfo; import com.loquatic.cerescan.api.persistence.managers.PatientManager; import com.loquatic.cerescan.controller.patient.EditPatientDemographicsController; public class NavigationController extends GenericForwardComposer { private static Log log = LogFactory.getLog(NavigationController.class); private Tree tree; @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); comp.setAttribute("controller", this); Treechildren child = new Treechildren(); Treeitem dashboardItem = new Treeitem(); Treerow dashboardRow = new Treerow(); Treecell dashboard = new Treecell(); dashboard.setLabel("Dashboard"); dashboard.setParent(dashboardRow); dashboardRow.setParent(dashboardItem); dashboardItem.setParent(child); Treeitem patientItem = new Treeitem(); Treerow patientRow = new Treerow(); Treecell patient = new Treecell(); patient.setLabel("Edit Patient Information"); patient.setParent(patientRow); patientRow.setParent(patientItem); patientItem.setParent(child); Treeitem sessionItem = new Treeitem(); Treerow sessionRow = new Treerow(); Treecell session = new Treecell(); session.setLabel("Patient Sessions"); session.setParent(sessionRow); sessionRow.setParent(sessionItem); sessionItem.setParent(child); Treechildren session1Children = new Treechildren(); Treeitem session1Item = new Treeitem(); Treerow session1Row = new Treerow(); Treecell session1 = new Treecell(); session1.setLabel("Mar 12, 2010"); session1.setParent(session1Row); session1Row.setParent(session1Item); session1Item.setParent(session1Children); session1Children.setParent(sessionItem); Treechildren demographicsChildren = new Treechildren(); Treeitem demographicsItem = new Treeitem(); Treerow demographicsRow = new Treerow(); Treecell demographics = new Treecell(); demographics.setLabel("Demographics"); demographics.setParent(demographicsRow); demographicsRow.setParent(demographicsItem); demographicsItem.setParent(demographicsChildren); demographicsChildren.setParent(session1Item); Treeitem attorneyItem = new Treeitem(); Treerow attorneyRow = new Treerow(); Treecell attorney = new Treecell(); attorney.setLabel("Attorney"); attorney.setParent(attorneyRow); attorneyRow.setParent(attorneyItem); attorneyItem.setParent(demographicsChildren); Treeitem referringPhysicianItem = new Treeitem(); Treerow referringPhysicianRow = new Treerow(); Treecell referringPhysician = new Treecell(); referringPhysician.setLabel("Referring Physician"); referringPhysician.setParent(referringPhysicianRow); referringPhysicianRow.setParent(referringPhysicianItem); referringPhysicianItem.setParent(demographicsChildren); Treeitem additionalTreatmentProvidersItem = new Treeitem(); Treerow additionalTreatmentProvidersRow = new Treerow(); Treecell additionalTreatmentProviders = new Treecell(); additionalTreatmentProviders.setLabel("Treatment Providers"); additionalTreatmentProviders.setParent(additionalTreatmentProvidersRow); additionalTreatmentProvidersRow.setParent(additionalTreatmentProvidersItem); additionalTreatmentProvidersItem.setParent(demographicsChildren); Treeitem newSessionItem = new Treeitem(); Treerow newSessionRow = new Treerow(); Treecell newSession = new Treecell(); newSession.setLabel("Create New Session"); newSession.setParent(newSessionRow); newSessionRow.setParent(newSessionItem); newSessionItem.setParent(session1Children); Treeitem logoutItem = new Treeitem(); Treerow logoutRow = new Treerow(); Treecell logout = new Treecell(); logout.setLabel("Logout"); logout.setParent(logoutRow); logoutRow.setParent(logoutItem); logoutItem.setParent(child); child.setParent(tree); } }
Asked: 2010-03-19 19:43:19 +0800
Seen: 1,369 times
Last updated: Mar 21 '10