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 81<strong>ODL</strong>-Datentyp query-Methode im QueryManager Interface für Query-KlasseBoolean Boolean queryBool(..) BoolQueryInteger Integer queryInteger(..) IntegerQueryString String queryString(..) StringQueryEntity Entity queryEntity(..) EntityQueryIntroducedType Object queryIntroducedType(..) IntroducedTypeQueryProductType ProductValue queryProductType(..) ProductTypeQueryRestrictedType Object queryRestrictedType(..) RestrictedTypeQuerySetType SetValue querySetType(..) SetTypeQueryTabelle 5.13: query-Methoden <strong>und</strong> Query-Klassen für verschiedene <strong>ODL</strong>-Datentypennew DefaultIntegerQuery(),new DefaultStringQuery(),new DefaultEntityQuery(),new DefaultIntroducedTypeQuery(),new CompositePanelProductTypeQuery(),new DefaultRestrictedTypeQuery(),new DefaultSetTypeQuery() );Eine Benutzereingabe wird bei der Auswertungs eines context-Quantors angestoßen. Dieserruft in der MetaType-Instanz, die den Datentyp des einzugebenden Werts beschreibt, die Methodequery auf. Diese Methode wendet sich ihrerseits an die dem Datentyp entsprechende query-Methode in der Klasse QueryManager. An dieser Stelle wird die Kontrolle an das Query-Subsystemübergeben. Die query-Methode des QueryManager’s benutzt die Query-Klasse, die als Strategiefür Benutzereingaben für den abgefragten Datentyp eingestellt ist, indem sie ihre query-Methodeaufruft. Diese führt die Benutzereingabe aus <strong>und</strong> gibt das Eingabeergebnis zurück. Die Abbildung 5.17zeigt den Ablauf einer Benutzereingabe für einen booleschen Wert (das Sequenzdiagramm wurde ausGründen der Übersichtlichkeit um wenige Methodenaufrufe gekürzt, die für das Verständnis des Ablaufskeine wesentliche Rolle spielen).Den Quellcode der query-Methode der dafür vom QueryManager benutzten Query-KlasseDefaultBoolQuery wollen wir im Folgenden kommentiert angeben:public Boolean bQuery(String variableName, Assignment freeVariables,Collection names, Collection values,boolean enableBackwardStep, String hintText ) {* Instanz des Eingabedialogs holen, der für boolesche Wertebenutzt werden soll. */QueryDialog queryDialog = QueryDialogManager.getInstance().getBoolQueryDialog();/* Eingabepanel-Fabrik für den booleschen Datentyp vomEingabepanel-Manager holen. */BoolQueryInputPanelFactory inputPanelFactory =QueryFactoryManager.getInstance().getBoolQueryInputPanelFactory();/* Eingabepanel von der Eingabepanel-Fabrik erzeugen lassen. */QueryInputPanel queryInputPanel =inputPanelFactory.createBoolQueryInputPanel( variableName );/* Das erzeugte Eingabepanel an den Eingabedialog übergeben. */queryDialog.setQueryInputPanel( queryInputPanel );/* Wenn Variablenwerte übergeben wurden, die dem Benutzer anzuzeigensind, dann eine Werteanzeige erstellen <strong>und</strong> an den Eingabedialogübergeben. */

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!