public void setProgressBar(JProgressBar progressBar) { if (progressBar == null) { removeMouseListener(this); } else { if (!Arrays.asList(this.getMouseListeners()).contains(this)) { addMouseListener(this); } } this.progressBar = progressBar; }
public static SeriesThumbnail createThumbnail(final Series series, final DicomModel dicomModel, final int thumbnailSize) { Callable<SeriesThumbnail> callable = () -> { final SeriesThumbnail thumb = new SeriesThumbnail(series, thumbnailSize); if (series.getSeriesLoader() instanceof LoadSeries) { // In case series is downloaded or canceled LoadSeries loader = (LoadSeries) series.getSeriesLoader(); thumb.setProgressBar(loader.isDone() ? null : loader.getProgressBar()); } thumb.registerListeners(); ThumbnailMouseAndKeyAdapter thumbAdapter = new ThumbnailMouseAndKeyAdapter(series, dicomModel, null); thumb.addMouseListener(thumbAdapter); thumb.addKeyListener(thumbAdapter); return thumb; }; FutureTask<SeriesThumbnail> future = new FutureTask<>(callable); GuiExecutor.instance().invokeAndWait(future); SeriesThumbnail result = null; try { result = future.get(); } catch (InterruptedException e) { LOGGER.warn("Building Series thumbnail task Interruption"); //$NON-NLS-1$ Thread.currentThread().interrupt(); } catch (ExecutionException e) { LOGGER.error("Building Series thumbnail task", e); //$NON-NLS-1$ } return result; }
@Override public void registerListeners() { super.registerListeners(); // Reactivate tooltip listener ToolTipManager.sharedInstance().registerComponent(this); if (dragSource != null) { dragSource.removeDragSourceListener(this); dragSource.removeDragSourceMotionListener(this); removeFocusListener(this); } addFocusListener(this); this.setFocusable(true); this.addMouseListener(this); dragSource = new DragSource(); dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY, this); dragSource.addDragSourceMotionListener(this); }