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

时间:2024-04-09 17:49:53

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

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

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

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

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

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

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

查看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 =newStructuredSelection(file.getParent());

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

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

【完】

相关文章