package com.smartgwt.sample.showcase.client.tree.databinding; import com.smartgwt.client.types.TreeModelType; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.tree.Tree; import com.smartgwt.client.widgets.tree.TreeGrid; import com.smartgwt.client.widgets.tree.TreeGridField; import com.smartgwt.client.widgets.tree.TreeNode; import com.smartgwt.sample.showcase.client.PanelFactory; import com.smartgwt.sample.showcase.client.ShowcasePanel; public class ParentLinkingTreeSample extends ShowcasePanel { private static final String DESCRIPTION = "Tree data can be specified as a flat list of nodes that refer to each other by ID. This format is also used for load on demand."; public static final TreeNode[] employeeData = new TreeNode[] { new EmployeeTreeNode("4", "1", "Charles Madigen"), new EmployeeTreeNode("189", "4", "Gene Porter"), new EmployeeTreeNode("265", "189", "Olivier Doucet"), new EmployeeTreeNode("264", "189", "Cheryl Pearson"), new EmployeeTreeNode("188", "4", "Rogine Leger") }; public static class Factory implements PanelFactory { private String id; public Canvas create() { ParentLinkingTreeSample panel = new ParentLinkingTreeSample(); id = panel.getID(); return panel; } public String getID() { return id; } public String getDescription() { return DESCRIPTION; } } public Canvas getViewPanel() { Tree employeeTree = new Tree(); employeeTree.setModelType(TreeModelType.PARENT); employeeTree.setIdField("EmployeeId"); employeeTree.setParentIdField("ReportsTo"); employeeTree.setNameProperty("Name"); employeeTree.setRootValue(1); employeeTree.setData(employeeData); TreeGrid employeeTreeGrid = new TreeGrid(); employeeTreeGrid.setWidth(500); employeeTreeGrid.setHeight(400); employeeTreeGrid.setNodeIcon("icons/16/person.png"); employeeTreeGrid.setFolderIcon("icons/16/person.png"); employeeTreeGrid.setShowOpenIcons(false); employeeTreeGrid.setShowDropIcons(false); employeeTreeGrid.setClosedIconSuffix(""); employeeTreeGrid.setFields(new TreeGridField("Name")); employeeTreeGrid.setData(employeeTree); employeeTreeGrid.getData().openAll(); return employeeTreeGrid; } public static class EmployeeTreeNode extends TreeNode { public EmployeeTreeNode(String employeeId, String reportsTo, String name) { setAttribute("EmployeeId", employeeId); setAttribute("ReportsTo", reportsTo); setAttribute("Name", name); } } public String getIntro() { return DESCRIPTION; } }