Zeige letzte Bearbeiter
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.