Package at.letto.plugins.restclient
Class BasePluginManagerService
java.lang.Object
at.letto.plugins.restclient.BasePluginManagerService
- All Implemented Interfaces:
PluginConnectionService
,PluginManagerService
Implementierung welche lokale Plugins und auch externe Plugin-Services verwalten kann
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List
<JavascriptLibrary> private List
<JavascriptLibrary> alle JavaScript-Libraries zum gemeinsamen Speichernprivate Vector
<PluginConnectionService> private String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconfigurationInfo
(String typ, String name, String config, String configurationID, long timeout) 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.generateDatasets
(String typ, String name, String config) Liefert alle Datensätze, welche für das Plugin in der Frage vorhanden sein solltenLiefert einen Angabestring für die MoodleText AngabegetConfiguration
(String typ, String configurationID) Liefert die aktuelle Konfiguration eines Plugins welches sich gerade in einem CONFIGMODE_URL Konfigurationsdialog befindetBerechnet den Fragetext für das Fragefeld des Webservers für die angegebenen Parameter für die Verwendung in einem PIT TaggetImage
(ImageService imageService, String typ, String name, String config, String params, PluginQuestionDto q) Liefert ein Base64 codiertes Bild mit den angegebenen Parametern und speichert es in einem ImageServiceLiefert ein Base64 codiertes Bild mit den angegebenen ParameterngetImageTemplates
(String typ, String name, String config) Liefert eine Liste aller möglichen Varianten von Bildern Element 0 : beschreibender Text Element 1 : PIG Tag Element 2 : HilfetextgetMaxima
(String typ, String name, String config, String params, PluginQuestionDto q, PluginMaximaCalcModeDto pluginMaximaCalcMode) Liefert einen Maxima-Berechnungsstring für die Berechnung des PluginsgetPluginImageDescription
(String typ, String name, String config, String params, PluginQuestionDto q) Liefert einen String welcher die Parameter eines Plugins exakt beschreibt um eine Prüfsumme davon zu bildenLiefert eine Liste aller Variablen welche als Dataset benötigt werden.boolean
loadPluginDto
(ImageService imageService, String typ, String name, String config, String params, PluginQuestionDto q, int nr) Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - BearbeitungloadPluginDto
(String typ, String name, String config, String params, PluginQuestionDto q, int nr) Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - BearbeitungmodifyAngabe
(String typ, String name, String config, 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.modifyAngabeTextkomplett
(String typ, String name, String config, String text, PluginQuestionDto q) verändert den kompletten Angabetext der Frage.parserPlugin
(String typ, String name, String config, VarHashDto vars, CalcParamsDto cp, CalcErgebnisDto... p) Wird verwendet wenn im Lösungsfeld die Funktion plugin("pluginname",p1,p2,p3) verwendet wirdparserPluginEinheit
(String typ, String name, String config, String... p) Bestimmt die Recheneinheit, welche bei der Methode parserPlugin als Ergebnis herauskomment wenn die Parameter die Einheiten wie in der Liste p habenvoid
Registriert eine PluginConnectionService im PluginManagerServicerenderLatex
(String typ, String name, String config, PluginDto pluginDto, String answer, String mode) Rendert ein Plugins für den Fragedruck als Latex-SourcoderenderPluginResult
(String typ, String name, String config, 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 erzeugtvoid
speichert alle registrierten JS-Libraries in einer Dateiscore
(String typ, String name, String config, PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade) Prüft die Eingabe eines SchülerssetConfigurationData
(String typ, String configurationID, String configuration, PluginQuestionDto questionDto) Sendet alle notwendigen (im ConfigurationInfo) angeforderten Daten im Mode CONFIGMODE_URL an die Plugin-KonfigurationupdatePluginstringJavascript
(String typ, String name, String config, 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.restclient.PluginManagerService
getJavascriptLibraries, getJavascriptLibrariesLocal, getPublicJs
-
Field Details
-
jsLibs
alle JavaScript-Libraries zum gemeinsamen Speichern -
publicJs
-
pluginConnections
-
javascriptLibraries
-
javascriptLibrariesLocal
-
-
Constructor Details
-
BasePluginManagerService
public BasePluginManagerService()
-
-
Method Details
-
registerPluginConnectionService
Registriert eine PluginConnectionService im PluginManagerService- Specified by:
registerPluginConnectionService
in interfacePluginManagerService
- Parameters:
connection
- PluginConnection zu einem Plugin-Service
-
saveJsLibs
public void saveJsLibs()speichert alle registrierten JS-Libraries in einer Datei -
isPublicJs
public boolean isPublicJs()- Specified by:
isPublicJs
in interfacePluginManagerService
- Returns:
- liefert eine Information, ob die JavaScript- und Css Dateien in ein lokales Verzeichnis gespeichert werden
-
getPluginList
- Specified by:
getPluginList
in interfacePluginConnectionService
- Specified by:
getPluginList
in interfacePluginManagerService
- Returns:
- liefert eine Liste aller Plugins (Pluginnamen) , welche mit diesem Service verwaltet werden
-
getPluginGeneralInfoList
- Specified by:
getPluginGeneralInfoList
in interfacePluginConnectionService
- Returns:
- liefert eine Liste aller globalen Informationen über alle Plugins des verwalteten Services
-
getPluginConnectionService
- Specified by:
getPluginConnectionService
in interfacePluginManagerService
- Parameters:
typ
- Plugin Typ- Returns:
- liefert das zugehörige Connectionsservice zu einem Plugin-Typ
-
getPluginGeneralInfo
- Specified by:
getPluginGeneralInfo
in interfacePluginConnectionService
- Parameters:
typ
- Plugin Typ- Returns:
- liefert die allgemeinen Konfigurationsinformationen zu einem Plugin
-
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 interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameter für die Antworterzeugungq
- Frage wo das Plugin eingebettet ist- Returns:
- HTML Text
-
getAngabe
Liefert einen Angabestring für die MoodleText Angabe- Specified by:
getAngabe
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- 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- Specified by:
generateDatasets
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Plugins- Returns:
- Liste der Datensatzdefinitionen welche vom Plugin in der Frage angefordert werden
-
getMaxima
public String getMaxima(String typ, String name, String config, String params, PluginQuestionDto q, PluginMaximaCalcModeDto pluginMaximaCalcMode) Liefert einen Maxima-Berechnungsstring für die Berechnung des Plugins- Specified by:
getMaxima
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameterq
- Frage wo das Plugin eingebettet istpluginMaximaCalcMode
- Art der Berechnung- Returns:
- Maxima Berechnungs-String
-
getPluginImageDescription
public String getPluginImageDescription(String typ, String name, String config, String params, PluginQuestionDto q) Liefert einen String welcher die Parameter eines Plugins exakt beschreibt um eine Prüfsumme davon zu bilden- Specified by:
getPluginImageDescription
in interfacePluginManagerService
- Parameters:
typ
- Typ des Pluginsname
- Name des Pluginsconfig
- Konfigurationsparameter-Stringparams
- Parameter des PIG-Tagsq
- Frage in der das Plugin eingebettet ist- Returns:
- String als Kombination aus alle den Parametern
-
getImage
public ImageBase64Dto getImage(String typ, String name, String config, String params, PluginQuestionDto q) Liefert ein Base64 codiertes Bild mit den angegebenen Parametern- Specified by:
getImage
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameter für die Bilderzeugungq
- Frage wo das Plugin eingebettet ist- Returns:
- Base64 kodiertes Bild
-
getImage
public ImageBase64Dto getImage(ImageService imageService, String typ, String name, String config, String params, PluginQuestionDto q) Liefert ein Base64 codiertes Bild mit den angegebenen Parametern und speichert es in einem ImageService- Specified by:
getImage
in interfacePluginManagerService
- Parameters:
imageService
- ImageService mit dem das Bild gespeichert wirdtyp
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameter für die Bilderzeugungq
- Frage wo das Plugin eingebettet ist- Returns:
- Base64 kodiertes Bild
-
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 interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Plugins- Returns:
- Liefert eine Liste aller möglichen Varianten von Bildern
-
parserPlugin
public CalcErgebnisDto parserPlugin(String typ, String name, String config, VarHashDto vars, CalcParamsDto cp, CalcErgebnisDto... p) Wird verwendet wenn im Lösungsfeld die Funktion plugin("pluginname",p1,p2,p3) verwendet wird- Specified by:
parserPlugin
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsvars
- 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 interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsp
- Einheiten der Parameter als Recheneinheiten- Returns:
- Recheneinheit des Ergebnisses
-
score
public PluginScoreInfoDto score(String typ, String name, String config, PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade) Prüft die Eingabe eines Schülers- Specified by:
score
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginspluginDto
- 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:
- Bewertung
-
getVars
Liefert eine Liste aller Variablen welche als Dataset benötigt werden.- Specified by:
getVars
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Plugins- Returns:
- Liste aller Variablen des Plugins
-
modifyAngabe
public String modifyAngabe(String typ, String name, String config, 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.- Specified by:
modifyAngabe
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginstext
- 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
public String modifyAngabeTextkomplett(String typ, String name, String config, 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.- Specified by:
modifyAngabeTextkomplett
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginstext
- Angabetext der Frageq
- Frage innerhalb der, der Text sich befindet, die Frage sollte vom Plugin nicht verändert werden!!- Returns:
- veränderter AngabeText
-
updatePluginstringJavascript
public String updatePluginstringJavascript(String typ, String name, String config, String pluginDef, String jsResult) Passt die Plugindefinition an die Eingabe aus dem Javascipt-Result an. zB: Interaktive Karte- Specified by:
updatePluginstringJavascript
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginspluginDef
- akt. Plugin-DefinitionjsResult
- Rückgabe von Javascript- Returns:
- aktualiesierte Plugindefinition
-
loadPluginDto
public PluginDto loadPluginDto(String typ, String name, String config, String params, PluginQuestionDto q, int nr) Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - Bearbeitung- Specified by:
loadPluginDto
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Plugin-Parameterq
- Question, in die das Plugin eingebettet istnr
- Laufende Nummer für alle PIG-Tags und Question-Plugins- Returns:
- PluginDto
-
loadPluginDto
public PluginDto loadPluginDto(ImageService imageService, String typ, String name, String config, String params, PluginQuestionDto q, int nr) Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - Bearbeitung- Specified by:
loadPluginDto
in interfacePluginManagerService
- Parameters:
imageService
- ImageService für den persistenten Bild-Cachetyp
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Plugin-Parameterq
- Question, in die das Plugin eingebettet istnr
- Laufende Nummer für alle PIG-Tags und Question-Plugins- Returns:
- PluginDto
-
renderLatex
public PluginRenderDto renderLatex(String typ, String name, String config, PluginDto pluginDto, String answer, String mode) Rendert ein Plugins für den Fragedruck als Latex-Sourcode- Specified by:
renderLatex
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginspluginDto
- 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(String typ, String name, String config, 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 interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginstex
- 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
public PluginConfigurationInfoDto configurationInfo(String typ, String name, String config, String configurationID, long timeout) 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 interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginsconfigurationID
- eindeutige ID welche für die Verbindung zwischen Edit-Service, Browser und Plugin-Konfiguration verwendet wirdtimeout
- maximale Gültigkeit der Konfigurations-Verbindung in Sekunden ohne Verbindungsanfragen, Notwendig um bei Verbindungsabbruch die Daten am Plugin-Service auch wieder zu löschen- Returns:
- alle notwendigen Konfig
-
setConfigurationData
public PluginConfigDto setConfigurationData(String typ, String configurationID, String configuration, PluginQuestionDto questionDto) Sendet alle notwendigen (im ConfigurationInfo) angeforderten Daten im Mode CONFIGMODE_URL an die Plugin-Konfiguration- Specified by:
setConfigurationData
in interfacePluginConnectionService
- Parameters:
typ
- Typ des PluginsconfigurationID
- zu verwendende Konfigurations-ID (muss am Plugin-Service zuvor angelegt worden sein mit configurationInfo)configuration
- aktueller Konfigurations-String des PluginsquestionDto
- Question-DTO mit Varhashes- Returns:
- Fehlermeldung wenn etwas nicht korrekt funktioniert hat
-
getConfiguration
Liefert die aktuelle Konfiguration eines Plugins welches sich gerade in einem CONFIGMODE_URL Konfigurationsdialog befindet- Specified by:
getConfiguration
in interfacePluginConnectionService
- Parameters:
typ
- Typ des PluginsconfigurationID
- zu verwendende Konfigurations-ID- Returns:
- Konfigurationsparameter oder "@ERROR: Meldung" wenn etwas nicht funktioniert hat
-