private static void addListenerToThumbnail(final Thumbnail thumbnail, final LoadSeries loadSeries, final DicomModel dicomModel) { ThumbnailMouseAndKeyAdapter thumbAdapter = new ThumbnailMouseAndKeyAdapter(loadSeries.getDicomSeries(), dicomModel, loadSeries); thumbnail.addMouseListener(thumbAdapter); thumbnail.addKeyListener(thumbAdapter); if (thumbnail instanceof SeriesThumbnail) { ((SeriesThumbnail) thumbnail).setProgressBar(loadSeries.getProgressBar()); } }
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; }
public void startDownloadImageReference(final WadoParameters wadoParameters) { if (!seriesInstanceList.isEmpty()) { // Sort the UIDs for building the thumbnail that is in the middle of the Series List<SopInstance> sopList = seriesInstanceList.getSortedList(); final SopInstance instance = sopList.get(sopList.size() / 2); GuiExecutor.instance().execute(() -> { SeriesThumbnail thumbnail = (SeriesThumbnail) dicomSeries.getTagValue(TagW.Thumbnail); if (thumbnail == null) { thumbnail = new SeriesThumbnail(dicomSeries, Thumbnail.DEFAULT_SIZE); } // In case series is downloaded or canceled thumbnail.setProgressBar(LoadSeries.this.isDone() ? null : progressBar); thumbnail.registerListeners(); addListenerToThumbnail(thumbnail, LoadSeries.this, dicomModel); dicomSeries.setTag(TagW.Thumbnail, thumbnail); dicomModel.firePropertyChange( new ObservableEvent(ObservableEvent.BasicAction.ADD, dicomModel, null, dicomSeries)); }); loadThumbnail(instance, wadoParameters); } }
thumbnail.setProgressBar(null); if (thumbnail.getThumbnailPath() == null || dicomSeries.getTagValue(TagW.DirectDownloadThumbnail) != null) {