當前位置:編程學習大全網 - 源碼下載 - 使用CommonNavigator開發資源管理器--基礎篇

使用CommonNavigator開發資源管理器--基礎篇

 無論在哪壹個開發工具中 資源管理器無疑都是使用最頻繁的功能之壹 因此壹個資源器好用與否在很大程度上就決定了壹個開發工具的易用程度 我們常用的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>

lishixinzhi/Article/program/Java/ky/201311/28580

  • 上一篇:幫忙解釋下Java的壹題目
  • 下一篇:畫眉鳥要怎麽訓養,才好鬥。
  • copyright 2024編程學習大全網