|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.jsystems.framework.common.BusinessModel
de.jsystems.framework.tree.BusinessTreeModel
Model fuer den BusinessTree
. In diesem
Model werden die Daten fuer den Baum als TreeItem
-Objekte
verwaltet. Die Standardschnittstelle fuer Treemodelle (TreeModel
)
wird von dieser Implementierung unterstuetzt. Damit kann das Model auch an
einem ganz normalen JTree
benutzt werden.
Zusaetzlich wird die Schnittstelle BusinessModel
unterstuetzt, womit die Klasse auch die Erzeugung der verwalteten Items
uebernehmen kann.
Field Summary | |
protected boolean |
askAllowsChildren
Sind Knoten mit Kindeintraegen erlaubt. |
protected EventListenerList |
listenerList
Liste der EventListener. |
protected TreeItem |
root
Wurzelitem des Baumes. |
Fields inherited from class de.jsystems.framework.common.BusinessModel |
DIALOG_ABBRUCH, DIALOG_OK, file, filename, itemclass, itemList, OPEN_DIALOG, pathname, SAVE_DIALOG, saver |
Constructor Summary | |
BusinessTreeModel(Class itemClass,
TreeItem root)
Erzeugt ein neues Model für einen Baum. |
|
BusinessTreeModel(Class itemClass,
TreeItem root,
boolean askAllowsChildren)
Erzeugt einen Baum, bei dem festgelegt ist, ob ein Eintrag selbst weitere Einträge enthalten darf oder nicht. |
Method Summary | |
void |
addItem(Item item)
Ueber diese Methode kann dem Model(bzw. dem Baum) kein neuer Eintrag hinzugefuegt werden. |
void |
addTreeModelListener(TreeModelListener listener)
Fügt der Liste der registrierten Listener einen neuen Listener hinzu. |
boolean |
askAllowsChildren()
Gibt zurück ob Blattknoten unterstützt werden. |
Item |
createNewItem()
Items fuer einen Baum koennen nur ueber die Methoden createNewItem(String) createNewItem(String, boolean) createNewItem(String, Object) createNewItem(String, Object, boolean) erzeugt werden. |
Item |
createNewItem(String name)
Erzeugt ein neues Item für den Baum. |
Item |
createNewItem(String name,
boolean askAllowChildren)
Erzeugt ein neues Item für den Baum. |
Item |
createNewItem(String name,
Object userObject)
Erzeugt ein neues Item für den Baum. |
Item |
createNewItem(String name,
Object userObject,
boolean askAllowChildren)
Erzeugt ein neues Item für den Baum. |
Item |
createNewItem(String name,
String itemId)
Erzeugt ein neues Item für den Baum. |
protected void |
fireTreeNodesChanged(Object source,
Object[] path,
int[] childIndices,
Object[] children)
Feuert einen Event an alle registrierten Listener, die sich für diese Art von Event registriert haben. |
protected void |
fireTreeNodesInserted(Object source,
Object[] path,
int[] childIndices,
Object[] children)
Feuert einen Event an alle registrierten Listener, die sich für diese Art von Event registriert haben. |
protected void |
fireTreeNodesRemoved(Object source,
Object[] path,
int[] childIndices,
Object[] children)
Feuert einen Event an alle registrierten Listener, die sich für diese Art von Event registriert haben. |
protected void |
fireTreeStructureChanged(Object source,
Object[] path,
int[] childIndices,
Object[] children)
Feuert einen Event an alle registrierten Listener, die sich für diese Art von Event registriert haben. |
Object |
getChild(Object parent,
int index)
Gibt das Child-Element im Parent-Knoten am spezifizierten Index zurück. |
int |
getChildCount(Object parent)
Gibt die Anzahl enthaltener Kindknoten des parent-Objektes zurück. |
int |
getIndexOfChild(Object parent,
Object child)
Gibt den Index des Items child im Item parent zurück.
|
Item |
getItem(int index)
Da die Items in einem Baum keine einfache Listenstruktur darstellen, kann ueber diese Methode kein Item aus dem Model gelesen werden. |
ComboBoxModel |
getItemComboBox()
Aus dem Baummodel kann kein ComboBoxModel erzeugt werden. |
int |
getItemCount()
Gibt die Anzahl der Items in diesem Model zurück. |
ListModel |
getItemListBox()
Aus dem Baummodel kann kein ListModel erzeugt werden. |
EventListener[] |
getListeners(Class listenerType)
Gibt ein Array mit allen Listenern des spezifizierten Typs zurück, die sich an diesem Model registriert haben. |
TreeNode[] |
getPathToRoot(TreeNode node)
Füllt ein Array mit allen Knoten bis zum root -Knoten. |
protected TreeNode[] |
getPathToRoot(TreeNode node,
int depth)
Füllt ein Array mit allen Knoten bis zum root -Knoten. |
Object |
getRoot()
Gibt den aktuellen Root-Knoten zurück. |
Item |
getSaveItem(int index)
Holt das zu speichernde Item aus dem Model. |
int |
getSaveItemCount()
Holt die Anzahl zu speichernder Items aus dem Model. |
void |
insertNode(MutableTreeNode newChild)
Fuegt den uebergebenen Knoten dem Rootknoten des Baumes hinzu. |
void |
insertNodeInto(MutableTreeNode newChild,
MutableTreeNode parent)
Fügt einem Knoten im Baum einen neuen Eintrag hinzu. |
void |
insertNodeInto(MutableTreeNode newChild,
MutableTreeNode parent,
int index)
Fügt einem Knoten im Baum einen neuen Eintrag hinzu. |
boolean |
isLeaf(Object node)
Gibt true zurück, wenn es sich bei dem übergebenen Element um ein Blatt im Baum handelt. |
boolean |
isRoot(TreeItem item)
Prüft, ob das übergebene TreeItem der Root-Knoten dieses Baumes ist. |
void |
loadItem(Item item)
Das übergebene Item wird im Model wieder gespeichert. |
void |
nodeChanged(TreeNode node)
Diese Methode sollte aufgerufen werden, nachdem sich ein Knoten im Baum geändert hat. |
void |
nodesChanged(TreeNode node,
int[] childIndices)
Diese Methode sollte nach jeder Änderung an Baumeinträgen aufgerufen werden. |
void |
nodeStructureChanged(TreeNode node)
Wenn sich viel an der Struktur des Baumes geändert hat, sollte diese Methode aufgerufen werden. |
void |
nodesWereInserted(TreeNode node,
int[] childIndices)
Nach dem hinzufügen von neuen Baumelementen sollte diese Methode aufgerufen werden. |
void |
nodesWereRemoved(TreeNode node,
int[] childIndices,
Object[] removedChildren)
Nach dem löschen von Einträgen aus dem Baum sollte diese Methode aufgerufen werden. |
void |
preLoad()
Aus dem Model werden vor dem neu Laden alle Items gelöscht. |
void |
reload()
Diese Methode sollte aufgerufen werden, wenn die Struktur des Baumes geändert wurde. |
void |
reload(TreeNode node)
Nach Änderungen in der Baumstruktur sollte diese Methode aufgerufen werden. |
void |
removeAllItems()
Das loeschen aller Items aus einem TreeModel ist nicht moeglich, da immer zumindest der Root-Knoten vorhandensein muss. |
void |
removeItem(Item item)
Items koennen nicht direkt aus dem Model geloescht werden. |
void |
removeNodeFromParent(MutableTreeNode node)
Löscht den übergebenen Eintrag aus dem Baum. |
void |
removeTreeModelListener(TreeModelListener listener)
Löscht den übergebenen Listener aus der Liste der registrierten Listener. |
void |
setAskAllowsChildren(boolean askAllowsChildren)
Legt fest, ob Einträge generell wiederum Einträge enthalten dürfen oder nicht. |
void |
setRoot(TreeItem root)
Setzt einen neuen Root-Knoten für den Baum. |
void |
updateItem(Item item)
Items koennen in einem Tree nicht ueber diese Methode geaendert werden. |
void |
valueForPathChanged(TreePath path,
Object value)
Setzt das UserObject für einen Baumeintrag. |
Methods inherited from class de.jsystems.framework.common.BusinessModel |
load, save_as, save, setSaver, showFileDialogBox |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected TreeItem root
protected EventListenerList listenerList
protected boolean askAllowsChildren
Constructor Detail |
public BusinessTreeModel(Class itemClass, TreeItem root)
NULL
übergeben wird, wird eine
IllegalArgumentException
ausgelöst.
Der Typ des Items und der Typ der uebergebenen Klasse muessen
gleich sein.
itemClass
- Der Typ der Items die von diesem Model verwaltet werden
sollen.root
- Ein TreeItem, das gleichzeitig die Wurzel des Baumes ist.public BusinessTreeModel(Class itemClass, TreeItem root, boolean askAllowsChildren)
NULL
übergeben wird, wird eine
IllegalArgumentException
ausgelöst.
Der Typ des Items und der Typ der uebergebenen Klasse muessen
gleich sein.
itemClass
- Der Typ der Items die von diesem Model verwaltet werden
sollen.root
- Ein TreeItem, das gleichzeitig die Wurzel des Baumes ist.askAllowsChildren
- Mit diesem boolschen Wert wird festgelegt, ob ein
Eintrag selbst wiederum Einträge enthalten darf.
Wird false
übergeben, darf jeder
Eintrag selbst wiederum Einträge enthalten.
Ansonsten wird das Item selbst gefragt, ob es
Kindeinträge enthalten kann.TreeItem.allowsChildren
Method Detail |
public void setAskAllowsChildren(boolean askAllowsChildren)
TreeItem.getAllowsChildren()
oder TreeItem.isLeaf()
des TreeItems
abgefragt. Wenn hier true
uebergeben wird, wird die Methode
askAllowsChildren()
aufgerufen, ansonsten isLeaf(Object)
.
askAllowsChildren
- Mit diesem boolschen Wert wird gestgelegt, ob ein
Eintrag selbst wiederum Einträge enthalten darf.
Wird false übergeben, darf jeder Eintrag selbst
wiederum Einträge enthalten. Ansonsten wird das
Item selbst gefragt, ob es Kindeinträge enthalten
kann.TreeItem.allowsChildren
public boolean askAllowsChildren()
public void setRoot(TreeItem root)
null
übergeben wird, wird eine
IllegalArgumentException
ausgelöst.
Alle registrierten Listener werden benachrichtigt, das sich die Struktur
des Baumes geaendert hat.
root
- Der neue Root-Knoten fuer den Baum.public Object getRoot()
getRoot
in interface TreeModel
public boolean isRoot(TreeItem item)
item
- Der zu prüfende Knoten.
true
, wenn der übergebene Knoten die gleiche ID
hat wie der Root-Knoten.public int getIndexOfChild(Object parent, Object child)
child
im Item parent
zurück.
Wenn die beiden Parameter nicht vom Typ TreeItem
sind, wird eine IllegalArgumentException
ausgeloest.
getIndexOfChild
in interface TreeModel
parent
- Das Knotenobjekt, in dem der Index des child-Objektes gesucht wird.child
- Das child-Objekt, dessen Index im parent-Objekt gesucht wird.
null
ist oder der Child-Knoten kein child des Parent-Knotens
ist.public Object getChild(Object parent, int index)
TreeItem
ist, wird eine
IllegalArgumentException
ausgeloest.
getChild
in interface TreeModel
parent
- Ein Knoten im Baum.index
- Index für ein Child-Element im Knoten.
index
im Knoten parent
.public int getChildCount(Object parent)
TreeItem
ist, wird eine
IllegalArgumentException
ausgeloest.
getChildCount
in interface TreeModel
parent
- Ein Knoten im Baum.
public boolean isLeaf(Object node)
askAllowsChildren
im TreeItem bzw. im Model.
Wenn das uebergebene Parent-Objekt nicht vom Typ
TreeItem
ist, wird eine
IllegalArgumentException
ausgeloest.
isLeaf
in interface TreeModel
node
- Der zu prüfende Baumeintrag.
askAllowsChildren
,
TreeModel.isLeaf(java.lang.Object)
public void reload()
public void valueForPathChanged(TreePath path, Object value)
TreeItem
sein.
valueForPathChanged
in interface TreeModel
path
- Pfad zu dem Baumeintrag, dessen UserObject geändert werden soll.value
- Das neue UserObject für den Baumeintrag.public void insertNode(MutableTreeNode newChild)
TreeItem
sein.
newChild
- Der dem Rootknoten hinzuzufuegende Knoten.public void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent)
TreeItem
sein.
newChild
- Ein neuer Eintrag im Baum.parent
- Der Knoten im Baum, der einen neuen Eintrag erhält.public void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
index
eingefügt. Nach dem hinzufügen werden alle registrierten
Listener benachrichtigt. Die beiden uebergebenen Objekte muessen dabei vom
Typ TreeItem
sein.
newChild
- Ein neuer Eintrag im Baum.parent
- Der Knoten im Baum, der einen neuen Eintrag erhält.index
- Index im Parentobjekt, an dem der neue Eintrag stehen soll.public void removeNodeFromParent(MutableTreeNode node)
IllegalArgumentException
ausgeloest. Ebenso wird eine IllegalArgumentException
ausgeloest wenn der uebergebene Knoten kein Elterobjekt hat.
Das kann eigentlich auch nur beim Root-Knoten der Fall sein.
Der uebergebene Knoten muss vom Typ
TreeItem
sein.
node
- Der zu löschende Eintrag im Baum.public void nodeChanged(TreeNode node)
node
- Der geänderte Knoten im Baum.public void reload(TreeNode node)
node
- Der Knoten, ab dem sich die Baumstruktur geändert hat.public void nodesWereInserted(TreeNode node, int[] childIndices)
childIndices
enthält alle Indizes der hinzugefügten
Elemente. Diese müssen in aufsteigender Reihenfolge im Array sortiert sein.
node
ist der Knoten, der neue Elemente erhalten hat.
node
- Der Knoten, der neue Elemente erhalten hat.childIndices
- Enthält alle Indizes der hinzugefügten Elemente. Diese
müssen in aufsteigender Reihenfolge im Array sortiert
sein.public void nodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren)
childIndices
enthält die Indizes der gelöschten Elemente
und muß aufsteigend sortiert sein. removedChildren
ist ein Array
mit den gelöschten Baumeinträgen.
node
- Der Elternknoten, aus dem Elemente gelöscht wurden.childIndices
- Enthält die Indizes der gelöschten Elemente und muß
aufsteigend sortiert sein.removedChildren
- Ein Array mit den gelöschten Baumeinträgen.public void nodesChanged(TreeNode node, int[] childIndices)
node
- Der Elternknoten, dessen Kindknoten sich geändert haben.childIndices
- Ein Array mit allen Indizes der geänderten
Kindeinträge zu dem Knoten node
.public void nodeStructureChanged(TreeNode node)
TreeStructureChanged
-Event ausgelöst.
node
- Der Knoten, dessen Struktur sich geändert hat.public TreeNode[] getPathToRoot(TreeNode node)
root
-Knoten. Dabei
ist der übergebene Knoten der letzte im Array. Der erste ist der
Root-Knoten des Baumes. Die Länge des Arrays entspricht der Tiefe des
übergebenen Knoten im Baum.
node
- Knoten im Baum, dessen Pfad zum Rootknoten ermittelt werden
soll.
root
-Knoten. Dabei
ist der übergebene Knoten der letzte im Array. Der erste ist der
Root-Knoten des Baumes.protected TreeNode[] getPathToRoot(TreeNode node, int depth)
root
-Knoten. Dabei
ist der übergebene Knoten der letzte im Array. Der erste ist der
Root-Knoten des Baumes. Die Länge des Arrays entspricht der Tiefe des
übergebenen Knoten im Baum. Die Methode wird dabei rekursiv aufgerufen,
bis der Root-Eintrag des Baumes gefunden wurde. Dann ist die Länge des
Pfades bekannt und es kann ein Array in der gewünschten Größe erzeugt
werden. Beim zurücklaufen der Rekursion wird dieses Array dann gefüllt.
node
- Der Knoten im Baum, dessen Pfad zum Rootknoten ermittelt
werden soll.depth
- Ein Zähler mit der aktuellen Tiefe des Eintrages. Dieser
Zähler wird bei der Rekusion hochgesetzt.
root
-Knoten.
Dabei ist der übergebene Knoten der letzte im Array. Der erste
ist der Root-Knoten des Baumes.public void addTreeModelListener(TreeModelListener listener)
addTreeModelListener
in interface TreeModel
listener
- Der hinzuzufügende Listener.public void removeTreeModelListener(TreeModelListener listener)
removeTreeModelListener
in interface TreeModel
listener
- Der zu löschende Listener.protected void fireTreeNodesChanged(Object source, Object[] path, int[] childIndices, Object[] children)
source
- Die Stelle, an der das Event ausgelöst wurde.path
- Der Pfad des Knotens im Baum, an dem sich was geändert hat.childIndices
- Ein Array mit Indizes von Einträgen, die sich geändert
haben. Die Indizes beziehen sich dabei auf das
Elternobjekt, das mit dem übergebenem Pfad spezifiziert
wurde.children
- Ein Array mit Elementen, an denen sich was geändert hat.protected void fireTreeNodesInserted(Object source, Object[] path, int[] childIndices, Object[] children)
source
- Die Stelle, an der das Event ausgelöst wurde.path
- Der Pfad des Knotens im Baum, an dem sich was geändert hat.childIndices
- Ein Array mit Indizes von Einträgen, die sich geändert
haben. Die Indizes beziehen sich dabei auf das
Elternobjekt, das mit dem übergebenem Pfad spezifiziert
wurde.children
- Ein Array mit Elementen, an denen sich was geändert hat.protected void fireTreeNodesRemoved(Object source, Object[] path, int[] childIndices, Object[] children)
source
- Die Stelle, an der das Event ausgelöst wurde.path
- Der Pfad des Knotens im Baum, an dem sich was geändert hat.childIndices
- Ein Array mit Indizes von Einträgen, die sich geändert
haben. Die Indizes beziehen sich dabei auf das
Elternobjekt, das mit dem übergebenem Pfad spezifiziert
wurde.children
- Ein Array mit Elementen, an denen sich was geändert hat.protected void fireTreeStructureChanged(Object source, Object[] path, int[] childIndices, Object[] children)
source
- Die Stelle, an der das Event ausgelöst wurde.path
- Der Pfad des Knotens im Baum, an dem sich was geändert hat.childIndices
- Ein Array mit Indizes von Einträgen, die sich geändert
haben. Die Indizes beziehen sich dabei auf das
Elternobjekt, das mit dem übergebenem Pfad spezifiziert
wurde.children
- Ein Array mit Elementen, an denen sich was geändert hat.public EventListener[] getListeners(Class listenerType)
listenerType
- Typ des EventListeners.
public int getItemCount()
getItemCount
in class BusinessModel
public Item createNewItem(String name) throws ItemInstantiateException
createNewItem
in interface IBusinessModelSave
createNewItem
in class BusinessModel
name
- Der Name für den Knoten.
ItemInstantiateException
- wenn beim erzeugen des Items ein Fehler
auftritt.public Item createNewItem(String name, Object userObject) throws ItemInstantiateException
name
- Der Name für den neuen Knoten.userObject
- Ein vom Knoten verwaltetes Object.
ItemInstantiateException
- wenn beim erzeugen des Items ein Fehler
auftritt.public Item createNewItem(String name, boolean askAllowChildren) throws ItemInstantiateException
askAllowChildren
festgelegt.
name
- Der Name für den neuen Knoten.askAllowChildren
- true
, wenn dieser Knoten Kindknoten
enthalten darf.
ItemInstantiateException
- wenn beim erzeugen des Items ein Fehler
auftritt.public Item createNewItem(String name, Object userObject, boolean askAllowChildren) throws ItemInstantiateException
askAllowChildren
festgelegt.
name
- Der Name für den neuen Knoten.userObject
- Ein vom Knoten verwaltetes Object.askAllowChildren
- true
, wenn dieser Knoten Kindknoten
enthalten darf.
ItemInstantiateException
- wenn beim erzeugen des Items ein Fehler
auftritt.public Item createNewItem(String name, String itemId) throws ItemInstantiateException
createNewItem
in class BusinessModel
name
- Der Name für den neuen Knoten.itemId
- Eine eindeutige ID fuer dieses Item.
ItemInstantiateException
- wenn beim erzeugen des Items ein Fehler
auftritt.public int getSaveItemCount()
getSaveItemCount
in interface IBusinessModelSave
getSaveItemCount
in class BusinessModel
Saver
,
BusinessModel.setSaver(Saver)
,
getSaveItem(int)
public Item getSaveItem(int index)
getSaveItem
in interface IBusinessModelSave
getSaveItem
in class BusinessModel
index
- Der Index des zu speichernden Items.
Saver
,
BusinessModel.setSaver(Saver)
public void loadItem(Item item)
TreeItem
ist, wird eine IllegalArgumentException
ausgeloest.
loadItem
in interface IBusinessModelSave
loadItem
in class BusinessModel
item
- Ein dem Model hinzuzufügendes Item. Muss hier der
Root-Knoten des Baumes sein.public void preLoad()
preLoad
in interface IBusinessModelSave
preLoad
in class BusinessModel
public final ComboBoxModel getItemComboBox()
NULL
zurueck.
getItemComboBox
in class BusinessModel
public final ListModel getItemListBox()
NULL
zurueck.
getItemListBox
in class BusinessModel
public Item createNewItem()
createNewItem(String)
createNewItem(String, boolean)
createNewItem(String, Object)
createNewItem(String, Object, boolean)
Bei Aufruf dieser Methode wird eine
UnsupportedOperationException
ausgeloest.
createNewItem
in class BusinessModel
UnsupportedOperationException,
- da ein Aufruf dieser Methode nicht
erlaubt ist.public Item getItem(int index)
Bei Aufruf dieser Methode wird eine
UnsupportedOperationException
ausgeloest.
getItem
in class BusinessModel
index
- Der Index des auszulesenden Items.
UnsupportedOperationException,
- da ein Aufruf dieser Methode nicht
erlaubt ist.public void updateItem(Item item)
updateItem
in class BusinessModel
item
- Das zu aendernde Item.
UnsupportedOperationException,
- da ein Aufruf dieser Methode nicht
erlaubt ist.Item.getItemID()
public void removeAllItems()
setRoot(TreeItem)
ein neuer Root-Knoten gesetzt werden,
der keine Eintraege enthaelt.
Bei Aufruf dieser Methode wird eine
UnsupportedOperationException
ausgeloest.
removeAllItems
in class BusinessModel
UnsupportedOperationException,
- da ein Aufruf dieser Methode nicht
erlaubt ist.public void removeItem(Item item)
Bei Aufruf dieser Methode wird eine
UnsupportedOperationException
ausgeloest.
removeItem
in class BusinessModel
item
- Das zu loeschende Item.
UnsupportedOperationException,
- da ein Aufruf dieser Methode nicht
erlaubt ist.TreeItem.remove(int)
,
TreeItem.remove(MutableTreeNode)
,
TreeItem.removeFromParent()
public void addItem(Item item)
insertNodeInto(MutableTreeNode, MutableTreeNode)
oder insertNodeInto(MutableTreeNode, MutableTreeNode, int)
Bei Aufruf dieser Methode wird eine
UnsupportedOperationException
ausgeloest.
addItem
in class BusinessModel
item
- Das dem Model hinzuzufuegende Item.
UnsupportedOperationException,
- da ein Aufruf dieser Methode nicht
erlaubt ist.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |