Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
eclipse plug-in Entwicklung: Kommt man da rein?
Mark³:
bzgl. rechtes Maustastenmenü: Meinst du folgendes?
--- Code: ---// create context menu
MenuManager manager = new MenuManager();
Menu menu = manager.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
manager.add(new UnrelateCiContextAction(viewer));
--- Ende Code ---
Dies ist der Kot um ein Kontextmenü einzubinden. So kannst du eine ganz normale Action einbinden.
flaite:
Vielleicht so ähnlich oder ganz anders.
Ich hab die Kontextmenüs jetzt so:
--- Code: --- <extension
point="org.eclipse.ui.popupMenus">
[...]
<!-- 1. -->
<objectContribution
id="com.eip.cbeed.programming.menu"
objectClass="org.eclipse.jdt.core.IJavaProject">
<visibility>
<and>
<objectState
name="nature"
value="org.eclipse.jdt.core.javanature"/>
<objectState
name="nature"
value="com.eip.cbeed.eipNature"/>
</and>
</visibility>
<action
label="Export Into Ergo Portal"
icon="icons/notes.gif"
class="com.eip.cbeed.interact.ExportToDominoAction"
id="Project"/>
</objectContribution>
<!-- 2. -->
<objectContribution
id="com.eip.cbeed.programming.menu"
objectClass="org.eclipse.core.resources.IFolder">
<action
label="Export Into Ergo Portal 2"
icon="icons/notes.gif"
class="com.eip.cbeed.interact.ExportToDominoAction"
id="Folder"/>
</objectContribution>
<!-- 3. -->
<objectContribution
id="com.eip.cbeed.programming.menu"
objectClass="org.eclipse.core.resources.IFile">
<action
label="Export Into Ergo Portal 3"
icon="icons/notes.gif"
class="com.eip.cbeed.interact.ExportToDominoAction"
id="File"/>
</objectContribution>
[...]
</extension>
--- Ende Code ---
Praktisch in 3facher Ausführung. Das oberste ist für rechte Maustaste/Projekt sichtbar, das 2. für rechte Maustaste/Folder und die 3. und letzte für rechte Maustaste/File.
Das funktioniert auch soweit. Das Problem ist nur, dass ich nur die erste Aktion schön verborgen bekomme für Projekte, die nicht EIP Nature haben. Bei den anderen Aktionen klappt das nicht. Die sind dann in allen Projekten sichtbar und das soll nicht so sein.
Diese 3 popup Extensions rufen jeweils automatisch die Methode dieser Klasse auf. Nach der ID (s. action.id im xml):
--- Code: ---public class ExportToDominoAction extends ActionResourceAction implements
IViewActionDelegate, IWorkspaceRunnable {
[...]
public void run(IAction action) {
LogHelper.logInfo("run(IAction action) called [action=" + action + "]");
if (action.getId().equals("Project")) {
project = getIProject(this.selection.getFirstElement());
doExport();
} else if (action.getId().equals("Folder")) {
IFolder folder = (IFolder) this.selection.getFirstElement();
project = folder.getProject();
} else if (action.getId().equals("File")) {
IFile file = (IFile) this.selection.getFirstElement();
project = file.getProject();
}
--- Ende Code ---
Noch nicht fertig, da nur der oberste if doExport aufruft (und da ist die Business Logik).
Mark³:
das ist dann wohl eher anders bei dir...
ich habe während der Erstellung meiner Actions schon irgendwie mitbekommen dass es hier verschiedene Paradigmen gibt, wie man Actions einbindet. Das Ganze ist für einen aus der Krabbelgruppe wie mich dann doch alles sehr verwirrend. Zumal ich nur das RCP-Buch hatteund keins deiner Grundlagenbücher...
Aber eigentlich will ich mich auch gar nicht in diesen XML-Dateien tummeln sondern möchte die Actions mit Eclipse-Gui anlegen...
flaite:
Meine Methode hat natürlich den Vorteil das ich gar keine view erstelle. Das sind globale extensions des popUp extensionPoints.
flaite:
--- Zitat von: Mark³ am 20.09.06 - 15:49:27 ---Aber eigentlich will ich mich auch gar nicht in diesen XML-Dateien tummeln sondern möchte die Actions mit Eclipse-Gui anlegen...
--- Ende Zitat ---
Es ist in plugins.xml. Dafür gibts ja auch eine GUI Maske.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln