2016-08-07 3 views
0

Ich schreibe gerade ein Plugin für die Eclipse IDE. In diesem Plugin habe ich meinen eigenen Typ von Ressourcenmarker (IMarker) definiert. Mit den standardmäßigen Eclipse-Optionen wie den Schaltflächen "Nächste Anmerkung"/"Vorherige Anmerkung" kann der Benutzer zwischen diesen Markierungen navigieren. Ich habe auch eine Ansicht geschrieben, die einige Detailinformationen für einen einzelnen Marker zeigt. Diese Ansicht muss aktualisiert werden, wenn der Benutzer zu einer Markierung navigiert. Kann ich eine Art Zuhörer/Beobachter registrieren, der benachrichtigt wird, wenn der Benutzer eine Markierung auswählt/springt? Wenn das so ist, wie? Wenn nicht, was sind meine Alternativen?Wird benachrichtigt, wenn der Benutzer zu einer Markierung (Annotation) in Eclipse springt

Antwort

1

Die Aktion "Nächste Anmerkung" ruft die Methode ITextEditorExtension4.gotAnnotation auf. Die übliche Implementierung dafür ist in AbstractTextEditor. Dies ruft nur die Annotation auf und ruft die Methode selectAndReveal auf.

Es scheint also keinen speziellen Listener zu geben, den Sie dafür verwenden können. Es sollten normale Auswahlereignisse generiert werden, so dass Sie den Auswahllistener ISelectionService verwenden können, aber Sie müssen herausfinden, ob die Auswahl für Ihren Marker getroffen wurde.

+0

Dies scheint nicht so zu funktionieren, wie ich es möchte. Ich erhalte Ereignisse auf diese Art, aber sie sind vom Typ 'TextSelection' und ich habe keine Möglichkeit gefunden zu sagen, ob dies durch" Benutzer, der auf Marker springt "oder durch eine andere Art von Selektionsänderung verursacht wird. –

+0

Es gibt keine Möglichkeit, dass Sie sagen können, soweit ich das sehen kann, ist das das Beste, was getan werden kann. –

Verwandte Themen