.. sectionauthor:: malte .. _ref-line: LineWidget =============================================================================== ``maongo.core.toolkit.LineWidget extends Widget`` Das LineWidget dient dazu anhand einer Sammlung von Koordinaten eine Linie zu zeichnen. Eingesetzt wird es beispielsweise in den LineCharts zur Darstellung der einzelnen Linien. Wahlweise können an den Koordinaten Markierungen mittels eines Templates gezeichnet werden. Auch kann eingestellt werden, nur die Markierungen ohne verbindende Linien zu zeichnen. .. note:: Eventuell macht es Sinn zu einem späteren Zeitpunkt eine interne Schachtelung einzuführen um einen "Container" um das LineWidget herum zu haben. Dieser könnte dann sowohl clippen als auch ggf. skalieren. Ebenfalls ist angedacht dem LineWidget einen Koordinatenraum zu übergeben. Ein einfaches Beispiel ohne Markierungen an den Datenpunkten:: Ein einfaches Beispiel mit Default-Markierungen an den Datenpunkten:: Ein einfaches Beispiel mit selbst definierten Markierungen an den Datenpunkten:: Funktionsweise ----------------- Das LineWidget zeichnet anhand der übergebenen Koordinaten und der sonstigen Linien-Properties ein Shape in sich selbst. Ein zusätzlich auf dem LineWidget gesetztes Shape wird ignoriert bzw. überschrieben. Die Linie wird mit der ``BackgroundColor`` des Widgets gezeichnet. Ist eine Texture oder eine Outline (LineWidth etc.) angegeben, so werden sie für die Darstellung genutzt. Da das Shape des LineWidgets durch die übergebenen Punkte/Properties definiert wird, haben diese auch Auswirkungen auf die Verhaltensweise des LineWidgets in einem Layout. So ändert sich bei einer Änderung der Punkte/Line-Properties auch das Sofern innerhalb des LineWidgets ein Template mit dem Namen "BobbleTemplate" vorhanden ist, wird dieses genutzt, um die Datenpunkte zu markieren. Hierfür wird an jedem Datenpunkt eine Instanz des Templates platziert. Dieses Verhalten kann über die Property ``DrawBobbles`` gesteuert werden. Sofern die Property ``DrawBobble`` auf ``true`` gesetzt ist und keine Template existiert, werden Default-Bobbles (Kreis mit einem Durchmesser von 10 Pixel) in der Linienfarbe gezeichnet. Das LineWidget wird auch innerhalb des LineChartWidgets genutzt, siehe :ref:`ref-linechart`. Properties ------------ Eigene Properties: **Points** (List(Point): Liste mit Punkten) Liste der Koordinatenpunkte, die als Linie dargestellt werden sollen. Default: ``leere Liste`` *Wie wird der Koordinatenraum festgelegt? Vermutlich transformiert das Widget die Punktangaben, zumindest in Y-Richtung (sonst müssten wir für positive Werte negative Punktangaben eingeben)* **DrawBobble** (Boolean) Diese Property legt fest, ob Datenpunkte mit dem in "BobbleTemplate" festgelegten Widget markiert werden. Falls diese Property auf "false" gesetzt wird, werden die Datenpunkte nicht markiert. Wird diese Property auf ``true`` gesetzt, wird das Clipping des LineWidgets deaktiviert um die Bobbles, welche als Child-Widgets des LineWidgets platziert werden, sichtbar zu machen. Default: ``true`` **LineWidth** (Number) Stärke der Linie die gezeichnet wird Default: ``1.0`` **LineCap** (Symbol) *NYI* Art wie Ecken (inkl. Start- und Endpunkt) der Linie gezeichnet werden. Default: ``symbol...`` **DrawLine** (Boolean) Diese Property legt fest, ob zwischen den Punkten eine Linie gezeichnet werden soll oder nicht. Default: ``true`` .. note:: weitere angedachte Properties: Dashes, FillStyles.