From 1bb2b46810f9604b13380abc083e2f008c0beb3e Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Sun, 30 Oct 2011 10:03:12 +0000 Subject: [PATCH] fixed the viewer.setContents() behavior. Label and decoration figures are added and removed properl now. refs 160 --- .../base/ui/editpart/DiagramEditPartBase.java | 6 -- .../editpart/ExtendedLayerRootEditPart.java | 17 ------ .../ui/editpart/GraphicalEditPartBase.java | 13 ----- .../ui/editpart/PositionedEditPartBase.java | 58 +++++++++---------- 4 files changed, 29 insertions(+), 65 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 b1fcc5d50..8c7aaa0e5 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 40d28211e..a8712a545 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 8fd2b4e49..0ae93d2a4 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 d2f2cf534..3b54ca2c5 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 -- GitLab