@Override public void removeNotify(Drawing drawing) { for (Figure child : new LinkedList<Figure>(children)) { child.removeNotify(drawing); } super.removeNotify(drawing); } @Override
@Override public void removeNotify(Drawing drawing) { super.removeNotify(drawing); // Copy children collection to avoid concurrent modification exception for (Figure child : new LinkedList<Figure>(getChildren())) { child.removeNotify(drawing); } }
@Override public void removeNotify(Drawing drawing) { super.removeNotify(drawing); if (getPresentationFigure() != null) { getPresentationFigure().removeNotify(drawing); } }
@Override public void removeAllChildren() { willChange(); while (children.size() > 0) { Figure figure = basicRemoveChild(children.size() - 1); if (getDrawing() != null) { figure.removeNotify(getDrawing()); } } changed(); } @Override
@Override public Figure removeChild(int index) { Figure removed = basicRemoveChild(index); if (getDrawing() != null) { removed.removeNotify(getDrawing()); } return removed; }
@Override public boolean remove(final Figure figure) { int index = children.indexOf(figure); if (index == -1) { return false; } else { basicRemoveChild(index); if (getDrawing() != null) { figure.removeNotify(getDrawing()); } fireFigureRemoved(figure, index); return true; } }
@Override public boolean remove(final Figure figure) { int index = children.indexOf(figure); if (index == -1) { return false; } else { willChange(); basicRemoveChild(index); if (getDrawing() != null) { figure.removeNotify(getDrawing()); } changed(); return true; } } @Override
@Override public Figure removeChild(int index) { willChange(); Figure figure = basicRemoveChild(index); if (getDrawing() != null) { figure.removeNotify(getDrawing()); } changed(); return figure; } @Override
/** * Set a figure which renders this BasicCompositeFigure. The presentation * tasks for the BasicCompositeFigure are delegated to this presentation * figure. * * * * * * @param newPresentationFigure figure takes over the presentation tasks */ public void setPresentationFigure(@Nullable Figure newPresentationFigure) { if (this.presentationFigure != null) { this.presentationFigure.removeFigureListener(presentationFigureHandler); if (getDrawing() != null) { this.presentationFigure.removeNotify(getDrawing()); } } this.presentationFigure = newPresentationFigure; if (this.presentationFigure != null) { this.presentationFigure.addFigureListener(presentationFigureHandler); if (getDrawing() != null) { this.presentationFigure.addNotify(getDrawing()); } } // FIXME: We should calculate the layout here. }