Aus ActionPerformed ein Plugin starten

  • Themenstarter Themenstarter jboosHugo
  • Beginndatum Beginndatum
J

jboosHugo

Gast
Hallo,

ist es möglich durch drücken eines Buttons ein Plug-in zu starten?

Java:
button.addActionListener(new ActionListener() {
	public void actionPerformed(ActionEvent e) {
		// hier das Plug-in starten
	}
});

Mein Plug-in (TestPlugIn.java) hat folgende Form

Java:
public class TestPlugIn extends ActionDelegate implements IViewActionDelegate 
{
       public TestPlugIn(){}
       public void  init(IViewPart arg0){}
       public void init(IAction action){}
       @Override
       public void run(IAction action){ aMethod();}
}

Bisher starte ich mein Plug-In durch ein Rechtsklick und wähle aus dem Popup-Menü mein Plug-in.
Ich möchtes aber durch ein Klick auf das Button starten.
Im prinzip müsste ich doch die run-Methode aus dem TestPlugIn in der Zeile 3 aufrufen. Aber die run-Method verlangt ja als Parameter IAction action. Daher stelle ich mir dir Frage, ob das überhaupt geht.
 
Was ist denn IAction für ein Interface? Sinn und Zweck? Woher bekommst du es, wenn du die run-Methode über dein PopupMenü aufrufst? Kannst du bei der Action des Buttons nicht einfach das Gleiche machen wie beim Popup? Was ist ActionDelegate? Ein Wrapper um eine Action? Was ist IViewActionDelegate für ein Interface?

Und allgemein: Natürlich kannst du mit Drücken eines Buttons ein "Plugin" starten... du kannst alles mögliche machen. Aber von was für Plugins redest du hier? Ist das aus einer externen Library oder hast du die selber geschrieben?
 
Wenn ich mir die Klassen- Interfacenamen so ansehe meinst du wohl ein Eclipse Plugin? Wäre nett wenn du das auch geschrieben hättest...
Der Code mit dem ActionListener verwirrt mich allerdings, das sieht eher nach Swing aus... :autsch:
Falls es aber trotzdem um ein Eclipse Plugin geht, was meinst du dann bitte mit 'Plugin starten'? Dein Plugin wird automatisch vom OSGi Container gestartet wenn es benötigt wird, was möchtest du also damit erreichen?
Alles in allem, die Informationen waren sehr dürftig
 
es ist ein eclipse plugin.
und zwar handelt es sich um ein programm, das auf eclipse basiert ist.
in diesem programm habe ich ein eigenes plugin geschrieben.
wenn ich nun in diesem programm (nicht in eclipse) rechtsklick mache, dann bekomme ich einige menü einträge, wie kopieren, einfügen, eigenschaften, etc....
in diesem menü kann ich aber auch mein plugin starten, z.B. mit dem Namen "Starte Plug-in".

Mit Start des "Starte Plug-In" wird folgender Code aufgerufen
Java:
public void run(IAction action){ aMethod();}  //das ist die Methode aus der Klasse TestPlugIn

Damit die Methode aMethode() immer ausgeführt werden kann, muss ich im Programm immer rechtsklick machen und dann auf "Starte Plug-In" klicken. Ich möchte das umgehen, in dem ich diesen Prozess durch draufdürcken eines Buttons realisieren. Aber dafür muss ich irgendwie die run-Methode anstossen, und wie das geht, weiss ich leider nicht.

Java:
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // hier muss die obige run-Methode angestossen werden, damit die aMethode() durch draufdrücken des Buttons ausgeführt werden kann
    }
});

Hoffe es ist bisschen verständlicher geworden.
 

Neue Themen


Zurück
Oben