/** * Takes the currently selected CompositeOverlay and turns it into its * constituent overlays. The CompositeOverlay is deleted. It does one layer * of division (it is not a deep division). */ private void divide() { List<Overlay> overlays = overlayService.getOverlayInfo().selectedOverlays(); int i = 0; while (i < overlays.size()) { Overlay o = overlays.get(i); if (! (o instanceof CompositeOverlay)) overlays.remove(i); else i++; } if (overlays.size() == 0) { JOptionPane.showMessageDialog( this, "One or more composite overlays must be selected"); return; } for (Overlay o : overlays) { overlayService.divideCompositeOverlay((CompositeOverlay) o); } }