|
11.02.2010
Window-Container
Wenn eine grafische Oberfläche komplexer wird, indem sich beispielsweise mehrere Komponenten gegenseitig steuern, z.B. Füllen einer Tabelle mit unterschiedlichen Daten per Menüauswahl, dann sollten Sie entsprechende Elemente als separate und weitgehend unabhängig voneinander funktionierende Fenster entwickeln. Im Hauptfenster diese Elemente dann durch Window-Container ersetzt, die im Grunde wie Platzhalter funktionieren. Mit Hilfe eines Fenster-Aufrufs können Sie dann jedes beliebige Fenster laden und im Window-Container anzeigen. Der Vorteil von Window-Containern ist, dass Sie damit Ihre Oberfläche vereinfachen, modular aufbauen und bei Bedarf sehr schnell und vor allem unproblematisch umgestalten können. Darüber hinaus können Sie alle Einzelbausteine sehr leicht an anderer Stelle einsetzen. Die Funktionsweise ist prinzipiell ähnlich wie bei Frames in HTML.

|

|
|
Oberflächen bestehen häufig aus zahlreichen Komponenten, die sich gegenseitig steuern.
|
Ein Window-Container funktioniert wie ein Platzhalter. Per Fenster-Aufruf lassen sich beliebig andere Programmfenster im Window-Container dnymisch anzeigen.
|
|
» Fenster-Aufruf «
Der Aufruf eines Fensters erfolgt mit der Anweisung Fensteraufruf, XDEV CallWindow | XDEV NLS: XDEV Fensteraufruf. Im folgenden Dialog müssen Sie dann nur noch das Fenster auswählen das Sie anzeigen möchten und anschließend den Window-Container markieren, der gefüllt werden soll. Zudem können Sie beim Aufruf auch einen oder mehrere Parameter übergeben, z.B. die ID eines Datensatzes.

» Methoden-Aufruf in anderen Fenstern «
Der Aufruf von herkömmlichen Methoden, z.B. Table.fillFrom(VirtualTable vt) | XDEV NLS: Table\fülleAus(VirtuelleTabelle vt) zum Füllen einer Table, ist nur innerhalb eines Programmfensters möglich. Eigene Funktionen lassen sich jedoch auch Fenster-übergreifend aufrufen. Dafür bietet Ihnen XDEV 2 die Funktion callObjectFunction(String windowID, String objectName, String functionName, XdevList paramList) | XDEV NLS: FunktionEinesObjektsAusführen(Zeichenkette fensterID, Zeichenkette objektName, Zeichenkette funktionsName, XdevList parameterListe), die Sie in der Funktionsbibliothek unter Sonstiges finden. Sollen mehrere Aktionen ausgeführt werden, dann müssen Sie dafür nur eine eigene Funktion schreiben, die Sie dann wieder problemlos mit callObjectFunction( ) | XDEV NLS: FunktionEinesObjektsAusführen( ) aufrufen können.
Die Parameter von callObjectFunction( ) | XDEV NLS: FunktionEinesObjektsAusführen( ):
Parameter
|
Erklärung
|
String windowID | XDEV NLS: Zeichenkette fensterID
|
Beim Aufruf des Ziel-Fensters in einem Dialog, Window oder Frame, müssen Sie hier die Dialog-ID des Ziel-Fensters als Zeichenkette angeben, z.B. "0". Zur Ermittlung der Dialog-ID bietet Ihnen das Fenster die Methode getDialogID( ) String | XDEV NLS: holeDialogID( ) Zeichenkette.
Beim Aufruf des Ziel-Fensters in einem Window-Container, müssen Sie hier den Objekt-Namen des Window-Containers als Zeichenkette angeben, z.B. "WindowContainer".
|
String objectName | XDEV NLS: Zeichenkette objektName
|
Hier müssen Sie den Objekt-Namen der Komponente als Zeichenkette angeben, bei der die aufzurufende Funktion hinterlegt ist, z.B. "Table1".
|
String functionName | XDEV NLS: Zeichenkette funktionsName
|
Hier müssen Sie den Namen der Funktion als Zeichenkette angeben, die Sie aufrufen möchten, z.B. "refresh" | XDEV NLS: "neuZeichnen".
|
XdevList paramList | XDEV NLS: XdevList parameterListe
|
Wenn die Funktion die Sie aufrufen möchten, keine Parameter benötigt, z.B. refresh( ) | XDEV NLS: neuZeichnen( ), dann müssen Sie hier nur die Konstante null | XDEV NLS: NULL_WERT angeben.
Wenn die Funktion die Sie aufrufen möchten, Parameter benötigt, z.B. refresh(Boolean sortierung, Int vorselektierteZeile) | XDEV NLS: neuZeichnen(Wahrheitswert sortierung, Ganzzahl vorselektierteZeile), dann müssen Sie hier ein Listen-Objekt übergeben, welches die benötigten Parameter enthält. Dazu müssen Sie zuvor das Listen-Objekt erzeugen und die jeweiligen Parameter hinzufügen.
1
2
3
4
5
6
7
8
|
ACTION_PERFORMED ( )
{
XdevList parameterListe = createList();
parameterListe.add(true);
parameterListe.add(5);
callObjectFunction("WindowContainer","Table","refresh", parameterListe);
}
|
ACTION_PERFORMED ( )
Führt den Code z.B. bei Mausklick auf einen Button aus.
XdevList parameterListe = createList();
Definiert eine Variable mit dem Namen parameterListe vom Typ XdevList und weist dieser eine neue, leere Liste zu, die mit der Funktion createList() erzeugt wird.
parameterListe.add(true);
Fügt der Liste parameterListe mit Hilfe der Methode add( ) den Wert true hinzu.
parameterListe.add(5);
Fügt der Liste parameterListe mit Hilfe der Methode add( ) den Wert 5 hinzu.
callObjectFunction("WindowContainer","Table","refresh", parameterListe);
Ruft im Window-Container WindowContainer die Funktion refresh(Boolean sortierung, Int selektierteZeile) auf, die bei der Komponente Table hinterlegt ist und übergibt der Methode die Liste parameterListe, welche die Werte true und 5 enthält, die der Methode dann als Parameter zugewiesen werden.
Die Methode refresh ist ein Beispiel für eine Methode, die bei der Table hinterlegt sein könnte, um die Table nach einer Änderung neu zu zeichnen. Die Parameter true und 5 sind Beispiele für Parameter, welche die Methode refresh haben könnte, z.B. um die Daten in der Table zu sortieren und um eine Zeile gezielt zu selektieren.

Die Funktion refresh wird bei der Table als benutzerdefinierte Funktion hinterlegt.
|
Füllen der Master-Combobox:
1
2
3
4
5
6
|
ACTION_PERFORMED ( )
XdevList parameterListe = createList()
parameterListe.add(true)
parameterListe.add(5)
callObjectFunction("WindowContainer","Table","refresh", parameterListe)
|
ACTION_PERFORMED ( )
Führt den Code z.B. bei Mausklick auf einen Button aus.
XdevList parameterListe = createList()
Definiert eine Variable mit dem Namen parameterListe vom Typ XdevList und weist dieser eine neue, leere Liste zu, die mit der Funktion createList() erzeugt wird.
parameterListe.add(true)
Fügt der Liste parameterListe mit Hilfe der Methode add( ) den Wert true hinzu.
parameterListe.add(5)
Fügt der Liste parameterListe mit Hilfe der Methode add( ) den Wert 5 hinzu.
callObjectFunction("WindowContainer","Table","refresh", parameterListe)
Ruft im Window-Container WindowContainer die Funktion refresh(Boolean sortierung, Int selektierteZeile) auf, die bei der Komponente Table hinterlegt ist und übergibt der Methode die Liste parameterListe, welche die Werte true und 5 enthält, die der Methode dann als Parameter zugewiesen werden.
Die Methode refresh ist ein Beispiel für eine Methode, die bei der Table hinterlegt sein könnte, um die Table nach einer Änderung neu zu zeichnen. Die Parameter true und 5 sind Beispiele für Parameter, welche die Methode refresh haben könnte, z.B. um die Daten in der Table zu sortieren und um eine Zeile gezielt zu selektieren.

Die Funktion refresh wird bei der Table als benutzerdefinierte Funktion hinterlegt.
|
Füllen der Master-Combobox:
1
2
3
4
5
6
|
Bei Mausklick ( )
XdevListe parameterListe = erzeugeListe()
parameterListe\hinzufügen(WAHR)
parameterListe\hinzufügen(5)
funktionEinesObjektsAusführen("WindowContainer","Table","neuZeichnen", parameterListe)
|
Bei Mausklick ( )
Führt den Code z.B. bei Mausklick auf einen Button aus.
XdevListe parameterListe = erzeugeListe()
Definiert eine Variable mit dem Namen parameterListe vom Typ XdevListe und weist dieser eine neue, leere Liste zu, die mit der Funktion erzeugeListe( ) erzeugt wird.
parameterListe\hinzufügen(WAHR)
Fügt der Liste parameterListe mit Hilfe der Methode hinzufügen( ) den Wert WAHR hinzu.
parameterListe\hinzufügen(5)
Fügt der Liste parameterListe mit Hilfe der Methode hinzufügen( ) den Wert 5 hinzu.
funktionEinesObjektsAusführen("WindowContainer","Table","neuZeichnen", parameterListe)
Ruft im Window-Container WindowContainer die Funktion neuZeichnen(Wahrheitswert sortierung, Ganzzahl selektierteZeile) auf, die bei der Komponente Table hinterlegt ist und übergibt der Methode die Liste parameterListe, welche die Werte WAHR und 5 enthält, die der Methode dann als Parameter zugewiesen werden.
Die Methode neuZeichnen ist ein Beispiel für eine Methode, die bei der Table hinterlegt sein könnte, um die Table nach einer Änderung neu zu zeichnen. Die Parameter WAHR und 5 sind Beispiele für Parameter, welche die Methode neuZeichnen haben könnte, z.B. um die Daten in der Table zu sortieren und um eine Zeile gezielt zu selektieren.

Die Funktion neuZeichnen wird bei der Table als benutzerdefinierte Funktion hinterlegt.
|
|
|