/* * Smart GWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * Smart GWT is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. Smart GWT is also * available under typical commercial license terms - see * http://smartclient.com/license * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ import com.smartgwt.client.types.SelectionAppearance; import com.smartgwt.client.types.TreeModelType; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.events.DrawEvent; import com.smartgwt.client.widgets.events.DrawHandler; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.CheckboxItem; import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.tree.Tree; import com.smartgwt.client.widgets.tree.TreeGrid; import com.smartgwt.client.widgets.tree.TreeNode; import com.google.gwt.core.client.EntryPoint; public class CheckboxTreeSample implements EntryPoint { public static final TreeNode[] employeeData = new TreeNode[] { new EmployeeTreeNode("4", "1", "Charles Madigen", "Chief Operating Officer", true), new EmployeeTreeNode("188", "4", "Rogine Leger", "Mgr Syst P P", true), new EmployeeTreeNode("189", "4", "Gene Porter", "Mgr Tech Plng IntIS T", false), new EmployeeTreeNode("265", "189", "Olivier Doucet", "Asset Spec Lines Stns", false), new EmployeeTreeNode("264", "189", "Cheryl Pearson", "Dsl Sys Rep", false) }; public void onModuleLoad() { Tree employeeTree = new Tree(); employeeTree.setModelType(TreeModelType.PARENT); employeeTree.setRootValue(1); employeeTree.setNameProperty("Name"); employeeTree.setIdField("EmployeeId"); employeeTree.setParentIdField("ReportsTo"); employeeTree.setOpenProperty("isOpen"); employeeTree.setData(employeeData); final TreeGrid employeeTreeGrid = new TreeGrid(); employeeTreeGrid.setWidth(200); employeeTreeGrid.setHeight(240); employeeTreeGrid.setNodeIcon("icons/16/person.png"); employeeTreeGrid.setFolderIcon("icons/16/person.png"); employeeTreeGrid.setShowOpenIcons(false); employeeTreeGrid.setShowDropIcons(false); employeeTreeGrid.setClosedIconSuffix(""); employeeTreeGrid.setData(employeeTree); employeeTreeGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX); employeeTreeGrid.setShowSelectedStyle(false); employeeTreeGrid.setShowPartialSelection(true); employeeTreeGrid.setCascadeSelection(true); employeeTreeGrid.addDrawHandler(new DrawHandler() { public void onDraw(DrawEvent event) { employeeTreeGrid.getTree().openAll(); } }); DynamicForm df = new DynamicForm(); final CheckboxItem partialSelection = new CheckboxItem("partialSelect", "Allow Partial Selection"); partialSelection.setDefaultValue(true); partialSelection.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { boolean selected = partialSelection.getValueAsBoolean(); employeeTreeGrid.setShowPartialSelection(!selected); employeeTreeGrid.redraw(); } }); df.setFields(partialSelection); HLayout layout = new HLayout(20); layout.addMember(employeeTreeGrid); layout.addMember(df); layout.draw(); } public static class EmployeeTreeNode extends TreeNode { public EmployeeTreeNode(String employeeId, String reportsTo, String name, String job, boolean isOpen) { setAttribute("EmployeeId", employeeId); setAttribute("ReportsTo", reportsTo); setAttribute("Name", name); setAttribute("Job", job); setAttribute("isOpen", isOpen); } } }