LeTTo Doc

Eigenes Plugin erstellen

Voraussetzungen

1. Demoprojekt auschecken

git clone https://github.com/LeTTo-GmbH/plugin-demo-java.git

2. Endpoint-Pfad festlegen

Der Endpoint-Pfad ist der öffentliche Pfad des Plugins direkt nach dem Servernamen, z.B. https://servername/pluginuhr/. Er muss am Zielserver eindeutig sein.

build\setpluginname.bat pluginuhr

Das Script (nur Windows) führt folgende Schritte aus:

Ziel Änderung
src/main/resources/application.properties neu aus build/templates, plugindemo durch den Endpoint ersetzt (Swagger-Pfade, Anwendungsname)
yml/docker-service-plugin.yml neu aus build/templates, plugindemo/PLUGINDEMO ersetzt (Image, Container, Umgebungsvariablen)
src/main/resources/static/<endpoint>/open/ neu aus build/templates/open (CSS, JS, Fonts, Bilder) und head_include.html
config/Endpoint.java servicepath = "/<endpoint>"
config/PluginConfiguration.java PLUGIN_NAME = "letto-<endpoint>", Default für Netzwerkadresse und Containername, interne URI http://letto-<endpoint>.nw-letto:8080
controller/ApiController.java JavaDoc-Link in der Swagger-Beschreibung
build/vars.bat urlpath=<endpoint> (wird von build.bat und build.sh gelesen)
proxy/<endpoint>.conf Verzeichnis proxy wird neu erzeugt, enthält die nginx-Konfiguration

Achtung: Das Script entfernt src/main/resources/static mit git rm -r und legt es neu an.

3. Plugin-Klasse erstellen

public class PluginMein extends BasePlugin {
    public PluginMein(String name, String params) {
        super(name, params);
        version        = "1.0";
        helpfiles      = new String[]{"plugins/mein/Mein.html"};
        javascriptLibs = new String[]{"plugins/mein/meinScript.js"};
        javaScript     = true;
        initPluginJS   = "initPluginMein";
        // params auswerten ...
    }

    @Override
    public void paint(Graphics2D g, PluginImageResultDto r) {
        // Bild zeichnen (width x height)
    }
}

4. Plugin registrieren

In config/StartupConfiguration.java den Plugin-Typ mit Name und vollständigem Klassennamen registrieren:

pluginConfiguration.registerPlugin("Mein", "at.letto.plugins.plugin.meinplugin.PluginMein");

5. Ressourcen anlegen

JavaScript-Schnittstelle

Funktion Aufruf Vorgaben von LeTTo
Init-Methode (initPluginJS) initPluginUhr1(dtoString, active) – dtoString ist das PluginDto als JSON, active=false bedeutet keine Eingabe erlaubt (Lösungsansicht) Ausgabe in das div #<tagName>_div, Ergebnis in das versteckte Feld .<tagName>_inp
Konfigurations-Methode (configPluginJS) configPluginUhr1(dtoString) – dtoString ist das PluginConfigDto als JSON Ausgabe in #configform_div, Ergebnis (Konfigurationsstring) in das versteckte Feld .configform_config

6. Bauen, deployen, testen

Referenz-Plugin (Java)