From ed8fb5b26dd89fd60b54f3686e0ecaa4e758f589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20D=C3=B6bber?= <doebber@in.tum.de> Date: Fri, 28 Oct 2011 14:32:41 +0000 Subject: [PATCH] fixed editpart creation --- .../base/ui/editpart/DiagramEditPartBase.java | 2 +- .../ui/editpart/ExtendedLayerRootEditPart.java | 13 ++++++++++++- .../base/ui/editpart/GraphicalEditPartBase.java | 13 +++++++++++++ .../ui/editpart/PositionedEditPartBase.java | 17 +++++++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) 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 d45b30df8..b1fcc5d50 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 @@ -152,7 +152,7 @@ public abstract class DiagramEditPartBase<T extends EObject> extends /** {@inheritDoc} */ @Override public IFigure getContentPane() { - return getLayer(ExtendedLayerRootEditPart.NODE_LAYER); + return super.getContentPane(); // getLayer(ExtendedLayerRootEditPart.NODE_LAYER); } /** Adds all nodes and connectors as children. */ 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 8642aedd4..40d28211e 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,6 +23,7 @@ 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; @@ -102,7 +103,7 @@ public class ExtendedLayerRootEditPart extends ScalableRootEditPart { /** {@inheritDoc} */ @Override public IFigure getContentPane() { - return getLayer(NODE_LAYER); + return super.getContentPane();// getLayer(NODE_LAYER); } /** {@inheritDoc} */ @@ -123,6 +124,16 @@ 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 0ae93d2a4..8fd2b4e49 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,4 +100,17 @@ 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 ceb002586..d2f2cf534 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 @@ -253,4 +253,21 @@ 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 -- GitLab