Как получить выбранный узел в проводнике пакетов из плагина Eclipse
Я пишу подключаемый модуль команд Eclipse и хочу получить текущий выбранный узел в представлении проводника пакетов. Я хочу получить абсолютный путь к файлу, где выбранный узел находится в файловой системе (например, c: \ eclipse \ test.html), из возвращенного результата.
Как мне это сделать ?
Ответов (2)2
Первый шаг - получить услугу выбора, например, из любого вида или редактора, подобного этому:
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());
Более подробную информацию о службе выбора можно найти здесь: Использование службы выбора .
Код будет примерно таким:
IWorkbenchWindow window =
PlatformUI.getWorkbench().getActiveWorkbenchWindow();
ISelection selection = window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");
Вы просматриваете пример в Action, подобном этому классу LuaFileWizardAction .