.NET Steuerelement zur Darstellung von Programm- und Sendeplänen
Im Projekt Programm- und Sendeplanung war ich (unter anderem) mit der Entwicklung von
User-Controls betraut. So entstand im Zuge des Projekts ein umfangreiches Grid-Control,
zur Darstellung von Sendeplänen. Das Steuerelement ist zu 100% in C# realisiert und
zeichnet sich durch seine beeindruckende Performance aus. Dabei ist das Control nicht
auf eine Darstellungsvariante beschränkt, sondern lässt sich in Art der Darstellung
und Möglichkeiten der Benutzerinteraktion flexibel erweitern.
Aufteilung der Ansicht
Die grafische Oberfläche bietet eine Kalenderdarstellung, die an Outlook erinnert. Die
Ansicht gliedert sich in einen Kopf- und Listenbereich. Die im Kopfbereich platzierten
Spalten repräsentieren jeweils einen Sendetag, der um Informationen zu Sonder- und
Feiertagen erweitert werden kann. Die Anzahl der darzustellenden Spalten ist flexibel
einstellbar. Am linken (und/oder rechten) Rand kann eine Zeitleiste eingeblendet werden,
die (anders als in der Outlook-Kalenderansicht) nicht linear verläuft, um jedem Element
den notwendigen Platz zur Darstellung einzuräumen.
Das Steuerelement bietet eine Reihe von Automatisierungen an. So können die anzuzeigenden
Spalten aus den an das Control gebundenen Daten automatisch ermittelt werden, oder aber
genau definiert werden. Sendelücken, Überschneidungen sowie Sendungen mit identischer
Sendezeit werden ebenfalls automatisch bestimmt und in der Darstellung entsprechend
gekennzeichnet.
Drag & Drop
Das Control unterstützt erwartungsgemäß eine Vielfalt an Mouse- und Tastatur-Interaktionen.
Besonderes Augenmerk galt der Implementierung der Unterstützung von Drag&Drop. Sendeplätze
lassen sich auf der Ansicht beliebig platzieren - sogenannte Widgets zeigen die Auswirkung
der Aktion an, sobald der Benutzer die Maus in den Randbereich eines Elements bewegt.
Elemente, die in den Ziehvorgang involviert sind, werden während der Benutzer die linke
Maustaste gedrückt hält, halbtransparent (schwebend) an der Position des Mauszeigers
gezeichnet.
Erweiterte Funktionen
Die Elemente der Ansicht lassen sich mit Symbolen, Markern und benutzerdefinierten Farben
versehen. Einzelne Elemente (oder sogar ganze Spalten) können fixiert werden - ein
Verschieben dieser Elemente kann auf diese Weise unterbunden werden und wird dem Benutzer
durch ein entsprechendes Widget signalisiert, sobald das Element mit der Maus überflogen
wird. Desweiteren bietet das Control eine besondere Variante des Hot-Trackings, bei der
Elemente durch einen Schlagschatten aus der Ansicht optisch herausgehoben werden :-)