28.02.2014 Aufrufe

Blended Shelf - Human-Computer Interaction - Universität Konstanz

Blended Shelf - Human-Computer Interaction - Universität Konstanz

Blended Shelf - Human-Computer Interaction - Universität Konstanz

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.

Umsetzung<br />

Position angestoßen. Auf diese Art und Weise können dem Nutzer die Abläufe im Regal animiert<br />

dargestellt werden.<br />

Eine weitere Aufgabe der ItemControls sind Winkelberechnungen im dreidimensionalen Raum. So<br />

wird beispielsweise ein vom Nutzer ausgewähltes Objekt immer frontal zu ihm präsentiert, so dass<br />

die Cover-Abbildung garantiert vollständig sichtbar ist. Der Nutzer kann zusätzlich den Blickwinkel<br />

der Kamera hin zum Regal ändern. Auch hier ist es relevant, stets über die Winkel informiert zu<br />

sein, so dass zu steile oder flache Winkel programmatisch verhindert werden können.<br />

Wird ein ItemModel instanziiert, bekommt es ein Objekt übergeben, welches die Metadaten des<br />

Mediums aus der Bibliotheksdatenbank enthält. Anschließend wird asynchron in einer Datenbank<br />

nach zusätzlichen Daten anhand der eindeutigen ID 69 angefragt. Zusätzliche Daten können z. B. die<br />

Maße des Objekts sowie seine häufigste Farbe sein. Des Weiteren wird parallel bei einem Server<br />

der Bibliothek angefragt, ob das Medium verfügbar ist. Außer mit dem Datenbezug beschäftigt sich<br />

das ItemModel vorrangig mit der Aufbereitung und Validierung der Daten.<br />

Wie eingangs beschrieben, sind die ItemControls im Observer-Pattern die Observer. Ändert sich<br />

der Status des Models, wird das korrespondierende Control benachrichtigt. Gibt es eine Änderung<br />

im Model, wird das Control entsprechend angepasst. Um zu vermeiden, dass bei jeder Änderung<br />

im Model sowohl die Geometrie als auch die Materialien neu generiert werden müssen, gibt es<br />

Fallunterscheidungen. Diese Fallunterscheidungen sind insofern relevant, als manche Operationen<br />

auf den Models (vor allem Such- und Sortiervorgänge) zeitgleich auf hunderte von ItemControls<br />

Auswirkungen haben. Dies hat negative Auswirkungen auf die Performance und gefährdet ein<br />

reaktives UI. Daher werden Elemente nur vollständig neu gezeichnet, wenn dies unbedingt notwendig<br />

ist.<br />

6.3.3 Komponenten<br />

Neben den oben beschriebenen Regalen (<strong>Shelf</strong>Control und <strong>Shelf</strong>Model) sowie den Medien (Item-<br />

Control und ItemModel) kommen im BS weitere Komponenten zum Einsatz. Diese werden im<br />

Folgenden skizziert:<br />

Comparers<br />

Dies sind Klassen, die die Regeln enthalten, nach welchen die Objekte sortiert werden können. Da<br />

die Daten der Medien (also die ItemModels) in einer Liste gehalten werden, lassen sich beliebige<br />

Sortierkriterien einsetzen, wenn ein entsprechender Comparer übergeben wird. In den Comparers<br />

wird die Ordnung selbst definiert. So ist man nicht auf vorgefertigte alphanumerische Sortierungen<br />

angewiesen, was z. B. beim Sortieren nach Farbe relevant ist. Derzeit sind acht Vergleichsklassen<br />

implementiert, die beispielsweise nach Verfügbarkeit und Titel sortieren.<br />

69 Die PPN (Pica Production Number) des Südwestdeutschen Bibliotheksverbundes (SWB).<br />

68

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!