Как получить выбранный узел в проводнике пакетов из плагина Eclipse - PullRequest
17 голосов
/ 25 февраля 2009

Я пишу плагин команды Eclipse и хочу получить текущий выбранный узел в представлении проводника пакетов. Я хочу быть в состоянии получить абсолютный путь к файлу, где выбранный узел находится в файловой системе (т.е. c: \ eclipse \ test.html), из возвращенного результата.

Как мне это сделать?

Ответы [ 2 ]

32 голосов
/ 25 февраля 2009

Первый шаг - получить услугу выбора, например, из любого представления или редактора, как это:

ISelectionService service = getSite().getWorkbenchWindow()
            .getSelectionService();

Или, как писал VonC , вы можете получить его через PlatformUI, если вы не находитесь ни в представлении, ни в редакторе.

Затем получите выбор для Package Explorer и приведите его к IStructuredSelection:

IStructuredSelection structured = (IStructuredSelection) service
            .getSelection("org.eclipse.jdt.ui.PackageExplorer");

Отсюда вы можете получить выбранный вами IFile:

IFile file = (IFile) structured.getFirstElement();

Теперь, чтобы получить полный путь, вам нужно получить местоположение для IFile:

IPath path = file.getLocation();

Который затем вы можете, наконец, использовать, чтобы получить реальный полный путь к вашему файлу (среди прочего):

System.out.println(path.toPortableString());

Более подробную информацию об услуге выбора можно найти здесь: Использование службы выбора .

15 голосов
/ 25 февраля 2009

Код будет выглядеть так:

IWorkbenchWindow window =
    PlatformUI.getWorkbench().getActiveWorkbenchWindow();
ISelection selection = window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");

Вы просматриваете пример в действии, подобном этому LuaFileWizardAction class .

...