0
我正在使用ISelection来获取选定的项目名称。每次选择项目时获取选定的项目名称
public static IProject getCurrentProject() {
IProject project = null;
ISelectionService selectionService = Workbench.getInstance().getActiveWorkbenchWindow().getSelectionService();
ISelection selection = selectionService.getSelection();
if(selection instanceof IStructuredSelection) {
Object element = ((IStructuredSelection)selection).getFirstElement();
if (element instanceof IResource) {
project= ((IResource)element).getProject();
}
else if (element instanceof IJavaElement) {
IJavaProject jProject= ((IJavaElement)element).getJavaProject();
project = jProject.getProject();
}
}
return project;
}
问题是该函数仅在第一次执行时才返回项目名称。
当我在按钮事件上调用它时,我得到一个空指针异常,看起来这个元素为空。
我必须改变以获得所选的项目名称,我每次调用此函数?
我正在开发一个插件,这就是为什么我使用Workbench的原因,我尝试在运行插件的位置获取选定的项目名称,我的函数返回选定的项目名称,但仅在第一次执行时(当插件中的视图加载)....我需要解决这个问题.... – 2014-10-09 08:05:50
工作台是不可接受的核心Eclipse代码之外的任何地方。这是一个内部课程,可以在没有通知的情况下更改。 – 2014-10-09 08:24:17
可能您第一次运行代码时,Package Explorer是活动部分,您将获得选择。在另一个运行中,其他运行是活动部分,它有一个空的选择。每个部分都有自己独立的选择。 – 2014-10-09 08:31:02