Search the FirstSpirit Knowledge Base
Hallo,
ich habe ein Modul, welches ich per Right-Click-Context aufrufen kann. Jetzt möchte ich das Skript aber vom FS Menü aus aufrufen. Die Umstellung in FS ist ja ganz einfach, damit das Skript im Menü erscheint. Aber wie muss ich nun mein Modul anpassen?
In meiner Klasse habe ich eine execute()-Funktion:
public Object execute(ContextMenuContext context) throws ExecutionException {}
Stimmt hier überhaupt ContextMenuContext?
Allerdings bringt der Klassenname dann eine Fehlermeldung:
"The type CLASSNAME must implement the inherited abstract method Executable.execute(Map<String,Object>)"
Vielen Dank und Liebe Grüße!
Habs hinbekommen! Ich musste lediglich "ProjectScriptContext" anstatt "GuiScriptContext" benutzen.
ProjectScriptContext context = (ProjectScriptContext) params.get("context");
Hallo Fabian,
du kannst dich per Java nur an den hier beschriebenen Stellen einklinken: Interactive Features
Möchtest du in das "Normale Menü", könntest du ein Skript schreiben, welches einfach deine Executable aufruft.
Viele Grüße
Thorsten Marx
Hallo Thorsten,
erstmal vielen Dank für die Antwort. Ich komme leider nicht auf den Link, da ich keine Login-Daten habe.
Genau, ich möchte meine Executable-Funktion mit dem "normalen Menü" aufrufen, weiß aber nicht was ich nun umbauen muss.
So sieht der Aufruf für den Rechts-Click aus:
public Object execute(Map<String, Object> params) throws ExecutionException {
GuiScriptContext context = (GuiScriptContext) params.get("context");
Hallo Fabian,
hier findest du die Zugangsdaten: https://community.e-spirit.com/docs/DOC-1041
Gruß
Thorsten
Vielen Dank!
Allerdings wird auf der Seite nur das Context-Menu und Toolbar-Menu gezeigt. Ich möchte mein Skript aber über das Menü ausführen (siehe Screen).
Dazu finde ich keine Informationen.
UPDATE:
Meine Execute-Funktion wird ausgeführt, allerdings bekomme ich mein Element mit getElement() nicht mehr. Da wird immer null zurückgeliefert.
GuiScriptContext context = (GuiScriptContext) params.get("context");
context.getElement() (Ergebnis: NULL)
Habs hinbekommen! Ich musste lediglich "ProjectScriptContext" anstatt "GuiScriptContext" benutzen.
ProjectScriptContext context = (ProjectScriptContext) params.get("context");