Kontextmenü in einer RCP-Anwendung erstellen

KlaDi

Erfahrenes Mitglied
Hallo,

ich suche ein Tutorial, wie ich ein Kontextmenü erstellen kann, das bei Klick auf einen speziellen View in meiner RCP-Anwendung angezeigt wird. Leider konnte ich mit google bzw. hier kein passendes finden.

Gruß KlaDi.
 
Hallo, hab mein Menü folgendermaßen erstellt:


Code:
MenuManager popupMenu1 = new MenuManager();
popupMenu1.add(myAction);
Menu menu1 = popupMenu1.createContextMenu(myControll);
myControll.setMenu(menu1);
 
Hallo gello,

danke erstmal.

Kannst Du vielleicht noch nen paar Infos zu Deinem Code geben? Wo hast Du z.B. myAction und myControll definiert?

Gruß KlaDi.
 
Hallo,

myAction ist eine Instanz der Klasse ClearAction.
Diese Klasse wiederum wurde von mir implementiert und ist von der Klasse org.eclipse.jface.action.Action() abgeleitet. Dabei muss unteranderem die run()-Methode implementiert werden. In dieser Methode kannst du dann auch deine Routinen schreiben, die ausgeführt werden sollen.

myControll ist ein einfaches Textfeld (org.eclipse.swt.widgets.Text() )
 
Hi gello,

also ich habe meinen Code jetzt so angepasst:

Code:
	final Action newAction;
	newAction = new newAction("anlegen", PlatformUI.getWorkbench().getActiveWorkbenchWindow());

	MenuManager popupmenu = new MenuManager();
	popupmenu.add(newAction);
	Text myControll = null;
	myControll.setText("Kontrolle");
	Menu menu = popupmenu.createContextMenu(myControll);
	myControll.setMenu(menu);

Leider bekomme ich das Kontextmenü nur nicht angezeigt, wenn ich mit der rechten Maustaste in meinen View klicke. Kann es daran liegen, das in dem View ein Tree dargestellt wird?...Oder was muss ich denn tun um das Popopmenu angezeigt zu bekommen?

Gruß und Dank

KlaDi.
 
Zuletzt bearbeitet:
Hallo,

also ich versuche immer noch ein Kontextmenü zu erstellen und habe meinen Code jetzt so angepasst:

Code:
final Action newGVAction;
newGVAction = new newGVAction("anlegen", PlatformUI.getWorkbench().getActiveWorkbenchWindow());
MenuManager popupMenuManager = new MenuManager("PopupMenu");
IMenuListener listener = new IMenuListener() { 
public void menuAboutToShow(IMenuManager manager) { 
	manager.add(newGVAction); 
	manager.add(new Separator( 
	IWorkbenchActionConstants.MB_ADDITIONS)); 
	} 
}; 
popupMenuManager.addMenuListener(listener); 
popupMenuManager.setRemoveAllWhenShown(true); 
getSite().registerContextMenu(popupMenuManager, getSite().getSelectionProvider());

Das Problem ist nur, wie bekomme ich das Menu jetzt angezeigt?

Gruß KlaDi.

[EDIT]

Also ich habe jetzt noch
Code:
tree.setMenu(menu);
eingefügt und nun gehts.
 
Zuletzt bearbeitet:
Zurück