我尝试开发新闻eclipse工具(eclipse插件),所以我想从工作区获取多个选定的项目。我尝试 getFirstElement(),但它只能获取第一个选定的项目。
非常感谢
这里是一些代码:
public Object execute(ExecutionEvent event) throws ExecutionException {
part = HandlerUtil.getActivePart(event);
window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
selection = HandlerUtil.getActiveMenuSelection(event);
if (selection instanceof IStructuredSelection) {
IStructuredSelection structured = (IStructuredSelection)selection;
IJavaProject project = null;
Object elem = structured.getFirstElement();
if (elem instanceof IJavaProject) {
project = (IJavaProject)elem;
} else if (elem instanceof IProject) {
project = (IJavaProject)JavaCore.create((IProject)elem);
}
if (project != null) {
}
}
return null;
}
最佳答案
顾名思义,IStructuredSelection.getFirstElement()
只为您提供第一个选择。
要获取所有选择,请使用 iterator()
、toArray()
或 toList()
方法。
例如:
IStructuredSelection structured = (IStructuredSelection)selection;
for (Object elem : structured.toList()) {
IJavaProject project = null;
if (elem instanceof IJavaProject) {
project = (IJavaProject)elem;
} else if (elem instanceof IProject) {
project = (IJavaProject)JavaCore.create((IProject)elem);
}
if (project != null) {
... your code
}
}
关于java - 如何使用 IStructuredSelection 获取多选项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26559805/