From 8722f847b30fbd16e2c20d04b67d890c4cee2afc Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 4 Sep 2019 13:45:09 -0400 Subject: [PATCH] 5423 preserve ordering of image thumbnails --- .../filequery/ImageThumbnailWrapper.java | 12 +++-- .../autopsy/filequery/ResultsPanel.java | 49 ++++++++++--------- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/filequery/ImageThumbnailWrapper.java b/Core/src/org/sleuthkit/autopsy/filequery/ImageThumbnailWrapper.java index 8950a6e644..2d671fe0ee 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/ImageThumbnailWrapper.java +++ b/Core/src/org/sleuthkit/autopsy/filequery/ImageThumbnailWrapper.java @@ -19,6 +19,7 @@ package org.sleuthkit.autopsy.filequery; import java.awt.Image; +import org.sleuthkit.autopsy.coreutils.ImageUtils; /** * @@ -26,14 +27,19 @@ import java.awt.Image; */ public class ImageThumbnailWrapper { - private final Image thumbnail; + private Image thumbnail; private final ResultFile resultFile; - ImageThumbnailWrapper(Image thumbnail, ResultFile file) { - this.thumbnail = thumbnail; + + ImageThumbnailWrapper(ResultFile file) { + this.thumbnail = ImageUtils.getDefaultThumbnail(); this.resultFile = file; } + void setImageThumbnail(Image thumbnail){ + this.thumbnail = thumbnail; + } + /** * Get the ResultFile which represents the image file which the thumbnail * was created for. diff --git a/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java index 5ecf154a54..1958528821 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java @@ -529,34 +529,39 @@ public class ResultsPanel extends javax.swing.JPanel { @Override protected Void doInBackground() throws Exception { FileSearch.getVideoThumbnails(thumbnailWrapper); - videoThumbnailViewer.repaint(); - return null; - } - } - - private class ImageThumbnailWorker extends SwingWorker { - - private final ResultFile file; - private ImageThumbnailWrapper thumbnailWrapper; - - ImageThumbnailWorker(ResultFile file) { - this.file = file; - } - - @Override - protected Void doInBackground() throws Exception { - Image thumbnail = ImageUtils.getThumbnail(file.getFirstInstance(), ImageUtils.ICON_SIZE_LARGE); - if (thumbnail == null) { - thumbnail = ImageUtils.getDefaultThumbnail(); - } - thumbnailWrapper = new ImageThumbnailWrapper(thumbnail, file); return null; } @Override protected void done() { if (!isCancelled()) { - imageThumbnailViewer.addFile(thumbnailWrapper); + videoThumbnailViewer.repaint(); + } + } + } + + private class ImageThumbnailWorker extends SwingWorker { + + private ImageThumbnailWrapper thumbnailWrapper; + + ImageThumbnailWorker(ResultFile file) { + thumbnailWrapper = new ImageThumbnailWrapper(file); + imageThumbnailViewer.addFile(thumbnailWrapper); + } + + @Override + protected Void doInBackground() throws Exception { + Image thumbnail = ImageUtils.getThumbnail(thumbnailWrapper.getResultFile().getFirstInstance(), ImageUtils.ICON_SIZE_LARGE); + if (thumbnail != null) { + thumbnailWrapper.setImageThumbnail(thumbnail); + } + return null; + } + + @Override + protected void done() { + if (!isCancelled()) { + imageThumbnailViewer.repaint(); } }