J'essaie d'afficher une boîte de dialogue contextuelle à la position du curseur de texte d'un éditeur. Comment puis-je obtenir la position du curseur de texte en pixels de l'éditeur actif (Point) et une boîte de dialogue pop-up à ce stade?Eclipse-plugin comment obtenir la position actuelle du corsor de l'éditeur de texte
Répondre
Vous pouvez utiliser la méthode getCursorPosition()
de AbstractTextEditor
Je ne suis pas sûr de ce que vous entendez dans « show de dialogue pop-up à ce stade », mais faire quelque chose comme ceci:
IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editor instanceof ITextEditor) {
ISelectionProvider selectionProvider = ((ITextEditor)editor).getSelectionProvider();
ISelection selection = selectionProvider.getSelection();
if (selection instanceof ITextSelection) {
ITextSelection textSelection = (ITextSelection)selection;
int offset = textSelection.getOffset(); // etc.
}
}
de bien sûr, dans le code de production faire des vérifications nuls, etc.
J'ai besoin de (X, Y) point (en pixels) pour afficher une boîte de dialogue contextuelle et je veux l'afficher sous le curseur de texte comme le popup de complétion de code. Dans votre code, vous obtenez un décalage de texte dans les symboles, comment convertir ce décalage en points en pixels. Ou peut-être existe une autre façon d'afficher une fenêtre sous le curseur de texte? –
Mais cette méthode est protégée. Comment peut-on l'invoquer? – Lii
Non seulement il est protégé, mais il renvoie aussi une chaîne "description de la position du curseur", ce qui n'est pas du tout ce que l'OP demandait. –