今天向大家介绍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 =newStructuredSelection(file.getParent());
本文介绍了 Link with Editor功能,实现原理,以及如何做一个定制的。
注:在最新的Eclipse中,类ResourceNavigator已经弃用
【完】