2012-09-11 77 views
0

我試圖繪製包含一個單獨的實體,其中包含多個元素內的圖。

我的MVC結構看起來是這樣的:
型號:包含EntityModel.java和ElementModel.java代表我的模型對象。
查看: EntityFigure.java和ElementFigure.java
控制器: EntityEditPart.java和ElementEditPart.java
如何計算圖形的大小,包括GEF中的所有子圖(具有單獨的編輯部分)?

我重寫getModelChildren方法()在EntityEditPart.java返回ElementModel.java的列表,以便這就是GEF如何知道一個元素「屬於」一個實體。

由於我想計算我的實體的圖形大小並在此計算中包含嵌入的元素,因此在EntityEditPart.java中的createFigure()期間無法調用entityFigure.getPreferredSize(),因爲此時元素數字不存在(ElementEditPart.java中的createFigure()不會被調用)。

我正在尋找一個地方來設置我的實體形象,所有兒童人物創建後。
我雖然要在ElementEditPart.java中重寫addNotify(),但是它在創建特定的內部元素之後被調用,而不是在創建所有元素之後調用。

任何想法?

希望我很清楚......

回答

2

你能做到這一點在編輯部分的

refreshChildren() 

方法的延伸,因爲所有的孩子創造在和refreshChildren()超類的做(AbstractEditPart類)刷新方法:

public void refresh() { 
    refreshVisuals(); 
    refreshChildren(); 
} 

或者,你可以擴展

refresh() 
相關問題