Interface PluginService

All Known Implementing Classes:
BasePlugin, PluginUhr

public interface PluginService
Interface für die Plugin-Programmierung
Alle DTOs sind von LeTTo direkt unabhängig
  • Method Details

    • getWikiHelp

      String getWikiHelp()
      Returns:
      Liefert den Namen der Wiki-Seite wenn eine Doku am LeTTo-Wiki vorliegt
    • getHelpUrl

      String getHelpUrl()
      Returns:
      Liefert eine Hilfe-URL für die Beschreibung des Plugins
    • isDefaultPluginConfig

      boolean isDefaultPluginConfig()
      Returns:
      Gibt an ob die Standard-Plugin-Configuration verwendet werden soll
    • isMath

      boolean isMath()
      Returns:
      Gibt an ob das Plugin Ergebnisse und VarHash als JSON-String verarbeiten kann
    • getPluginType

      String getPluginType()
      Liefert den Typ des Plugins
      Returns:
      Klasse des Plugins
    • getPluginVersion

      String getPluginVersion()
      Returns:
      Liefert die aktuelle Version eines Plugins, ändert sich diese, so ändert sich auch die Prüfsumme jedes Plugin Bildes
    • getConfig

      String getConfig()
      Returns:
      Liefert den Konfigurationsstring des Plugins
    • getTag

      String getTag()
      Returns:
      Liefert den String welcher für die Definition des Plugins gespeichert wird [PI name typ "config"]
    • setName

      void setName(String name)
      Setzt den Namen des Plugins
      Parameters:
      name - Pluginname
    • getName

      String getName()
      Returns:
      Liefert den Namen des Plugins
    • getImageWidthProzent

      int getImageWidthProzent()
      Returns:
      Liefert die Bildbreite in Prozent der Seitenbreite für die Ausgabe
    • getHelp

      String getHelp()
      Returns:
      Liefert eine HTML-Hilfe zu dem Plugin.
    • getAngabe

      String getAngabe(String params)
      Liefert einen Angabestring für die MoodleText Angabe und erzeugt gegebenenfalls fehlende Datasets in der Datasetliste
      Parameters:
      params - Parameter für die Einstellungen
      Returns:
      String für das MoodleText-Feld
    • generateDatasets

      List<PluginDatasetDto> generateDatasets()
      Returns:
      Liefert alle Datensätze, welche für das Plugin in der Frage vorhanden sein sollten
    • getVars

      Vector<String> getVars()
      Liefert eine Liste aller Variablen welche als Dataset benötigt werden.
      Returns:
      Liste aller Variablen des Plugins
    • getWidth

      int getWidth()
      Returns:
      liefert die Breite des Plugin-Bildes
    • getHeight

      int getHeight()
      Returns:
      liefert die Höhe des Plugin-Bildes
    • getHTML

      String getHTML(String params, PluginQuestionDto q)
      Berechnet den Fragetext für das Fragefeld des Webservers für die angegebenen Parameter für die Verwendung in einem PIT Tag
      Parameters:
      params - Parameter für die Antworterzeugung
      q - Frage wo das Plugin eingebettet ist
      Returns:
      HTML Text
    • getMaxima

      String getMaxima(String params, PluginQuestionDto q, PluginMaximaCalcModeDto pluginMaximaCalcMode)
      Liefert einen Maxima-Berechnungsstring für die Berechnung des Plugins
      Parameters:
      params - Parameter
      q - Frage wo das Plugin eingebettet ist
      pluginMaximaCalcMode - Art der Berechnung
      Returns:
      Maxima Berechnungs-String
    • parseDrawParams

      void parseDrawParams(String params, PluginQuestionDto q, PluginImageResultDto pluginImageResultDto)
      Wertet die Parameter für die Bild-Routinen aus
      Parameters:
      params - Parameter des Bild-Tags
      q - aktuelle Frage
      pluginImageResultDto - Nimmt alle Fehlermeldungen auf, welche beim Rendern des Bildes entstehen
    • getImageDto

      ImageBase64Dto getImageDto(String params, PluginQuestionDto q)
      Liefert ein Base64 codiertes Bild mit den angegebenen Parametern
      Parameters:
      params - Parameter für die Bilderzeugung
      q - Frage wo das Plugin eingebettet ist
      Returns:
      Base64 kodiertes Bild in einem MoodleFile
    • getImageTemplates

      Vector<String[]> getImageTemplates()
      Liefert eine Liste aller möglichen Varianten von Bildern Element 0 : beschreibender Text Element 1 : PIG Tag Element 2 : Hilfetext
      Returns:
      Liefert eine Liste aller möglichen Varianten von Bildern
    • parserPlugin

      CalcErgebnisDto parserPlugin(VarHashDto vars, CalcParamsDto cp, CalcErgebnisDto... p)
      Wird verwendet wenn im Lösungsfeld die Funktion plugin("pluginname",p1,p2,p3) verwendet wird
      Parameters:
      vars - Alle Variablen der Frage
      cp - Berechnungsparameter
      p - Liste von CalcErgebnis-Werten, welche an das Plugin von der Question aus übergeben werden können
      Returns:
      Ergebnis der Funktion
    • parserPluginEinheit

      String parserPluginEinheit(String... p)
      Bestimmt die Recheneinheit, welche bei der Methode parserPlugin als Ergebnis herauskomment wenn die Parameter die Einheiten wie in der Liste p haben
      Parameters:
      p - Einheiten der Parameter als Recheneinheiten
      Returns:
      Recheneinheit des Ergebnisses
    • isJavaScript

      boolean isJavaScript()
      Returns:
      Gibt an ob das Plugin eine Java-Script Schnittstelle bei der Beispieldarstellung hat
      Im alten LeTTo als Interface QuestionPluginJavaScript
    • getPluginGeneralInfo

      PluginGeneralInfo getPluginGeneralInfo()
      Returns:
      Alle globalen Informationen des Plugins
    • getPluginImageDescription

      String getPluginImageDescription(String imageParams, PluginQuestionDto q)
      Bestimmt einen eindeutigen String, welcher ein Plugin-Bild beschreibt um daraus den Dateinamen bestimmen zu können.
      Parameters:
      imageParams - Parameter des PIG-Tags
      q - Frage in der das Plugin eingebettet ist
      Returns:
      eindeutiger String der das Plugin-Bild eindeutig beschreibt.
    • updatePluginstringJavascript

      String updatePluginstringJavascript(String pluginDef, String jsResult)
      Passt die Plugindefinition an die Eingabe aus dem Javascipt-Result an. zB: Interaktive Karte
      Parameters:
      pluginDef - akt. Plugin-Definition
      jsResult - Rückgabe von Javascript
      Returns:
      aktualiesierte Plugindefinition
    • javascriptLibraries

      List<JavascriptLibrary> javascriptLibraries()
      Liefert eine Liste von Javascript-Libraries, die im Header der HTML-Seite eingebunden werden müssen. Es muss die vollständige URL angegeben werden!
      Returns:
      für das Plugin notwendige JS-Libraries
    • javascriptLibrariesLocal

      List<JavascriptLibrary> javascriptLibrariesLocal()
      Liefert eine Liste von LOKALEN Javascript-Libraries, die im Header der HTML-Seite eingebunden werden müssen. Pfade werden relativ zum akt. Servernamen übergeben
      Returns:
      für das Plugin notwendige JS-Libraries
    • loadPluginDto

      PluginDto loadPluginDto(String params, PluginQuestionDto q, int nr)
      Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - Bearbeitung
      Parameters:
      params - Plugin-Parameter
      q - Question, in die das Plugin eingebettet ist
      nr - Laufende Nummer für alle PIG-Tags und Question-Plugins
      Returns:
      PluginDto
    • renderLatex

      PluginRenderDto renderLatex(PluginDto pluginDto, String answer, String mode)
      Rendert ein Plugins für den Fragedruck als Latex-Sourcode
      Parameters:
      pluginDto - Das PluginDto welches am Webserver an das Java-Script des Plugins zum Rendern gesandt wird
      answer - Inhalt des Antwortfeldes welches der Schüler eingegeben hat
      mode - Druckmode
      Returns:
      Latexsourcode und zugehörige Bilder in einer Hashmap
    • score

      PluginScoreInfoDto score(PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade)
      Prüft die Eingabe eines Schülers
      Parameters:
      pluginDto - PluginDto welches für die Java-Script aktive Eingabe aufbereitet wurde
      antwort - Antwort die der Schüler eingegeben hat
      toleranz - Toleranz für die Lösung
      varsQuestion - Referenz auf VarHash, wird dynamisch nachgeladen
      answerDto - Antwort des Schülers
      grade - Maximale Punktanzahl für die richtige Antwort
      Returns:
      Bewertung
    • modifyAngabe

      String modifyAngabe(String text, PluginQuestionDto q)
      verändert einen Angabetext, der in der Angabe in PI Tags eingeschlossen wurde
      Die Funktion wird vor dem Darstellen der Frage ausgeführt.
      Parameters:
      text - Text der innerhalb der PI Tags gestanden ist
      q - Frage innerhalb der, der Text sich befindet, die Frage sollte vom Plugin nicht verändert werden!!
      Returns:
      veränderter Text
    • modifyAngabeTextkomplett

      String modifyAngabeTextkomplett(String text, PluginQuestionDto q)
      verändert den kompletten Angabetext der Frage. Dieser muss als Parameter übergeben werden!
      Die Funktion wird vor dem Darstellen der Frage ausgeführt.
      Parameters:
      text - Angabetext der Frage
      q - Frage innerhalb der, der Text sich befindet, die Frage sollte vom Plugin nicht verändert werden!!
      Returns:
      veränderter AngabeText
    • getInputElement

      InputElement getInputElement()
      Methode definiert das Eingabeelement der Subquestion, die das Plugin verwendet
      Returns:
      anzuzeigendes Eingabeelement, default: TextField
    • renderPluginResult

      PluginRenderDto renderPluginResult(boolean tex, PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade)
      Rendert das Plugin inklusive der Schülereingabe und korrekter Lösung
      Es wird dabei entweder direkt ein HTML-Code oder LaTeX-Code erzeugt
      Parameters:
      tex - true für LaTeX-Code, false für html-Code
      pluginDto - PluginDto welches für die Java-Script aktive Eingabe aufbereitet wurde
      antwort - Antwort die der Schüler eingegeben hat
      toleranz - Toleranz für die Lösung
      varsQuestion - Referenz auf VarHash, wird dynamisch nachgeladen
      answerDto - Antwort des Schülers
      grade - Maximale Punktanzahl für die richtige Antwort
      Returns:
      HTML-Code oder LaTeX-Code mit Bildern
    • configurationInfo

      PluginConfigurationInfoDto configurationInfo(String configurationID)
      Liefert die Informationen welche notwendig sind um einen Konfigurationsdialog zu starten
      Ist die configurationID gesetzt wird eine Konfiguration gestartet und damit auch die restlichen Endpoints für die Konfiguration aktiviert.
      Parameters:
      configurationID - eindeutige ID welche für die Verbindung zwischen Edit-Service, Browser und Plugin-Konfiguration verwendet wird
      Returns:
      alle notwendigen Konfig
    • setConfigurationData

      PluginConfigDto setConfigurationData(String configuration, PluginQuestionDto questionDto)
      Sendet alle notwendigen (im ConfigurationInfo) angeforderten Daten im Mode CONFIGMODE_URL an die Plugin-Konfiguration
      Parameters:
      configuration - aktueller Konfigurations-String des Plugins
      questionDto - Question-DTO mit Varhashes
      Returns:
      Liefert die Daten welche an JS weitergeleitet werden.
    • getConfiguration

      String getConfiguration()
      Liefert die aktuelle Konfiguration eines Plugins welches sich gerade in einem CONFIGMODE_URL Konfigurationsdialog befindet
      Returns:
      Konfigurationsparameter oder "@ERROR: Meldung" wenn etwas nicht funktioniert hat