如何使用Eclipse CNF的Saveable Protocol實現對View的儲存

來源:互聯網
上載者:User

Editor 和 View 是 Eclipse 中用於展示和管理資源的兩種 UI 元素。Editor 提供了一套方便的機制協助使用者實現對資源的修改及儲存。但對於 View,它在很大程度上提供是對資源的樹形展示,那如何將對資源的修改在 View 上反映出來,並通過對 View 的操作來儲存 View 中的資源呢? Common Navigator Framework(CNF)提供了不同於 Editor 的資源儲存機制 (Saveable Protocol) 來協助使用者完成對 View 中資源的儲存。

CNF 的介紹

Common Navigator Framework (CNF) 是一套協助使用者開發基於 eclipse 的內容導航視圖的架構,通過這套架構開發人員可以迅速地將特定的資源與模型無縫地整合到 eclipse 中,並利用其提供的的 API 以樹型的結構展示出來。CNF 最初來源於 Rational® Application Developer (RAD) v6.0 項目,並使用於 Eclipse 3.2。

接下來,簡要地介紹如何使用 CNF 為已存在的模型構造資源導航視圖。首先,利用 org.eclipse.ui.navigator 擴充點指定資源導航器所使用的 View,通過 CNF 架構,使用者不必自已重新實現一個新的 View,只需將擴充點的 View 實作類別指明為 org.eclipse.ui.navigator.CommonNavigator,如下圖所示。

圖 1. org.eclipse.ui.navigator.CommonNavigator 擴充點

接著,通過 org.eclipse.ui.navigator.navigatorContent 指明將要在 View 中展現的內容,包括 actionProvider,commonFilter, commonWizard, navigatorContent. 其中,在 navigatorContent 中,使用者可以定義 ContentProvider 和 LabelProvider,來展示資源導航器中的不同結點,並通過指定觸發條件來控制內容的展現時機。如下圖所示,當定義的 triggerPoints 運算式為真時,provider 的 getElements() 和 getChildren() 的方法將會被調用。

圖 2. triggerPoints 屬性

然後,通過 org.eclipse.ui.navigator.viewer 擴充點,將要展現的內容綁定到 view 上,使用者不再需要通過硬編程(hard-code)的方式將 ContentProvider 和 LabelProvider 註冊到特定的 View 上。在 org.eclipse.ui.navigator.viewer 擴充點上,我們需要指定 viewerContentBinding 來設定導航器中內容的可見度,其中 includes 語句表明該內容在 view 上為可見,pattern 為預先定義好的展示內容的 id。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.