使用Eclipse的Navigator Link Helper实现导航器与编辑器的关联

实现 LinkHelper

在上个例子中,plugin.xml 中扩展了各类扩展点后,其实并不用我们写任何 Java 代码,就能够在这个 ID 为 com.example.test 的视图上完成一些 Project Explorer 已实现的操作: 例如创建项目,文件夹,文件等,这些是通过重用 navigatorContent 实现的。

另一个需要注意的地 方是,在我们实现的这个视图中,IResource 作为与 CNF 的直接接口,同时也扮演着“项目 / 文件夹 / 文 件”这个业务场景的模型角色。(这也是为什么在 LinkHelper 中 new StructedSelection(file) 能直接定 位到导航器中该节点的原因)

但是在实际的项目开发过程中,并不是每一种业务模型都像文件系统这 样易于展现。例如 Java 中的 Package 概念就需要以多个文件夹合并成一个树结点的方式展示(中间以“.” 分隔),jar 包也需要以内部解压的方式展现其内部树型结构。

所以通常情况下,业务模型会有单独 的抽象表示,并作为与 CNF 的直接接口。其优点有:

所有在 Eclipse UI 上对模型的改变,会先传递到域模型本身,然后通过 IResource 持久化到操作系统。 对模型的改变操作和改变的传递都更直接。如 图 6所示。

图 6. Eclipse 中的资源管理

同一套资源文件,通过不同的角度观察需要有不同的展现,操作及存储方式。例如一个 Java 项目在 Package Explorer 以更贴近 Java 开发的方式展现与操作,而在 Resource Explorer 则是以操作系统的视角 来展现,显示所有的文件夹及文件。这里看待资源的角度,就是构建业务模型所要考虑的事情。

接下来我们会在上一个例子的基础上,加入自己的业务模型层。虽然在文件和文件夹这个场景下,这一层 的存在意义不大,但是能供读者在解决具体的工作时借鉴。

我们仿照上个例子建立一个 custom.linkwitheditor.sample 的插件项目,但这次将自己实现大部分的功能,并加入特定的业务模型层。

首先将 view id 更改为 custom.linkwitheditor.view.myCustomNavigatorView,并添加图标。

删除 org.eclipse.ui.navigator.viewer 扩展下的 viewerActionBindin —— 这意味着在这个例子我们 并不扩展任何 action,context menus 等。

删除 org.eclipse.ui.navigator.viewer 扩展下的 viewerContentBinding —— 一会我们会创建自己实 现的 navigatorContent 与 linkHelper。

时间: 2024-09-18 17:17:34

使用Eclipse的Navigator Link Helper实现导航器与编辑器的关联的相关文章

Eclipse中如何修改Java&CDT的编辑器的颜色

Eclipse的默认颜色很单调, 可以安装插件: Eclipse Color Theme, 如图: 再根据自己想要的, 进行修改, 选择自己喜欢的颜色, 具体位置如下: Windows->Preferences 作者:csdn博客 u012515223 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

使用EMF进行建模,第3部分:使用Eclipse的JMerge定制生成的代码和编辑器

概述 本系列文章的 前一篇介绍了有关 Eclipse 的 Java Emitter Templates (JET)和代码生成的知识,在那篇文章中,您已经看到如何通过使用模板和代码生成器 来节省时间,并实现模式级的代码重用.然而在大部分情况中,这都还不够.您需要能够 将所生成的代码插入现有的代码中,或者允许以后的开发人员来定制所生成的代码,而不 需要在重新生成代码时重新编写任何内容.理想情况下,代码生成器的创建者希望可以支 持今后开发人员所有的需求:从修改方法的实现.修改各种方法签名,到修改所生成

如何使用Eclipse CNF的Saveable Protocol实现对View的保存

Editor 和 View 是 Eclipse 中用于展示和管理资源的两种 UI 元素.Editor 提供了一套方便的机制帮助用户实现对资源的修改及保存.但对于 View,它在很大程度上提供是对资源的树形展示,那如何将对资源的修改在 View 上反映出来,并通过对 View 的操作来保存 View 中的资源呢? Common Navigator Framework(CNF)提供了不同于 Editor 的资源保存机制 (Saveable Protocol) 来帮助用户完成对 View 中资源的保存

Eclipse开发工具使用指南

2001 年11 月 IBM 宣布捐出了价值 4 千万美金的开发软件给开放源码的 Eclipse 项目.如此受青睐的 Eclipse 是什么样子呢,如何使用呢?本文的第一部分会使你对Eclipse有一个初步的认识.并且,Eclipse这个号称未来能进行任何语言开发的IDE集大成者,又将如何实现它的这一宏伟目标?第二部分介绍的Eclipse的插件开发将是其中的关键所在. Eclipse 是替代IBM Visual Age for Java(以下简称IVJ)的下一代IDE开发环境,但它未来的目标不仅

[Eclipse]GEF入门系列(六、添加菜单和工具条)

我发现一旦稍稍体会到GEF的妙处,就会很自然的被它吸引住.不仅是因为用它做出的图 形界面好看,更重要的是,UI中最复杂和细微的问题,在GEF的设计中无不被周到的考虑并以 适当的模式解决,当你了解了这些,完全可以把这些解决方法加以转换,用来解决其他领域 的设计问题.去年黄老大在一个GEF项目结束后,仍然没有放弃对它的继续研究,现在甚至利 用业余时间开发了基于GEF的SWT/JFace增强软件包,Eclipse和GEF的魅力可见一斑.我相信 在未来的两年里,由于RCP/GEF等技术的成熟,Java

java-eclipse 中的Link with Editor问题

问题描述 eclipse 中的Link with Editor问题 急急急急急急!!!Link with Editor 在perspective 为java EE下失去作用,而为java时却有效,什么原因啊?

1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project

 使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题:   1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-XX:MaxPermSize=768m-Xms1024m-Xmx3072m搜索   二:修改window->preferences --- > JAVA->Edittor->Hovers,将右侧所有复选框清空.   2.因为eclipse上一次未正常关闭,导致启动卡死,错误日志为:

开发eclipse插件遇到一个问题

问题描述 开发eclipse插件遇到一个问题 我在开发一款eclipse插件,需要在package explorer.project explorer.navigator视图的右键菜单中添加一个菜单项,遇到一个问题是在package explorer和navigator视图中菜单项能显示出来并正常使用,但是在project explorer视图里却显示不出来.请问各位大神是什么原因? action类的定义: public class DfbdExportFileAction extends Ac

定制Eclipse IDE之功能篇(一)

上文回顾:定制Eclipse IDE之界面篇   这一篇文章将记录一些Eclipse插件拓展(extension),简单讲述常用拓展的用法,但可能不会那么详细. 我的主要插件的拓展如下:   一.org.eclipse.ui.startup 这一个拓展可以说很关键,他可以让我们在eclipse启动时候做一些事件(之后很多小功能东西依靠它做的). XML配置: <extension point="org.eclipse.ui.startup"> <startup cla