5.3.7 Geerbte GUI-Elemente modifizieren

Geerbte GUI-Elemente sind GUI-Elemente, die von Layouts aus Vaterzuständen stammen und deshalb mit in die finale Komposition der GUI-Ansicht eingehen. Mehr dazu erfahren Sie in Abschnitt 5.2. Diese GUI-Elemente lassen sich modifizieren. Sie können also die geerbten GUI-Elemente für das Layout, das Sie gerade im Layout-Fenster bearbeiten, anpassen. Es lassen sich dabei beliebige Eigenschaften dieser GUI-Elemente abändern, jedoch kann keines dieser Elemente gelöscht werden. Allerdings lassen sich GUI-Elemente ausblenden, was denselben Effekt hat. Lesen Sie mehr dazu in Abschnitt 5.3.10.

Eine weitere Eigenschaft, die Sie nicht abändern können, ist der Name eines geerbten GUI-Elements, denn an der Identität dieser GUI-Elemente darf nicht manipuliert werden. Alle anderen Eigenschaften, wie zum Beispiel die Größe, Position und alle elementspezifischen Attribute dürfen Sie dagegen nach Belieben modifizieren. Selbst die Anordnung von geerbten GUI-Elementen lässt sich innerhalb einer Gruppe abändern. Wie diese Gruppen gebildet werden, erfahren Sie im nächsten Absatz.

GUI-Elemente werden im Layout-Fenster gruppiert. Eine dieser Gruppen bilden die GUI-Elemente, die in dem geöffneten Layout neu definiert wurden. Diese GUI-Elemente sind also nicht geerbt und unterliegen demzufolge keinerlei Editierungsbeschränkungen. Sie lassen sich also ganz normal löschen oder umbenennen. Nur diese Gruppe lässt sich in einem geöffneten Layout um neue GUI-Elemente erweitern bzw. um vorhandene dezimieren. Die anderen Gruppen bestehen aus geerbten GUI-Elementen. Diese Gruppen werden gebildet, indem GUI-Elemente, die aus demselben Vaterzustand geerbt wurden, zusammengefaßt werden.

Zu jedem Zeitpunkt lässt sich immer nur eine dieser Gruppen im Layout-Fenster bearbeiten. Wenn die Option Show Layout Background im Ansichtsmenü (5.3.3) aktiviert ist, werden zwar alle Gruppen angezeigt, bearbeiten lässt sich davon trotzdem immer nur eine. Welche dieser Gruppen zur Editierung bereitsteht, entscheidet die State-Hierarchie.

Die State-Hierarchie befindet sich auf der rechten Seite eines Layout-Fensters und ist eine hierarchische Auflistung der Vaterzustände des Zustands, dessen Layout gerade im Layout-Fenster geöffnet ist (vgl. Abb. 5.17). Ganz oben in der Liste befindet sich der Vaterzustand auf höchster Ebene, der vorletzte Eintrag ist der direkte Vaterzustand und den Abschluß bildet der Zustand selbst. Jeder Zustand repräsentiert dabei die ihm zugehörige Gruppe von GUI-Elementen. Zu jedem Zeitpunkt ist immer genau einer dieser Zustände in der State-Hierarchie selektiert. Die Selektierung legt damit die Gruppe von GUI-Elementen fest, die editiert werden darf. Wenn Sie übrigens das Raster im Layout-Fenster eingeschaltet haben, so trennt dieses die Gruppe der editierbaren GUI-Elemente von denen, die nicht editierbar sind.

Figure 5.17: State-Hierarchie
 
state_hierarchy.png

Beachten Sie auch, dass neue GUI-Elemente nur dann erzeugt werden können, wenn der unterste Zustand der State-Hierarchie selektiert ist, da die Gruppen der geerbten GUI-Elemente nicht erweitert werden dürfen, denn die Modifikationen an anderen Layouts beschränken sich auf die Manipulierung bereits existierender GUI-Elemente. Das Hinzufügen eines GUI-Elements ist somit eine nicht zugelassene Änderung an einem anderen Layout. Allerdings lassen sich GUI-Elemente einblenden, was denselben Effekt hat. Lesen Sie mehr dazu in Abschnitt 5.3.10.

Die Editierung geerbter GUI-Elemente unterscheidet sich in keinster Weise von der Editierung normaler GUI-Elemente, sieht man mal über die bereits erwähnten Einschränkungen hinweg. Das bedeutet, dass Sie geerbte GUI-Elemente manipulieren können, indem Sie diese wie gewohnt bearbeiten. Die Änderungen, die sich aufgrund Ihrer Bearbeitung ergeben, werden dann automatsich erfasst und für das entsprechende GUI-Element im aktuell geöffneten Layout abgelegt. Bei der Leichtigkeit, mit der sich geerbte GUI-Elemente manipulieren lassen, kann man sehr schnell vergessen, dass es sich nur um Modifizierungen handelt, die im aktuell geöffneten Layout abgelegt werden, und nicht um eine Bearbeitung des originalen GUI-Elements. Das Layout, von dem das GUI-Element geerbt wurde, bleibt durch diese Vorgänge unangetastet. Machen Sie sich auch klar, dass die State-Hierarchie nicht dazu dient, um in das Layout eines Vaterzustands zu wechseln. Das Navigieren in der State-Hierarchie wechselt nicht das aktuell geöffnete Layout, sondern wechselt lediglich die Gruppe der editierbaren GUI-Elemente.

Figure 5.18: Modifizierungen von geerbten GUI-Elementen zurücknehmen
 
reset_2.png

Um vorgenommene Änderungen an geerbten GUI-Elementen wieder zurückzunehmen, müssen Sie diese lediglich selektieren und anschließend über das Kontextmenü die Reset-Funktion aufrufen. Diese Funktion öffnet einen Dialog, in dem alle geänderten Eigenschaften des GUI-Elements aufgelistet sind (siehe Abb. 5.18). Die gelisteten Einträge bestehen dabei aus dem Typen-Symbol des jeweils betroffenen GUI-Elements, dessen Namen und schließlich dem Namen der jeweils geänderten Eigenschaft. In dieser Liste lassen sich dann die Eigenschaften auswählen, die zurückgesetzt werden sollen. Es wird Ihnen in diesem Dialog natürlich auch angeboten, die Aktion abzubrechen.

Das Zurücksetzen einer Eigenschaft eines geerbten GUI-Elements bewirkt, dass die Modifikation, die für diese Eigenschaft im geöffneten Layout abgelegt wurde, entfernt wird. Die Eigenschaft nimmt dabei sofort wieder den Wert an, den sie ursprünglich in diesem Layout hatte. Dieser Wert muss nicht zwangsläufig mit dem Wert übereinstimmen, den diese Eigenschaft in dem Layout hat, in dem das GUI-Element definiert wurde. Denn Layouts, die zwischen diesem Layout und dem geöffneten Layout liegen, können ihrerseits bereits Veränderungen an der Eigenschaft vorgenommen haben und diese Veränderungen werden durch die Reset-Funktion nicht entfernt. Schließlich wäre es nicht sehr wünschenswert, wenn das Bearbeiten eines Layouts unkontrollierbare Auswirkungen auf andere Layouts hätte.


i3D. Hannwacker - A. Gebel - M. Dürksen