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.

90 KAPITEL 5: IMPLEMENTIERUNGWie wir sehen, ist eine beträchtliche Anzahl von Änderungen für die Einführung eines neuen<strong>ODL</strong>-Datentyps vorzunehmen. Nichtsdestoweniger wird der notwendige Implementierungsaufwandweitestgehend durch den Aufwand für die Erstellung des Eingabepanels für den neuenDatentyp bestimmt, weil alle anderen Änderungen mit geringem Aufwand durchführbar sind.• Einführung eines neuen Eingabepanels am Beispiel von ListQueryInputPanel:Ein neues Eingabepanel zur Benutzung in Eingabedialogen kann vergleichsweise schnell in das<strong>ODL</strong>-Query-Subsystem integriert werden. Ein Eingabepanel wird als Unterklasse der abstraktenKlasse QueryInputPanel oder einer ihrer Unterklassen erstellt. Die zu implementierendeEingabeliste erlaubt dem Benutzer die Eingabe des Werts durch die Auswahl aus derListe aller verfügbaren Werte – daher wird sie als Unterklasse von SelectionQueryInputPanelimplementiert. Folgende Schritte sind zur Einführung eines Listeneingabepanelsnotwendig:– Zunächst wird die konkrete Eingabepanel-Implementierung ListQueryInputPanelals Unterklasse der abstrakten Klasse SelectionQueryInputPanel erstellt.– Zur Erzeugung neuer ListQueryInputPanel-Instanzen wird die Producer-KlasseListQueryInputPanelProducer als Unterklasse von SelectionQueryInputPanelProducerimplementiert.– Schließlich wird die Klasse ListQueryInputPanel im QueryConfiguration-Dialog in die als statisches Array ausgeführte Liste verfügbarer Eingabepanels eingetragen.Anschließend muss sie noch für jeden <strong>ODL</strong>-Datentyp, für den sie als Eingabepanelverwendet werden kann, in ein diesem Datentyp entsprechendes statisches Array eingetragenwerden, das alle für diesen Datentyp einsetzbaren Eingabepanels enthält. MehrDetails zu dieser Vorgehensweise finden sich im Kommentar zum Quellcode der Query-ConfigurationDialog-Klasse.Abschließend wollen wir noch einige Hinweise für weitere Implementierungen geben:• Erweiterungen <strong>und</strong> Änderungen der <strong>ODL</strong>-Query-Subsystems:Dank des modularen Aufbaus des <strong>ODL</strong>-Query-Subsystems <strong>und</strong> der Anbindung an das Auswertungssystemüber eine festgelegte Schnittstelle im QueryManager (s. auch Abschnitt 5.2)sind Erweiterungen des Query-Subsystems ohne Änderungen an anderen <strong>ODL</strong>-Auswertungsklassenmöglich, die von der Einführung neuer Eingabepanels bis hin zur Implementierungeines kompletten neuen Query-Subsystems reichen können.Die Query-Klassen stellen die oberste Ebene für Modifikationen am <strong>ODL</strong>-Query-Subsystemdar: muss die Benutzereingabe für einen <strong>ODL</strong>-Datentyp umfassend überarbeitet werden, so isteine neue Query-Klasse für diesen Datentyp zu erstellen, die als Strategie dem QueryManagerübergeben werden kann.Sind nur Änderungen am Erscheinungsbild eines Eingabedialogs oder eines Eingabepanels notwendig,so kann die entsprechende QueryDialog- bzw. QueryInputPanel-Klasse modifiziertoder eine neue erstellt werden. Damit eine neue Dialog-Klasse oder Eingabepanel-Klassevom Benutzer zur Verwendung in Eingabedialogen ausgewählt werden kann, muss sie, wie obenbeschrieben, QueryConfigurationDialog in die als statisches Array ausgeführte Listeverfügbarer Dialog- bzw. Eingabepanel-Klassen eingetragen werden. Nach der Durchführungdieser Schritte ist das neue Dialogfenster bzw. Eingabepanel für Benutzereingaben verfügbar<strong>und</strong> kann im Konfigurationsdialog ausgewählt werden.• Zukünftige Erweiterungen bei benamten Prädikaten:Zurzeit können bei der Deklaration benamter Prädikate nur <strong>Sprachkonstrukte</strong> aus der CCL-Teilmenge von <strong>ODL</strong> benutzt werden, d.h, die Quantoren context <strong>und</strong> new sowie das Schlüsselwortresult sind nicht zugelassen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!