當我們的menu item需要根據當前選擇不同對象發生動態變化就要注意了,EMF Editor的做法在添加完成之后,將焦點設置到新增的節點上,這樣做看似無心,其實是有一定原因的,至少我認為是這樣,如果我們增加了一個節點(不管是子節點還是兄弟節點),然后焦點還停留在當前節點上,那么當再增加一個與前一個類型一樣的節點時就會失敗,其原因在于沒有變換焦點,command還是使用前面取得的child作為要添加的節點,而這個節點已經在前面的操作中被作為子節點(或者兄弟節點)添加了,但是如果焦點在新增之后被變換情況就不同了,當需要再添加一個節點的時候,我們必須讓焦點回到前面的節點上,這時selection 相關的listener就會觸發重新創建新的Action以及與之相關的Command,這時的child也會隨之重新創建一個,因此添加就沒有問題。
安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢】