Hallo zusammen,
ich tüftel nun schon seit Stunden hier rum und komme nicht weiter.
Es geht um folgendes:
Ich schreibe derzeit ein Eclipse Plugin. Innerhalb des Plugins gibt es eine Klasse "TopicView" die von ViewPart erbt ("TopicView extends ViewPart").
Innerhalb von Viewpart habe ich ein Composite, welches wiederum ein Label enthält. Ich möchte nun Folgendes:
Wenn ich mit der rechten Maustaste auf das Label klicke soll ein Popup-menu erscheinen (und zwar dort wo der Mauszeiger ist).
Das Problem: Das Popupmenu erscheint, allerdings nicht da wo der Mauszeiger ist!
Mein Code:
Wenn ich nur e.x und e.y ausgeben lasse zeigt er die Koordinaten innerhalb des labels an, also z.B. 4 (x) und 17(y). Das Popupmenu zeichnet sich auch an diesen Koordinaten, allerdings nicht relativ zum Label sondern zum Bildschirm, d.h. Das Popupmenu erscheint ganz links oben auf dem Bildschirm!
Ich weiß so langsam echt nichtmehr weiter.. hat jemand zufällig eine Idee wie ich das lösen kann ? Wäre echt toll..
Verzweifelt-entnervte Grüße,
ich_wills_wissen
ich tüftel nun schon seit Stunden hier rum und komme nicht weiter.
Es geht um folgendes:
Ich schreibe derzeit ein Eclipse Plugin. Innerhalb des Plugins gibt es eine Klasse "TopicView" die von ViewPart erbt ("TopicView extends ViewPart").
Innerhalb von Viewpart habe ich ein Composite, welches wiederum ein Label enthält. Ich möchte nun Folgendes:
Wenn ich mit der rechten Maustaste auf das Label klicke soll ein Popup-menu erscheinen (und zwar dort wo der Mauszeiger ist).
Das Problem: Das Popupmenu erscheint, allerdings nicht da wo der Mauszeiger ist!
Mein Code:
Code:
public void mouseDown(MouseEvent e)
{
if(e.button == 3)
{
Menu menu = new Menu(label);
menu.setLocation(e.x,e.y);
MenuItem item = new MenuItem(menu, SWT.PUSH);
item.setText("Menu Item");
item.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e)
{
System.out.println("Item Selected");
}});
menu.setVisible(true);
while (!menu.isDisposed() && menu.isVisible()) {
if (!Display.getCurrent().readAndDispatch())
Display.getCurrent().sleep();
}
menu.dispose();
}
}
});
Ich weiß so langsam echt nichtmehr weiter.. hat jemand zufällig eine Idee wie ich das lösen kann ? Wäre echt toll..
Verzweifelt-entnervte Grüße,
ich_wills_wissen