eclipse插件:当所选项目发生变化时获取通知

时间:2014-12-19 07:39:39

标签: java eclipse eclipse-plugin swt

我创建了一个插件,用于查询所选项目名称&路径并在启动时在视图中显示它。以下是我如何查询所选项目的代码:

IStructuredSelection selection = (IStructuredSelection) window.getSelectionService().getSelection();
Object firstElement = selection.getFirstElement();
if (firstElement != null) {
    if (firstElement instanceof IAdaptable) {
        IProject project = (IProject) ((IAdaptable) firstElement).getAdapter(IProject.class);
        IPath path = project.getFullPath();
        IPath location = project.getLocation();
    }
}

如果项目已更改(用户选择任何其他项目)或所选项目已关闭,我该如何收到通知?

2 个答案:

答案 0 :(得分:0)

您应该只使用ISelectionService添加一个ISelectionListener。还有一篇关于该主题的好文章 - > https://eclipse.org/articles/Article-WorkbenchSelections/article.html

对于项目状态更改,您必须添加IResourceChangeListener。

IWorkspace #addResourceChangeListener(IResourceChangeListener,int)

答案 1 :(得分:0)

看看

https://eclipse.org/articles/Article-WorkbenchSelections/article.html

1)创建自己的实现ISelectionChangedListener的类。

2)在您要收听的选择提供者上调用addSelectionChangedListener(ISelectionChangedListener yourListener):

  window.getSelectionService().addSelectionChangedListener(yourListener)

3)处理您的选择事件