11.07.2015 Aufrufe

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

66 KAPITEL 5: IMPLEMENTIERUNGValuesDisplayComponent «Interface»,TextAreaValuesDisplayComponent, TableValuesDisplayComponentDas Package enthält zwei weitere Klassen, die in keine der obigen Gruppen eingeordnet werdenkönnen: QueryConfigurationDialog implementiert einen Konfigurationsdialog für das <strong>ODL</strong>-Query-Subsystem; die Klasse NavigationEventException wird in der Dialogflusskontrolleeingesetzt <strong>und</strong> wird im Abschnitt 5.2.3 besprochen.Der Aufbau eines Eingabedialogs wurde auf der Abbildung 4.1 gezeigt. Wir wollen noch einmaldiesen Aufbau zeigen, jetzt allgerdings mit der Benennung der Klassen, die für die einzelnen Bereichedes Eingabedialogs zuständig sind (Abbildung 5.4).Abbildung 5.4: Aufbau eines EingabedialogsBetrachten wir die Implementierung der oben aufgeführten Klassengruppen im Detail.• EingabedialogDas Interface QueryDialog definiert die Methoden, die alle Dialogfenster für Benutzereingabenim <strong>ODL</strong>-Query-Subsystem implementieren müssen – diese Methoden dienen zumeist derKonfiguration der drei Bereiche eines Eingabedialogs (Abb. 5.4). Die Methode userInput()startet die Benutzereingabe <strong>und</strong> wird erst dann verlassen, wenn der Benutzer die Eingabe beendet(durch Bestätigung oder Abbruch).Die abstrakte Klasse AbstractQueryDialog implementiert die meisten der in Query-Dialog definierten Methoden <strong>und</strong> erweitert gleichzeitig die Klasse javax.swing.JDialog – dadurch wird festgelegt, dass ein Eingabedialog eine Unterklasse von JDialog ist<strong>und</strong> damit alle Funktionalitäten dieses Standarddialogs zur Verfügung stellt. Um eine konkreteKlasse für ein Dialogfenster zu implementieren, genügt es, von AbstractQueryDialog zuerben <strong>und</strong> das gewünschte Aussehen des Dialogfensters im Konstruktor festzulegen.Auf genau diese Weise wurden die beiden konkreten Implementierungen des Eingabedialogs erstellt.DefaultQueryDialog ist ein einfacher Eingabedialog (Abb. 4.1 auf S.28), bei demdie Größen der drei Bereiche von einer java.awt.GridBagLayout-Instanz automatischangepasst werden. Die Klasse SplitPanelQueryDialog implementiert einen Eingabedialog,bei dem die Größe der drei Bereiche mithilfe von Splittingpanels (javax.swing.JSplitPane) vom Benutzer verändert werden kann (Abb. 4.4 auf S.29).Um zu vermeiden, dass für jede Benutzereigabe neue Dialogfenster-Instanzen angelegt werden,<strong>und</strong> um zusätzlich für jeden <strong>ODL</strong>-Datentyp zur Laufzeit festlegen zu können, welcherDialogfenstertyp für Benutzereingaben zu verwenden ist, wird je eine Instanz von allen verfügbarenDialogfenstertypen durch die Klasse QueryDialogManager verwaltet. Sie ist ein

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!