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.kernel.interfaces;
032:
033: import java.util.*;
034:
035: import de.ug2t.kernel.*;
036: import de.ug2t.unifiedGui.transformer.*;
037:
038: public interface IKeTreeElement extends IKeRegisteredObject {
039:
040: /**
041: * <p>
042: * Sets the property flag of an elements and updates this flag in all parents.
043: * This flag is used internally e.g. for cache implementations
044: * </p>
045: * <p>
046: *
047: * </p>
048: * <p>
049: *
050: * @param xPc
051: * true indicates a change
052: * </p>
053: */
054: public abstract void pcmf_setPropChanged(boolean xPc);
055:
056: /**
057: * <p>
058: * For internal use only
059: * </p>
060: */
061: public abstract void pcmf_setMultipleParents(boolean xMp);
062:
063: /**
064: * <p>
065: * For internal use only
066: * </p>
067: */
068: public abstract boolean pcmf_getMultipleParents();
069:
070: /**
071: * <p>
072: * Gets the property flag of an element.This flag is true if a property is
073: * changed directly or the property of any child had changed
074: * </p>
075: * <p
076: */
077: public abstract boolean pcmf_getPropChanged();
078:
079: /**
080: * <p>
081: * Gets the myProperty flag of an element. This flag is true if a property is
082: * changed directly
083: * </p>
084: * <p
085: */
086: public abstract boolean pcmf_getMyPropChanged();
087:
088: /**
089: * <p>
090: * Sets a default value for this element
091: * </p>
092: * <p>
093: *
094: * </p>
095: * <p>
096: *
097: * @param xObj
098: * default value
099: * </p>
100: */
101: public abstract void pcmf_setDefaultValue(Object xObj);
102:
103: /**
104: * <p>
105: * Unsets a default value for this element
106: * </p>
107: * <p>
108: *
109: * </p>
110: * <p>
111: *
112: * @param xObj
113: * default value
114: * </p>
115: */
116: public abstract void pcmf_unsetDefaultValue();
117:
118: /**
119: * <p>
120: * Returns the default value
121: * </p>
122: * <p>
123: * </p>
124: */
125: public abstract Object pcmf_getDefaultValue();
126:
127: /**
128: * <p>
129: * Resets the elements value to the default value
130: * </p>
131: * <p>
132: *
133: * @return old value
134: * </p>
135: * <p>
136: * </p>
137: */
138: public abstract Object pcmf_reset();
139:
140: /**
141: * <p>
142: * For internal use only
143: * </p>
144: */
145: public abstract Object pcmf_resetRecursive();
146:
147: /**
148: * <p>
149: * Sets the value of an element, while the value is converted to a String
150: * </p>
151: * <p>
152: *
153: * </p>
154: * <p>
155: *
156: * @param xObj
157: * new value
158: * </p>
159: */
160: public abstract void pcmf_setStringValue(Object xObj);
161:
162: /**
163: * <p>
164: * Sets the value of an element
165: * </p>
166: * <p>
167: *
168: * </p>
169: * <p>
170: *
171: * @param xObj
172: * new value
173: * </p>
174: */
175: public abstract void pcmf_setValue(Object xObj);
176:
177: /**
178: * <p>
179: * Sets the name of an element. If an element is inserted in a node, the name
180: * can not be changed
181: * </p>
182: * <p>
183: *
184: * </p>
185: * <p>
186: *
187: * @param xName
188: * new name
189: * </p>
190: */
191: public abstract void pcmf_setName(String xName);
192:
193: /**
194: * <p>
195: * Gets the value of the element
196: * </p>
197: * <p>
198: *
199: * @return value
200: * </p>
201: * <p>
202: * </p>
203: */
204: public abstract Object pcmf_getValue();
205:
206: /**
207: * <p>
208: * Gets the depth of the tree from the root node to this element
209: * </p>
210: * <p>
211: *
212: * @return depth
213: * </p>
214: * <p>
215: * </p>
216: */
217: public abstract int pcmf_getParentNodeCount();
218:
219: /**
220: * <p>
221: * Gets a (parent)node above this node
222: * </p>
223: * <p>
224: *
225: * @return parent node
226: * </p>
227: * <p>
228: * @param xGeneration
229: * generation of the parent - the parent generation 0 the parent of
230: * the parent is generation 1 and so on
231: * </p>
232: */
233: public abstract KeTreeElement pcmf_getParentGeneration(
234: int xGeneration);
235:
236: /**
237: * <p>
238: * Sets a view objects to this element. The view generates a visual
239: * representation of this node
240: * </p>
241: * <p>
242: *
243: * </p>
244: * <p>
245: *
246: * @param xView
247: * view object
248: * </p>
249: */
250: public abstract void pcmf_setView(IKeView xView);
251:
252: /**
253: * <p>
254: * Gets the view of this node
255: * </p>
256: * <p>
257: *
258: * @return view object
259: * </p>
260: * <p>
261: * </p>
262: */
263: public abstract IKeView pcmf_getView();
264:
265: /**
266: * <p>
267: * Produces a view from this node.
268: * </p>
269: */
270: public abstract Object pcmf_execView();
271:
272: /**
273: * <p>
274: * Returns the absolute path of this node
275: * </p>
276: * <p>
277: *
278: * @return path
279: * </p>
280: * <p>
281: * </p>
282: */
283: public abstract String pcmf_getPath();
284:
285: /**
286: * <p>
287: * Gets the parent node of this element. An element can be inserted in more
288: * than one parent node! The parent which has been added last is returned by
289: * this function.
290: * </p>
291: * <p>
292: *
293: * @return parent
294: * </p>
295: * <p>
296: * </p>
297: */
298: public abstract KeTreeNode pcmf_getParentNode();
299:
300: /**
301: * <p>
302: * Gets the last parent node of this element. An element can be inserted in
303: * more than one parent node! The parent which has been added first is
304: * returned by this function.
305: * </p>
306: * <p>
307: *
308: * @return last parent
309: * </p>
310: * <p>
311: * </p>
312: */
313: public abstract KeTreeNode pcmf_getLastParentNode();
314:
315: /**
316: * <p>
317: * Gets the root node of a tree
318: * </p>
319: * <p>
320: *
321: * @return root node
322: * </p>
323: * <p>
324: * </p>
325: */
326: public abstract KeTreeElement pcmf_getRootNode();
327:
328: /**
329: * <p>
330: * Returns 0 because tree_elements can not hold any children
331: * </p>
332: */
333: public abstract int pcmf_getChildCount();
334:
335: /**
336: * <p>
337: * Returns 0 because tree_elements can not hold any children
338: * </p>
339: */
340: public abstract int pcmf_getAllSubCount(boolean xCountHide);
341:
342: /**
343: * <p>
344: * For internal use only
345: * </p>
346: */
347: public abstract void pcmf_releaseSubs();
348:
349: /**
350: * <p>
351: * Gets the name of this element
352: * </p>
353: * <p>
354: *
355: * @return name
356: * </p>
357: * <p>
358: * </p>
359: */
360: public abstract String pcmf_getName();
361:
362: /**
363: * <p>
364: * Returns whether this node is part of the subtree of xNode or not
365: * </p>
366: * <p>
367: *
368: * @return true, false
369: * </p>
370: * <p>
371: * </p>
372: */
373: public abstract boolean pcmf_isChildOf(KeTreeNode xNode);
374:
375: /**
376: * <p>
377: * Returns an iterator over all parent nodes of this element
378: * </p>
379: * <p>
380: *
381: * @return iterator
382: * </p>
383: * <p>
384: * </p>
385: */
386: public abstract Iterator pcmf_getParents();
387:
388: /**
389: * <p>
390: * Disables the element
391: * </p>
392: */
393: public abstract void pcmf_disable();
394:
395: /**
396: * <p>
397: * Enables the element
398: * </p>
399: */
400: public abstract void pcmf_enable();
401:
402: /**
403: * <p>
404: * Disables the element
405: * </p>
406: */
407: public abstract void pcmf_disableThis();
408:
409: /**
410: * <p>
411: * Enables the element
412: * </p>
413: */
414: public abstract void pcmf_enableThis();
415:
416: /**
417: * <p>
418: * Returns the disabled flag of this element
419: * </p>
420: * <p>
421: *
422: * @return disabled flag
423: * </p>
424: * <p>
425: * </p>
426: */
427: public abstract boolean pcmf_isDisabled();
428:
429: /**
430: * <p>
431: * Deletes this object from the registry
432: * </p>
433: */
434: public abstract void pcmf_delete() throws Exception;
435:
436: /**
437: * <p>
438: * Sets a transformer for the toString method. A transformer is responsible
439: * for the transformation of objects. In this case it is used to generate a
440: * string representation of this element
441: * </p>
442: * <p>
443: *
444: * @return old transformer
445: * </p>
446: * <p>
447: * @param xTrans
448: * new transformer
449: * </p>
450: */
451: public abstract IUnTransformer pcmf_setStringTransformer(
452: IUnTransformer xTrans);
453:
454: /**
455: * <p>
456: * Sets a template which may be used by a transformer to generate a String
457: * </p>
458: * <p>
459: *
460: * </p>
461: * <p>
462: *
463: * @param xTpl
464: * string template
465: * </p>
466: */
467: public abstract void pcmf_setTpl(String xTpl);
468:
469: /**
470: * <p>
471: * Resets to the default template
472: * </p>
473: * <p>
474: *
475: * </p>
476: * <p>
477: * </p>
478: */
479: public abstract void pcmf_setTpl();
480:
481: /**
482: * <p>
483: * Sets the ownership of the value. If true a delete of the element deletes
484: * the value as well
485: * </p>
486: * <p>
487: *
488: * </p>
489: * <p>
490: *
491: * @param xOwn
492: * </p>
493: */
494: public abstract void pcmf_setValueOwnerShip(boolean xOwn);
495:
496: /**
497: * <p>
498: * Gets all (parent)node above this node
499: * </p>
500: * <p>
501: *
502: * @return parent nodes
503: * </p>
504: * <p>
505: * </p>
506: */
507: public abstract void pcmf_getAllParentGenerations(ArrayList xToAdd);
508:
509: /**
510: * <p>
511: * Returns a list with all parent nodes of this element
512: * </p>
513: * <p>
514: *
515: * @return iterator
516: * </p>
517: * <p>
518: * </p>
519: */
520: public abstract ArrayList pcmf_getParentsList();
521:
522: /**
523: * <p>
524: * Gets all enabled nodes/elements and includes ths node/element
525: * </p>
526: * <p>
527: *
528: * @param xRes
529: * ArrayList with result
530: * </p>
531: */
532: public abstract void pcmf_getAllEnabled(ArrayList xRes);
533:
534: /**
535: * <p>
536: * Gets all disabled nodes/elements and includes ths node/element
537: * </p>
538: * <p>
539: *
540: * @param xRes
541: * ArrayList with result
542: * </p>
543: */
544: public abstract void pcmf_getAllDisabled(ArrayList xRes);
545:
546: /**
547: * <p>
548: * Adds a property changed listener. This listener is called whenever a
549: * property of the tree element has been change. Derived classes should use
550: * the 'pcmf_setPropChanged(boolean xPc)' method to inform the the super class
551: * about the change!
552: * </p>
553: * <p>
554: *
555: * @param xListen
556: * listener object to add
557: * </p>
558: */
559: public abstract void pcmf_addPropertyChangedListener(
560: IKePropertyChangeListener xListen);
561:
562: /**
563: * <p>
564: * Removes a property changed listener.
565: * </p>
566: * <p>
567: *
568: * @param xListen
569: * listener object to remove
570: * </p>
571: */
572: public abstract void pcmf_removePropertyChangedListener(
573: IKePropertyChangeListener xListen);
574:
575: /**
576: * <p>
577: * Returns the list with all property changed listeners
578: * </p>
579: * <p>
580: *
581: * @return list
582: * </p>
583: */
584: public abstract ArrayList pcmf_getPropertyChangedListeners();
585:
586: /**
587: * <p>
588: * Returns whether a default is set or not
589: * </p>
590: * <p>
591: *
592: * @return true indicates default set, otherwise false
593: * </p>
594: */
595: public abstract boolean pcmf_isDefSet();
596:
597: /**
598: * <p>
599: * Returns whether a parent is disabled or not
600: * </p>
601: * <p>
602: *
603: * @return true indicates disabled, otherwise false
604: * </p>
605: */
606: public abstract boolean pcmf_isParentDisabled();
607:
608: }
|