001: // @@
002: // @@
003: /*
004: * Wi.Ser Framework
005: *
006: * Version: 1.8.1, 20-September-2007
007: * Copyright (C) 2005 Dirk von der Weiden <dvdw@imail.de>
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library located in LGPL.txt in the
021: * license directory; if not, write to the
022: * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
023: * Boston, MA 02111-1307, USA.
024: *
025: * If this agreement does not cover your requirements, please contact us
026: * via email to get detailed information about the commercial license
027: * or our service offerings!
028: *
029: */
030: // @@
031: package de.ug2t.unifiedGui.interfaces;
032:
033: import de.ug2t.kernel.*;
034:
035: /**
036: * @author Dirk
037: *
038: * date: 15.03.2004 project: WiSer-Framework
039: *
040: * <p>
041: * IUnTreeView is the common interface to a tree-view-widget. A tree-view
042: * displays a tree-structure of nodes.
043: * </p>
044: */
045: public interface IUnTreeView extends IUnComponent,
046: IUnMultiSelectComponent, IUnScrollController {
047: /**
048: * @author Dirk
049: *
050: * date: 29.05.2007 project: WiSer-Framework
051: *
052: * <p>
053: * Factory is a convenience class to create components of the surrounding interface's type without
054: * taking care for the WidgetServer MultiChannel API. It's use is similar to a
055: * constructor.
056: * </p>
057: */
058: public static class Factory {
059: /**
060: * Creates a standard version of this component as described in the factory.
061: * If you create masses of components for e.g. within a renderer use
062: * <i> create(IUnApplication xAppl)</i> for performance
063: * reasons.
064: *
065: * @return new component
066: */
067: public static IUnTreeView create() {
068: IUnApplication l_appl = (IUnApplication) KeRegisteredObject
069: .pcmf_getObjByName(IUnApplication.MY_APPL);
070: return (l_appl.pcmf_getComponentFactory()
071: .pcmf_createTreeView(l_appl.pcmf_getApplType(), "",
072: null, l_appl));
073: }
074:
075: /**
076: * Creates a special version of this component as described in the factory
077: * configuration under the descriptor xFactoryDesc. If you create masses of
078: * components for e.g. within a renderer use <i>
079: * create(IUnApplication xAppl, String xFactoryDesc)</i> for performance
080: * reasons.
081: *
082: * @param xFactoryDesc
083: * descriptor
084: * @return new component
085: */
086: public static IUnTreeView create(String xFactoryDesc) {
087: IUnApplication l_appl = (IUnApplication) KeRegisteredObject
088: .pcmf_getObjByName(IUnApplication.MY_APPL);
089: return (l_appl.pcmf_getComponentFactory()
090: .pcmf_createTreeViewPlugin(l_appl
091: .pcmf_getApplType(), "", null, l_appl,
092: xFactoryDesc));
093: }
094:
095: /**
096: * Creates a standard version of this component as described in the factory
097: * within the given application-context. If you create masses of components
098: * for e.g. within a renderer use this method for performance reasons.
099: *
100: * @param xAppl
101: * application in which context the component is created
102: * @return new component
103: */
104: public static IUnTreeView create(IUnApplication xAppl) {
105: return (xAppl.pcmf_getComponentFactory()
106: .pcmf_createTreeView(xAppl.pcmf_getApplType(), "",
107: null, xAppl));
108: }
109:
110: /**
111: * Creates a special version of this component as described in the factory
112: * configuration under the descriptor xFactoryDesc. If you create masses of
113: * components for e.g. within a renderer use this function for performance
114: * reasons.
115: *
116: * @param xFactoryDesc
117: * descriptor
118: * @param xAppl
119: * application in which context the component is created
120: * @return new component
121: */
122: public static IUnTreeView create(IUnApplication xAppl,
123: String xFactoryDesc) {
124: return (xAppl.pcmf_getComponentFactory()
125: .pcmf_createTreeViewPlugin(
126: xAppl.pcmf_getApplType(), "", null, xAppl,
127: xFactoryDesc));
128: }
129: }
130:
131: /**
132: * <p>
133: * Sets a new root-node to the tree-view
134: * </p>
135: * <p>
136: *
137: * @return the previous root-node
138: * </p>
139: * <p>
140: * @param xRoot
141: * new root-node
142: * </p>
143: */
144: public KeTreeNode pcmf_setRoot(KeTreeNode xRoot);
145:
146: /**
147: * <p>
148: * Gets the root-node of the tree-view
149: * </p>
150: * <p>
151: *
152: * @return current root-node
153: * </p>
154: * <p>
155: * </p>
156: */
157: public KeTreeNode pcmf_getRoot();
158:
159: /**
160: * <p>
161: * Gets the node which was opened or closed with the last event or null if the
162: * last event was a selection
163: * </p>
164: * <p>
165: *
166: * @return toggled root-node
167: * </p>
168: * <p>
169: * </p>
170: */
171: public KeTreeNode pcmf_getToggled();
172:
173: /**
174: * <p>
175: * Commits the changes of a tree. This function is not needed by every
176: * implementation
177: * </p>
178: * <p>
179: *
180: * </p>
181: * <p>
182: * </p>
183: */
184: public void pcmf_commitTree();
185:
186: /**
187: * <p>
188: * Sets a commit handler which is called each time the tree view is commited
189: * </p>
190: * <p>
191: * @param xHandler
192: * handler
193: * </p>
194: */
195: public void pcmf_setCommitHandler(IKeExecutable xHandler);
196:
197: /**
198: * <p>
199: * Clears teh commit handler
200: * </p>
201: */
202: public void pcmf_clearCommitHandler();
203:
204: /**
205: * <p>
206: * Sets whether the tree is editable or not. This may not work in all channels!
207: * </p>
208: * <p>
209: *
210: * </p>
211: * @param xEditable true|false
212: * <p>
213: * </p>
214: */
215: public void pcmf_setEditable(boolean xEditable);
216: }
|