2012-04-11 7 views
2

Ich habe eine Eclipse RCP-Anwendung, bei der ein Menübeitrag registriert wird, so dass ein Kontextmenü automatisch angezeigt wird, wenn der Benutzer mit der rechten Maustaste klickt auf einer speziellen Leinwand in einer definierten Ansicht.Klickposition auf einer Zeichenfläche in einem Handler eines Kontextmenüs

Jetzt in einigen Handlern möchte ich in der Lage sein, die Mauskoordinaten zu erhalten, wo der Benutzer auf der Leinwand klickte, als das Kontextmenü angezeigt wurde. Diese Handler werden durch Befehle ausgeführt, die in diesem Kontextmenü definiert sind.

Das ExecutionEvent in der Execute-Methode des Handlers bietet diese Informationen nicht.

Wie bekomme ich die Cursorposition, der Benutzer geklickt, um das Kontextmenü zu öffnen?

Antwort

1

Wenn das Kontextmenü über ein Mausereignis geöffnet wird, ist ExecutionEvent.getTrigger() das Ereignis SWT MouseDown, das die richtigen Koordinaten enthält.

+1

auch wenn diese Frage 2 Jahre alt ist: Ich habe das gleiche genaue Problem wie der Benutzer, der die Frage stellte. Ich erhalte mit Ihrer Lösung keine positionsbezogenen Informationen. Ich hoffe, dass mir jemand helfen kann. Ich suche seit Jahren nach einer Lösung. – Ubuntix

+0

Was bekommen Sie über 'getTrigger()'? –

+1

keine echten Koordinaten. egal wo ich das Kontextmenü öffne: Event {type = 13 MenuItem {Kopiere \t Ctrl + C} time = 3695913 data = null x = 0 y = 0 width = 0 height = 0 detail = 0} – Ubuntix

Verwandte Themen