Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
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.