19.01.2015 Aufrufe

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

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.

10.3 Pie-Menü 183<br />

sein muss. VisibleAngleOffset gibt einen Offset zum Winkel an, sodass das Pie-<br />

Menü eventuell auch am linken oder rechten Rand des Bildschirms angezeigt werden<br />

kann.<br />

PiePieceWidth<br />

PiePieceInnerRadius<br />

PiePieceOuterRadius<br />

Abbildung 10.2: Zusammenhang der Radien im PiePanel<br />

Des Weiteren steht das Property ElementsAreLooped als boolean-Wert, welches für die<br />

unendliche Drehbarkeit des Panels gesetzt werden muss. Das Property ShowLeftRight-<br />

Button stellt die Möglichkeit zur Verfügung, die Schaltflächen zum Rotieren aus- bzw.<br />

einblenden zu lassen.<br />

Elemente können über die Property ItemsSource dem PiePanel hinzugefügt werden.<br />

Zu jedem Element aus der ItemsSource wird ein entsprechendes GUI-Element erzeugt.<br />

Da der angezeigte Platz eventuell nicht alle Elemente fasst, wird mit der privaten<br />

Methode CalcNumberOfVisibleItems berechnet, wie viele Elemente dargestellt<br />

werden können. Sollten alle Elemente im verfügbaren Bereich Platz finden, wird ein<br />

boolean-Wert gesetzt, wodurch das PiePanel nicht rotierbar ist.<br />

Wie im Entwurf zum Pie-Menü beschrieben ist, soll nur eine bestimmte Anzahl von<br />

Ringen sichtbar sein. Dies bedeutet, dass ein Ring eingeklappt werden kann <strong>und</strong> über<br />

die Property ExpansionsState angezeigt wird. Die Property ist ein Enum, welches<br />

die Werte Collapsed, Expanded, Expanding oder Collapsing annehmen kann. Die<br />

Methoden Collapse <strong>und</strong> Expand führen das Ein- bzw. Ausklappen eines Ringes durch.<br />

Hierbei wird eine Animation abgespielt.<br />

Um Multitouch-Events <strong>und</strong> zu Testzwecken auch ohne Multitouch-Gerät Mouse-Events<br />

zu verarbeiten, stellt die Klasse PiePanel Methoden bereit, die auf eben diese Events<br />

reagieren. Für den Fall von MouseDown-, MouseUp-, MouseMove, FingerMove- <strong>und</strong><br />

FingerUp-Events wird die Routing-Strategie Tunneling verwendet, um das PiePanel<br />

auf eine Rotation reagieren lassen zu können, ohne auf einem dargestellten Element ein<br />

Event auszulösen. So kann erreicht werden, dass das PiePanel auch rotiert wird, wenn<br />

die Rotation auf einem Button beginnt. Anderenfalls würde der eventuelle Klick/Touch<br />

auf das Element möglicherweise eine nicht gewünschte Aktion auslösen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!