Window-Container

Previous  Next

 

 

 

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.

 

clip0524

clip0525


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, hmtoggle_plus1 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.

 

clip0526

 

 

» Methoden-Aufruf in anderen Fenstern «

Der Aufruf von herkömmlichen Methoden, z.B. hmtoggle_plus1 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 hmtoggle_plus1 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 hmtoggle_plus1 callObjectFunction( ) | XDEV NLS: FunktionEinesObjektsAusführen( ) aufrufen können.

 

Die Parameter von hmtoggle_plus1 callObjectFunction( ) | XDEV NLS: FunktionEinesObjektsAusführen( ):

 

Parameter

Erklärung

hmtoggle_plus1 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 hmtoggle_plus1 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".

 

hmtoggle_plus1 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".

 

hmtoggle_plus1 String functionName | XDEV NLS: Zeichenkette funktionsName

Hier müssen Sie den Namen der Funktion als Zeichenkette angeben, die Sie aufrufen möchten, z.B. hmtoggle_plus1 "refresh" | XDEV NLS: "neuZeichnen".

 

hmtoggle_plus1 XdevList paramList | XDEV NLS: XdevList parameterListe

Wenn die Funktion die Sie aufrufen möchten, keine Parameter benötigt, z.B. hmtoggle_plus1 refresh( ) | XDEV NLS: neuZeichnen( ), dann müssen Sie hier nur die Konstante hmtoggle_plus1 null | XDEV NLS: NULL_WERT angeben.

 

Wenn die Funktion die Sie aufrufen möchten, Parameter benötigt, z.B. hmtoggle_plus1 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.

 

clip0527

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.

 

clip0527

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.

 

clip0528

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