/** Frees resources associated with the display. */ private void cleanup() { // NB: Fixes bug #893. for (final DataView view : this) { view.dispose(); } clear(); combinedInterval.clear(); }
@Override public void removeOverlay(final ImageDisplay display, final Overlay overlay) { final ArrayList<DataView> overlayViews = new ArrayList<>(); final List<DataView> views = display; for (final DataView view : views) { final Data data = view.getData(); if (data == overlay) overlayViews.add(view); } for (final DataView view : overlayViews) { display.remove(view); view.dispose(); } display.update(); }
@Override public void figureRemoved(final FigureEvent e) { final ImageDisplay d = getDisplay(); if (d.isVisible(overlayView)) { DataView view = getDataView(); // TODO : replace next two lines with call to OverlayService to // removeOverlay(d, getDataView().getData()); d.remove(view); view.dispose(); // end TODO replace dispose(); d.update(); } } });