xiaoxiaoleemin

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

          如何顯示PropertySheet視圖

          Posted on 2007-05-06 17:24 xiaoxiaoleemin 閱讀(2085) 評(píng)論(2)  編輯  收藏 所屬分類: EMF
              前面的幾篇是讀了《EMF:A Developer's Guide》一書前三章的讀書筆記,我覺得這三章的內(nèi)容是最重要的,介紹了EMF Framework的一些設(shè)計(jì)、結(jié)構(gòu)以及實(shí)現(xiàn)的問題。但是這些只是一些原理性的東西,要熟練掌握EMF的方法是在項(xiàng)目中應(yīng)用它,我們可以從修改EMF生成的代碼入手。EMF生成的編輯器是MultiPageEditor,比較復(fù)雜,我們可以參考它自己寫一個(gè)普通的Editor,在這個(gè)過程中可以熟悉哪些代碼是用于實(shí)現(xiàn)哪些功能的。
              下面用一個(gè)簡單的例子來說明如何實(shí)現(xiàn)PropertySheet,這里只關(guān)心與PropertySheet有關(guān)的代碼:
          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);      
              }
          }
              創(chuàng)建PropertySheetPage之后,為它設(shè)置PropertySourceProvider,參數(shù)是一個(gè)AdapterFactoryContentProvider實(shí)例,在前面的帖子里邊說過,它實(shí)現(xiàn)了IPropertySourceProvider接口,其getPropertySource方法是這樣實(shí)現(xiàn)的:比如我們?cè)诰庉嬈骼镞呥x中一個(gè)teacher對(duì)象,它先找到Teacher類對(duì)應(yīng)的實(shí)現(xiàn)了IItemPropertySource的TeacherItemProvider對(duì)象,然后以這兩個(gè)對(duì)象作為參數(shù)新建一個(gè)PropertySource。
              getAdapter方法繼承自WorkbenchPart類(EditorPart和ViewPart都是它的子類,都可以重寫這個(gè)方法),當(dāng)我們需要打開屬性頁視圖時(shí),該方法會(huì)被調(diào)用,傳入的參數(shù)就是IPropertySheetPage.class,因此返回我們新建的PropertySheetPage,屬性頁就出現(xiàn)了。

          Feedback

          # re: 如何顯示PropertySheet視圖  回復(fù)  更多評(píng)論   

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

          # re: 如何顯示PropertySheet視圖  回復(fù)  更多評(píng)論   

          2007-05-06 18:04 by xiaoxiaoleemin
          呵呵,真巧,不過還沒有GMF的內(nèi)容,我得抓緊時(shí)間整理了:)
          主站蜘蛛池模板: 长兴县| 仙游县| 陆良县| 同江市| 本溪| 苗栗市| 永福县| 阿拉善左旗| 民权县| 永川市| 成都市| 肥乡县| 武川县| 友谊县| 灌云县| 邹城市| 北流市| 腾冲县| 黔江区| 衢州市| 盘山县| 防城港市| 固原市| 丽江市| 江永县| 静安区| 东城区| 崇州市| 长治县| 榆林市| 新昌县| 石柱| 平潭县| 江口县| 溧阳市| 竹溪县| 隆子县| 崇礼县| 乐昌市| 邵阳县| 安塞县|