de.guibuilder.framework
Class GuiTreeNode

java.lang.Object
  extended by javax.swing.tree.DefaultMutableTreeNode
      extended by de.guibuilder.framework.GuiTreeNode
All Implemented Interfaces:
IDatasetComponent, IDatasetMember, MemberAble, MemberPopupAble, java.awt.datatransfer.Transferable, java.io.Serializable, java.lang.Cloneable, javax.swing.tree.MutableTreeNode, javax.swing.tree.TreeNode

public final class GuiTreeNode
extends javax.swing.tree.DefaultMutableTreeNode
implements MemberPopupAble, IDatasetComponent, java.awt.datatransfer.Transferable

Implementierung eines Knotens in einer Baum-Komponente.

Dem Knoten kann für das Navigator-Pattern eine relative URL auf eine gültige Gui-Spezifikations zugewiesen werden.
setFileName(java.lang.String)
Dort darf nur ein Child Container spezifiziert werden (also zumeist ein Panel).
GuiFactory.createPanel(java.lang.String, de.guibuilder.framework.GuiWindow)
Die Tree-Komponente hält Referenzen auf alle Panels der Knoten.
Der Knoten selbst hält die jeweiligen Werte zu seinem Panel.
getAllValuesXml()

Wechselt der Benutzer von einem Knoten zum anderen, so werden diese Werte dem Panel jeweils zugewiesen. GuiTree.valueChanged(javax.swing.tree.TreePath)

Die vom Knoten gehaltenen Werte können mit getValue(java.lang.String)und setValue(java.lang.String, java.lang.Object) ausgelesen und geändert werden.

See Also:
Serialized Form

Field Summary
static java.awt.datatransfer.DataFlavor GUI_TREENODE_FLAVOR
           
 
Fields inherited from class javax.swing.tree.DefaultMutableTreeNode
EMPTY_ENUMERATION
 
Constructor Summary
GuiTreeNode(java.lang.String title)
          Erzeugt einen neuen Ast für einen Baum.
GuiTreeNode(java.lang.String title, java.lang.String name)
          Erzeugt einen neuen Knoten mit einer Beschriftung und einem davon abweichenden Namen.
GuiTreeNode(java.lang.String title, java.lang.String name, java.lang.String guiTreeElementName)
          Erzeugt einen neuen Knoten mit einer Beschriftung, einem davon abweichenden Namen und definiert den KnotenTyp (Name eine GuiTreeElements).
 
Method Summary
 void add(GuiTreeNode node)
          Fügt einen GuiTreeNode als Child Node an letzer Position hinzu.
 void commitChanges()
          Teilt der Komponente mit, dass die Benutzereingaben erfolgreich (vom Persistenz-Layer) verarbeitet wurden.
 void createMandatoryChildNodes()
          Erzeugt die zwingenden ChildNodes.
 electric.xml.Document getAllValuesXml()
          Liefert die vom Knoten gehaltenen Werte aus den Benutzereigaben, die zwischen dem Knoten und seinem Panel hin und hergeschaufelt werden.
 java.awt.Component getAwtComponent()
          Not Implemented
 GuiTreeNode getChildByName(java.lang.String _name)
          Liefert einen Tochterknoten (sowie Enkel usw.) unter Angabe seines Namens oder null wenn nix zu finden.
 java.util.Iterator getChildNodes()
          Liefert einen Iterator über die ChildNodes.
 java.lang.Object getController()
          Rekursive Suche nach einem Controller
 void getDatasetValues(JDataSet ds)
          Füllt das angegebene JDataSet mit den Inhalten der Komponente (Oberfläche).
 java.lang.String getElementName()
          Liefert den ElementNamen dieser Komponente im JDataSet.
 java.lang.String getElementPath(java.lang.String current)
          Liefert rekursiv den Path zum Element des DataSet
 java.lang.String getFileName()
          Liefert den Dateiname der zu diesem Knoten gehörenden GUI-Spezifikation.
 java.util.Vector<java.lang.Object> getFiles()
           
 GuiTreeNode getGuiParentNode()
          DefaultMutableTreeNode mit cast
 java.lang.String getGuiPath()
          Liefert den Pfad dieses Knotens in Punkt-Notation: "root.myFolder.myNode"
Es wird der Name des Knotens verwendet;
 GuiTreeElement getGuiTreeElement()
           
 java.lang.String getGuiTreeElementName()
           
 java.lang.String getIconName()
           
 java.lang.String getMsgNodeClick()
          Rekursive Suche nach einem ActionCommand
 java.lang.String getMsgPopup()
           
 GuiTree getMyTree()
          Liefert die Tree-Komponete, zu dem dieser Knoten gehört.
 java.lang.String getName()
          Name der Komponente.
 long getOid()
          Liefert die Oid.
 GuiPanel getPanel()
          Liefert die diesem Knoten zugeordnete Oberflächenkomponente.
 GuiPopupMenu getPopupMenu()
          Liefert das PopupMenu zu diesem Member oder null.
 java.util.Vector<java.lang.Object> getPossibleChildNodeNames()
          Liefert einen Vector von erzeugbaren ChildNodes.
 java.lang.String getTag()
          Liefert den XML-Element-Tag der Komponente ("Form", "Text", "Panel", ...).
 java.lang.String getTitle()
          Liefert die Beschriftung des Knotens in der Oberfläche.
 java.lang.Object getTransferData(java.awt.datatransfer.DataFlavor flavor)
           
 java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()
           
 java.lang.Object getUserObject2()
          Nicht zu verwechseln mit DefaultMutableTreeNode.getUserObject
 java.lang.String getValue(java.lang.String xpath)
          Liefert den Wert einer Komponente unter Angabe ihres Namens (auch mit Punkt-Notation).
 GuiTreeNode guiClone()
          Clont diesen TreeNode z.B. für copy-paste.
 boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
           
 boolean isInserted()
           
 boolean isRootElement()
          Gibt an, dass dieses GuiTreeNode kein rootElement ist.
 void remove(GuiTreeNode child)
          Löscht den angegebenen ChildNode
 void setAllValuesXml(electric.xml.Document doc)
           
 void setAllValuesXml(electric.xml.Element ele)
          Das Element wird geclont
 void setController(java.lang.Object o)
           
 void setDatasetValues(JDataSet ds)
          Setzt den Inhalt der Komponente auf den Inhalt des Models der über getElementPath erreichbar ist.
 void setElementName(java.lang.String name)
          Setzt den ElementNamen dieser Komponente im JDataSet.
 void setFileName(java.lang.String f)
          Setzt den Dateiname der zu diesem Knoten gehörenden GUI-Spezifikation.
 void setFiles(java.lang.String[] s)
          Setzt die Menge der Gui-Spezifikationen, die für diesen Folder erlaubt sind.
 void setFiles(java.util.Vector<java.lang.Object> v)
          Setzt die Menge der Gui-Spezifikationen, die für diesen Folder erlaubt sind.
 void setGuiDocumnet(electric.xml.Document doc)
          Setzt das XML-Dokument der zu diesem Knoten gehörenden GUI-Spezifikation.
 void setGuiTreeElementName(java.lang.String name)
          Setzt den Namen des TreeElements
 void setIconName(java.lang.String name)
           
 void setInserted(boolean inserted)
          Sets the inserted.
 void setMsgNodeClick(java.lang.String s)
          Setzt das ActionCommand, daß bei der Selection eines anderen Knotens geliefert wird.
 void setMsgPopup(java.lang.String msgPopup)
           
 void setName(java.lang.String name)
          Die Namen der Schwester-Nodes müssen eindeutig sein, wenn später auf sie gezielt zugegriffen werden soll.
 void setOid(long id)
          Setzt die beliebige Oid.
 void setPopupMenu(GuiPopupMenu menu)
          Setzt das PopupMenu der Komponente.
 void setTitle(java.lang.String title)
          Setzt die Beschriftung des Knotens neu.
 void setTitle(java.lang.String title, int index)
          Setzt die Beschriftung des Nodes an dem angegebenen Index neu.
 void setUserObject2(java.lang.Object o)
          Setzt ein beliebiges UserObject.
 void setValue(java.lang.String xpath, java.lang.Object value)
          Setzt den Wert einer Komponente unter Angabe ihres Namens (auch mit Punkt-Notation).
 void showPopupMenu(int x, int y)
          Zeigt das PopupMenu an.
 
Methods inherited from class javax.swing.tree.DefaultMutableTreeNode
add, breadthFirstEnumeration, children, clone, depthFirstEnumeration, getAllowsChildren, getChildAfter, getChildAt, getChildBefore, getChildCount, getDepth, getFirstChild, getFirstLeaf, getIndex, getLastChild, getLastLeaf, getLeafCount, getLevel, getNextLeaf, getNextNode, getNextSibling, getParent, getPath, getPreviousLeaf, getPreviousNode, getPreviousSibling, getRoot, getSharedAncestor, getSiblingCount, getUserObject, getUserObjectPath, insert, isLeaf, isNodeAncestor, isNodeChild, isNodeDescendant, isNodeRelated, isNodeSibling, isRoot, pathFromAncestorEnumeration, postorderEnumeration, preorderEnumeration, remove, remove, removeAllChildren, removeFromParent, setAllowsChildren, setParent, setUserObject, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

GUI_TREENODE_FLAVOR

public static final java.awt.datatransfer.DataFlavor GUI_TREENODE_FLAVOR
Constructor Detail

GuiTreeNode

public GuiTreeNode(java.lang.String title)
Erzeugt einen neuen Ast für einen Baum.

Parameters:
title - Beschriftung des Knotens; wird gleichzeitig als Name und ElementName verwendet.

GuiTreeNode

public GuiTreeNode(java.lang.String title,
                   java.lang.String name)
Erzeugt einen neuen Knoten mit einer Beschriftung und einem davon abweichenden Namen.

Parameters:
title - Beschriftung des Knotens
name - Name des Knotens; wird gleichzeitig als Element verwendet.

GuiTreeNode

public GuiTreeNode(java.lang.String title,
                   java.lang.String name,
                   java.lang.String guiTreeElementName)
Erzeugt einen neuen Knoten mit einer Beschriftung, einem davon abweichenden Namen und definiert den KnotenTyp (Name eine GuiTreeElements).

Parameters:
title - Beschriftung des Knotens
name - Name des Knotens
element - Name des GuiTreeElements
Method Detail

add

public void add(GuiTreeNode node)
Fügt einen GuiTreeNode als Child Node an letzer Position hinzu. Im Unterschied zu add von DefaultMutableTreeNode wird bei dieser Method der neue Node auch gleich angezeigt.


remove

public void remove(GuiTreeNode child)
Löscht den angegebenen ChildNode

Parameters:
child -

getTag

public final java.lang.String getTag()
Description copied from interface: MemberAble
Liefert den XML-Element-Tag der Komponente ("Form", "Text", "Panel", ...).

Specified by:
getTag in interface MemberAble

getGuiTreeElementName

public final java.lang.String getGuiTreeElementName()

getGuiTreeElement

public final GuiTreeElement getGuiTreeElement()

setGuiTreeElementName

public final void setGuiTreeElementName(java.lang.String name)
Setzt den Namen des TreeElements

See Also:
GuiTreeElement

setElementName

public void setElementName(java.lang.String name)
Description copied from interface: IDatasetMember
Setzt den ElementNamen dieser Komponente im JDataSet. Da hieraus Path-Ausdrücke gebildet werden muß dieser Name mit einem ".", "#" oder "@" beginnen. Wenn "*" angegeben wird, wird der Name der Komponente verwendet.

Specified by:
setElementName in interface IDatasetMember
See Also:
JDataSet

getElementName

public java.lang.String getElementName()
Description copied from interface: IDatasetMember
Liefert den ElementNamen dieser Komponente im JDataSet. Da hieraus Path-Ausdrücke gebildet werden muß dieser Name mit einem ".", "#" oder "@" beginnen.

Specified by:
getElementName in interface IDatasetMember
See Also:
JDataSet

getElementPath

public java.lang.String getElementPath(java.lang.String current)
Liefert rekursiv den Path zum Element des DataSet

Specified by:
getElementPath in interface IDatasetMember

getDatasetValues

public final void getDatasetValues(JDataSet ds)
Description copied from interface: IDatasetComponent
Füllt das angegebene JDataSet mit den Inhalten der Komponente (Oberfläche).
Get the JDataSet from the component.

Specified by:
getDatasetValues in interface IDatasetComponent

setDatasetValues

public final void setDatasetValues(JDataSet ds)
Setzt den Inhalt der Komponente auf den Inhalt des Models der über getElementPath erreichbar ist. Wird von GuiTable und GuiTree überschrieben. Voraussetzung ist, daß ein Attribut "element" spezifiziert ist.

Specified by:
setDatasetValues in interface IDatasetComponent

commitChanges

public void commitChanges()
Description copied from interface: IDatasetComponent
Teilt der Komponente mit, dass die Benutzereingaben erfolgreich (vom Persistenz-Layer) verarbeitet wurden.

Zumeist wird die Eigenschaft "modified" nur auf "false" gesetzt.


Tell the component to commit all its changes (i.g. only the field modified changes to false).

Specified by:
commitChanges in interface IDatasetComponent

getIconName

public java.lang.String getIconName()

setIconName

public void setIconName(java.lang.String name)

setController

public final void setController(java.lang.Object o)

getController

public final java.lang.Object getController()
Rekursive Suche nach einem Controller


setMsgNodeClick

public final void setMsgNodeClick(java.lang.String s)
Setzt das ActionCommand, daß bei der Selection eines anderen Knotens geliefert wird.


getMsgNodeClick

public final java.lang.String getMsgNodeClick()
Rekursive Suche nach einem ActionCommand


createMandatoryChildNodes

public final void createMandatoryChildNodes()
Erzeugt die zwingenden ChildNodes.

Voraussetzungen:


getPossibleChildNodeNames

public java.util.Vector<java.lang.Object> getPossibleChildNodeNames()
Liefert einen Vector von erzeugbaren ChildNodes.

Es werden die ElementNamen weggelassen, die die Eigenschaft typ='n' haben (multi) und zu denen bereits ein ChildNode existiert.


getTransferDataFlavors

public java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()
Specified by:
getTransferDataFlavors in interface java.awt.datatransfer.Transferable

getTransferData

public java.lang.Object getTransferData(java.awt.datatransfer.DataFlavor flavor)
                                 throws java.awt.datatransfer.UnsupportedFlavorException,
                                        java.io.IOException
Specified by:
getTransferData in interface java.awt.datatransfer.Transferable
Throws:
java.awt.datatransfer.UnsupportedFlavorException
java.io.IOException

isDataFlavorSupported

public boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
Specified by:
isDataFlavorSupported in interface java.awt.datatransfer.Transferable

getTitle

public java.lang.String getTitle()
Liefert die Beschriftung des Knotens in der Oberfläche.


setTitle

public void setTitle(java.lang.String title)
Setzt die Beschriftung des Knotens neu.


setTitle

public void setTitle(java.lang.String title,
                     int index)
Setzt die Beschriftung des Nodes an dem angegebenen Index neu.


setUserObject2

public void setUserObject2(java.lang.Object o)
Setzt ein beliebiges UserObject. Die von DefaultMutableTreeNode geerbte Methode setUserObject setzt das Label des Nodes.

Parameters:
o -

getUserObject2

public java.lang.Object getUserObject2()
Nicht zu verwechseln mit DefaultMutableTreeNode.getUserObject

Returns:

getFileName

public java.lang.String getFileName()
Liefert den Dateiname der zu diesem Knoten gehörenden GUI-Spezifikation.


setFileName

public void setFileName(java.lang.String f)
Setzt den Dateiname der zu diesem Knoten gehörenden GUI-Spezifikation.
In der Spezifikation sollte nur ein Panel definiert werden


setGuiDocumnet

public void setGuiDocumnet(electric.xml.Document doc)
Setzt das XML-Dokument der zu diesem Knoten gehörenden GUI-Spezifikation.
In der Spezifikation sollte nur ein Panel definiert werden


setFiles

public void setFiles(java.util.Vector<java.lang.Object> v)
Setzt die Menge der Gui-Spezifikationen, die für diesen Folder erlaubt sind. Aus dem Schlüsselwort Items= bei Folder und Node.
Siehe auch die eingebaute Methode "NewNode()".

Ein besser Lösung ist mit den GuiTreeElement und GuiTreeContent zu arbeiten.


setFiles

public void setFiles(java.lang.String[] s)
Setzt die Menge der Gui-Spezifikationen, die für diesen Folder erlaubt sind. Aus dem Schlüsselwort Items= bei Folder und Node.
Siehe auch die eingebaute Methode "NewNode()". Ein besser Lösung ist mit den GuiTreeElement und GuiTreeContent zu arbeiten.


getFiles

public java.util.Vector<java.lang.Object> getFiles()

getPanel

public GuiPanel getPanel()
Liefert die diesem Knoten zugeordnete Oberflächenkomponente.

Ist dem Knoten eine Gui-Spezifikation zugeordnet (setFileName), wird das Panel erzeugt (falls noch nicht geschehen). Panels gleichen Namens werden wiederverwendet.

See Also:
setFileName(java.lang.String)

getAllValuesXml

public electric.xml.Document getAllValuesXml()
Liefert die vom Knoten gehaltenen Werte aus den Benutzereigaben, die zwischen dem Knoten und seinem Panel hin und hergeschaufelt werden.


setAllValuesXml

public void setAllValuesXml(electric.xml.Document doc)

setAllValuesXml

public void setAllValuesXml(electric.xml.Element ele)
Das Element wird geclont


getMyTree

public GuiTree getMyTree()
Liefert die Tree-Komponete, zu dem dieser Knoten gehört.

Ist der Baum des Wurzelknotens.


guiClone

public GuiTreeNode guiClone()
Clont diesen TreeNode z.B. für copy-paste.


getGuiPath

public java.lang.String getGuiPath()
Liefert den Pfad dieses Knotens in Punkt-Notation: "root.myFolder.myNode"
Es wird der Name des Knotens verwendet;

See Also:
getName(), getChildByName(java.lang.String)

getChildNodes

public java.util.Iterator getChildNodes()
Liefert einen Iterator über die ChildNodes. Die Elemente können auf GuiTreeNode gecastet werden.

Returns:
Null, wenn keine ChildNodes vorhanden

getChildByName

public GuiTreeNode getChildByName(java.lang.String _name)
Liefert einen Tochterknoten (sowie Enkel usw.) unter Angabe seines Namens oder null wenn nix zu finden.

See Also:
setName(java.lang.String)

getName

public java.lang.String getName()
Description copied from interface: MemberAble
Name der Komponente.

Specified by:
getName in interface MemberAble
Returns:
See Also:
setName(java.lang.String)

setName

public void setName(java.lang.String name)
Die Namen der Schwester-Nodes müssen eindeutig sein, wenn später auf sie gezielt zugegriffen werden soll.

Specified by:
setName in interface MemberAble
See Also:
getChildByName(java.lang.String), GuiTree.setSelectedNode(java.lang.String)

setOid

public final void setOid(long id)
Setzt die beliebige Oid.


getOid

public final long getOid()
Liefert die Oid. Wenn -1, dann ist keine Oid gesetzt.


getGuiParentNode

public final GuiTreeNode getGuiParentNode()
DefaultMutableTreeNode mit cast


getValue

public final java.lang.String getValue(java.lang.String xpath)
Liefert den Wert einer Komponente unter Angabe ihres Namens (auch mit Punkt-Notation).

Der Rüchgabewert ist zumeist vom Typ "String"; bei Tabellen ein Vector von Vectoren, bei CheckBoxen ein "Boolean".
TODO : Liefert immer "String"; ChildContainer (Table, Tree) funktionieren nicht!

Parameters:
xpath - XPath mit dem Namen der Komponente.

setValue

public final void setValue(java.lang.String xpath,
                           java.lang.Object value)
Setzt den Wert einer Komponente unter Angabe ihres Namens (auch mit Punkt-Notation). TODO : ChildContainer (Table, Tree) funktionieren nicht!

Parameters:
xpath - Name der Komponente in Punktnotation
value - In der Regel kann ein String verwendet werden; Tabellen erwarten einen Vector von Vectoren.

isInserted

public boolean isInserted()
Returns:
boolean

setInserted

public void setInserted(boolean inserted)
Sets the inserted.

Parameters:
inserted - The inserted to set

setPopupMenu

public final void setPopupMenu(GuiPopupMenu menu)
Setzt das PopupMenu der Komponente.

Specified by:
setPopupMenu in interface MemberPopupAble

getPopupMenu

public final GuiPopupMenu getPopupMenu()
Liefert das PopupMenu zu diesem Member oder null.

Specified by:
getPopupMenu in interface MemberPopupAble
See Also:
GuiMouseListener

showPopupMenu

public final void showPopupMenu(int x,
                                int y)
Zeigt das PopupMenu an.

Specified by:
showPopupMenu in interface MemberPopupAble
See Also:
GuiMouseListener

isRootElement

public boolean isRootElement()
Gibt an, dass dieses GuiTreeNode kein rootElement ist. Nur GuiTree Komponenten können ihr eigene JDataSet verwalten.
Indicates that this GuiTreeNode does NOT administers its own JDataSet. Only and GuiTree components can administer its own JDataSet.

Specified by:
isRootElement in interface IDatasetMember
See Also:
IDatasetMember.isRootElement()

getAwtComponent

public java.awt.Component getAwtComponent()
Not Implemented

Specified by:
getAwtComponent in interface MemberAble

getMsgPopup

public java.lang.String getMsgPopup()
Specified by:
getMsgPopup in interface MemberPopupAble
Returns:
Returns the msgPopup.

setMsgPopup

public void setMsgPopup(java.lang.String msgPopup)
Specified by:
setMsgPopup in interface MemberPopupAble
Parameters:
msgPopup - The msgPopup to set.