`
salever
  • 浏览: 255596 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

深入 Common Navigator Framework 之 Navigator

    博客分类:
  • RCP
阅读更多

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学习资料

    Common Navigator Framework(CNF)是Eclipse平台中的一...通过深入学习和实践这些知识点,开发者能够熟练地利用Common Navigator Framework来创建自定义的、满足特定需求的导航视图,提升Eclipse开发环境的用户体验。

    salever_Common_Navigator_Framework_分析

    在《Common_Navigator_Framework_分析.pdf》这份文档中,读者可以深入学习CNF的架构、工作原理以及如何进行定制开发。通过实例和代码示例,文档详细解释了如何使用CNF的API来创建自定义的导航视图,并提供了适配器和...

    Common Navigator Framework

    ### Common Navigator Framework (CNF) 分析 #### 1. 概述 Common Navigator Framework (CNF) 是一种用于帮助用户开发基于 Eclipse 的内容导航视图的框架。它允许开发者快速地将特定的资源和模型无缝集成到 ...

    CommonNavigatorFramework(CNF)实例源码

    `CommonNavigator`类是实现此功能的基础,开发者可以通过扩展这个类并重写相关方法来自定义视图行为。 3. **AdapterFactories**:CNF使用适配器工厂(AdapterFactory)将模型对象转换为可以被视图渲染的结构。...

    定义自己的Common Navigator二

    6. **创建自定义导航器**:最后,你需要创建一个继承自CommonNavigator类的子类,然后在其中重写初始化方法,将之前创建的适配器、内容提供者、标签提供者、过滤器和排序器设置到导航器实例中。 博客中的附件代码...

    Eclipse RCP Common Navigator Demo

    在Eclipse RCP中,Common Navigator Framework (CNF) 是一个关键组件,它提供了一种灵活的方式来展示资源树结构,类似于Eclipse IDE中的“Package Explorer”或“Project Explorer”。"Eclipse RCP Common Navigator...

    使用CommonNavigator开发资源管理器.doc

    【使用CommonNavigator开发资源管理器】的文档主要介绍了如何利用Eclipse的Common Navigator Framework (CNF) 插件来创建自定义的资源管理器。Common Navigator Framework是Eclipse平台的一部分,它提供了一套完整的...

    CNF导航----building-common-navigator-framework-viewer

    在本文档中,我们将深入探讨如何构建一个基于Eclipse平台的通用导航框架(Common Navigator Framework, CNF)查看器。这不仅适用于Eclipse平台的新手开发者,也适合希望深入了解CNF工作原理及其实现细节的高级用户。...

    CNF导航----building-common-navigator-framework-viewer-ii

    本篇文章将继续深入探讨如何构建一个通用导航框架(Common Navigator Framework,简称CNF)查看器,并着重介绍如何向该查看器添加内容扩展。通过本教程的学习,您将能够掌握在CNF查看器中展示特定文件类型数据的方法...

    【资料整理】中国Eclipse社区开发资料整理

    《中国Eclipse社区开发资料整理》是一份针对Eclipse开发工具的...通过阅读并实践这些教程,开发者可以更深入地理解Eclipse的内在工作原理,并能自如地利用Common Navigator Framework构建出符合项目需求的个性化视图。

    CNF导航----building-common-navigator-framework-viewer-IV

    <menuContribution locationURI="popup:org.eclipse.ui.navigator.CommonNavigator#menu"> commandId="com.example.deletePropertyCommand" label="Delete Property" style="push"> ``` 这里,`...

    CNF导航----building-common-navigator-framework-viewer-III

    2. **通过`org.eclipse.ui.navigator.navigatorContent`作为动作提供者贡献操作**:有时客户需要更程序化的控制,具体包括哪些操作贡献到特定上下文下的某个菜单,以及根据当前选择配置了哪些可重定向操作。...

    jqGrid 离线帮助手册

    Navigator Custom Buttons HOWTO Formatter Predefined Formatter Custom Formatter HOWTO Searching Configuration Toolbar Searching Custom Searching Single Searching Advanced Searching HOWTO Editing ...

    cordova-js:我的 Cordova JS repo 镜像

    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 | | ...

    eclipse.pdf

    - **Common Navigator**:一个通用的资源导航器,可以用来浏览文件、项目等资源。 - **Platform Plug-in Development Environment**:提供了一系列工具,帮助开发者创建和测试Eclipse插件。 ### EMF&GEF介绍 EMF...

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    21. **专题六**:COMMON NAVIGATOR FRAMEWORK初探 - 对Eclipse通用导航框架的基本介绍。 通过本教程,开发者可以逐步掌握Eclipse RCP的各个关键概念和技术,从而能够开发出自己的富客户端应用程序。每个章节都包含...

    Eclipse-4-RCP教程

    - **Common Navigator**:提供了一个统一的资源视图,可用于浏览项目结构等。 #### 四、下载Eclipse SDK 为了开始开发Eclipse RCP应用,首先需要下载并安装Eclipse SDK(Software Development Kit),该套件包含了...

    Eclipse RCP Plugin 开发自学入门指南(CEC首发)

    Eclipse Rich Client Application 开发自学教程 For The Eclipser salever 2011-3-28 根据最新版本的Eclipse 3.6 重新编写,每章都可独立于其他章节,内附的代码均可直接运行, 适合Eclipse 开发者参考。...

Global site tag (gtag.js) - Google Analytics