/** * Responds to the JHotDraw figure selection event by selecting and * deselecting views whose state has changed. * * @param event Event indicating that the figure selections have changed. */ @Override public void selectionChanged(FigureSelectionEvent event) { final Set<Figure> newSelection = event.getNewSelection(); final Set<Figure> oldSelection = event.getOldSelection(); for (final DataView view : getDisplay()) { final FigureView figureView = getFigureView(view); if (figureView != null) { final Figure figure = figureView.getFigure(); if (newSelection.contains(figure)) { view.setSelected(true); } else if (oldSelection.contains(figure)) { view.setSelected(false); } } } }
@Override public void valueChanged(final ListSelectionEvent listSelectionEvent) { if (selecting) return; selecting = true; final ImageDisplay display = imageDisplayService.getActiveImageDisplay(); if (display == null) return; final JList<?> list = (JList<?>) listSelectionEvent.getSource(); final List<?> selectionValues = list.getSelectedValuesList(); overlayService.getOverlayInfo().deselectAll(); for (final Object overlayInfoObj : selectionValues) { final OverlayInfo overlayInfo = (OverlayInfo) overlayInfoObj; overlayInfo.setSelected(true); } for (final DataView overlayView : display) { overlayView.setSelected(false); for (final Object overlayInfoObj : selectionValues) { final OverlayInfo overlayInfo = (OverlayInfo) overlayInfoObj; if (overlayInfo.getOverlay() == overlayView.getData()) { overlayInfo.setSelected(true); overlayView.setSelected(true); break; } } } selecting = false; } };