Package at.letto.plugins.service
Class BasePlugin
java.lang.Object
at.letto.plugins.service.BasePlugin
- All Implemented Interfaces:
PluginService
- Direct Known Subclasses:
PluginUhr
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Gibt an, ob im Plugin-Konfig-Dialog Datensätze hinzugefügt werden können. => Button AddDataset in Fußzeile des umgebenden Dialogs, (nicht vom Plugin)protected boolean
Plugin ist stateless und liefert bei gleicher Angabe immer das gleiche Verhaltenprotected boolean
Gibt an ob im Plugin bei der Konfiguration die Maxima-Berechnung durchlaufen werden kann. => Button Maxima in Fußzeile des umgebenden Dialogs, (nicht vom Plugin)protected String
Konfigurationsstring des Elementsprotected String
Name der JAVA-Script Methode zur Configuration des Pluginsprotected int
Konfigurations-Mode für die Konfiguration des Pluginsprotected boolean
Gibt an ob die Standard-Plugin-Configuration verwendet werden sollprotected boolean
Gibt an, ob das Plugin über den Browser direkt erreichbar istprotected int
Höhe des zu erzeugenden Bildesprotected String[]
Plugin Hilfe als HTML für den Plugin - Dialogprotected String
Hilfe-URL für die Beschreibung des Pluginsprotected int
Größe des Bildes in Prozentprotected String
Name der JAVA-Script Methode zur Plugin-Initialisierung für die interaktive Ergebniseingabeprotected boolean
gibt an ob das Plugin eine Java-Script Schnittstelle bei der Beispieldarstellung hatprotected String[]
Javascript Libraries für das Pluginprotected boolean
True wenn das Plugin CalcErgebnis und VarHash als JSON verarbeiten kannprotected String
Name des Elementsprotected String
URL des Plugin-Services für die direkte Kommunikationprotected String
Typ des Pluginsprotected boolean
gibt an ob die Datensatz-Variable mit Konstanten benötigt werdenprotected boolean
gibt an ob die Maxima-Durchrechnungen ohne eingesetzte Datensätze benötigt werdenprotected boolean
gibt an ob die Maxima-Durchrechnungen mit eingesetzten Datensätzen benötigt werdenprotected boolean
Gibt an ob im Plugin die Frage benötigt wirdprotected boolean
gibt an ob die Datensatz-Variable ohne Konstante benötigt werdenprotected String
Version des Pluginsprotected int
Breite des zu erzeugenden Bildesprotected String
Namen der Wiki-Seite wenn eine Doku am LeTTo-Wiki vorliegt -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconfigurationInfo
(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.private BufferedImage
errorMessageImage
(String msg) Liefert alle Datensätze, welche für das Plugin in der Frage vorhanden sein sollten
als Feld [Name,Datasetdefinition,Einheit]Liefert einen Angabestring für die MoodleText Angabe und erzeugt gegebenenfalls fehlende Datasets in der DatasetlistegetAWTImage
(String params, PluginQuestionDto q, PluginImageResultDto pluginImageResultDto) Liefert ein java.awt.BufferedImage Bild mit den angegebenen ParameternLiefert die aktuelle Konfiguration eines Plugins welches sich gerade in einem CONFIGMODE_URL Konfigurationsdialog befindetgetHelp()
Liefert eine HTML-Hilfe zu dem Plugin.
Standardmäßig liegt die Hilfe in einer HTML-Datei welche gleich heisst wie die Klasse, im selben Verzeichnis sitzt und die Endung .html hatprotected final String
Lädt eine HTML-Hilfedatei aus den ResourcengetHTML
(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 TaggetImageDto
(String params, PluginQuestionDto q) Liefert ein Base64 codiertes Bild mit den angegebenen ParameternLiefert eine Liste aller möglichen Varianten von Bildern Element 0 : beschreibender Text Element 1 : PIG Tag Element 2 : HilfetextMethode definiert das Eingabeelement der Subquestion, die das Plugin verwendetgetMaxima
(String params, PluginQuestionDto q, PluginMaximaCalcModeDto pluginMaximaCalcMode) Liefert einen Maxima-Berechnungsstring für die Berechnung des PluginsgetPluginImageDescription
(String imageParams, PluginQuestionDto q) Bestimmt einen eindeutigen String, welcher ein Plugin-Bild beschreibt um daraus den Dateinamen bestimmen zu können.Liefert den Typ des PluginsgetTag()
getVars()
Liefert eine Liste aller Variablen welche als Dataset benötigt werden.Liefert eine Liste von Javascript-Libraries, die im Header der HTML-Seite eingebunden werden müssen.Liefert eine Liste von LOKALEN Javascript-Libraries, die im Header der HTML-Seite eingebunden werden müssen.protected String
loadHelpFile
(String resource) loadPluginDto
(String params, PluginQuestionDto q, int nr) Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - BearbeitungmodifyAngabe
(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.verändert den kompletten Angabetext der Frage.abstract void
paint
(Graphics2D g, PluginImageResultDto pluginImageResultDto) Methode welche das Bild für die Ausgabe erzeugtvoid
paintFehler
(Graphics g, String msg) Gibt eine Fehlermeldung im Graphics-Objekt ausprivate String
parseDrawParamsTimer
(String params, PluginQuestionDto q, PluginImageResultDto pluginImageResultDto) parst die Parameter des PluginsparserPlugin
(VarHashDto vars, CalcParamsDto cp, CalcErgebnisDto... p) Wird verwendet wenn im Lösungsfeld die Funktion plugin("pluginname",p1,p2,p3) verwendet wirdparserPluginEinheit
(String... p) Bestimmt die Recheneinheit, welche bei der Methode parserPlugin als Ergebnis herauskomment wenn die Parameter die Einheiten wie in der Liste p habenrenderLatex
(PluginDto pluginDto, String answer, String mode) Rendert ein Plugins für den Fragedruck als Latex-SourcoderenderPluginResult
(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 erzeugtsetConfigurationData
(String configuration, PluginQuestionDto questionDto) Sendet alle notwendigen (im ConfigurationInfo) angeforderten Daten im Mode CONFIGMODE_URL an die Plugin-KonfigurationupdatePluginstringJavascript
(String pluginDef, String jsResult) Passt die Plugindefinition an die Eingabe aus dem Javascipt-Result an. zB: Interaktive KarteMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface at.letto.plugins.interfaces.PluginService
getConfig, getHeight, getHelpUrl, getImageWidthProzent, getName, getWidth, getWikiHelp, isDefaultPluginConfig, isJavaScript, isMath, parseDrawParams, score, setName
-
Field Details
-
name
Name des Elements -
wikiHelp
Namen der Wiki-Seite wenn eine Doku am LeTTo-Wiki vorliegt -
helpUrl
Hilfe-URL für die Beschreibung des Plugins -
defaultPluginConfig
protected boolean defaultPluginConfigGibt an ob die Standard-Plugin-Configuration verwendet werden soll -
config
Konfigurationsstring des Elements -
typ
Typ des Plugins -
width
protected int widthBreite des zu erzeugenden Bildes -
height
protected int heightHöhe des zu erzeugenden Bildes -
imageWidthProzent
protected int imageWidthProzentGröße des Bildes in Prozent -
math
protected boolean mathTrue wenn das Plugin CalcErgebnis und VarHash als JSON verarbeiten kann -
version
Version des Plugins -
helpfiles
Plugin Hilfe als HTML für den Plugin - Dialog -
javascriptLibs
Javascript Libraries für das Plugin -
initPluginJS
Name der JAVA-Script Methode zur Plugin-Initialisierung für die interaktive Ergebniseingabe -
javaScript
protected boolean javaScriptgibt an ob das Plugin eine Java-Script Schnittstelle bei der Beispieldarstellung hat -
cacheable
protected boolean cacheablePlugin ist stateless und liefert bei gleicher Angabe immer das gleiche Verhalten -
useQuestion
protected boolean useQuestionGibt an ob im Plugin die Frage benötigt wird -
useVars
protected boolean useVarsgibt an ob die Datensatz-Variable ohne Konstante benötigt werden -
useCVars
protected boolean useCVarsgibt an ob die Datensatz-Variable mit Konstanten benötigt werden -
useMaximaVars
protected boolean useMaximaVarsgibt an ob die Maxima-Durchrechnungen ohne eingesetzte Datensätze benötigt werden -
useMVars
protected boolean useMVarsgibt an ob die Maxima-Durchrechnungen mit eingesetzten Datensätzen benötigt werden -
configurationMode
protected int configurationModeKonfigurations-Mode für die Konfiguration des Plugins -
addDataSet
protected boolean addDataSetGibt an, ob im Plugin-Konfig-Dialog Datensätze hinzugefügt werden können. => Button AddDataset in Fußzeile des umgebenden Dialogs, (nicht vom Plugin) -
externUrl
protected boolean externUrlGibt an, ob das Plugin über den Browser direkt erreichbar ist -
calcMaxima
protected boolean calcMaximaGibt an ob im Plugin bei der Konfiguration die Maxima-Berechnung durchlaufen werden kann. => Button Maxima in Fußzeile des umgebenden Dialogs, (nicht vom Plugin) -
configPluginJS
Name der JAVA-Script Methode zur Configuration des Plugins -
pluginServiceURL
URL des Plugin-Services für die direkte Kommunikation
-
-
Constructor Details
-
BasePlugin
Erzeugt ein Question Plugin- Parameters:
name
- Name des Pluginsparams
- Parameter des Plugins
-
-
Method Details
-
getPluginType
Description copied from interface:PluginService
Liefert den Typ des Plugins- Specified by:
getPluginType
in interfacePluginService
- Returns:
- Liefert den Typ des Plugins - Klasse des Plugins
-
getTag
- Specified by:
getTag
in interfacePluginService
- Returns:
- Liefert den String welcher für die Definition des Plugins gespeichert wird [PI name typ "config"]
-
getPluginVersion
- Specified by:
getPluginVersion
in interfacePluginService
- Returns:
- Liefert die aktuelle Version eines Plugins, ändert sich diese, so ändert sich auch die Prüfsumme jedes Plugin Bildes
-
getPluginGeneralInfo
- Specified by:
getPluginGeneralInfo
in interfacePluginService
- Returns:
- Alle globalen Informationen des Plugins
-
getHelp
Liefert eine HTML-Hilfe zu dem Plugin.
Standardmäßig liegt die Hilfe in einer HTML-Datei welche gleich heisst wie die Klasse, im selben Verzeichnis sitzt und die Endung .html hat- Specified by:
getHelp
in interfacePluginService
- Returns:
- HTML Hilfe
-
loadHelpFile
-
getHelpMessageFromResource
Lädt eine HTML-Hilfedatei aus den Resourcen- Parameters:
name
- Pfad der Hilfedate- Returns:
- Inhalt der Hilfedatei als String
-
getAngabe
Liefert einen Angabestring für die MoodleText Angabe und erzeugt gegebenenfalls fehlende Datasets in der Datasetliste- Specified by:
getAngabe
in interfacePluginService
- Parameters:
params
- Parameter für die Einstellungen- Returns:
- String für das MoodleText-Feld
-
generateDatasets
Liefert alle Datensätze, welche für das Plugin in der Frage vorhanden sein sollten
als Feld [Name,Datasetdefinition,Einheit]- Specified by:
generateDatasets
in interfacePluginService
- Returns:
- Liefert alle Datensätze, welche für das Plugin in der Frage vorhanden sein sollten
-
getHTML
Berechnet den Fragetext für das Fragefeld des Webservers für die angegebenen Parameter für die Verwendung in einem PIT Tag- Specified by:
getHTML
in interfacePluginService
- Parameters:
params
- Parameter für die Antworterzeugungq
- Frage wo das Plugin eingebettet ist- Returns:
- HTML Text
-
getMaxima
public String getMaxima(String params, PluginQuestionDto q, PluginMaximaCalcModeDto pluginMaximaCalcMode) Liefert einen Maxima-Berechnungsstring für die Berechnung des Plugins- Specified by:
getMaxima
in interfacePluginService
- Parameters:
params
- Parameterq
- Frage wo das Plugin eingebettet istpluginMaximaCalcMode
- Art der Berechnung- Returns:
- Maxima Berechnungs-String
-
getVars
Liefert eine Liste aller Variablen welche als Dataset benötigt werden.- Specified by:
getVars
in interfacePluginService
- Returns:
- Liste aller Variablen des Plugins
-
parseDrawParamsTimer
private String parseDrawParamsTimer(String params, PluginQuestionDto q, PluginImageResultDto pluginImageResultDto) parst die Parameter des Plugins- Parameters:
params
- Parameterstringq
- Frage- Returns:
- Fehlermeldung oder Leerstring wenn alles ok ist
-
getPluginImageDescription
Bestimmt einen eindeutigen String, welcher ein Plugin-Bild beschreibt um daraus den Dateinamen bestimmen zu können.- Specified by:
getPluginImageDescription
in interfacePluginService
- Parameters:
imageParams
- Parameter des PIG-Tagsq
- Frage in der das Plugin eingebettet ist- Returns:
- eindeutiger String der das Plugin-Bild eindeutig beschreibt.
-
errorMessageImage
-
getImageDto
Liefert ein Base64 codiertes Bild mit den angegebenen Parametern- Specified by:
getImageDto
in interfacePluginService
- Parameters:
params
- Parameter für die Bilderzeugungq
- Frage wo das Plugin eingebettet ist- Returns:
- Base64 kodiertes Bild in einem PluginFileDto
-
getAWTImage
public BufferedImage getAWTImage(String params, PluginQuestionDto q, PluginImageResultDto pluginImageResultDto) Liefert ein java.awt.BufferedImage Bild mit den angegebenen Parametern- Parameters:
params
- Parameter für die Bilderzeugungq
- Frage wo das Plugin eingebettet istpluginImageResultDto
- nimmt alle Fehlermeldungen auf die beim Rendern des Bildes entstehen- Returns:
- Bild als java.awt.BufferedImage
-
paint
Methode welche das Bild für die Ausgabe erzeugt- Parameters:
g
- GraphikhandlepluginImageResultDto
- Nimmt alle Fehlermeldungen auf, welche beim Rendern des Bildes entstehen
-
paintFehler
Gibt eine Fehlermeldung im Graphics-Objekt aus- Parameters:
g
- Graphics-Handlermsg
- Meldung
-
getImageTemplates
Liefert eine Liste aller möglichen Varianten von Bildern Element 0 : beschreibender Text Element 1 : PIG Tag Element 2 : Hilfetext- Specified by:
getImageTemplates
in interfacePluginService
- Returns:
- Liefert eine Liste aller möglichen Varianten von Bildern
-
parserPlugin
Wird verwendet wenn im Lösungsfeld die Funktion plugin("pluginname",p1,p2,p3) verwendet wird- Specified by:
parserPlugin
in interfacePluginService
- Parameters:
vars
- Alle Variablen der Fragecp
- Berechnungsparameterp
- Liste von CalcErgebnis-Werten, welche an das Plugin von der Question aus übergeben werden können- Returns:
- Ergebnis der Funktion
-
parserPluginEinheit
Bestimmt die Recheneinheit, welche bei der Methode parserPlugin als Ergebnis herauskomment wenn die Parameter die Einheiten wie in der Liste p haben- Specified by:
parserPluginEinheit
in interfacePluginService
- Parameters:
p
- Einheiten der Parameter- Returns:
- Recheneinheit des Ergebnisses
-
getInputElement
Methode definiert das Eingabeelement der Subquestion, die das Plugin verwendet- Specified by:
getInputElement
in interfacePluginService
- Returns:
- anzuzeigendes Eingabeelement, default: TextField
-
updatePluginstringJavascript
Passt die Plugindefinition an die Eingabe aus dem Javascipt-Result an. zB: Interaktive Karte- Specified by:
updatePluginstringJavascript
in interfacePluginService
- Parameters:
pluginDef
- akt. Plugin-DefinitionjsResult
- Rückgabe von Javascript- Returns:
- aktualiesierte Plugindefinition
-
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!- Specified by:
javascriptLibraries
in interfacePluginService
- Returns:
- für das Plugin notwendige JS-Libraries
-
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- Specified by:
javascriptLibrariesLocal
in interfacePluginService
- Returns:
- für das Plugin notwendige JS-Libraries
-
loadPluginDto
Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - Bearbeitung- Specified by:
loadPluginDto
in interfacePluginService
- Parameters:
params
- Plugin-Parameterq
- Question, in die das Plugin eingebettet istnr
- Laufende Nummer für alle PIG-Tags und Question-Plugins- Returns:
- PluginDto
-
renderLatex
Rendert ein Plugins für den Fragedruck als Latex-Sourcode- Specified by:
renderLatex
in interfacePluginService
- Parameters:
pluginDto
- Das PluginDto welches am Webserver an das Java-Script des Plugins zum Rendern gesandt wirdanswer
- Inhalt des Antwortfeldes welches der Schüler eingegeben hatmode
- Druckmode- Returns:
- Latexsourcode und zugehörige Bilder in einer Hashmap
-
renderPluginResult
public 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- Specified by:
renderPluginResult
in interfacePluginService
- Parameters:
tex
- true für LaTeX-Code, false für html-CodepluginDto
- PluginDto welches für die Java-Script aktive Eingabe aufbereitet wurdeantwort
- Antwort die der Schüler eingegeben hattoleranz
- Toleranz für die LösungvarsQuestion
- Referenz auf VarHash, wird dynamisch nachgeladenanswerDto
- Antwort des Schülersgrade
- Maximale Punktanzahl für die richtige Antwort- Returns:
- HTML-Code oder LaTeX-Code mit Bildern
-
configurationInfo
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.- Specified by:
configurationInfo
in interfacePluginService
- Parameters:
configurationID
- eindeutige ID welche für die Verbindung zwischen Edit-Service, Browser und Plugin-Konfiguration verwendet wird- Returns:
- alle notwendigen Konfig
-
setConfigurationData
Sendet alle notwendigen (im ConfigurationInfo) angeforderten Daten im Mode CONFIGMODE_URL an die Plugin-Konfiguration- Specified by:
setConfigurationData
in interfacePluginService
- Parameters:
configuration
- aktueller Konfigurations-String des PluginsquestionDto
- Question-DTO mit Varhashes- Returns:
- Liefert die Daten welche an JS weitergeleitet werden.
-
getConfiguration
Liefert die aktuelle Konfiguration eines Plugins welches sich gerade in einem CONFIGMODE_URL Konfigurationsdialog befindet- Specified by:
getConfiguration
in interfacePluginService
- Returns:
- Konfigurationsparameter oder "@ERROR: Meldung" wenn etwas nicht funktioniert hat
-
modifyAngabe
verändert einen Angabetext, der in der Angabe in PI Tags eingeschlossen wurde
Die Funktion wird vor dem Darstellen der Frage ausgeführt.- Specified by:
modifyAngabe
in interfacePluginService
- Parameters:
text
- Text der innerhalb der PI Tags gestanden istq
- Frage innerhalb der, der Text sich befindet, die Frage sollte vom Plugin nicht verändert werden!!- Returns:
- veränderter Text
-
modifyAngabeTextkomplett
verändert den kompletten Angabetext der Frage. Dieser muss als Parameter übergeben werden!
Die Funktion wird vor dem Darstellen der Frage ausgeführt.- Specified by:
modifyAngabeTextkomplett
in interfacePluginService
- Parameters:
text
- Angabetext der Frageq
- Frage innerhalb der, der Text sich befindet, die Frage sollte vom Plugin nicht verändert werden!!- Returns:
- veränderter AngabeText
-