gpt4 book ai didi

java - 删除资源后关闭 Eclipse 编辑器

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:53 26 4
gpt4 key购买 nike

我正在开发一个 Eclipse 插件并面临一个问题:

假设您打开了几个编辑器,并且右键单击“项目资源管理器”中的项目,然后将其删除。通知所有相关打开的编辑器以便将它们关闭并从 View 中删除的干净方法是什么?实际上删除项目时,所有编辑器都保持打开状态,因此状态不一致。

任何想法将不胜感激:)

最佳答案

这是我的 Indigo 解决方案,其中 MyEditor 监听项目关闭事件,如果其文件属于正在关闭的项目,则自行关闭。

public class MyEditor extends EditorPart {
private final Display display = Display.getCurrent();

private IResourceChangeListener editorCloser = new IResourceChangeListener() {
public void resourceChanged(IResourceChangeEvent event) {
final IResource closingProject = event.getResource();
Display.getDefault().asyncExec(new Runnable(){
public void run() {
for (IWorkbenchPage page : getSite().getWorkbenchWindow().getPages()) {
FileEditorInput editorInput = (FileEditorInput) MyEditor.this.getEditorInput();
if (editorInput.getFile().getProject().equals(closingProject))
page.closeEditor(page.findEditor(editorInput), true);
}
}
});
}
};

public void init(IEditorSite site, IEditorInput input) throws PartInitException {
[...]
ResourcesPlugin.getWorkspace().addResourceChangeListener(editorCloser,
IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE);
}

public void dispose() {
super.dispose();
ResourcesPlugin.getWorkspace().removeResourceChangeListener(editorCloser);
}
}

令我困惑的是,Eclipse 的默认行为不是在项目关闭时关闭编辑器。

关于java - 删除资源后关闭 Eclipse 编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17427908/

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