2.1 概述
Navigator 是CNF中用来显示资源结构的Viewer(视图),对于一个一般的Viewer,Eclipse使用扩展点org.eclipse.ui.views声明,在CNF中则使用org.eclipse.ui.navigator.viewer声明一个用于Navigator的专用视图。Eclipse中的Project Explorer就是一个已经实现了的Navigator示例,下面是效果图:
2.2 扩展点
这里我们详细看看扩展点org.eclipse.ui.navigator.viewer,下面是这个扩展点的示意图:
它可以定义以下四项内容:
1. viewer:指定作为Navigator的视图,只需要指定一个ID就行了,具体的Viewer在org.eclipse.ui.views里面定义;
2. viewerContentBinding:引用或排除navigator使用的navigatorContent,它将在其他的扩展点——org.eclipse.ui.navigator.navigatorContent/navigatorContent里面定义,详细见第三节,同样引用ID就行了,支持正则式匹配;
3. viewerActionBinding:引用或排除navigator使用的actionProvider,它将在其他的扩展点——org.eclipse.ui.navigator.navigatorContent/actionProvider定义,详细见第六节,支持正则式匹配;
4. dragAssistant:指定提供拖拽操作的类,这个类一般继承自org.eclipse.ui.navigator.CommonDragAdapterAssistant。
这里有几点值得说明一下,org.eclipse.ui.navigator.viewer作为CNF的Navigator扩展点,指定了Navigator所使用的Viewer,而且还包含了contentBinding和actionBinding以及dragAssistant,其中contentBinding和actionBinding都是引用其他的扩展点定义的内容:navigatorContent、commonFilters和actionProvider,使用中一般将前者归于contentBinding,而后者归于actionBinding。
比如:
2.3 Eclipse Navigator实现
Eclipse的Project Explorer就是一个完整的CNF实现的示例,它位于插件org.eclipse.ui.navigator.resources中,实现类为ProjectExplorer,看看它的类型层析结构:
这里的CommonNavigator就是CNF的Navigator实现的关键类,很多情况下,用户可以直接使用它,或者扩展它。CommonNavigator主要包括以下主要内容:
2.3.1 CommonViewer
org.eclipse.ui.navigator.CommonViewer,显示树形结构的控件,其实就是扩展了TreeViewer,添加了一些功能而已。
2.3.2 NavigatorActionService
org.eclipse.ui.navigator.NavigatorActionService,管理在扩展点中定义的ActionProvider。简单的说就是提取定义的actionProvider菜单扩展点,然后显示在视图上。
2.3.3 INavigatorContentService
org.eclipse.ui.navigator.INavigatorContentService,管理扩展点中定义的navigatorContent。简单的说就是提取出Viewer显示所需要的Label Provider和Content Provider,记忆可能的过滤器、排序等。
2.3.4 LinkHelperService
org.eclipse.ui.navigator.LinkHelperService,管理扩展点中定义的LinkHelper,提供树形节点与编辑器的关联。
2.4 说明
分享到:
相关推荐
Common Navigator Framework(CNF)是Eclipse平台中的一...通过深入学习和实践这些知识点,开发者能够熟练地利用Common Navigator Framework来创建自定义的、满足特定需求的导航视图,提升Eclipse开发环境的用户体验。
在《Common_Navigator_Framework_分析.pdf》这份文档中,读者可以深入学习CNF的架构、工作原理以及如何进行定制开发。通过实例和代码示例,文档详细解释了如何使用CNF的API来创建自定义的导航视图,并提供了适配器和...
`CommonNavigator`类是实现此功能的基础,开发者可以通过扩展这个类并重写相关方法来自定义视图行为。 3. **AdapterFactories**:CNF使用适配器工厂(AdapterFactory)将模型对象转换为可以被视图渲染的结构。...
6. **创建自定义导航器**:最后,你需要创建一个继承自CommonNavigator类的子类,然后在其中重写初始化方法,将之前创建的适配器、内容提供者、标签提供者、过滤器和排序器设置到导航器实例中。 博客中的附件代码...
在Eclipse RCP中,Common Navigator Framework (CNF) 是一个关键组件,它提供了一种灵活的方式来展示资源树结构,类似于Eclipse IDE中的“Package Explorer”或“Project Explorer”。"Eclipse RCP Common Navigator...
【使用CommonNavigator开发资源管理器】的文档主要介绍了如何利用Eclipse的Common Navigator Framework (CNF) 插件来创建自定义的资源管理器。Common Navigator Framework是Eclipse平台的一部分,它提供了一套完整的...
在本文档中,我们将深入探讨如何构建一个基于Eclipse平台的通用导航框架(Common Navigator Framework, CNF)查看器。这不仅适用于Eclipse平台的新手开发者,也适合希望深入了解CNF工作原理及其实现细节的高级用户。...
本篇文章将继续深入探讨如何构建一个通用导航框架(Common Navigator Framework,简称CNF)查看器,并着重介绍如何向该查看器添加内容扩展。通过本教程的学习,您将能够掌握在CNF查看器中展示特定文件类型数据的方法...
《中国Eclipse社区开发资料整理》是一份针对Eclipse开发工具的...通过阅读并实践这些教程,开发者可以更深入地理解Eclipse的内在工作原理,并能自如地利用Common Navigator Framework构建出符合项目需求的个性化视图。
<menuContribution locationURI="popup:org.eclipse.ui.navigator.CommonNavigator#menu"> commandId="com.example.deletePropertyCommand" label="Delete Property" style="push"> ``` 这里,`...
2. **通过`org.eclipse.ui.navigator.navigatorContent`作为动作提供者贡献操作**:有时客户需要更程序化的控制,具体包括哪些操作贡献到特定上下文下的某个菜单,以及根据当前选择配置了哪些可重定向操作。...
Navigator Custom Buttons HOWTO Formatter Predefined Formatter Custom Formatter HOWTO Searching Configuration Toolbar Searching Custom Searching Single Searching Advanced Searching HOWTO Editing ...
injects in our classes onto window and navigator | | |-channel.js ..... pub/sub impl for custom framework events | | |-init.js ........ common locations to add Cordova objects to browser globals | | ...
- **Common Navigator**:一个通用的资源导航器,可以用来浏览文件、项目等资源。 - **Platform Plug-in Development Environment**:提供了一系列工具,帮助开发者创建和测试Eclipse插件。 ### EMF&GEF介绍 EMF...
21. **专题六**:COMMON NAVIGATOR FRAMEWORK初探 - 对Eclipse通用导航框架的基本介绍。 通过本教程,开发者可以逐步掌握Eclipse RCP的各个关键概念和技术,从而能够开发出自己的富客户端应用程序。每个章节都包含...
- **Common Navigator**:提供了一个统一的资源视图,可用于浏览项目结构等。 #### 四、下载Eclipse SDK 为了开始开发Eclipse RCP应用,首先需要下载并安装Eclipse SDK(Software Development Kit),该套件包含了...
Eclipse Rich Client Application 开发自学教程 For The Eclipser salever 2011-3-28 根据最新版本的Eclipse 3.6 重新编写,每章都可独立于其他章节,内附的代码均可直接运行, 适合Eclipse 开发者参考。...