# [Eclipse RCP] Plugin OHNE visuals



## lumo (22. Okt 2009)

hallo,

ich möchte eines meiner plugins in zwei andere aufteilen, das plugin hat visuelle addins (menu) nun will ich noch einen teil absplitten, der KEINE visuellen sachen hat...

wie muss ich nun das plugin definieren, dass es trotzdem initialisiert wird (und mir klasse XYZ erzeugt?)
habe jetzt ein neues plugin erstellt und in den extensions das package angegeben in dem meine XYZ klasse liegt (eigentlich müsste ich aber doch die klasse direkt wählen können - nur wo?)

ich hoffe ihr versteht was ich meine...
( mein problem scheint nur der einstiegspunkt zu sein... )


----------



## Wildcard (22. Okt 2009)

Ein Plugin wird per Default dann initialisiert wenn es gebraucht wird (eine seiner Klassen angefragt wird).
Es gibt auch andere Möglichkeiten, aber meistens sollte man zu diesem Lazy Initializing greifen. Was genau macht dir zur Zeit Probleme?


----------



## lumo (23. Okt 2009)

ich trenne model view und controller in einzelne plugins, die dann als feature zusammengefasst werden.
somit kann ich die teile jederzeit austauschen ohne große arbeit (schnittstellen sind definiert)
hab mit dem model angefangen (ein paar menüs geadded...) dann die view und nun stand eben der controller an, der nicht gestartet wird, da keine visuals am anfang geladen werden...

nen activator hab ich aber trotzdem von eclipse generiert bekommen... allerdings kann ich nichts finden, was er aktiviert...

-> einfach meine klassen in den packages lassen, über die anderen plugins aufrufen (wenn als extension freigegeben) und das wars schon? - waäre ja super leicht!


----------



## Wildcard (23. Okt 2009)

Der Activator ist deine Verbindung zum Framework. Dort erhälst du den BundleContext und kannst COde ausführen wenn das Bundle gestartet, oder gestoppt wird. Wie gesagt, Bundles werden nur geladen wenn sie benötigt werden. Du solltest also wohl dafür sorgen das dein Bundle benötigt wird.


----------



## lumo (30. Okt 2009)

d.h. ich führe in jedem meiner plugins eine funktion ein, die einfach standardmässig am anfang aufgerufen wird, damit das plugin benötigt wird -> und somit initialisiert wird?

???:L

ärr - also aktivieren des plugins kann ich ja beim overview einstellen
"activate this plugin when one of its classes is loaded" nur ob ich nen haken mach oder nicht macht keinen aunterschied... ein häkchen mit laden egal ob gebraucht oder nicht wäre super 

EDIT: if i have an plugin available i need to execute ONE function anyway... so where do i add a call to every plugin available?

Edit2: hab das selbe problem mit einem plugin MIT view (wird erst verfügbar, wenn es sichtbar ist... soll aber nicht so sein (soll aber auch kein editor werden...))


----------



## Wildcard (30. Okt 2009)

Warum möchtest du die Plugins denn eager initialisieren, das verstehe ich zur Zeit noch nicht.


----------



## lumo (30. Okt 2009)

ich hab einen view der eine karte beinhaltet, die erst dann funktioniert, wenn der view geladen wurde.
ein anderer view schickt daten zu meinem controller, der controller informiert alle views dass es was neues gibt (observer/observable) und der view registriert sich erst dann, wenn er geöffnet wurde -> nicht offen, weiss der controller nicht, dass es den view überhaupt gibt...


----------



## lumo (5. Nov 2009)

kein plan wie ich das machen kann?
hab im plugin B jetzt eine funktion, die ich beim starten des plugins A abrufe,
das plugin A bekommt auch die daten aus plugin B, allerdings wir es erst aktiviert, sobal ich den view auswähle (kein plan warum)


----------

