eclipse 中的Link with Editor功能是如何实现

来源:互联网 发布:嘉桥数据咨询 编辑:程序博客网 时间:2024/04/29 21:56

今天向大家介绍Eclipse中很有用的一个功能: Link with Editor。

当打开很多文件,而左边的Navigator又有很多资源,很深层次时, 找到当前的编辑器对应的是哪个项目的那个文件,是一件困难的事情。

Link with Editot自动在Navigator中定位资源,并选中, 如下图所示,双向箭头就是Link with Editor未选中时:

启用后,选中右边的java文件,左边也会自动选中相应的文件:

 

这个功能是如何实现的呢?

查看ResourceNavigator的editorActivated方法,可以看到实现代码。

    protected void editorActivated(IEditorPart editor) {
        if (!isLinkingEnabled()) {
            return;
        }

        IFile file = ResourceUtil.getFile(editor.getEditorInput());
        if (file != null) {
            ISelection newSelection = new StructuredSelection(file);
            if (getTreeViewer().getSelection().equals(newSelection)) {
                getTreeViewer().getTree().showSelection();
            } else {
                getTreeViewer().setSelection(newSelection, true);
            }
        }
    }

当Link with Editor启用后,程序会获得当前编辑器的文件, 并在左边的Navigator树形结构里选中。

我们可以继承ResourceNavigator并对代码做一些修改,做一个自己的Navigator: 比如选中编辑器时,选中左边对应的父文件夹。

只需修改一句代码:

ISelection newSelection = new StructuredSelection(file.getParent());

 

本文介绍了 Link with Editor功能,实现原理,以及如何做一个定制的。

注:在最新的Eclipse中,类ResourceNavigator已经弃用

【完】

0 0
原创粉丝点击