|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.jsystems.framework.common.Item
de.jsystems.framework.tree.TreeItem
Basisklasse fuer Items die in einem Baum dargestellt werden sollen. Im Baum
wird bei diesen Items nicht der Name eines gesetzten UserObject angezeigt,
sondern der Wert des Attributes Item.getName()
aus dem Item. Deshalb kann ohne den Namen auch kein TreeItem-Objekt erzeugt
werden. Ein UserObject kann hier trotzdem gesetzt werden ueber die Methode
setUserObject(Object)
. Ansonsten enthaelt dieses Item keine weiteren
Attribute, sndern nur noch verschiedene Methoden um einen Baum aufzubauen.
Dazu gehoeren die Methoden zum hinzufuegen oder loeschen eines Items(Knoten) in
einem anderen Item(Knoten).
Objekte dieser Klasse koennen auch in einem normalen JTree
angezeigt werden, da sie das Interface MutableTreeNode
implementieren. Hierbei aber natuerlich unter der Voraussetzung, das Items, die
dieser Klasse hinzugefuegt werden sebst wieder vom Typ TreeItem sind. Das wird
in den entsprechenden Methoden auch abgefragt.
Field Summary | |
protected boolean |
allowsChildren
Sind Kindobjekte für dieses Item erlaubt? |
protected LinkedList |
children
Liste aller Kindobjekte zu diesem Item oder null, wenn keine Kindobjekte erlaubt sind. |
protected TreeItem |
parent
Elternobjekt für dieses Item oder null, wenn es kein Elternobjekt gibt. |
protected Object |
userObject
UserObject für dieses Item |
Fields inherited from class de.jsystems.framework.common.Item |
DISABLE, DISABLE_MUSSFELD, INVISIBLE, INVISIBLE_MUSSFELD, MUSSFELD, STANDARD |
Constructor Summary | |
TreeItem(String name)
Erzeugt ein neues TreeItem-Objekt. |
|
TreeItem(String name,
boolean allowsChildren)
Erzeugt ein neues TreeItem-Objekt. |
|
TreeItem(String name,
Object userObject)
Erzeugt ein neues TreeItem-Objekt. |
|
TreeItem(String name,
Object userObject,
boolean allowsChildren)
Erzeugt ein neues TreeItem-Objekt. |
|
TreeItem(String name,
Object userObject,
boolean allowsChildren,
TreeItem parent)
Erzeugt ein neues TreeItem-Objekt. |
|
TreeItem(String name,
String itemId)
Erzeugt ein neues TreeItem. |
Method Summary | |
Enumeration |
children()
Gibt eine Enumeration mit allen Einträgen diesen Items zurück. |
boolean |
containsRekurChild(TreeNode node)
Durchläuft alle Elemente dieses Items und prüft, ob irgendein Element den übergebenen Knoten enthält. |
boolean |
getAllowsChildren()
Gibt true zurück, wenn dieses Item weitere Einträge erlaubt. |
TreeNode |
getChildAt(int index)
Gibt das Element am uebergebenen Index zurück. |
int |
getChildCount()
Gibt die Anzahl enthaltener Elemente in diesem Item zurück. |
int |
getIndex(TreeNode node)
Gibt den Index des übergebenen Elements zurück. |
TreeNode |
getParent()
Gibt das ELternobjekt für dieses Item zurück. |
TreeNode |
getRoot()
Gibt den Rootknoten zu diesem Item zurück. |
Object |
getUserObject()
Gibt das UserObjekt fuer dieses Item zurück. |
void |
insert(MutableTreeNode child,
int index)
Setzt einen neuen Eintrag für dieses Item. |
boolean |
isLeaf()
Gibt true zurück, wenn dieses Item keine weiteren Einträge enthält. |
boolean |
isNodeAncestor(TreeNode node)
Gibt true zurück, wenn der übergebene Knoten ein Elternobjekt von diesem (oder ein Elternobjekt vom Elternobjekt von diesem TreeItem...) |
boolean |
isNodeChild(TreeNode node)
Gibt true zurück, wenn der übergebene Knoten ein Element von diesem Item ist. |
boolean |
isNodeDescendant(TreeNode node)
Gibt true zurück, wenn der übergebene Knoten ein Kindelement von diesem Item ist. |
boolean |
isNodeRelated(TreeNode node)
Gibt true zurück, wenn der übergebene Knoten sich im selben Baum befindet wie dieses Item. |
boolean |
isRoot()
Gibt true zurück, wenn es sich bei diesem Item um den Root-Knoten handelt. |
void |
remove(int index)
Löscht den Eintrag aus dem Baum am uebergebenen Index. |
void |
remove(MutableTreeNode node)
Loescht das uebergebene Item aus diesem Knoten. |
void |
removeFromParent()
Löscht dieses Item aus seinem Elternknoten. |
void |
setParent(MutableTreeNode parent)
Setzt den Elternknoten für dieses Item. |
void |
setUserObject(Object userObject)
Setzt das UserObjekt fuer dieses Item. |
String |
toString()
Gibt den Namen des Items zurück. |
Methods inherited from class de.jsystems.framework.common.Item |
deepCopy, equals, getItemID, getName, isAttributeEditable, isAttributeMussfeld, isAttributeVisible, registerAttribute, setName |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected Object userObject
protected boolean allowsChildren
protected TreeItem parent
protected LinkedList children
Constructor Detail |
public TreeItem(String name)
setParent(MutableTreeNode)
gesetzt werden.
Der Name darf nicht NULL oder leer sein.
name
- Der Name fuer den Knoten.public TreeItem(String name, boolean allowsChildren)
allowsChildren
festgelegt. Wenn er den Wert
true
hat, sind Kindknoten erlaubt, ansonsten nicht.
Der Knoten hat noch keinen Elternknoten. Dieser kann durch die Methode
setParent(MutableTreeNode)
gesetzt werden.
Der Name darf nicht NULL oder leer sein.
name
- Der Name fuer den Knoten.allowsChildren
- Legt fest, ob Kindknoten fuer diesen Knoten
erlaubt sind oder nicht.public TreeItem(String name, Object userObject)
setParent(MutableTreeNode)
gesetzt werden.
Der Name darf nicht NULL oder leer sein.
name
- Der Name fuer den Knoten.userObject
- Das von diesem Knoten verwaltete UserObject.public TreeItem(String name, Object userObject, boolean allowsChildren)
allowsChildren
festgelegt. Wenn er den Wert
true
hat, sind Kindknoten erlaubt, ansonsten nicht.
Zusaetzlich wird auch schon gleich das UserObject fuer den Knoten
uebergeben. Dieses kann von einem beliebigen Typ sein. Der Knoten
hat noch keinen Elternknoten. Dieser kann durch die Methode
setParent(MutableTreeNode)
gesetzt werden.
Der Name darf nicht NULL oder leer sein.
name
- Der Name fuer den Knoten.userObject
- Das von diesem Knoten verwaltete UserObject.allowsChildren
- Legt fest, ob Kindknoten fuer diesen Knoten
erlaubt sind oder nicht.public TreeItem(String name, Object userObject, boolean allowsChildren, TreeItem parent)
allowsChildren
festgelegt. Wenn er den Wert
true
hat, sind Kindknoten erlaubt, ansonsten nicht.
Zusaetzlich wird auch schon gleich das UserObject fuer den Knoten
uebergeben. Dieses kann von einem beliebigen Typ sein. Der Knoten
bekommt hier gleich seinen Elternknoten uebergeben. Damit befindet
sich dieser Knoten in der Hirarchie des Baumes unterhalb des
uebergebenen Elternknotens. Fuer den Knoten darf aber auch NULL
uebergeben werden. Dann gibt es keinen Elternknoten. Dieser kann
dann durch die Methode setParent(MutableTreeNode)
gesetzt
werden.
Der Name darf nicht NULL oder leer sein.
name
- Der Name fuer den Knoten.userObject
- Das von diesem Knoten verwaltete UserObject.allowsChildren
- Legt fest, ob Kindknoten fuer diesen Knoten
erlaubt sind oder nicht.parent
- Der Elternknoten fuer diesen Knoten.public TreeItem(String name, String itemId)
setParent(MutableTreeNode)
gesetzt werden.
Werder der uebergebene Name noch die ID duerfen NULL oder leer sein.
itemId
- Eine eindeutige ID fuer das Item.name
- Der Name fuer den Knoten.Method Detail |
public boolean isLeaf()
isLeaf
in interface TreeNode
public TreeNode getChildAt(int index)
ArrayIndexOutOfBoundsException
ausgelöst.
Diese Methode geht nicht rekursiv durch alle Objekte. Es werden nur die
Objekte der ersten Ebene beruecksichtigt. Wenn also Kindknoten dieses
Knotens selbst wiederum Kindknoten haben, so werden diese nicht
beruecksichtigt.
getChildAt
in interface TreeNode
index
- Der Index des gesuchten Elements.
ArrayIndexOutOfBoundsException,
- wenn der uebergebene Index kleiner
als 0 oder größer als die Anzahl enthaltener Kindelemente ist.public int getChildCount()
getChildCount
in interface TreeNode
public Enumeration children()
children
in interface TreeNode
public TreeNode getParent()
getParent
in interface TreeNode
public int getIndex(TreeNode node)
getIndex
in interface TreeNode
node
- Der Knoten dessen Index in diesem Knoten ermittelt werden
soll.
public boolean getAllowsChildren()
getAllowsChildren
in interface TreeNode
public void setUserObject(Object userObject)
setUserObject
in interface MutableTreeNode
userObject
- Das UserObject fuer dieses Item.public Object getUserObject()
public void insert(MutableTreeNode child, int index)
this
gesetzt. Wenn
der übergebene Index größer ist als die bisherige Größe der Liste für die
Childrenobjekte, wird der neue Eintrag am Ende eingefügt. Wenn der Index
kleiner als 0 ist, wird er am Anfang eingefügt. Der übergebene Knoten muß
vom Typ TreeItem sein. Der uebergebene Knoten darf kein Elternknoten
dieses Knotens sein.
insert
in interface MutableTreeNode
child
- Der Knoten, der diesem Knoten als Kindknoten hinzugefuegt
werden soll.index
- Der Index, an dem der neue Eintrag erscheinen soll. Wenn der
Index kleiner als 0 oder größer als die bisherige Anzahl an
Einträgen ist, wird er entweder ganz am Anfang oder ganz am
Ende eingefügt.
IllegalArgumentException
- wenn der übergebene EintragTreeItem
ist.IllegalStateException
- wenn dieses Item keine Einträge erlaubt.isNodeDescendant(TreeNode)
public void setParent(MutableTreeNode parent)
TreeItem
sein und darf nicht das Objekt selbst(this) oder
eines seiner Kindobjekte sein, da es sonst zu Kreisreferenzen kommt.
Das wird hier vor dem setzen abgeprüft. Dabei werden die Kindelemente
rekursiv durchsucht. Wenn NULL übergeben wird (der Parent also gelöscht wird),
findet keine Prüfungen statt, da das immer erlaubt ist.
setParent
in interface MutableTreeNode
parent
- Das neue Parentobjekt für dieses Item.public void remove(int index)
ArrayIndexOutOfBoundsException
ausgeloest. Die
Methode geht nicht rekursiv durch die Objekte. Der uebergebene Index
bezieht sich nur auf Kindknoten der ersten Ebene. Wenn der Knoten
ueberhaupt keine Kindknoten enthaelt passiert nichts.
remove
in interface MutableTreeNode
index
- Der Index des zu loeschenden Knotens.public void remove(MutableTreeNode node)
IllegalArgumentException
ausgeloest.
remove
in interface MutableTreeNode
node
- Der aus diesem Knoten zu loeschende Kindknoten.public void removeFromParent()
removeFromParent
in interface MutableTreeNode
public boolean isNodeAncestor(TreeNode node)
node
- Knoten, der geprüft werden soll.
public boolean isNodeDescendant(TreeNode node)
node
- Knoten, der getestet werden soll.
public boolean isNodeRelated(TreeNode node)
this
und
vom übergebenen Knoten verglichen. Der uebergebene Knoten muss vom Typ
TreeItem sein.
node
im gleichen Baum wie dieses Item ist.
Ansonsten, oder wenn NULL übergeben wurde, wird false zurückgegeben.public boolean isNodeChild(TreeNode node)
node
ein Element von diesem Item ist.
Ansonsten, oder wenn NULL übergeben wurde, wird false zurückgegeben.public TreeNode getRoot()
public boolean isRoot()
public boolean containsRekurChild(TreeNode node)
node
- Der zu pruefende Knoten.
public String toString()
toString
in class Item
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |