Подтвердить что ты не робот

Как получить выбранный node в проводнике пакетов из плагина Eclipse

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

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

4b9b3361

Ответ 1

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

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

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

Затем возьмите выделение для Проводника пакетов и отбросьте его на 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());

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

Ответ 2

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

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

Вы просматриваете пример в Action, подобном класс LuaFileWizardAction.