如何在不使用IEditorPart的情况下找到在eclipse编辑器中打开的文件?

时间:2014-08-25 12:24:53

标签: java eclipse eclipse-plugin editor

我想知道在eclipse编辑器中打开了哪个文件(甚至项目就够了)?我知道一旦从doSetInput方法获取IEditorPart,我们就可以做到这一点,

IFile file = ((IFileEditorInput) iEditorPart).getFile();

但是我想要不使用IEditorPart的文件名,我怎么能这样做?
检查哪个是项目浏览器中的选定文件没有多大帮助,因为用户可以一次选择多个文件并同时打开所有文件,但我无法区分在哪个时间打开的文件。
添加更多信息:
我有一个为特定类型的文件指定的编辑器,现在每次打开时,在初始化编辑器中我都有一些基于项目属性的操作。
在初始化编辑器时,我需要文件句柄(用户打开/双击的文件句柄)或相应的项目句柄。 我的编辑方式是这样的:

public class MyEditor extends TextEditor{
    @Override
    protected void initializeEditor() {
        setSourceViewerConfiguration(new MySourceViewerConfiguration(
            CDTUITools.getColorManager(), store,
            "MyPartitions", this));
    }

    //other required methods

    @Override
    protected void doSetInput(IEditorInput input) throws CoreException {
        if(input instanceof IFileEditorInput)
        {
            IFile file = ((IFileEditorInput) input).getFile();
        }
    }
}

正如我在doSetInput()方法中所做的那样,我想要文件句柄(甚至项目句柄就足够了)。但问题是在initializeEditor()函数中没有对editorInput的引用,因此我无法获取文件句柄。
在源查看器配置文件中,我设置了代码扫描程序,这需要一些项目特定的信息来设置相应的规则。

1 个答案:

答案 0 :(得分:0)

您永远不会得到保证(即使IFileEditorInput),以确定哪些文件是"打开"与编辑。

甚至没有定义"打开的文件"例如,编辑器显示多个文件的内容(如PDE的Plug-In Manifest Editor)。其他编辑器仅显示URI的内容(可能本地)

您能解释一下您要解决的问题吗?