|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--de.guibuilder.framework.GuiMember | +--de.guibuilder.framework.GuiContainer
Diese Klasse ist von allen Komponenten zu erweitern, die als Container für Daten haltende Komponenten fungieren sollen: Panel, Group, Tab, Split.
Zusammen mit GuiMember und GuiElement bildet diese Klasse ein Compositum-Pattern.
Die Hauptfenster (Form, Dialog, Applet, InternalFrame) haben alle eine
Referenz auf ein Objekt der Klasse GuiRootPane.
GuiRootPane hat genau ein WurzelPanel, dem alle weiteren Komponenten zugeordnet sind.
Typischer Code:
GuiPanel root = myForm.getRootPane().getMainPanel();
Die Container halten zwei Hashtables von Komponenten, die durch die Methode
addMember bzw. addAction aufgebaut werden. Daher müssen die Namen der
Komponenten je Container eindeutig sein.
Zusätzlich wird eine ArrayList mit den Namen der Komponenten in der
Reihenfolge geführt, in der sie dem Container hinzugefügt wurden
(siehe getMemberNames).
Wichtig zum Verständnis ist, daß ein Container zwei Rollen einnehmen kann:
1. Layout-Container
2. Parent-Container
Welche Rolle ein Container einnimmt liefert die Methode isParentContainer.
Layout-Container dienen nur der Gliederung im GridBagLayout;
sie haben keine Members!
Parent-Container haben neben ihrer Layout-Funktion zusätzlich eine Liste von
Members.
Die Schachtelung der Parent-Container wird von der Factory nach folgenden Regeln aufgebaut:
Mit den Methoden "getValue" und "setValue" kann der Inhalt einer Komponente
gelesen oder gesetzt werden.
Der Name der Komponente kann hierbei in Punkt-Notation erfolgen, bei der
die Schachtelung der Container abgebildet wird:
strasse = frm.getValue("tabAdresse.panelRechnung.strasse");
Die Komponenten selbst implementieren die Methoden "getValue" und "setValue" um auf ihren Inhalt zuzugreifen.
Per default ist den Container das GridBagLayout zugeordnet. Mit dem Attribut layout= kann auch ein anderer LayoutManager gesetzt werden.
GuiMember
,
GuiElement
,
GuiPanel
,
GuiRootPane.getMainPanel()
,
Serialized FormField Summary | |
static int |
BORDER
|
static int |
FLOW
|
static int |
GRID
|
static int |
GRIDBAG
|
static int |
NULL
|
static int |
SPLIT
|
Fields inherited from class de.guibuilder.framework.GuiMember |
GUI_ACTION, GUI_COMPONENT, GUI_CONTAINER, GUI_TABLE, GUI_TREE, GUI_TYPE_NAMES, hasMouseListener, OID |
Method Summary | |
void |
add(java.awt.Component comp,
java.lang.Object constraints)
Wird von der Factory aufgerufen, wenn die Komponente in einer ScrollBox steckt (wie z.B. bei Table, Tree, Memo, List). |
void |
add(GuiMember member,
java.lang.Object constraints)
Wird von GuiSplit überschrieben. |
void |
addAction(GuiAction comp)
Fügt eine anklickbare Komponente hinzu (MenuItem, Tool, Button). |
void |
addMember(GuiMember comp)
Fügt dem Container eine neue Daten haltende Komponente hinzu. |
void |
enableAllActions(boolean b)
En- oder disabled alle Menüitems und Buttons |
GuiAction |
getAction(java.lang.String name)
Liefert eine Aktion unter dem angegebenen Namen. |
java.util.Hashtable |
getAllModifiedValues()
Liefert eine Hashtable mit den Namen und den Inhalten aller Komponenten, die vom Benutzer modifiziert wurden. |
java.util.Hashtable |
getAllValues()
Liefert eine Hashtable mit den Namen und den Inhalten aller Komponenten. |
java.util.Hashtable |
getAllValues(boolean modified)
Liefert die Werte des Containers und seiner Kinder. |
electric.xml.Document |
getAllValuesXml()
Liefert den Inhalt dieses Containers als XML-Dokument. |
GuiContainer |
getContainer(java.lang.String name)
Liefert einen ChildContainer unter Angabe seines Namens (auch mit Punkt-Notation). |
GuiComponent |
getGuiComponent(java.lang.String name)
Liefert eine Komponente unter dem angegebenen Namen. |
GuiTable |
getGuiTable(java.lang.String name)
Liefert eine Tabelle unter Angabe ihres Namens. |
GuiTree |
getGuiTree(java.lang.String name)
Liefert einen Baum unter Angabe seines Namens (auch mit Punkt-Notation). |
int |
getGuiType()
Liefert GUI_CONTAINER |
abstract int |
getLayoutManager()
|
GuiMember |
getMember(java.lang.String name)
Liefert einen Member unter dem angegebenen Namen. |
java.util.ArrayList |
getMemberNames()
Liefert die Namen der Komponenten dieses Container in der Reihenfolge ihrer Anordnung. |
java.util.Hashtable |
getMembers()
Liefert die Hashtable mit allen Komponenten dieses Panel. |
void |
getModelValues(GuiModel model)
Füllt das angegebene Model mit den Inhalten der Oberfläche. |
java.util.Vector |
getSearchables(java.util.Vector ret)
Liefert alle Komponenten, die in der Oberfläche als Suchfelder gekennzeichnet sind (search="y"), und die vom Anwender auch ausgefüllt wurden. |
java.lang.Object |
getValue(java.lang.String name)
Liefert den Wert eine Komponente unter Angabe ihres Namens (auch mit Punkt-Notation). |
java.util.Vector |
getValues(java.util.List list)
Liefert die Liste mit den Werten von den Komponenten, deren Namen in einer weiteren Liste übergeben wurden. |
void |
getValues(java.util.Map vals)
Liefert die Werte einer Menge von Komponente unter Angabe ihrer Namen. |
boolean |
isParentContainer()
Liefert "true" wenn dieses Panel zur Schachtelung der Componenten verwendet wird bzw. |
boolean |
removeMember(GuiMember member)
Entfernt eine Komponente aus dem Container. |
void |
reset()
Setzt den Feldinhalt aller Komponenten dieser Panel auf leer (null). |
void |
setAllValues(java.util.Hashtable hash)
Es wird eine Hashtable übergeben, die die Namen von Komponenten und deren zu setzenden Inhalt enthält. |
void |
setAllValuesXml(electric.xml.Document doc)
Setzt den Inhalt dieses Container mit einem XmlDocument. |
void |
setAllValuesXml(electric.xml.Element node)
Setzt den Inhalte der Komponenten dieses Panel mit den Werten des übergebenen XML-Knotens. |
void |
setEnabled(java.util.HashSet comps,
boolean b)
Aktiviert oder deaktiviert die übergebene Menge von Members (GuiElement). |
void |
setFieldValues(java.lang.Object obj)
Setzt mehrere Komponenten dieses Panels auf den Werte der (public) Attribute des übergebenen Objects. |
abstract void |
setLayoutManager(int lm)
|
void |
setModelValues(GuiModel model)
Füllt die Oberfläche mit den Daten aus dem angegebenen Model. |
void |
setValue(java.lang.String name,
java.lang.Object value)
Setzt den Wert eine Komponente unter Angabe ihres Namens (auch mit Punkt-Notation). |
void |
setValues(java.util.List vals)
Setzt den Wert aller Daten haltenden Componenten dieses Panels. |
void |
setValues(java.util.Map vals)
Setzt den Wert von mehreren Daten haltenden Componenten dieses Panels. |
void |
updateIfNull(electric.xml.Element node)
Es werden nur die Felder upgedatet, wenn sie leer sind. |
void |
verify()
Ruft den InputVerifier der Componenten von diesem Container auf. |
Methods inherited from class de.guibuilder.framework.GuiMember |
click, d_click, getBackground, getConstraints, getControler, getElementName, getFont, getForeground, getFullName, getGuiParent, getGuiTypeName, getJComponent, getLabel, getMaximumSize, getMinimumSize, getMsgMouseOver, getName, getOid, getParentNames, getParentTab, getPreferredSize, getRef, getRootPane, getTag, getToolTipText, getUserObject, getXValue, isVisible, setBackground, setConstraints, setControler, setFont, setForeground, setGuiParent, setLabel, setMaximumSize, setMinimumSize, setMsgMouseMoved, setMsgMouseOver, setName, setOid, setPopupMenu, setPreferredSize, setRef, setToolTipText, setUserObject, setVisible |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int NULL
public static final int GRIDBAG
public static final int GRID
public static final int FLOW
public static final int BORDER
public static final int SPLIT
Method Detail |
public int getGuiType()
getGuiType
in class GuiMember
public abstract int getLayoutManager()
NULL
public abstract void setLayoutManager(int lm)
NULL
public void add(java.awt.Component comp, java.lang.Object constraints)
From awt.Container
public void add(GuiMember member, java.lang.Object constraints)
public final void addMember(GuiMember comp)
Diese Methode unterscheidet zwischen der Spezifikations- und der
Laufzeit-Umgebung GuiUtil.isAPI()
.
Wenn Laufzeitumgebung gesetzt ist, dürfen die Namen der Komponente
nicht leer sein und es dürfen auch keine doppelten Namen vergeben werden.
java.lang.IllegalArgumentException
- wenn Name leer oder doppelt.public final boolean removeMember(GuiMember member)
Wird auch beim Umbenennen von Members eingesetzt.
GuiMember.setName(java.lang.String)
public final GuiMember getMember(java.lang.String name)
public final GuiComponent getGuiComponent(java.lang.String name)
public final GuiTable getGuiTable(java.lang.String name)
Wirft eine IllegalArgumentException, wenn Member nicht GuiTable.
public final GuiContainer getContainer(java.lang.String name)
public final GuiTree getGuiTree(java.lang.String name)
public final java.util.Hashtable getMembers()
Die Hashtable kann Komponenten halten, die vom Typ GuiComponent, GuiTable oder GuiPanel sind.
public final java.util.ArrayList getMemberNames()
public final void addAction(GuiAction comp)
getAction(java.lang.String)
public final GuiAction getAction(java.lang.String name)
public final void enableAllActions(boolean b)
public final void setEnabled(java.util.HashSet comps, boolean b)
public final java.util.Vector getSearchables(java.util.Vector ret)
Der Vector enthält nur Komponenten, die bei denen isSearch() true ergibt.
ret
- Ein Vector, an den die Einträge angehängt werden oder null.
GuiComponent#isSearch
public final void verify() throws java.lang.IllegalStateException
verify
in class GuiMember
IllegalStateException,
- wenn Eingaben unzulässig.
java.lang.IllegalStateException
public void reset()
Wird von GuiTab überschrieben; daher nicht final.
reset
in class GuiMember
public final java.lang.Object getValue(java.lang.String name)
Der Rüchgabewert ist zumeist vom Typ "String"; bei Tabellen ein Vector von Vectoren, bei CheckBoxen ein "Boolean".
public final void setValue(java.lang.String name, java.lang.Object value)
name
- Name der Komponentevalue
- In der Regel kann ein String verwendet werden; Tabellen
erwarten einen Vector von Vectoren.public final void getValues(java.util.Map vals)
vals
- Eine Map, die als Keys die Namen der Komponenten enthält;
die Map wird mit den Werten der Komponenten gefüllt.public final java.util.Vector getValues(java.util.List list)
list
- Eine Liste mit den Namen von Komponenten die in diesem Panel
enthalten sind.
public final java.util.Hashtable getAllModifiedValues()
setAllValues(java.util.Hashtable)
,
GuiComponent.isModified()
public final java.util.Hashtable getAllValues()
setAllValues(java.util.Hashtable)
public final java.util.Hashtable getAllValues(boolean modified)
modified
- Wenn "true", werden nur die geänderten Komponenten geliefert;
ansonsten alle.public final void setAllValues(java.util.Hashtable hash)
getAllValues()
public final void setValues(java.util.List vals)
GuiComponent.setValue(java.lang.Object)
public final void setValues(java.util.Map vals)
vals
- Map (TreeMap, HashMap, Hashtable, ...) keys als String und values als Objectpublic final void setFieldValues(java.lang.Object obj)
obj
- Ein Object dessen Attributnamen mit den Namen der
Komponenten übereinstimmen.public final electric.xml.Document getAllValuesXml()
public final void setAllValuesXml(electric.xml.Document doc)
Das XML-Dokument muß "guivalues.dtd" entsprechen.
public final void setAllValuesXml(electric.xml.Element node)
java.lang.IllegalArgumentException
- wenn ElementName != "Panel"public final void updateIfNull(electric.xml.Element node)
public final void setModelValues(GuiModel model)
public final void getModelValues(GuiModel model)
public final boolean isParentContainer()
Achtung!
Diese Methode liefert immer dann true, wenn dem Container ein Member
zugewiesen wurde.
Sie liefert false, wenn addMember nie aufgerufen wurde.
Dieses ist folglich auch bei neuen Panels der Fall, denen
später noch Members zugewiesen werden sollen!
addMember(de.guibuilder.framework.GuiMember)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |