xiaoxiaoleemin

          天道酬勤,小小加油
          posts - 19, comments - 12, trackbacks - 0, articles - 0

          如何顯示PropertySheet視圖

          Posted on 2007-05-06 17:24 xiaoxiaoleemin 閱讀(2085) 評論(2)  編輯  收藏 所屬分類: EMF
              前面的幾篇是讀了《EMF:A Developer's Guide》一書前三章的讀書筆記,我覺得這三章的內容是最重要的,介紹了EMF Framework的一些設計、結構以及實現的問題。但是這些只是一些原理性的東西,要熟練掌握EMF的方法是在項目中應用它,我們可以從修改EMF生成的代碼入手。EMF生成的編輯器是MultiPageEditor,比較復雜,我們可以參考它自己寫一個普通的Editor,在這個過程中可以熟悉哪些代碼是用于實現哪些功能的。
              下面用一個簡單的例子來說明如何實現PropertySheet,這里只關心與PropertySheet有關的代碼:
          public class MySchoolEditor extends EditorPart implements ISelectionListener{
              ...
              PropertySheetPage propertySheetPage;

              public void init(IEditorSite site, IEditorInput input) throws PartInitException {
                  ...
                  propertySheetPage = getPropertySheetPage();
              }

              public PropertySheetPage getPropertySheetPage() {
                  if (propertySheetPage == null) {
                     propertySheetPage = new PropertySheetPage();
                     propertySheetPage.setPropertySourceProvider(new
          AdapterFactoryContentProvider(adapterFactory));              
                  }
                  return propertySheetPage;
              }

              public Object getAdapter(Class key) {
               
                   if (key.equals(IPropertySheetPage.class))
                       return getPropertySheetPage();        
                   else
                      return super.getAdapter(key);      
              }
          }
              創建PropertySheetPage之后,為它設置PropertySourceProvider,參數是一個AdapterFactoryContentProvider實例,在前面的帖子里邊說過,它實現了IPropertySourceProvider接口,其getPropertySource方法是這樣實現的:比如我們在編輯器里邊選中一個teacher對象,它先找到Teacher類對應的實現了IItemPropertySource的TeacherItemProvider對象,然后以這兩個對象作為參數新建一個PropertySource。
              getAdapter方法繼承自WorkbenchPart類(EditorPart和ViewPart都是它的子類,都可以重寫這個方法),當我們需要打開屬性頁視圖時,該方法會被調用,傳入的參數就是IPropertySheetPage.class,因此返回我們新建的PropertySheetPage,屬性頁就出現了。

          Feedback

          # re: 如何顯示PropertySheet視圖  回復  更多評論   

          2007-05-06 17:34 by xiaosai
          剛才在尋找gmf資料的時候發現了小小的blog,好棒啊,贊死了。看來以后要常來光顧了:)

          # re: 如何顯示PropertySheet視圖  回復  更多評論   

          2007-05-06 18:04 by xiaoxiaoleemin
          呵呵,真巧,不過還沒有GMF的內容,我得抓緊時間整理了:)
          主站蜘蛛池模板: 拉萨市| 台湾省| 梅河口市| 弋阳县| 方正县| 浦北县| 临邑县| 天水市| 永吉县| 邵东县| 当阳市| 云浮市| 凌云县| 德兴市| 浦县| 新安县| 济阳县| 台安县| 伊春市| 额敏县| 宜宾市| 霍邱县| 北安市| 双柏县| 江山市| 裕民县| 蚌埠市| 红原县| 本溪市| 延津县| 静宁县| 牡丹江市| 叙永县| 拜城县| 巴彦县| 抚顺县| 嘉荫县| 杭锦后旗| 南皮县| 东海县| 长泰县|