Table Of Contents

Previous topic

5.7. StackWidget

Next topic

5.10. CanvasWidget

This Page

Section author: malte

5.9. 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:

<widget name="myline" type="Line" location="40,40">
    <property name="BackgroundColor" value="yellow" />
    <property name="LineWidth" value="3" />
    <property name="Points" value="10,10; 50,100; 70,20" />
    <property name="DrawBobbles" value="false" />
</widget>

Ein einfaches Beispiel mit Default-Markierungen an den Datenpunkten:

<widget name="myline" type="Line" location="40,40">
    <property name="BackgroundColor" value="yellow" />
    <property name="LineWidth" value="3" />
    <property name="Points" value="10,10; 50,100; 70,20" />
    <property name="DrawBobbles" value="true" />
</widget>

Ein einfaches Beispiel mit selbst definierten Markierungen an den Datenpunkten:

<widget name="myline" type="Line" location="40,40">
    <property name="BackgroundColor" value="yellow" />
    <property name="LineWidth" value="3" />
    <property name="Points" value="10,10; 50,100; 70,20" />

    <template name="BobbleTemplate">
       <property name="BackgroundColor" value="red" />
       <property name="Shape" value="E -5 -5 10 10"/>
    </template>

</widget>

5.9.1. 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 LineChartWidget @.

5.9.2. 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.