from:
1.emf.edit a)
說明:emf.edit
位於emf.editor
和emf.ecore
之間,他起了乙個中介者的作用。他負責把來自
emf.editor的ui
相關的請求轉換成符合
emf.ecore的ui
無關的呼叫。他需要提供以下四個功能:實現用於支援
viewer
顯示的contentprovider
和labelprovider
;實現用於支援屬性顯示的
ipropertysource
;實現用於支援對模型進行操作的
commandframework
;實現用於支援修改通知的
framework。
b)contentprovider
和labelprovider
i. 圖:
ii.
說明:當
treeviewer
需要顯示內容時,呼叫她的
icontentprovider
的getchildren(object obj)
方法。這個方法會被**到
adapte***ctorycontentprovider
內部。她通過她所引用的
itemprovideradapte***ctory
來獲取乙個對
obj的
itreeitemcontentprovider
型別的adapter
,這個adapter
是由emf
生成的對應於
ecore
模型的乙個
itemprovideradapter
(這裡為
teacheritemprovider
),最後由這個
teacheritemprovider
負責生成所需要顯示的子節點列表。
iii.
**:
public classadapte***ctorycontentprovider implements itreecontentprovider }
注:紅色是
ui相關的請求,藍色是
ui無關的介面卡類,粉紅色就是
ui無關的請求。 c)
ipropertysource
i. 圖:
ii.
說明:當
propertysheetpage
需要顯示屬性內容時,他訪問他的
ipropertysourceprovider
的getpropertysource(object obj)
方法。這個方法會被**到
adapte***ctorycontentprovider
內部。她通過她所引用的
itemprovideradapte***ctory
來獲取乙個對
obj的
iitempropertysource
型別的adapter
,這個adapter
是由emf
生成的對應於
ecore
模型的乙個
itemprovideradapter
(這裡為
teacheritemprovider
),最後由這個
teacheritemprovider
負責生成所需要顯示的屬性列表。
iii.
**:
public classadapte***ctorycontentprovider implements ipropertysourceprovider }
d)command framework
i. 圖:
說明:由於
emf.editor
並不了解底層的模型細節,因此他不能直接對模型進行操作,他需要生成一些用於操作模型的
command
物件。當
editor
需要對模型進行修改時,他通過呼叫他的
createcommand(editingdomain domain)
方法,建立用於進行模型操作的
command
物件,該方法最後會被**到
domain
的createcommand()
,然後domain
會根據他所引用的
itemprovideradapte***ctory
來獲取乙個
ieditingdomainitemprovider
的介面卡,由他來最後生成用於對模型進行操作的
command
物件。
iii.
**:
public class deleteaction extendscommandactionhandler }
public class removecommand extendsabstractoverrideablecommand }
public classadapte***ctoryeditingdomain implements editingdomain }
注:當需要執行命令時,
editor
會呼叫editingdomain
上的commandstack
,並呼叫他上面的
execute(command c)
方法。
e)notify framework
i. 圖:
ii.
說明:當我們修改了模型的值以後,模型將會向他對應的
itemprovider
發出乙個更新通知,這個通知隨後被**到
itemprovideradapte***ctory
,然後最終發到
adapte***ctorycontentprovider
處,並由他來負責更新對應的
viewer。
T BOX功能解析
在 車聯網系統的組成概述 一文中,我們已經簡單介紹了t box的功能結構。今天,我們來進一步挖掘,t box在整個車聯網系統中,究竟承擔了哪些具體服務?1事件資訊上報類服務 總體來說,這類服務就是在車端滿足特定事件上報條件後,向tsp平台上報訊息 tsp平台在收到車端上報的訊息後,向車端傳送確認資訊...
jspatch功能解析
一 三個模型 1 補丁 執行時結構維護模型 2 通訊模型 3 解釋模型 執行時 二 js oc分層解釋呼叫 js模組與oc模組的關係 1 oc呼叫js的配置資訊完成配置 2 oc執行時重定位到js功能 3 js功能 被oc端解釋為oc 並執行 oc解釋為js overridemethod objc ...
Time 模組功能解析
在實際的程式設計中我們要經常與時間打交道,所以time模組是非常有用的,在python中,對時間的處理並不只有time,還有datetime和calendar,locale。本文只涉及time模組。首先我們需要明確兩點概念。1 時間戳 時間戳就是從1970年1月1日00 00 00開始按秒計算的偏移...