我正在开发一个eclipse插件,以便使用专有的版本控制系统来简化开发。
现在只有一个命令提示符版本的系统可用于此VCS及其在终端中运行。因此,从我的eclipse插件中,我想提供一个简单的菜单选项来执行签出和签入等操作,并在内部调用这些命令。 但要运行这些命令,我需要传递参数' path'在编辑器/项目资源管理器中选择的.java文件。如何将源文件的路径获取到插件?
答案 0 :(得分:3)
获取当前工作台页面:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
工作台页面实现了ISelectionService
,因此您可以获得当前选择:
ISelection selection = page.getSelection();
这通常由IStructuredSelection
(但您需要检查)
IStructuredSelection sel = (IStructuredSelection)selection;
看看这是否适应IFile
:
Object selObject = sel.getFirstElement(); // or iterate through all the selection elements
IFile file = Platform.getAdapterManager().getAdapter(selObject, IFile.class);
如果你得到一个文件的完整路径是:
String location = file.getLocation().toOSString();
如果当前部分是编辑器,则您收到的选择可能是文本字符串。所以你需要单独处理编辑:
IWorkbenchPart activePart = page.getActivePart();
if (activePart instanceof IEditorPart)
{
IEditorInput input = ((IEditorPart)activePart).getEditorInput();
if (input instanceof IFileEditorInput)
{
IFile file = ((IFileEditorInput)input).getFile();
...
}
}