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