diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java index b1fcc5d50d9364a1990e6776a8930a8c0739d01d..8c7aaa0e5259137ef1785568b3def798bd81a6a4 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java @@ -149,12 +149,6 @@ public abstract class DiagramEditPartBase<T extends EObject> extends return super.getAdapter(adapter); } - /** {@inheritDoc} */ - @Override - public IFigure getContentPane() { - return super.getContentPane(); // getLayer(ExtendedLayerRootEditPart.NODE_LAYER); - } - /** Adds all nodes and connectors as children. */ @Override protected List<Object> getModelChildren() { diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java index 40d28211e587685894f1fcc60e3cbe1f81bcaab8..a8712a54566958a1bbb3d25d7692df282b8e12c4 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java @@ -23,7 +23,6 @@ import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.Layer; import org.eclipse.draw2d.LayeredPane; import org.eclipse.draw2d.XYLayout; -import org.eclipse.gef.EditPart; import org.eclipse.gef.LayerConstants; import org.eclipse.gef.editparts.ScalableRootEditPart; @@ -100,12 +99,6 @@ public class ExtendedLayerRootEditPart extends ScalableRootEditPart { return pane; } - /** {@inheritDoc} */ - @Override - public IFigure getContentPane() { - return super.getContentPane();// getLayer(NODE_LAYER); - } - /** {@inheritDoc} */ @Override public IFigure getLayer(Object key) { @@ -124,16 +117,6 @@ public class ExtendedLayerRootEditPart extends ScalableRootEditPart { return super.getLayer(key); } - /** {@inheritDoc} */ - @Override - protected void removeChildVisual(EditPart childEditPart) { - super.removeChildVisual(childEditPart); - if (childEditPart instanceof GraphicalEditPartBase<?>) { - GraphicalEditPartBase<?> gep = (GraphicalEditPartBase<?>) childEditPart; - gep.removeVisuals(); - } - } - /** Creates the default layer with XYLayout. */ private Layer createDefaultLayer() { Layer l = new FreeformLayer(); diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java index 8fd2b4e49eea387721414b05782412c3170c7f91..0ae93d2a434ef5a5fd2ce86ec4cc6f0241f507cd 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java @@ -100,17 +100,4 @@ public abstract class GraphicalEditPartBase<T extends EObject> extends } return super.getAdapter(key); } - - /** - * Called when the edit part is removed and should remove its visual - * children from layers. Sub-classes may override, but must call super - * implementation. - */ - public void removeVisuals() { - for (Object ep : getChildren()) { - if (ep instanceof GraphicalEditPartBase<?>) { - ((GraphicalEditPartBase<?>) ep).removeVisuals(); - } - } - } } diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java index d2f2cf534ae0b1e3c5c2d2a8b008604195e16d77..3b54ca2c5a76eef7c9c106791249b89c66878388 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java @@ -86,18 +86,6 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement> @Override protected final IFigure createFigure() { baseFigure = createBaseFigure(); - - labelFigure = createLabelFigure(); - if (labelFigure != null) { - getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).add(labelFigure); - } - - decorationFigure = createDecorationFigure(); - if (decorationFigure != null) { - getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).add( - decorationFigure); - } - return baseFigure; } @@ -195,6 +183,35 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement> } } + /** {@inheritDoc} */ + @Override + public void addNotify() { + labelFigure = createLabelFigure(); + if (labelFigure != null) { + getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).add(labelFigure); + } + decorationFigure = createDecorationFigure(); + if (decorationFigure != null) { + getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).add( + decorationFigure); + } + // called last, since it also refreshes label and decoration + super.addNotify(); + } + + /** {@inheritDoc} */ + @Override + public void removeNotify() { + if (labelFigure != null) { + getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).remove(labelFigure); + } + if (decorationFigure != null) { + getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).remove( + decorationFigure); + } + super.removeNotify(); + } + /** * {@inheritDoc} * <p> @@ -253,21 +270,4 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement> } return null; } - - /** {@inheritDoc} */ - @Override - public void removeVisuals() { - super.removeVisuals(); - - // if (baseFigure != null) { - // getLayer(ExtendedLayerRootEditPart.NODE_LAYER).remove(baseFigure); - // } - if (labelFigure != null) { - getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).remove(labelFigure); - } - if (decorationFigure != null) { - getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).remove( - decorationFigure); - } - } } \ No newline at end of file