01: /*
02: * GWT-Ext Widget Library
03: * Copyright(c) 2007-2008, GWT-Ext.
04: * licensing@gwt-ext.com
05: *
06: * http://www.gwt-ext.com/license
07: */
08: package com.gwtext.client.widgets.tree;
09:
10: import com.google.gwt.core.client.JavaScriptObject;
11: import com.gwtext.client.widgets.Editor;
12: import com.gwtext.client.widgets.form.Field;
13: import com.gwtext.client.util.JavaScriptObjectHelper;
14:
15: /**
16: * A support class that allows you to make the nodes of a TreePanel editable. To do this, create an instance of
17: * TreeEditor passing the TreePanel and the {@link Field} that you'd like to use when the user double clicks on a node to
18: * edit it. For example you can assing a {@link com.gwtext.client.widgets.form.TextField} or {@link com.gwtext.client.widgets.form.ComboBox}.
19: *
20: */
21: public class TreeEditor extends Editor {
22:
23: //http://extjs.com/forum/showthread.php?t=10701&highlight=TreeEditor+selectOnFocus
24:
25: public TreeEditor(TreePanel treePanel) {
26: create(treePanel.getJsObj(), null);
27: }
28:
29: /**
30: * Create an editable tree using the specified Field as the editor.
31: *
32: * @param treePanel the TreePanel
33: * @param field the field
34: */
35: public TreeEditor(TreePanel treePanel, Field field) {
36: create(treePanel.getOrCreateJsObj(), field.getOrCreateJsObj());
37: }
38:
39: protected native JavaScriptObject create(
40: JavaScriptObject treePanel, JavaScriptObject field)/*-{
41: return new $wnd.Ext.tree.TreeEditor(treePanel, field);
42: }-*/;
43:
44: // --- config options ---
45:
46: /**
47: * CSS class to apply to the editor (defaults to "x-small-editor x-tree-editor")
48: *
49: * @param cls the CSS class
50: */
51: public void setCls(String cls) {
52: JavaScriptObjectHelper.setAttribute(config, "cls", cls);
53: }
54:
55: /**
56: * The maximum width in pixels of the editor field (defaults to 250). Note that if the maxWidth would exceed the
57: * containing tree element's size, it will be automatically limited for you to the container width, taking scroll and client offsets into account prior to each edit.
58: *
59: * @param maxWidth the max width
60: */
61: public void setMaxWidth(int maxWidth) {
62: JavaScriptObjectHelper.setAttribute(config, "maxWidth",
63: maxWidth);
64: }
65:
66: /**
67: * The edit delay in milliseconds. Default is 350ms.
68: *
69: * @param editDelay the edit delay
70: */
71: public void setEditDelay(int editDelay) {
72: JavaScriptObjectHelper.setAttribute(config, "editDelay",
73: editDelay);
74: }
75:
76: /**
77: * True to shim the editor if selects/iframes could be displayed beneath it (defaults to false).
78: *
79: * @param shim true to shim
80: */
81: public void setShim(boolean shim) {
82: JavaScriptObjectHelper.setAttribute(config, "shim", shim);
83: }
84: }
|