Blended Shelf - Human-Computer Interaction - Universität Konstanz
Blended Shelf - Human-Computer Interaction - Universität Konstanz
Blended Shelf - Human-Computer Interaction - Universität Konstanz
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