Wiki-Quellcode von IFCPlugin - Plugin Basis-Schnittstelle
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | == IFCPlugin == | ||
2 | |||
3 | === Bedeutung === | ||
4 | |||
5 | {{info}} | ||
6 | Die Schnittstelle **IFCPlugin** stellt allgemeine Funktionen zur Steuerung des Plugin-Lebenszyklus bereit. Die Schnittstelle muss bei der Entwicklung eigener Plugins nicht direkt eingebunden werden, da sie als "Basis-Schnittstelle" in allen anderen Plugin-Schnittstellen referenziert wird. | ||
7 | {{/info}} | ||
8 | |||
9 | == Methodensignaturen == | ||
10 | |||
11 | {{panel title="{{code language='java'~}~}String getName(){{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
12 | Liefert den Namen des Plugins: Dieser muss innerhalb des {{formcycle/}}-Systems eindeutig sein. | ||
13 | {{/panel}} | ||
14 | |||
15 | {{panel title="{{code language='java'~}~}default String getDisplayName(Locale locale){{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
16 | Liefert den Anzeigenamen des Plugins in Abhängigkeit des gegebenen {{code}}Locale{{/code}}. Diese Methode muss nicht implementiert werden, ermöglicht jedoch die Internationalisierung des Plugins. Ist diese Methode nicht implementiert, entspricht der Anzeigename dem Namen des Plugins. | ||
17 | {{/panel}} | ||
18 | |||
19 | {{panel title="{{code language='java'~}~}default String getDescription(Locale locale){{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
20 | Liefert die Beschreibung des Plugins in Abhängigkeit des gegebenen {{code}}Locale{{/code}}. Die Implementierung dieser Methode ist optional. | ||
21 | {{/panel}} | ||
22 | |||
23 | {{panel title="{{code language='java'~}~}default String getDescription(){{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
24 | {{info}}Deprecated, die Methode {{code}}getDescription(Locale locale){{/code}} sollte verwendet werden.{{/info}} | ||
25 | |||
26 | Eine Beschreibung des Plugin, welche auf den Seiten der Plugin-Bundle Registrierung und bei Aktions-Plugins in der Konfigurationsoberfläche angezeigt wird. | ||
27 | {{/panel}} | ||
28 | |||
29 | |||
30 | {{panel title="{{code language='java'~}~}default void install(IPluginInstallData installData) throws FCPluginException{{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
31 | Diese Methode wird durch {{formcycle case="FORMCYCLE"/}} während des Plugin-Installations-Prozesses aufgerufen und ermöglicht es Funktionalität auszuführen, | ||
32 | welche nur einmalig, wenn das Plugin neu im System registriert wird, ausgeführt werden soll. | ||
33 | |||
34 | ((( | ||
35 | ; IPluginInstallData installData | ||
36 | : Implementiert die Schnittstelle [[__IPluginDefaultLifecycleData__>>doc:||anchor="HSchnittstelleIPluginDefaultLifecycleData" target="_self"]] | ||
37 | ))) | ||
38 | {{/panel}} | ||
39 | |||
40 | |||
41 | {{panel title="{{code language='java'~}~}default void initialize(IPluginInitializeData initializeData) throws FCPluginException{{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
42 | Diese Methode wird durch {{formcycle case="FORMCYCLE"/}} immer dann ausgeführt, wenn das Plugin-Objekt neu instanziiert wird. Dies kann zu unterschiedlichen Zeitpunkten passieren: | ||
43 | |||
44 | * wenn ein bestehendes Plugin aktualisiert wird, bzw. wenn Änderungen an Bundle-Properties gespeichert werden | ||
45 | * wenn das FORMCYCLE-System neu gestartet wird | ||
46 | * sollte das Plugin im Mandant-Scope registriert werden, so kann auch der kurzzeitige Ausfall und die damit verbundene Wiederherstellung der Datenbankverbindung eine Neu-Initialisierung auslösen | ||
47 | |||
48 | ; IPluginInitializeData initializeData | ||
49 | : Implementiert die Schnittstelle [[__IPluginDefaultLifecycleData__>>doc:||anchor="HSchnittstelleIPluginDefaultLifecycleData" target="_self"]] | ||
50 | {{/panel}} | ||
51 | |||
52 | |||
53 | {{panel title="{{code language='java'~}~}default void shutdown(IPluginShutdownData shutdownData) throws FCPluginException{{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
54 | Diese Methode wird beim Beenden eines Plugins aufgerufen. | ||
55 | |||
56 | * wenn ein bestehendes Plugin aktualisiert wird, bzw. wenn Änderungen an Bundle-Properties gespeichert werden | ||
57 | * wenn das FORMCYCLE-System neu gestartet wird | ||
58 | * sollte das Plugin im Mandant-Scope registriert werden, so kann auch der kurzzeitige Ausfall der Datenbankverbindung einen Aufruf der Methode auslösen | ||
59 | * wenn ein bestehendes Plugin aus dem System gelöscht wird. | ||
60 | |||
61 | ; IPluginShutdownData shutdownData | ||
62 | : Implementiert die Schnittstelle [[__IPluginDefaultLifecycleData__>>doc:||anchor="HSchnittstelleIPluginDefaultLifecycleData" target="_self"]] | ||
63 | {{/panel}} | ||
64 | |||
65 | |||
66 | {{panel title="{{code language='java'~}~}default uninstall(IPluginUninstallData uninstallData) throws FCPluginException{{/code~}~}" triggerable="true" initial="hidden" fullwidth="true"}} | ||
67 | Diese Methode wird durch {{formcycle case="FORMCYCLE"/}} beim Deinstallieren des Plugins aufgerufen und ermöglicht es Funktionalität auszuführen, | ||
68 | welche nur einmalig, wenn das Plugin wieder aus dem System entfernt wird, ausgeführt werden soll. | ||
69 | |||
70 | ; IPluginUninstallData uninstallData | ||
71 | : Implementiert die Schnittstelle [[__IPluginDefaultLifecycleData__>>doc:||anchor="HSchnittstelleIPluginDefaultLifecycleData" target="_self"]] | ||
72 | {{/panel}} | ||
73 | |||
74 | == Schnittstelle IPluginDefaultLifecycleData == | ||
75 | |||
76 | Die Schnittstelle stellt folgende Methoden zur Verfügung: | ||
77 | |||
78 | : **getScopeKey()** | ||
79 | :: Liefert Informationen zum Scope in welchem das Plugin installiert wurde. (Die UUID des Mandanten, wenn im Mandant-Scope registriert, sonst "__system__" wenn Plugin im System-Scope registriert wurde.) | ||
80 | : **getRuntimeKey()** | ||
81 | :: Liefert die UUID, unter welcher das Plugin in der Datenbank abgespeichert wurde. | ||
82 | : **getClient()** | ||
83 | :: Liefert das aktuelle Mandant-Objekt zurück, oder __null__, wenn Plugin nicht im Scope eines Mandanten registriert wurde. | ||
84 | : **getProperties()** | ||
85 | :: Ermöglicht den Zugriff auf die am Plugin-Bundle hinterlegten Properties. | ||
86 | : **getFileHelper()** | ||
87 | :: Liefert ein Hilfs-Objekt zur Unterstützung der Arbeit mit Plugin-Dateien. | ||
88 | : **getResourceHelper()** | ||
89 | :: Liefert ein Hilfs-Objekt zur Arbeit mit den sprachspezifischen Ressourcen. | ||
90 | : **getFrontendServer()** | ||
91 | :: Liefert den Frontend-Server wo das Plugin installiert ist, oder {{code language="none"}}null{{/code}}, wenn es auf dem Master-Server installiert wurde. |