5 grudnia 2008

Jak z kodu wtyczki do Eclipse dostać obiekt wybranego pliku

W końcu pojawiła się dobra okazja, by napisać wtyczkę (plug-in) do Eclipse; coś, czego chciałem, albo wręcz o czy marzyłem już od dość dawna. Sprawa jest dosyć prosta; chcę, aby po kliknięciu prawym guzikiem myszy na obiekcie pliku w widoku Package Explorer pojawiła się – między innymi – opcja wykonania na tymże pliku jakiejś operacji. Paradoksalnie, najtrudniejsze w tym przedsięwzięciu okazało się odnalezienie informacji o tym, w jaki sposób można z kodu wtyczki dostać obiekt pliku, na którym kliknięto. W końcu udało mi się znaleźć odpowiedź. Zrobi to dla nas poniżej pokazana metoda (przy założeniu, że wtyczka jest skonfigurowana tak, że uaktywnia się tylko przy wyborze jednego obiektu IFile).

private IFile getSelectedFile() {
ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getSelectionService().getSelection();

return (IFile) ((IStructuredSelection) selection).getFirstElement();
}