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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.2 INTERAKTIVE BENUTZERSCHNITTSTELLE 71Anzeige bereits eingegebener Mengenelemente verwendet werden soll (mehr dazu weiter indiesem Abschnitt).AbstractSetTypeQueryInputPanel implementiert einige Methoden aus SetType-QueryInputPanel <strong>und</strong> dient als abstrakte Oberklasse für Mengeneingabepanels.Die Klasse DefaultSetTypeQueryInputPanel implementiert ein Eingabepanel fürMengen, das aus zwei Teilen besteht: Eingabebereich für Werte des Basistyps der Menge <strong>und</strong>Anzeigebereich für Werte, die bereits in die Menge eingefügt wurden (Abb. 5.10). Die beidenBereiche werden durch die Splittinglinie eines Splittingpanels getrennt, sodass sie nach Bedarfvergrößert <strong>und</strong> verkleinert werden können.Wie oben schon erwähnt, verwenden Mengen-Eingabepanels eine zusätzliche Komponentezur Anzeige der bereits in die Menge hinzugefügten Werte. Das Interface SetValue-Display definiert die Schnittstelle einer solchen Komponente. Die Methoden display-Values( Object[] values ), displayValues( Collection values ) <strong>und</strong>displayValues( SetValue setValue ) veranlassen die Anzeige der übergebenenWertemenge – sie unterscheiden sich nur durch den Parametertyp, ansonsten ist ihre Funktionalitätidentisch. Des Weiteren sind alle Methoden, die das Wort Selected oder Selectionim Methodennamen enthalten, für das Lesen, die Änderung <strong>und</strong> die Beobachtung der aktuellenSelektion in der Anzeige zuständig: nehmen wir als Beispiel die Methode int[]getSelectedIndices(), die die Indizes aller zurzeit selektierten Einträge in der Anzeigezurückgibt, <strong>und</strong> die Methode addListSelectionListener( ListSelection-Listener listener ), die einen Beobachter für Selektionsereignisse anmeldet. DieMethode java.awt.Component getDisplayComponent() erfüllt eine Funktion,welche an die von getListCellRendererComponent im Interface javax.swing.ListCellRenderer angelehnt ist – sie gibt eine Komponente zurück, die für die Darstellungder in displayValues übergebenen Werte zuständig ist. Bei SetValueDisplayhandelt es sich also um eine Implementierung des Strategie-Entwurfsmusters.Die abstrakte Klasse AbstractSetValueDisplay implementiert viele der in Set-ValueDisplay definierten Methoden <strong>und</strong> stellt die Oberklasse für Klassen dar, die eineMengenwert-Anzeige realisieren.Die Klassen ListSetValueDisplay <strong>und</strong> TableSetValueDisplay sind konkrete Implementierungeneiner Mengenwert-Anzeige. Die erste Klasse stellt die übergebenen Wertein einer Instanz von javax.swing.JList dar (Abb. 5.10), die zweite Klasse nutzt einejavax.swing.JTable-Instanz zur Darstellung (Abb. 5.11).Ein ausführliches Klassendiagramm der QueryInputPanel-Hierarchie findet sich sich imAnhang A auf der Abbildung A.10.• WerteanzeigeDie dritte Klassengruppe im dialog-Package ist für die Anzeige der Werte bereits bekannterVariablen in Eingabedialogen verantwortlich.Das Interface ValuesDisplay definiert Methoden, die für die Anzeige von Variablenwertenbenutzt werden: die Methode displayValues( Collection names, Collectionvalues ) dient zur Anzeige von Variablennamen <strong>und</strong> Variablenwerten, die sich jeweils inden Kollektionen names <strong>und</strong> values befinden (beide Kollektionen müssen von gleicherGröße sein). Die Methode Component getDisplayComponent() liefert, wie schon diegleichnamige Methode in der oben behandelten Klasse SetValueDisplay, eine Instanz vonjava.awt.Component, die die Variablenwerte darstellt.Die abstrakte Klasse AbstractValuesDisplay implementiert viele der in Values-Display definierten Methoden <strong>und</strong> dient als Oberklasse für konkrete Implementierungen einerWerteanzeige.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!