41
Die Procedure Builder Definitionsdatei

Für allgemeine Informationen über den Procedure Builder, siehe Kapitel Kapitel 18.

41.1
Platzhalter

Sie können bestimmte Platzhalter in der Definition der Prozeduren und Packages verwenden. In der folgenden Liste finden Sie deren Beschreibung:

Platzhalter Beschreibung
<COMPID> Die ID der Komponente
<COMPNAME> Der Name der Komponente
<COMPFEATURE> Das Merkmal der Komponente
<COMPCLASS> Die Klasse der Komponente
<CURRENTVALUE> Der aktuelle Wert der Komponente, z.B. der Text eines Textfeldes oder der aktuelle Wert einer Combobox etc.
<CURRENTENABLEDSTATE> Der aktuelle Status, ob die Komponente enabled ist.
<CURRENTSELECTEDSTATE> Der aktuelle Status, ob die Komponente selektiert ist.
<CURRENTEDITABLESTATE> Der aktuelle Status, ob die Komponente editierbar ist.
<PCOMPID> Die ID der Elternkomponente
<PCOMPNAME> Der Name der Elternkomponente
<PCOMPFEATURE> Das Merkmal der Elternkomponente
<PCOMPCLASS> Die Klasse der Elternkomponente
<GPCOMPID> Die ID der Großelternkomponente
<GPCOMPNAME> Der Name der Großelternkomponente
<GPCOMPFEATURE> Das Merkmal der Großelternkomponente
<GPCOMPCLASS> Die Klasse der Großelternkomponente
Tabelle 41.1:  Platzhalter für Komponentenprozeduren

Für Prozeduren einer Container oder Composite Komponente können Sie zusätzlich noch Platzhalter für deren Kindkomponenten definieren. Diese sind in der folgenden Liste erklärt:

Platzhalter Beschreibung
<CCOMPID> Die ID der Kindkomponente
<CCOMPNAME> Der Name der Kindkomponente
<CCOMPFEATURE> Das Merkmal der Kindkomponente
<CCOMPCLASS> Die Klasse der Kindkomponente
<CCURRENTVALUE> Der aktuelle Wert der Kindkomponente, z.B. der Text eines Textfeldes oder der aktuelle Wert einer Combobox etc.
<CCURRENTENABLEDSTATE> Der aktuelle Status, ob die Kindkomponente enabled ist.
<CCURRENTSELECTEDSTATE> Der aktuelle Status, ob die Kindkomponente selektiert ist.
<CCURRENTEDITABLESTATE> Der aktuelle Status, ob die Kindkomponente editierbar ist.
Tabelle 41.2:  Zusätzliche Platzhalter für Containerprozeduren
41.2
Spezielle Bedingungen für die Definition von Packages und Prozeduren

Sie können die Erstellungen von Packages und Prozeduren über das Setzen des 'Beschreibung' Attributes des jeweiligen 'Package' bzw. 'Prozedur' Knotens beeinflußen.

Beschreibungsattribut Beschreibung
@NOTINHERIT Wenn dieser Wert gestzt ist, dann wird dieses Package bzw. diese Prozedur nur für Komponenten von exakt dieser Klasse verwendet und nicht für deren Ableitungen.
@FORCHILDREN Wenn dieser Wert für Container/Composite Prozeduren gesetzt ist, dann wird QF-Test in dieser Prozedur versuchen, die einzelnen Prozeduren der Kindkomponenten auzurufen.
@EXCEPT Hier kann man Klassen angeben, wofür das Package bzw. die Prozedur nicht erstellt werden soll. Dieser Wert ist dann nützlich, wenn Sie Prozeduren für eine abstrakte Klasse definiert haben und nicht alle Ableitungen die entsprechenden Prozeduren benötigen.
@CONDITION Hier kann man eine Bedingung für die Erstellung eines Packages, einer Prozedur oder eines Aufrufs angeben. Bedingungen können entweder in Jython, Groovy oder als regulärer Ausdruck definiert werden. Näheres hierzu finden Sie weiter unten.
@SWTSTYLE Prüft eine bestimmte Eigentschaft eines SWT-Buttons. Dieses SWT-spezifische Attribut ist notwendig, weil SWT zwischen Checkboxen, Comboboxen, Radiobuttons und normale Buttons nur mittels einer bestimmten Eigenschaft unterscheidet. Für einen normalen Button können Sie @SWTSTYLE=PUSH, für einen Radiobutton @SWTSTYLE=RADIO definieren etc..
@SUBITEM Funktioniert zur Zeit nur für Menüs. Wenn dieser Wert gesetzt ist wird das Package bzw. die Prozedur nur für Menüelemente der zweiten Hierarchieebene erstellt.
Tabelle 41.3:  Bemerkungsattribute für die Prozedurenerstellung
41.3
Auswertung der Komponentenhierarchie

In einigen Fällen kann es nützlich sein die Komponentenhierarchie in der Packagestruktur abzubilden. Dieser Ansatz erleichtert das Auffinden der jeweiligen Prozedur. Wenn Sie die Komponentenhierarchie in die Erstellung miteinbeziehen wollen, können Sie folgende Platzhalter in den Packgenamen verwenden:

Platzhalter Beschreibung
<HIERARCHY> Erstellt Packages für die gesamte Komponentehierarchie.
<IHIERARCHY> Erstellt Packages nur für interessante Komponenten in der Hierarchie. Eine interessante Komponente hat ein gesetztes 'Merkmal' Attribut.
Tabelle 41.4:  Platzhalter für die Hierarchie
3.4+41.4
Details zu @CONDITION

@CONDITION erlaubt es Ihnen, eine Bedingung für die Erstellung eines Knotens zu konfigurieren. Diese wird zum Erstellzeitpunkt ausgewertet.

Diese Bedingungen können verwendet werden, um auf einen bestimmten Namen zu prüfen oder auf das Vorhandensein eines bestimmten Buchstabens zu reagieren. Falls die Bedingung nicht erfüllt wird, wird der entsprechende Knoten nicht erzeugt. Sie können selbstverständlich alle bekannten Platzhalter wie <COMPID> oder <CCOMPNAME> verwenden.

Bedingung Bedeutung
@CONDITION jython "<COMPFEATURE>".startswith("abc") Hier wird eine Jythonbedingung definiert, die den Knoten nur dann erzeugt, wenn das Merkmal des Knotens mit 'abc' beginnt. Es ist hier möglich sämtliche Vergleichsmethoden von Jython zu verwenden.
@CONDITION groovy "<COMPFEATURE>".startsWith("abc") Hier wird eine Groovybedingung definiert, die den Knoten nur dann erzeugt, wenn das Merkmal des Knotens mit 'abc' beginnt. Es ist hier möglich sämtliche Vergleichsmethoden von Groovy zu verwenden.
@CONDITION regexp "<COMPFEATURE>" =~ "abc.*" Hier wird eine Bedingung mittels regulären Ausdrucks definiert, die den Knoten nur dann erzeugt, wenn das Merkmal des Knotens den Ausdruck 'abc.*' entspricht. Es ist hier möglich sämtliche Möglichkeiten von regulären Ausdrücken von Java zu verwenden.
@CONDITION regexp "<COMPFEATURE>" !~ "abc.*" Hier wird eine Bedingung mittels regulären Ausdrucks definiert, die den Knoten nur dann erzeugt, wenn das Merkmal des Knotens nicht den Ausdruck 'abc.*' entspricht. Es ist hier möglich sämtliche Möglichkeiten von regulären Ausdrücken von Java zu verwenden.
Tabelle 41.5:  Beispiele für @CONDITION

Falls Sie mehrzeilige Bedingungen definieren wollen, können Sie dies mit einem '\' am Ende der ersten Zeile tun.