知识大全 使用CommonNavigator开发资源管理器--基础篇

Posted

篇首语:观书散遗帙,探古穷至妙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用CommonNavigator开发资源管理器--基础篇相关的知识,希望对你有一定的参考价值。

使用CommonNavigator开发资源管理器--基础篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  无论在哪一个开发工具中 资源管理器无疑都是使用最频繁的功能之一 因此一个资源器好用与否在很大程度上就决定了一个开发工具的易用程度 我们常用的Eclipse工具中的Java资源管理器就是一个非常优秀的资源管理器 所以在EOS Studio中 我们也照样抄袭它的功能 但是Java的资源管理器做了非常多的功能 如果从头开始做一个相似的资源管理器将是一个非常大的工作量 无论技术风险还是项目时间 都是非常可观的 幸好Eclipse还提供了一个优秀的插件 eclipse ui navigator(以下简称为CNF 即Common Navigator Framework) 这个插件提供了完整而且灵活的扩展机制 可以帮助开发人员进行各种相应的类资源管理器功能 其实这个插件在WTP在自己的项目中提供的 最早是用来开发数据库视图的(根源在于RAD 但在WTP中 源代码被大量重写 所以直接就写成WTP) 这个插件有足够的实力证明了自己的优秀 随后在Eclipse 版本中 它正式成为Eclipse UI层的核心插件之一 默认的Eclipse平台上有一个Project Explorer视图 就是基于它开发的一个资源管理器视图 它允许各种插件提供相应的内容 从而定制适合于各种环境下的资源管理器 下图显示了它的界面和相应的扩展功能            左面是一个对应的资源管理器 而右面的对话框则显示了当前资源管理器提供的扩展功能 可以方便用户选择各种资源管理视图的处理方式

  Studio在 eclipse ui navigator的基础上开发了资源管理视图 以及相应的功能 因此要扩展和维护Studio的资源管理器 就需要先了解 eclipse ui navigator这个插件 特别是它的扩展机制

   eclipse ui navigator尽管只提供了以下三个扩展点 却涉及到expression 还有wizard filter等一堆内容 所以还是比较复杂的

   eclipse ui navigator viewer

  用来在视图和扩展之间建立关系

   eclipse ui navigator navigatorContent

  用来提供模型 菜单以及过滤器等内容

   eclipse ui navigator linkHelper

  用来支持文件与资源管理器联动

  现在先用一个简单的实例方便开发人员上手 以便进一步了解相关的内容 这个实例就是使用现有的资源 无须编写一行代码 仅仅是通过plugin xml的配置来配置出一个简单的Java资源管理器

  首先 请先通过向导新建一个Eclipse插件项目 demo navigator 如下图所示:

      在新建完项目以后 请导入以下插件:

  re runtime

  Eclipse的核心之一

  re resources

  Eclipse的资源模型

   eclipse ui

  Eclipse的UI框架

   eclipse ui navigator

  我们本章要讲的插件

   eclipse ui navigator resources

  一个基于 eclipse ui navigator的插件 提供了ProjectExplorer视图

  然后在Eclipse扩展配置的功能页面中 进行了一系列配置以后 可以得到以下的内容 心急的同学可以将该内容复制到plugin xml文件中 然后运行该插件 即可看到一个简单的Eclipse资源管理器

  <?xml version= encoding= UTF ?>

  <?eclipse version= ?>

  <plugin>

  <extension

  point= eclipse ui views >

  <view

  category= eclipse ui

  class= eclipse ui navigator CommonNavigator

  id= demo navigator view

  name= DemoNavigator />

  </extension>

  <extension

  point= eclipse ui navigator viewer >

  <viewer viewerId= demo navigator view />

  <viewerContentBindingviewerId= demo navigator view >

  <includes>

  <contentExtension pattern= demo navigator * />

  <actionExtension pattern= demo navigator * />

  </includes>

  </viewerContentBinding>

  </extension>

  <extension

  point= eclipse ui navigator navigatorContent >

  <navigatorContent

  contentProvider= eclipse ui internal navigator resources workbench ResourceExtensionContentProvider

  id= orntent

  labelProvider= eclipse ui internal navigator resources workbench ResourceExtensionLabelProvider

  name= DemoNavigator >

  <enablement>

  <or>

  <instanceofvalue= re resources IResource />

  <adapt type= re resources IProject />

  </or>

  </enablement>

  </navigatorContent>

  </extension>

  </plugin>

      尽管我们并没有写任何一行Java代码 但是却已经提供了一个具有基本功能的资源管理器 由此可以该插件的强大

  现在针对对应的配置图来讲述相应的内容:

      在这个例子 使用了三个扩展点 分别是: eclipse ui views eclipse ui navigator viewer和 eclipse ui navigator navigatorContent

  Eclipse插件开发人员对于 eclipse ui views一定不陌生 因为这是Eclipse中最常用的一个扩展点 它用来定义Eclipse的视图 象属性视图 大纲视图都是通过该扩展点来定义的

   eclipse ui navigator viewer则是CNF的一个基本扩展点 它提供了将 eclipse ui navigator navigatorContent与一个CommonNavigator绑定的功能

  <extension

  point= eclipse ui navigator viewer >

  <viewer viewerId= demo navigator view />

  <viewerContentBindingviewerId= demo navigator view >

  <includes>

  <contentExtension pattern= demo navigator * />

  <actionExtension pattern= demo navigator * />

  </includes>

  </viewerContentBinding>

  </extension>

  这段代码表示所有名称符合 demo navigator * 的 eclipse ui navigator navigatorContent都可作为资源管理器的树模型扩展

  最后一个扩展点 eclipse ui navigator navigatorContent的配置则是CNF框架中最为复杂的一个点 在例子中 则只采用了最简单的配置信息

  <extension

  point= eclipse ui navigator navigatorContent >

  <navigatorContent

  contentProvider= eclipse ui internal navigator resources workbench ResourceExtensionContentProvider

  id= orntent

  labelProvider= eclipse ui internal navigator resources workbench ResourceExtensionLabelProvider

  name= DemoNavigator >

  <enablement>

  <or>

  <instanceofvalue= re resources IResource />

  <adapt type= re resources IProject />

  </or>

  </enablement>

  </navigatorContent>

  </extension>

cha138/Article/program/Java/ky/201311/28580

相关参考

知识大全 安装配置IIS服务管理器

ASP.NET开发宝典:安装配置IIS服务管理器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 实战开发C# 索引器学习笔记

实战开发C#索引器学习笔记  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简单说来所谓索引器就是

知识大全 C# 索引器实战开发学习笔记

C#索引器实战开发学习笔记  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是使用C#开发智能手

知识大全 架构模式-界面组装器模式

  本文提出了一种界面设计中的架构模式界面组装器模式它致力于分解界面将界面和组装行为解耦将界面逻辑处理与领域逻辑处理解耦这样我们在开发GUI胖客户端界面应用时可以从众多的界面控制管理中解脱出来而专注于

知识大全 实战开发C# 索引器学习笔记[2]

实战开发C#索引器学习笔记[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  备注: 

知识大全 开发基于Web的CSS设计器

开发基于Web的CSS设计器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 实战开发C# 索引器学习笔记[1]

实战开发C#索引器学习笔记[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简单说来所谓索引

知识大全 创建布局管理器

  来自于布局管理类LayoutManager  创建方法  a布局管理器必须实现布局管理器类的接口//  b覆蓋五个函数  //在布局管理器中增加或删除组件时调用下面两个函数  voidaddLay

目前世界上拥有作业型深潜器的国家除中国外,还有美国、日本、法国、俄罗斯四个国家.深海载人潜水器,是海洋开发的前沿与制高点

目前世界上拥有作业型深潜器的国家除中国外,还有美国、日本、法国、俄罗斯四个国家.深海载人潜水器,是海洋开发的前沿与制高点之一,其水平可以体现出一个国家结构、材料、控制、海洋学等领域的综合科技实力。当今

知识大全 使用资源管理器优化Oracle性能

使用资源管理器优化Oracle性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  操作系统优化