@Override public void removeThreshold(final ImageDisplay display) { final ThresholdOverlay overlay = thresholdMap().get(display); if (overlay != null) { overlayService.removeOverlay(display, overlay); thresholdMap().remove(display); } }
/** * Updates the given {@link ImageDisplay} to contain {@link Overlay}s * corresponding to all the given {@link ImagePlus}'s Rois (both the active * Roi and the Rois stored in ImageJ 1.x's current Overlay). */ @Override public void updateDisplay(final ImageDisplay display, final ImagePlus imp) { final List<Overlay> overlaysToRemove = overlayService.getOverlays(display); for (final Overlay overlay : overlaysToRemove) { overlayService.removeOverlay(display, overlay); } /* if (fullySelected(display, imp)) { for (DataView view : display) view.setSelected(true); } else { */ final List<Overlay> overlays = getOverlays(imp); overlayService.addOverlays(display, overlays); // } setModernThreshold(display, imp); }
private void delete() { if (overlayService.getOverlayInfo().getOverlayInfoCount() == 0) return; List<Overlay> overlaysToDelete = new LinkedList<>(); final int[] selectedIndices = overlayService.getOverlayInfo().selectedIndices(); if (selectedIndices.length == 0) { final int result = JOptionPane.showConfirmDialog( this, "Delete all overlays?", "Delete All", JOptionPane.YES_NO_OPTION); if (result != JOptionPane.YES_OPTION) return; for (int i = 0; i < overlayService.getOverlayInfo().getOverlayInfoCount(); i++) { overlaysToDelete.add(overlayService.getOverlayInfo().getOverlayInfo(i).getOverlay()); } } else { for (int i = 0; i < selectedIndices.length; i++) { int index = selectedIndices[i]; overlaysToDelete.add(overlayService.getOverlayInfo().getOverlayInfo(index).getOverlay()); } } for (Overlay overlay : overlaysToDelete) { // NB - removeOverlay() can indirectly change our infoList contents. // Thus we first collect overlays from the infoList and then delete // them all afterwards to avoid interactions. overlayService.removeOverlay(overlay); } }