我正在尝试绘制包含单个实体的图表,其中包含多个元素。
我的 MVC 结构看起来像这样:
模型:包含 EntityModel.java 和 ElementModel.java 代表我的模型对象。
视图: EntityFigure.java 和 ElementFigure.java
控制器: EntityEditPart.java 和 ElementEditPart.java
我在 EntityEditPart.java 中覆盖 getModelChildren() 以返回 ElementModel.java 列表,因此 GEF 知道元素“属于”实体的方式。
由于我想计算我的实体的图形大小并在此计算中包含嵌入的元素,因此我无法在 EntityEditPart.java 的 createFigure() 期间调用 entityFigure.getPreferredSize(),因为此时 - 元素图形不存在(createFigure()在 ElementEditPart.java 中尚未调用)。
在创建所有子图形后,我正在寻找一个设置我的实体图形的地方。
我虽然关于在 ElementEditPart.java 中覆盖 addNotify(),但是,它是在创建特定的内部元素之后调用的,而不是在创建所有元素之后调用的。
有任何想法吗?
希望我足够清楚...