Eines der wichtigsten Hilfsmittel ist dabei der Outline-View. Dieser enthält eine Auflistung aller editierbaren GUI-Elemente (siehe Abb. 5.25). Die Reihenfolge in dieser Liste entspricht der Anordnung der GUI-Elemente. Dabei verdecken GUI-Elemente, die später in der Liste auftauchen, GUI-Elemente, die sich vor ihnen in der Liste befinden. GUI-Elemente am Anfang der Liste befinden sich also hinten, wogegen GUI-Elemenete am Ende der Liste sich vorne befinden. Anhand des Outline-Views lässt sich also jederzeit erkennen, wie sich die GUI-Elemente gegenseitig überdecken.
Natürlich wird Ihnen im Layout-Fenster jederzeit die korrekte Anordnung der GUI-Elemente angezeigt, diese lässt sich aber nur dann erkennen, wenn sich GUI-Elemente auch tatsächlich überlappen. Außerdem kann der Überblick leicht verloren gehen, wenn sich mehrere GUI-Elemente paarweise überdecken. Im Outline-View können Sie sich aber jederzeit einen guten Überblick über die Situation verschaffen.
Desweiteren kann der Outline-View nicht nur dazu benutzt werden, um sich die Anordnung anzuschauen, sondern Sie können ihn auch dazu verwenden, um diese Anordnung zu verändern. Es ist nämlich möglich, mithilfe des Drag&Drop-Verfahrens, selektierte GUI-Elemente an eine beliebige Stelle zu verschieben. Das Umordnen der GUI-Elemente im Outline-View ist also kinderleicht und geht schnell von der Hand.
Als Alternative zum Outline-View befinden sich auch Anordnungsfunktionen im Kontextmenü. Lesen Sie dazu bitte den Abschnitt 5.3.6.
Wenn Sie die Sichtbarkeit eines GUI-Elements deaktivieren, so wird bei der Komposition der GUI-Ansicht so getan, als wäre das GUI-Element überhaupt nicht vorhanden. Das GUI-Element ist versteckt, aber es verschwindet natürlich nicht aus Ihrem Layout-Fenster, wenn Sie seine Sichtbarkeit deaktivieren. Schließlich wollen Sie das GUI-Element weiter editieren können. Vielmehr wird in der Simulation und im Layout-Preview so getan, als wenn das GUI-Element nicht existieren würde.
Eine Ausnahme liegt beim Sound-Element vor. Dieses GUI-Element ist standardmäßig nicht sichtbar und wird es auch nie sein, da die Sichtbarkeit dieses Elements nicht verändert werden kann. Das liegt daran, dass es sich beim Sound-Element nicht um ein graphisches Element handelt. Es soll ausschließlich im Layout-Fenster erscheinen, damit sich das Element vernünftig editieren lässt.
Doch wozu soll diese Funktion bitteschön nützlich sein? Nun, da es sich bei der Sichtbarkeit eines GUI-Elements um eine Eigenschaft handelt, kann diese wie jede andere auch manipuliert werden. Dadurch ist es zum Beispiel möglich, geerbte GUI-Elemente einfach auszublenden, falls sie für ein untergeordnetes Layout im Weg sind. Sollten Sie allerdings zu viele geerbte GUI-Elemente ausblenden müssen, um das Layout zu erstellen, das Ihnen vorschwebt, so sollten Sie sich fragen, ob nicht ein konzeptioneller Fehler in Ihrer Statechart-Struktur vorliegt. Denn anscheinend ist das von Ihnen geplante Layout keine Erweiterung bzw. Spezialisierung der bereits geerbten GUI-Elemente.
Sie können das Ganze aber auch anders herum aufziehen, indem Sie versteckte GUI-Elemente in Layouts platzieren, so dass andere Layouts die versteckten GUI-Elemente erben und gegebenfalls für ihr Layout wieder anzeigen können.
Dadurch lassen sich unterschiedliche Bereiche von Zuständen schaffen, in denen ein GUI-Element standardmäßig angezeigt bzw. versteckt ist, um es lediglich in den Ausnahmefällen dieser Bereiche wieder anzuzeigen.
Durch das Rendern eines GUI-Elements kann es auch passieren, dass dieses ein wenig anders dargestellt wird, da manche Features, wie zum Beispiel gestrichelte Umrandungen eines Form-Elements (Shape), umfangreicher und besser im Render-Modus unterstützt werden.
Es gibt auch GUI-Elemente, die sich nicht rendern lassen. Dazu zählen das Sound-Element und der normale Button. Beim Sound-Element spielt die Qualität der graphischen Repräsentation natürlich keine Rolle, da dieses GUI-Element ja nur zu Editierzwecken angezeigt wird, und in der finalen Ansicht überhaupt nicht sichtbar ist. Beim Button-Element handelt es sich um ein Standardelement, das durch das Rendern keinen Qualitätszuwachs verzeichnen kann.
Für den technisch Interessierten sei an dieser Stelle erwähnt, dass GUI-Elemente normalerweise in einem SWT-Kontext erstellt und auch präsentiert werden, wogegen gerenderte GUI-Elemente in einem AWT-Kontext erstellt und anschließend mithilfe eines Bildes im SWT-Kontext angezeigt werden.
GUI-Elemente lassen sich im Layout-Fenster (5.3.1), Layout-Preview (5.3.4) und im Simulator-View (6.2) rendern. Für den Layout-Preview und den Simulator-View befinden sich dafür Schalter in den Toolbars (vgl. Abb. 5.28), so dass alle GUI-Elemente, die der entsprechende View anzeigt, automatisch gerendert werden, wenn Sie die Option aktivieren.
Im Layout-Fenster können Sie dagegen für jedes einzelne GUI-Element entscheiden, ob Sie es rendern lassen wollen oder nicht. Dazu finden Sie die Option Render in editor in der Kategorie Render sowohl im Properties-View als auch im Eigenschaften-Dialog (siehe Abb. 5.29), den Sie über das Kontextmenü des jeweiligen GUI-Elements erreichen können.
Es wird empfohlen, die Render-Option im Layout-Fenster und besonders im Layout-Preview nur temporär zu aktivieren, da es mitunter zu erheblichen Leistungseinbußen kommen kann, die ein flüssiges Editieren von GUI-Elementen beeinträchtigen. Das gilt insbesondere bei einem groß eingestellten Bildschirmbereich. Im Simulator-View kann es insbesondere bei der Benutzung von Grafik-Buttons zu sehr langen Wartezeiten kommen, wenn diese gedrückt werden. Desweiteren sind merkbare Zeitverzögerungen bei Layout-Wechseln zu verzeichnen.
Wollen Sie aber das Bild in seiner unskalierten Form haben, so steht Ihnen dazu eine spezielle Funktion im Kontextmenü zur Verfügung (siehe Abb. 5.30). Die Funktion Apply Original Size bringt das Bild wieder zurück auf seine unskalierte Größe. Dabei taucht diese Funktion auch nur dann im Kontextmenü auf, wenn sich das Bild nicht in seiner Originalgröße befindet.
Beim Grafik-Element kann es zudem passieren, dass das angezeigte Bild nicht mehr mit dem übereinstimmt, welches in der zugehörigen Grafik-Datei enthalten ist. Dazu kann es kommen, wenn die Grafik-Datei während der laufenden Sitzung von GuiBuilder aus irgendeinem Grunde modifiziert wird (zum Beispiel durch manuelles Überschreiben der Datei). Da GuiBuilder zur Geschwindigkeitsoptimierung einen Cache verwendet, kann es passieren, dass das Bild weiterhin aus dem Cache geladen wird, anstatt die geänderte Version aus der Datei zu verwenden. Sie müssen dann mithilfe der Refresh-Funktion, die Sie im Kontextmenü eines Grafik-Elements finden, manuell den Synchronisierungsprozess einleiten. Das Bild wird dann aus dem Cache entfernt und neu aus der Datei geladen.
Die Abstufung, in denen ein GUI-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 Layout-Fenster unabhängig festlegen. Mehr Informationen zum Layout-Fenster und seinem Raster erhalten Sie in Abschnitt 5.3.1.
D. Hannwacker - A. Gebel - M. Dürksen 