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.

6.3 VERBESSERUNGEN AN DER BENUTZERSCHNITTSTELLE 117• Es muss eine Kontrollklasse erstellt werden, die die Filterung von Elementwerten in Eingabepanelseingeschränkter Typen entsprechend dem beschriebenen Optimiertungsvorschlagsteuert.Die Implementierung dieser Optimierung würde die Eingabe eingeschränkter Typen für den Benutzerbeträchtlich erleichtern, insbesondere bei eingeschränkten Typen, deren Basistypen aus wenigenElementen bestehen. Ein weiterer Vorteil dieser Lösung ist, dass sich das Erscheinungsbilddes Eingabepanels gegenüber der aktuellen Implementierung, im Gegensatz zum Vorschlag 2), nurunwesentlich verändert würde. Es ist jedoch beachten, dass die Filterung bei komplexen Restriktionstermenviel Zeit beanspruchen kann, sodass dem Benutzer eine Möglichkeit zur Verfügunggestellt werden muss, die Filterung zu deaktivieren – beispielsweise durch eine Checkbox ”Filterlast value”, die während der Eingabe gesetzt oder gelöscht werden kann.4) Filterung aller Elemente eines eingeschränkten Typs:Eine Weiterentwicklung des Optimierungsvorschlags 3) besteht darin, dass nicht nur der letzte,sondern alle Elemente des Basistyps eines eingeschränkten Typs vor <strong>und</strong> während der Eingabegefiltert werden. Das Gr<strong>und</strong>prinzip kann folgendermaßen formuliert werden:Ist ein Wert für einen eingeschränkten Typ einzugeben, dessen Basistyp ein zusammengesetzterTyp mit n Elementen ist, so können nach der Eingabe von n − m Elementen(m < n) die restlichen m Elemente so gefiltert werden, dass nur Elemente zur Auswahlstehen, die zusammen mit den bereits eingegebenen Werten für die anderen n − m Elementein mindestens einem Basistyp-Tupel auftauchen, das die Restriktionsbedingungerfüllt.Wir wollen die Idee für einen Algorithmus beschreiben, der diese Optimierung realisiert:– Vor dem Öffnen des Eingabedialogs wird über alle Instanzen des eingeschränkten Typs iteriert.Für jede solche Instanze, d.h., für jedes Basistyp-Tupel, das die Restriktionsbedingungerfüllt, werden die Elemente x 1 , ..., x n in Hashtabellen H 1 , ..., H n eingetragen – wenn einElement x i bereits in der Tabelle H i vorhanden ist, muss es nicht erneut eingetragen werden.Nach der Iteration über alle Instanzen des eingeschränkten Typs befinden sich in den TabellenH 1 , ..., H n alle Werte der Basistyp-Elemente, die in mindestens einem Tupel vorkommen,das die Restriktionsbedingung erfüllt. Die Werte der Basistyp-Elemente aus H 1 , ..., H nwerden nun in den Auswahllisten für die Elemente x 1 , ..., x n des Basistyps angezeigt.– Wird der Wert für ein erstes Basistyp-Element x i1 ausgewählt, so müssen die restlichen n − 1Auswahllisten gefiltert werden. Dafür wird über alle Basistyp-Tupel iteriert, deren Elementwertex 1 , ..., x n in den Tabellen H 1 , ..., H n enthalten sind, <strong>und</strong> deren i 1 -tes Element auf denausgewählten Wert von x i1 gesetzt ist. Die Werte von Elementen x 1 , ..., x i1 −1, x i1 +1, x n , diein mindestens einem Tupel vorkamen, das die Restriktionsbedingung erfüllte, werden in denListen für die Elemente x 1 , ..., x i1 −1, x i1 +1, x n angezeigt.– Wird der Wert für ein Basistyp-Element x ir ausgewählt (1 ≤ r ≤ n − 1), nachdem Werte fürdie Elemente x i1 , ..., x ir−1 ausgewählt wurden, so werden die restlichen n−r Elemente x j mitj ∈ {1, ..., n}\{i 1 , ..., i r } analog zum vorherigen Schritt gefiltert: in den Auswahllisten fürdie Elemente x j werden nur diejenigen Werte angezeigt, die in mindestens einem Basistyp-Tupel vorkommen, das die Restriktionsbedingung erfüllt, <strong>und</strong> in dem die Elemente x i1 , ..., x irauf die ausgewählten Werte gesetzt sind.– Wird bei einem früher ausgewählten Element x ik die Selektion aufgehoben, dann wird sovorgegangen, als wäre das zuletzt ausgewählte Element x ir erneut ausgewählt worden, wobeider Wert für x ik nicht mehr fest ist, sondern ebenfalls gefiltert wird: die ausgewähltenElemente sind nun x i1 , ..., x ik−1 , x ik+1 , ..., x ir <strong>und</strong> die gefilterten Elemente sind x j mitj ∈ {1, ..., n}\{i 1 , ..., i r } ⋃ {i k }.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!