tfuchs
Elite Observer

DataAccessPlugin nur aktivieren, wenn Projektkomponente installiert ist

Jump to solution

Ich habe ein DataAccessPlugin, das nur dann korrekt funktioniert, wenn in dem aktiven Projekt eine Projektkomponente installiert und konfiguriert ist. Die Projektkomponente ist ein GenericConfigPanel.

1. Wie ist der saubere "offizielle" Weg abzufragen, ob eine Projektkomponente installiert und konfiguriert ist? Ich habe in der API nirgendwo etwas gefunden.

2. Wie ist der saubere "offizielle" Weg, ein DataAccessPlugin projektweise zu deaktivieren? Ich dachte erst, dass ich in DataAccessPlugin.setUp() die Konfiguration abfragen kann und dann irgendwas (was?) tun. Und in DataAccessSession() vielleicht.

Vielleicht sind die Fragen ja doof und ich habe irgendeinen massiven Denkfehler drin. In diesem Fall: Sorry 😉

0 Kudos
1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Timo,

wenn Du mit GenericConfigPanel das hier meinst, geht das über einen Aufruf:

boolean installed = DemoProjectConfig.isInstalled(DemoProjectApp.class, broker);

Das "DemoProjectConfig" ist dabei Deine Klasse, die GenericConfigPanel erweitert, DemoProjectApp Deine Klasse vom Typ ProjectApp. Das nutzt letztlich nur normale API, ist aber nicht ganz trivial, darum hatte ich damals eine Convenience-Methode eingebaut.

Zum "Deaktivieren": Ich vermute es geht hier um den Report. Hier ist der übliche Weg, im DAP den Reporting-Aspekt nur "auszuliefern" wenn eben die ProjectApp installiert ist und ansonsten null. Komplett deaktivieren geht leider nicht - d.h. Du kannst nicht verhindern, dass in der CodeCompletion im Formularkanal dieses DAP innerhalb eines FS_INDEX erscheint.

Viele Grüße

Michael

View solution in original post

0 Kudos
2 Replies
mbergmann
Crownpeak employee

Hallo Timo,

wenn Du mit GenericConfigPanel das hier meinst, geht das über einen Aufruf:

boolean installed = DemoProjectConfig.isInstalled(DemoProjectApp.class, broker);

Das "DemoProjectConfig" ist dabei Deine Klasse, die GenericConfigPanel erweitert, DemoProjectApp Deine Klasse vom Typ ProjectApp. Das nutzt letztlich nur normale API, ist aber nicht ganz trivial, darum hatte ich damals eine Convenience-Methode eingebaut.

Zum "Deaktivieren": Ich vermute es geht hier um den Report. Hier ist der übliche Weg, im DAP den Reporting-Aspekt nur "auszuliefern" wenn eben die ProjectApp installiert ist und ansonsten null. Komplett deaktivieren geht leider nicht - d.h. Du kannst nicht verhindern, dass in der CodeCompletion im Formularkanal dieses DAP innerhalb eines FS_INDEX erscheint.

Viele Grüße

Michael

0 Kudos

Hallo Timo,

sicherheitshalber noch ein Hinweis (steht auch in der Doku zu GenericConfig, enthalten im ZIP des Postings): Da das isInstalled(...)  - und auch andere Aufrufe - letztlich immer einen Serveraufruf bedeutet, sollte das Ergebnis "an passender Stelle" zwischengespeichert werden.

Viele Grüße

Michael

0 Kudos