新建連線模型,過程大同小異。此時需要在結點模型上安裝policy,policy的型別為:graphicalnodeeditpolicy。
在helloworldeditpart的createeditpolicies()方法裡追加:
installeditpolicy(editpolicy.
graphical_node_role
,newhelloworldgraphicalnodeeditpolicy());
其中helloworldgraphicalnodeeditpolicy是我們的policy實現類。還是一樣,先完成command,再回過頭來完成policy。
要成功的實現乙個連線,首先我們知道至少需要有三個物件:連線線、源結點和目標結點。所以我們的command的可以如下實現:
publicclassaddconnectioncommandextendscommand
publicvoidsetsrc(helloworldmodel src)
publicvoidsettarget(helloworldmodel target)
publicvoidsetconnection(abstractconnectionmodel connection)
@override
publicvoidexecute()
@override
publicvoidundo()
}然後我們實現我們的policy。這裡要分兩步進行,首先是完成源結點的連線,然後就完成目標結點的連線,**如下:
@override
protectedcommand getconnectioncompletecommand(
createconnectionrequest request)
@override
protectedcommand getconnectioncreatecommand(createconnectionrequest request)
publicstaticfinalstring
p_source
= "p_source"
;publicstaticfinalstring
p_target
= "p_target"
;publicvoidaddinput(abstractconnectionmodel model) }
publicvoidaddout(abstractconnectionmodel model) }
publicvoidremoveinput(abstractconnectionmodel model) }
publicvoidremoveout(abstractconnectionmodel model)
}然後再修改對應的editpart的propertychange()方法如下:
publicvoidpropertychange(propertychangeevent evt)elseif(evt.getpropertyname().equals(helloworldmodel.
p_source
))elseif(evt.getpropertyname().equals(helloworldmodel.
p_target))}
最後試一下效果:
圖三 editpolicy的gethost()方法返回的是安裝這個policy的那個物件。也就是安裝這個policy的那個editpart。
Cocos2d開發系列(五)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!learn iphone andipad cocos2d game delevopment 第6章 原文中部分無關緊要的內容沒有進行翻譯 一 ccspritebatchnode 在螢幕上貼圖時,圖形硬體需要經過準備 渲染 清除等步驟。每次貼圖都會重...
Java併發系列五 深入理解volatile關鍵字
instance new instancce instance是volatile變數 這個寫回記憶體的操作會使得其他cpu裡快取了該記憶體位址的資料無效 乙個處理器的快取回寫到記憶體會導致其他處理器的快取失效 當處理器發現本地快取失效後,就會從記憶體中重讀該變數資料,即可以獲取當前最新值。publi...
學習Emacs系列教程(五) 編輯(2) 標記
學習emacs系列教程 三 編輯 1 有段時間沒寫這個教程了,自己險些放棄,不過回頭想想看個 都討厭太監,自己寫更不能太監,還是要堅持下去。閒話不多說,進入這次的正題,關於編輯文字的另一些內容。一 標記和區域 所謂區域 region 就是平時我們使用滑鼠選中的一段文字,在emacs中用樣可以使用滑鼠...