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 ChildrenArraysTreeSample extends ShowcasePanel { private static final String DESCRIPTION = "Tree data can be specified as a tree of nodes where each node lists its children."; public static final TreeNode employeeRoot = new EmployeeTreeNode("1", "Root", new EmployeeTreeNode("4", "Charles Madigen", new EmployeeTreeNode("188", "Rogine Leger"), new EmployeeTreeNode("189", "Gene Porter", new EmployeeTreeNode("265", "Olivier Doucet"), new EmployeeTreeNode("264", "Cheryl Pearson") ) ) ); public static class Factory implements PanelFactory { private String id; public Canvas create() { ChildrenArraysTreeSample panel = new ChildrenArraysTreeSample(); 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.CHILDREN); employeeTree.setNameProperty("Name"); employeeTree.setChildrenProperty("directReports"); employeeTree.setRoot(employeeRoot); 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 name) { this(employeeId, name, new EmployeeTreeNode[] {}); } public EmployeeTreeNode(String employeeId, String name, EmployeeTreeNode... children) { setAttribute("EmployeeId", employeeId); setAttribute("Name", name); setAttribute("directReports", children); } } public String getIntro() { return DESCRIPTION; } }