Hallo!
Ich glaubte schon, die Lösung gefunden zu habn, aber dann..
also, ich habe 2 Plugins, die je eine View darstellen, geschrieben. Dort gibt der User Werte ein, also dynamischer Content, und diesen sollen die Views austauschen können. Nur wie geht das? feste Referenz geht ja nicht, es is ja non static. Mein Versuch war es (ich bin recht neu in Eclipse) das anze über einen Extension Point bei Plugin #1 zu machen. Plugin #2 stöpselt sich an, über ein Interface, was in #1 definiert ist. In Plugin #2 gibt es dann eine Funktion, etwa getInputs();, welche über das Interface aus #1 vorgeschriben ist.
Überschwänglich habe ich gleich ne Anleitung in eine Wiki gepostet (den nehm ich dann wieder raus Wink ) man sieht da immerhin ganz genau wie ich es versucht habe (ist nicht sehr lang, ist im Prinzip ne Zusammenfassung dessen was mein versuch war)
http://jcryptool.wiki.sourceforge.net/Plugin_Interaction
naja, auf jeden fall habe ich dann aus Plugin #1 heraus den folgenden Aufruf getätigt:
Der Fehler, welcher meine Hoffnungen zunichte machte, war eben bei der kritischen Zeile
- Fehler:
org.eclipse.core.runtime.CoreException: Plug-in "org.jcryptool.analysis.vigenerehelper" was unable to instantiate class "org.jcryptool.analysis.vigenerehelper.ui.VigenereHelperUI".
So funktionierts also nicht - offensichtlich wird die Klasse aus Plugin #2 eh instanziert, und die Werte, die ich vom user bekommen habe, kann ich somit nicht erhalten.
Kannn mir jemand verraten, wie es gehen soll, dass man das Beschriebene zustande bringt? Also, dass zwei Plugins während ihrer Laufzeit interagieren können in Sachen Werte austauschen (und vielleicht sogar gegenseitig Funktionen ausführen? das wäre ja noch mächtiger)
Oder war ich auf dem richtigen Weg schon? naja, ich brauche dringen Hilfe, ich bin am Ende meines Lateins, schon weil ich für den Anlauf der oben beschrieben ist viel recherchiert habe :/
Danke!
Ich glaubte schon, die Lösung gefunden zu habn, aber dann..
also, ich habe 2 Plugins, die je eine View darstellen, geschrieben. Dort gibt der User Werte ein, also dynamischer Content, und diesen sollen die Views austauschen können. Nur wie geht das? feste Referenz geht ja nicht, es is ja non static. Mein Versuch war es (ich bin recht neu in Eclipse) das anze über einen Extension Point bei Plugin #1 zu machen. Plugin #2 stöpselt sich an, über ein Interface, was in #1 definiert ist. In Plugin #2 gibt es dann eine Funktion, etwa getInputs();, welche über das Interface aus #1 vorgeschriben ist.
Überschwänglich habe ich gleich ne Anleitung in eine Wiki gepostet (den nehm ich dann wieder raus Wink ) man sieht da immerhin ganz genau wie ich es versucht habe (ist nicht sehr lang, ist im Prinzip ne Zusammenfassung dessen was mein versuch war)
http://jcryptool.wiki.sourceforge.net/Plugin_Interaction
naja, auf jeden fall habe ich dann aus Plugin #1 heraus den folgenden Aufruf getätigt:
Code:
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(org.jcryptool.analysis.
friedman.FriedmanPlugin.PLUGIN_ID, "helper");
IExtension[] extensions = extensionPoint.getExtensions();
for (IExtension extension : extensions) {
IConfigurationElement[] configElements = extension.getConfigurationElements();
for (IConfigurationElement configElement : configElements) {
try {
HelperInterface di = (HelperInterface)configElement.
createExecutableExtension("theplugin");
di.setExtResult(org.jcryptool.analysis.friedman.
FriedmanPlugin.PLUGIN_ID, cachedResult);
} catch (CoreException e) {
System.err.println("CE: " + e);
e.printStackTrace();
}
}
}
Der Fehler, welcher meine Hoffnungen zunichte machte, war eben bei der kritischen Zeile
Code:
HelperInterface di = (HelperInterface)configElement. createExecutableExtension("theplugin");
org.eclipse.core.runtime.CoreException: Plug-in "org.jcryptool.analysis.vigenerehelper" was unable to instantiate class "org.jcryptool.analysis.vigenerehelper.ui.VigenereHelperUI".
So funktionierts also nicht - offensichtlich wird die Klasse aus Plugin #2 eh instanziert, und die Werte, die ich vom user bekommen habe, kann ich somit nicht erhalten.
Kannn mir jemand verraten, wie es gehen soll, dass man das Beschriebene zustande bringt? Also, dass zwei Plugins während ihrer Laufzeit interagieren können in Sachen Werte austauschen (und vielleicht sogar gegenseitig Funktionen ausführen? das wäre ja noch mächtiger)
Oder war ich auf dem richtigen Weg schon? naja, ich brauche dringen Hilfe, ich bin am Ende meines Lateins, schon weil ich für den Anlauf der oben beschrieben ist viel recherchiert habe :/
Danke!