启动工作台时跳过缺少的编辑器文件

时间:2012-08-29 14:24:34

标签: java eclipse-plugin eclipse-rcp

Eclipse工作台的标准行为是在调用之间保留打开文件集,并尝试在重新启动时重新打开这些文件。如果缺少任何文件,则会出现占位符编辑器,显示有关丢失文件的错误消息。我们想改变Eclipse RCP应用程序的行为,而不是默默地跳过任何丢失的文件。

我们已经在编写自己的IApplicationWorkbenchAdvisor等;这些类可以在平台中注入各种行为,但我还没有找到通过这些类完成这些操作的方法。我们怎样才能实现所期望的行为?

1 个答案:

答案 0 :(得分:2)

我处理这个的方式实际上是在创建的编辑器中:覆盖setInput以通过调用editorInput.exists()检查传入的IEditorInput是否有效(在FileEditorInput的情况下,检查文件是否存在)或者您是否使用自定义编辑器输入,以及您需要的任何其他验证。

如果editorInput验证失败,则异步关闭编辑器(当编辑器在完成打开之前关闭时,Eclipse不喜欢它):

public void close () {
    Display.getDefault().asyncExec(new Runnable () {
        public void run () {
            getSite().getPage().closeEditor(YourEditorClass.this, false);
        }
    });
} 

处理此问题的另一种方法是在启动时禁用重新打开编辑器 - 请参阅In Eclipse, how to close the open files(editors) when exiting without auto-load in next startup