gpt4 book ai didi

java - 如何在 Eclipse 中监听项目删除?

转载 作者:行者123 更新时间:2023-11-30 07:12:57 25 4
gpt4 key购买 nike

我有一个带有增量构建器的项目。假定项目具有特定性质,构建器将所有资源及其更改的表示写入模型。这运行得很好。但是,如果从工作区中删除整个项目,则不会调用增量构建器。为此创建事件处理程序的最佳方法是什么?

我知道我可以创建一个 IResourceChangeListener 并将其附加到我的所有项目中。但是我必须在启动 IDE 的同时启动我的插件,这相当困惑。

那么,捕获“项目已删除”事件的最佳方法是什么?

最佳答案

您可以使用 IResourceChangeListener 接收有关工作区更改的通知。 IResourceChangelistener API 非常通用,可以为您提供有关许多不同类型更改的更改信息。下面是一个示例,说明如何专门使用它来检测项目删除。

public class ProjectDeletionListenerManager implements IResourceChangeListener {

public interface ProjectDeletionListener {
void projectAboutToBeDeleted(IProject project);
}

private IWorkspace workspace;
private ProjectDeletionListener listener;

public ProjectDeletionListenerManager(ProjectDeletionListener listener) {
this.workspace = ResourcesPlugin.getWorkspace();
this.listener = listener;
this.workspace.addResourceChangeListener(this,
IResourceChangeEvent.PRE_DELETE);
}

@Override
public void resourceChanged(IResourceChangeEvent event) {
IResource rsrc = event.getResource();
if (rsrc instanceof IProject) {
listener.projectAboutToBeDeleted((IProject) rsrc);
}
}

public void dispose() {
if (listener!=null) {
workspace.removeResourceChangeListener(this);
listener = null;
}
}

}

注意:代码片段基于this code .

关于java - 如何在 Eclipse 中监听项目删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19904482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com