/* * GWT-Ext Widget Library * Copyright(c) 2007-2008, GWT-Ext. * licensing@gwt-ext.com * * http://www.gwt-ext.com/license */ import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.RootPanel; import com.gwtext.client.core.Connection; import com.gwtext.client.core.Function; import com.gwtext.client.core.Template; import com.gwtext.client.data.SimpleStore; import com.gwtext.client.data.Store; import com.gwtext.client.widgets.Panel; import com.gwtext.client.widgets.Tool; import com.gwtext.client.widgets.form.ComboBox; import com.gwtext.client.widgets.tree.AsyncTreeNode; import com.gwtext.client.widgets.tree.TreeEditor; import com.gwtext.client.widgets.tree.TreePanel; import com.gwtext.client.widgets.tree.XMLTreeLoader; public class EditableTreePanel implements EntryPoint { public void onModuleLoad() { Panel panel = new Panel(); panel.setBorder(false); panel.setPaddings(15); final Store store = new SimpleStore(new String[]{"abbr", "country"}, getCountries()); store.load(); final Template template = new Template("
" + "
" + "{country}
"); ComboBox cb = new ComboBox(); cb.setMinChars(1); cb.setFieldLabel("Countries"); cb.setStore(store); cb.setDisplayField("country"); cb.setMode(ComboBox.LOCAL); cb.setTriggerAction(ComboBox.ALL); cb.setEmptyText("Select Country"); cb.setTypeAhead(true); cb.setSelectOnFocus(true); cb.setWidth(60); cb.setResizable(true); cb.setTpl(template); cb.setTitle("Countries"); cb.setAllowBlank(false); final TreePanel treePanel = new TreePanel(); treePanel.setWidth(240); treePanel.setHeight(400); treePanel.setTitle("Editable Tree"); treePanel.setAnimate(true); treePanel.setEnableDD(true); treePanel.setContainerScroll(true); treePanel.setRootVisible(true); final XMLTreeLoader loader = new XMLTreeLoader(); loader.setDataUrl("data/countries.xml"); loader.setMethod(Connection.GET); loader.setRootTag("countries"); loader.setFolderTitleMapping("@title"); loader.setFolderTag("team"); loader.setLeafTitleMapping("@title"); loader.setLeafTag("country"); loader.setQtipMapping("@qtip"); loader.setDisabledMapping("@disabled"); loader.setCheckedMapping("@checked"); loader.setIconMapping("@icon"); loader.setAttributeMappings(new String[]{"@rank"}); final AsyncTreeNode root = new AsyncTreeNode("Countries", loader); treePanel.setRootNode(root); root.expand(); treePanel.expandAll(); treePanel.addTool(new Tool(Tool.REFRESH, new Function() { public void execute() { treePanel.getEl().mask("Loading", "x-mask-loading"); root.reload(); root.collapse(true, false); Timer timer = new Timer() { public void run() { treePanel.getEl().unmask(); root.expand(true, true); } }; timer.schedule(1000); } }, "Refresh")); TreeEditor treeEditor = new TreeEditor(treePanel, cb); panel = new Panel(); panel.setBorder(false); panel.add(treePanel); RootPanel.get().add(panel); } private Object[][] getCountries() { return new Object[][]{ new Object[]{"au", "Australia", "Canberra", "Australia", new Integer(18090000), new Integer(7713360)}, new Object[]{"br", "Brazil", "Brasilia", "South America", new Integer(170000000), new Integer(8547404)}, new Object[]{"ca", "Canada", "Ottawa", "North America", new Integer(31000000), new Integer(9976140)}, new Object[]{"cn", "China", "Beijing", "Asia", new Integer(1222017000), new Integer(9596960)}, new Object[]{"de", "Germany", "Berlin", "Europe", new Integer(80942000), new Integer(356910)}, new Object[]{"fr", "France", "Paris", "Europe", new Integer(57571000), new Integer(551500)}, new Object[]{"in", "India", "New Delhi", "Asia", new Integer(913747000), new Integer(3287590)}, new Object[]{"sc", "Seychelles", "Victoria", "Africa", new Integer(73000), new Integer(280)}, new Object[]{"us", "United States", "Washington, DC", "North America", new Integer(260513000), new Integer(9372610)}, new Object[]{"jp", "Japan", "Tokyo", "Asia", new Integer(125422000), new Integer(377800)}, new Object[]{"ie", "Italy", "Rome", "Eorope", new Integer(57867000), new Integer(301270)}, new Object[]{"gh", "Ghana", "Accra", "Africa", new Integer(16944000), new Integer(238540)}, new Object[]{"ie", "Iceland", "Reykjavik", "Europe", new Integer(270000), new Integer(103000)}, new Object[]{"fi", "Finland", "Helsinki", "Europe", new Integer(5033000), new Integer(338130)}, new Object[]{"ch", "Switzerland", "Berne", "Europe", new Integer(6910000), new Integer(41290)} }; } }