Dokumentation zu Steuerelemente per Plugins
===========================================

Außer den drei vordefinierten (hardgecodedeten) Steuerelementenklassen Go, Turn und Recognize,
gibt es die Möglichkeit, beliebige eigene Steuerelementklassen zu integrieren. Dies ist über
die Plugin-Schnittstelle möglich, die hier beschrieben wird.

Plugin-Files - Definitionen
---------------------------

1.) Plugin-Files müssen sich im Ordner "plugins" befinden. Der Ordner "plugins" muss
sich im selben Verzeichnis wie "RoboKIDE.jar" befinden.

2.) Alle Plugin-Files müssen die Endung ".plugin" haben.

3.) Plugin-Files sind momentan Properties-/INI-Files, d.h. in jeder Zeile steht etwas wie
"key=value". Kommentare werden mit '#' eingeleitet.

4.) Die Reihenfolge der Zeilen ist egal - es müssen aber alle geforderten Keys vorhanden sein.
Indizes beginnen bei 0.

5.) Zahlen müssen grundsätzlich dezimal angegeben werden. Nur Farben dürfen auch hexadezimal
angegeben werden. Dazu müssen die Werte mit "0x" beginnen.

6.) Type-UIDs kleiner 10 sind reserviert, also tabu für Plugins!

7.) Der Datentyp von Parametern (parameterX.type) kann momentan entweder "int" bzw. "integer" sein,
oder leer bleiben bzw. ganz fehlen. Falls der Typ Integer ist, wird ein Integer-Parameter erstellt,
ansonsten wird ein Standard-(String-)Parameter erstellt. Für aktuell unterstützte Datentypen siehe
in "PluginControlElement.java".

8.) Abmaße des Steuerelements werden in Pixeln angegeben (z.B. width und height).


Beispieldatei
-------------

=== Beispieldatei "bsp.plugin" ======================

name=Beispiel
typeuid=10
pathcount=3
parametercount=3
color=29383421
width=130
height=200

parameter0.type=int
parameter0.key=steps
parameter0.name=Schritte
parameter0.description=Anzahl der Schritte
parameter0.value=23

parameter1.type=integer
parameter1.key=radius
parameter1.name=Radius
parameter1.description=Radius für die Kurve
parameter1.value=60

parameter2.type=
parameter2.key=speed
parameter2.name=Geschwindigkeit
parameter2.description=Fahrgeschwindigkeit
parameter2.value=10

path0.caption=1
path1.caption=2
path2.caption=3

=== Ende Beispieldatei ===============================


Hinweise
--------

Welche Zeilen in der Datei notwendig sind und welche weggelassen werden könnten, wird hier nicht
beschrieben. Allgemein lässt sich ein Plugin aber einfach testen, indem es in RoboKIDE auf das
Ablaufdiagramm gezogen wird. Erscheint dabei ein Fehler, ist das Plugin höchstwahrscheinlich
fehlerhaft. Ansonsten funktioniert es wohl. Wenn man sicher gehen will, sollte man einfach alle
Zeilen in die Plugin-Datei übernehmen.