<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    邋遢居

    我的Java天堂

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

    EMF不光為我們生成了模型類的代碼。還為我們提供了一個默認的模型編輯器。要看到這個模型編輯器我們只需要運行一下就可以看到了(用Eclipse Application的方式)。

    他默認的編輯器如下圖所示viewer.gif

    共有三個部:

    1.         編輯器的主體。包括六種呈現方式。

    a)         Selection.

    b)        Parent.

    c)        List.

    d)        Tree

    e)         Table

    f)         Tree With Columns.

    2.         Outline部分。

    Properties,會根據選擇不同的對象而改變顯示的內容。關于Jface部分的工作模式我在《Table View 的合作類的模式》一文中有提到,不過需要說明的是,在Jface中的Viewer他們的ContentProvider可能不一樣的。

    要完成這部分的功能emf的產生代碼中分別放到了兩個插件里實現了他們分別是editeditor

    Edit提供了Item Provider,他存在的意義就在于把邏輯對象和UI分割開。而Editor通過使用edit提供的Provider實現了一個編輯器的UICommand部分,他是正真的用戶界面部分。

    下面我們就先來看看edit中的類。

    好了,首先edit中使用的是adapt模型。所以edit中的插件對象會實現所有的viewer,Properties所需要的接口。

    Emf為我們實現通用的接口。所以這絕對是一個學習的好機會。

    廢話不多說了,來看代碼把。

    首先看聲明:

    public class FamilyItemProvider
        
    extends ItemProviderAdapter
        
    implements    
            IEditingDomainItemProvider,    
            IStructuredItemContentProvider,    
            ITreeItemContentProvider,    
            IItemLabelProvider,    
            IItemPropertySource {
    他的繼承關系可以用下圖來表示:
    providerh.gif

    他們之間的職能以及實現的接口可用下圖來描述:

    itemprivdelayer.gif
    AdapterImpl是為了實現Adapter模式而設定.

    ItemProviderAdapter完成一些基本功能。下面就分別從不同的接口來說明

    1.         ResourceLocator:該接口是用來進行資源定位的。

    2.         IDisposable emf框架提供的一種析構接口。

    3.         IChangeNotifier 為"Notification and Adapters"模式提供必需的方法。

    CreateChildCommand.Helper

    最下面的EMF根據我們的模型產生的Provider的了。他實現了5個接口。

     

    1.         IEditingDomainItemProvider

    這部分我還清楚,懷疑和command有關。

    2.         IStructuredItemContentProvider

    該接口為TableViewer,ListViewer,TreeViewer提供服務。

    This is the interface needed to populate  the top level items in a TreeViewer,  the items of a ListViewer,  or the rows of a TableViewer.

    3.         ITreeItemContentProvider

    This is the interface needed to populate subtrees in a TreeViewer

    4.         IItemLabelProvider

    This is the interface implemented to provide a label text and even a label icon for an item;

    it receives delegated calls from ILabelProvider.

    5.         IItemPropertySource

             This is the interface is needed to populate property sheet itemsit is the same as IpropertySourceexcept that the object is          passed as the first parameter for each method.

    這一篇還只是edit部分剛開一個頭。

    下一期會介紹一下他的command部分。

    posted on 2005-12-25 13:36 Jet Geng 閱讀(1739) 評論(0)  編輯  收藏 所屬分類: EMF
    主站蜘蛛池模板: 麻豆国产VA免费精品高清在线 | 亚洲av无码专区在线播放| 亚洲乱码中文字幕在线| 成人免费激情视频| 亚洲三级中文字幕| 日韩在线永久免费播放| 67pao强力打造67194在线午夜亚洲| 久久久久国产精品免费免费不卡 | 久久精品亚洲男人的天堂| 亚洲精品黄色视频在线观看免费资源| 亚洲高清最新av网站| 久青草国产免费观看| 亚洲综合图色40p| 久久中文字幕免费视频| 2022年亚洲午夜一区二区福利 | 国产精品极品美女自在线观看免费| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产亚洲视频在线| 亚洲一区二区三区乱码A| a级黄色毛片免费播放视频| 久久亚洲精品国产精品黑人| 四虎国产成人永久精品免费| 91午夜精品亚洲一区二区三区| 男男AV纯肉无码免费播放无码| 国产精品久久久久久亚洲影视 | 久久夜色精品国产噜噜噜亚洲AV | 99热在线精品免费全部my| 亚洲AV噜噜一区二区三区| 中文字幕亚洲不卡在线亚瑟| 99热这里只有精品6免费| 国产精品亚洲综合久久 | 日韩版码免费福利视频| 朝桐光亚洲专区在线中文字幕 | 国产精品亚洲精品观看不卡| 免费大片黄手机在线观看| 黄色网站软件app在线观看免费| 亚洲AV无码乱码麻豆精品国产 | 久久亚洲AV成人无码电影| 日韩中文字幕在线免费观看| 伊人免费在线观看高清版| 亚洲欧洲另类春色校园网站|