Plugins - Cinderella Dokumentation
Description: The user's guide to the Interactive Geometry Software Cinderella

Zum Inhalt

# Plugins

Mit CindyScript ist es möglich, das Verhalten von Cinderella auf fast unbegrenzte Weise zu erweitern und anzupassen. Dennoch kann es von Zeit zu Zeit wünschenswert sein, selbst geschriebenen Java-Code in Verbindung mit Cinderella nutzen zu können. Die Cinderella-Plugin-Struktur bietet eine Möglichkeit, mit solchen Situationen umzugehen. Es gibt mehrere Gründe, die es wünschenswert machen, ein Plugin zu nutzen. Hier sind einige davon

- Performance: Für einige Aufgaben kann CindyScript einfach zu langsam sein, so dass man optimierten benutzerdefinierten Code verwenden möchte.

- Native Bibliotheken: Manchmal möchte man native Bibliotheken verwenden (wie zum Beispiel die JOGL-Bibliothek für die Verarbeitung von 3D-Grafiken). In diesen Fällen kann ein Plugin verwendet werden, um Cinderella mit dieser Bibliothek zu verbinden.

- Lizenzprobleme: Plugins ermöglichen es, Erweiterungen für Cinderella zu schreiben und anzubieten, die unter einer speziell gewählten Lizenz betrieben werden (zum Beispiel GNU GPL). Wir werden dies selbst in Zukunft nutzen und Open-Source-Erweiterungen für Cinderella veröffentlichen. Diese Plugins stehen bald zum Download unter.... zur Verfügung.

- Code von Dritten: Plugins bilden auch eine gute Grundlage, um Java-Code von Dritten in ein Cinderella-Projekt zu integrieren.

Zum Zeitpunkt dieser Veröffentlichung sind Plugins nur in der eigenständigen Version von Cinderella verfügbar und sind nicht in Applets anwendbar. Dies wird in naher Zukunft behoben.

### Plugin-Architektur

Für detaillierte Beschreibungen der Plugin-Architektur siehe unsere Website unter http://cinderella.de/plugins. Dort finden Sie auch Beispiel-Plugins sowie geeignete Make-Dateien, um diese zu erstellen. Hier beschreiben wir nur den Arbeitsablauf sehr grob.

Ein Plugin selbst ist eine `.jar`-Datei, die ausführbare Java-Klassen enthält. Der Kern des Plugins ist eine Java-Datei (kompiliert zu einer Klassendatei), die alle Funktionen des Plugins in Cinderella exportiert. Innerhalb von Cinderella kann auf das Plugin mit CindyScript zugegriffen werden. Die Kerndatei des Plugins muss die Java-Klasse `CindyScriptPlugin` erweitern. Diese übergeordnete Klasse ist über die `cindy2.jar`-Datei in der Cinderella-Anwendung verfügbar.

Der Code für ein Plugin kann typischerweise wie folgt aussehen:

    import de.cinderella.api.cs.CindyScript;
    import de.cinderella.api.cs.CindyScriptPlugin;
    import java.awt.*;
    import java.util.ArrayList;
    import java.util.Arrays;

    public class ExamplePlugin extends CindyScriptPlugin {

    }

Die Fragmente, die durch Code wie `@CindyScript("square")` gegeben sind, deklarieren den Namen, unter dem die Funktion in CindyScript zugänglich ist. Das Plugin kann in CindyScript verwendet werden, nachdem es mit der `use`-Funktion geladen wurde:

#### Ein Plugin laden: `use(<string>)`

Beschreibung: Diese Funktion lädt ein Plugin mit dem Namen als Argument. Es ist gute Praxis, diese Funktion im Initialisierungsslot von CindyScript aufzurufen.

Das obige Plugin kann innerhalb von CindyScript wie folgt verwendet werden:

    use("ExamplePlugin");
    println(sayHello());
    println(square(4));
    println(grayvalue((0.7,0.4,0.1)));
    println(testarray([1,2,3,4,5]));

Dies erzeugt die Ausgabe

    Hello from plugin
    16
    102.3333
    [1.0, 2.0, 3.0, 4.0, 5.0]

Beachte, dass alle Klassencasts automatisch durchgeführt werden. Für eine detaillierte Beschreibung der Casting-Regeln siehe die Online-Dokumentation.

Diese Seite wurde automatisch mit KI (Claude) übersetzt und wartet noch auf Überprüfung. → Alle KI-übersetzten Seiten