Subsections


4.2.7 Tipps & Tricks

Hier nun einige Tipps und Tricks, wie Sie das Bearbeiten und Erstellen von Statechart-Elementen beschleunigen und vereinfachen können. Einen zusätzlichen Blick auf die Tastaturkürzel in Kapitel A sollten Sie auf jeden Fall riskieren.

4.2.7.1 DirectEdit

Die DirectEdit-Funktionalität wird Ihnen bei der Editierung von Zustandsnamen angeboten. Sie können dazu mithilfe eines Linksklicks auf den Namen eines bereits vorselektierten Zustands ein Eingabefeld aktivieren, das direkt im Zustand angezeigt wird (vgl. Abb. 4.25). Nun können Sie diesen Namen bearbeiten und die Editierung mit der ENTER-Taste abschließen oder mit der ESC-Taste abbrechen.

Figure 4.25: Zustandsnamen direkt editieren
 
direct_edit.png

4.2.7.2 Klonen

Es ist möglich, Statechart-Elemente zu klonen. Dazu müssen Sie die Statechart-Elemente, die Sie replizieren wollen, selektieren. Nachdem Sie Ihre Auswahl getroffen haben, tun Sie so, als wollten Sie die ausgewählten Statechart-Elemente lediglich verschieben, halten dabei aber die STRG-Taste gedrückt. Jetzt werden die selektierten Statechart-Elemente nicht an die neue Position verschoben, sondern es werden Kopien von jedem Statechart-Element an der ausgewählten Position erzeugt (siehe Abb. 4.26). Die kopierten Statechart-Elemente unterscheiden sich dabei von ihren Originalen lediglich durch ihre Position.

Figure 4.26: Statechart-Elemente klonen
 
clone.png

Sollte es nicht möglich sein, die ausgewählten Statechart-Elemente an die ausgewählte Position zu verschieben, so wird es auch nicht möglich sein, diese dorthin zu klonen. Dieser Umstand wird durch ein kleines Verbotsschild kenntlich gemacht.

Sollten zwischen den selektierten Statechart-Elementen Transitionen bestehen, werden diese mitgeklont. Allerdings nur, wenn sich sowohl Start- als auch Endpunkt der Transition in der Auswahl befinden.

4.2.7.3 Positionierung von Statechart-Elementen mit der Tastatur

Statechart-Elemente lassen sich auch mit der Tastatur verschieben und in ihrer Größe ändern. Dazu müssen Sie einfach die Statechart-Elemente selektieren, die Sie verschieben oder vergrößern bzw. verkleinern wollen. Achten Sie bitte auch darauf, dass Sie keine Compartments selektiert haben, da diese sich nicht manuell positionieren lassen. Danach können Sie die selektierten Statechart-Elemente bei gedrückt gehaltener STRG-Taste mithilfe der Pfeiltasten in die entsprechenden Richtungen verschieben oder bei gedrückt gehaltener SHIFT-Taste in ihrer Größe ändern.

Die Abstufungen, in denen ein Statechart-Element durch einen Tastendruck in eine bestimmte Richtung verschoben bzw. in seiner Größe geändert wird, ist durch die eingestellte Rastergröße festgelegt. Rastergrößen lassen sich für jedes Statechart-Fenster unabhängig festlegen. Mehr Informationen zum Statechart-Fenster und seinem Raster erhalten Sie in Abschnitt 4.2.1.

4.2.7.4 Perfect Fit Layout

Figure 4.27: Perfect Fit Layout eines Zustands
 
perfectfit.png

In einem Zustand kann es sehr schnell passieren, dass Scrollbalken eingeblendet werden, weil der Inhalt des Zustands nicht mehr komplett angezeigt werden kann. Das passiert nicht nur dann, wenn Sie den Zustand verkleinern, sondern auch, wenn Sie Inhalt zum Zustand hinzufügen, ohne den Zustand entsprechend vergrößert zu haben. Der letztere Fall kann besonders schnell und unbemerkt eintreten, wenn Sie ein Compartment eines Zustands in einem neuen Statechart-Fenster geöffnet haben und dort neue Statechart-Elemente erstellen. Wenn Sie dann zurück in eine Gesamtansicht wechseln, ist es häufig so, dass der Zustand so stark an neuen Statechart-Elementen gewonnen hat, dass der komplette Inhalt nicht mehr angezeigt werden kann. Wie sich solche neuen Statechart-Fenster öffnen lassen, erfahren Sie in Abschnitt 4.3.

Die Möglichkeit, Zustände ohne jegliche Beschränkungen editieren zu können, bringt also auch den Nachteil mit sich, dass Zustände ein nicht wünschenswertes Aussehen erhalten können. Genau diesen Nachteil macht die Funktion Perfect Fit Layout wieder wett. Sie richtet Zustände so aus, dass deren Inhalte komplett und ohne Scrollbalken angezeigt werden können (siehe Abb. 4.27). Zusätzlich wird dem Zustand dabei eine möglichst geringe Größe zugewiesen. So lässt sich die Funktion auch auf zu groß gewordene Zustände anwenden.

Um die Funktion zu nutzen, selektieren Sie die Zustände, die ausgerichtet werden sollen, und öffnen Sie für diese Selektion das Kontextmenü. Dort wählen Sie dann den Eintrag Perfect Fit Layout aus. Jetzt werden alle selektierten Zustände und alle deren Kindzustände, egal ob diese selektiert sind oder nicht, wie bereits beschrieben ausgerichtet. Die Kindzustände werden deshalb automatisch mit ausgerichtet, weil eine Ausrichtung eines einzelnen Zustands, ohne gleichzeitig seine Kinder mit auszurichten, nicht viel Sinn macht.

Sie müssen sich also nicht um die Selektierung von Kindzuständen beim Benutzen der Funktion Gedanken machen. Und das macht wirklich Sinn, denn eine Selektierung der Kindzustände wird ja gerade dadurch erschwert, dass diese nicht alle angezeigt werden können. Außerdem wird es dadurch möglich, Zustände mit verstecktem Inhalt auszurichten. Mehr über Zustände mit verborgenem Inhalt erfahren Sie in Abschnitt 4.3.4.


4.2.7.5 Editieren mit dem Outline-View

Der Outline-View bietet eine bequeme und intuitive Möglichkeit der Editierung. Die Statechart-Elemente lassen sich im Outline leicht selektieren, und strukturelle Änderungen können per Drag&Drop-Verfahren vorgenommen werden. Auch das Kontextmenü lässt sich für die im Outline-View selektierten Statechart-Elemente erreichen. Mehr zum Outline-View erfahren Sie in Abschnitt 4.3.3.

4.2.7.6 Schnelle Erstellung von Statechart-Elementen

Normalerweise wird nach der Erstellung eines Statechart-Elements das entsprechende Werkzeug deaktiviert und erneut das Standard-Werkzeug aktiviert. Sie können jedoch bequem und schnell mehrere gleichartige Statechart-Elemente hintereinander erstellen, indem Sie beim Erzeugen der Elemente die STRG-Taste gedrückt halten. Auf diese Weise bleibt das von Ihnen ausgewählte Werkzeug aktiv.

4.2.7.7 Schnelle Erstellung von Kindzuständen (Substates)

Um Kindzustände zu erstellen bzw. Zustände in andere verschieben zu können, müssten Sie normalerweise dem Vaterzustand zuerst ein Compartment hinzufügen. Erst danach wäre es Ihnen erlaubt, den fraglichen Zustand in dem Compartment zu erzeugen bzw. ihn dort hinein zu verschieben.

Als Abkürzung dieses Vorgangs ist es Ihnen jedoch möglich, Zustände in anderen Zuständen direkt zu erzeugen (Abb. 4.28) bzw. sie dorthin zu verschieben. Das notwendige Compartment wird dabei automatisch für Sie erstellt. Dieses Vorgehen ist auch im Outline-View möglich.

Figure 4.28: Schnelle Erstellung eines Kindzustands
 
fastnew.png

4.2.7.8 Schnelle Erzeugung von Compartments

Wählen Sie einfach die Zustände aus, in denen Sie ein Compartment erstellen wollen, und drücken Sie die A-Taste. Mit jedem Tastendruck wird jeweils ein Compartment in den selektierten Zuständen angefügt.

4.2.7.9 Schnelle Editierung von Transitionsbeschriftungen

Das Trigger-Signal (Ereignis) und das Ausgabe-Signal (Aktion), die beide in der Transitionsbeschriftung angezeigt werden, lassen sich als Eigenschaften der Transition natürlich über den Properties-View und das Kontextmenü editieren. Bei dem Weg über das Kontextmenü wird eine Dialogbox geöffnet, in der sich beide Signale editieren lassen. Diese Dialogbox lässt sich auch durch einen Doppelklick auf die Transitionsbeschriftung oder auf der Transition selbst öffnen.

4.2.7.10 Selektierung von Compartments

Wie sie bereits in Abschnitt 4.2.3 erfahren haben, gibt es in der Toolbar eine Einstellungsmöglichkeit, mit der man festlegen kann, ob sich Compartments im Statechart-Fenster selektieren lassen oder nicht. Unabhängig von der dort getroffenen Einstellung können Sie Compartments natürlich auch zu jeder Zeit im Outline-View auswählen.

Es gibt aber auch die Möglichkeit, bei eigentlich deaktivierter Compartment-Selektion diese temporär zu überwinden. Denn wenn Sie die ALT-Taste gedrückt halten, ist es Ihnen trotzdem vorübergehend möglich, Compartments zu selektieren.


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