mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 18:17:43 +00:00
move the ThumbnailLoader to ThumbnailViewNode
This commit is contained in:
parent
115b0a99ce
commit
3691f87d28
@ -21,18 +21,10 @@ package org.sleuthkit.autopsy.corecomponents;
|
||||
import java.awt.Color;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Image;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.ListSelectionModel;
|
||||
@ -50,6 +42,7 @@ import org.openide.nodes.NodeMemberEvent;
|
||||
import org.openide.nodes.NodeReorderEvent;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
import org.sleuthkit.autopsy.corecomponents.ThumbnailViewNode.ThumbnailLoader;
|
||||
import org.sleuthkit.autopsy.coreutils.ImageUtils;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
@ -597,20 +590,5 @@ final class DataResultViewerThumbnail extends AbstractDataResultViewer {
|
||||
}
|
||||
}
|
||||
|
||||
static class ThumbnailLoader {
|
||||
|
||||
private final ExecutorService executor = Executors.newFixedThreadPool(4);
|
||||
|
||||
private final List<Future<?>> futures = new ArrayList<>();
|
||||
|
||||
synchronized void cancellAll() {
|
||||
futures.forEach(future -> future.cancel(true));
|
||||
futures.clear();
|
||||
}
|
||||
|
||||
synchronized void load(ThumbnailViewNode.ThumbnailLoadTask swingWorker) {
|
||||
futures.add(swingWorker);
|
||||
executor.submit(swingWorker);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.util.lookup.Lookups;
|
||||
import org.sleuthkit.autopsy.corecomponents.DataResultViewerThumbnail.ThumbnailLoader;
|
||||
import org.sleuthkit.autopsy.corecomponents.ThumbnailViewNode.ThumbnailLoader;
|
||||
import org.sleuthkit.autopsy.coreutils.ImageUtils;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.Content;
|
||||
|
@ -18,12 +18,17 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.corecomponents;
|
||||
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
import java.awt.Image;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.lang.ref.SoftReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CancellationException;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.SwingWorker;
|
||||
import javax.swing.Timer;
|
||||
@ -32,7 +37,6 @@ import org.netbeans.api.progress.ProgressHandle;
|
||||
import org.openide.nodes.FilterNode;
|
||||
import org.openide.nodes.Node;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.corecomponents.DataResultViewerThumbnail.ThumbnailLoader;
|
||||
import org.sleuthkit.autopsy.coreutils.ImageUtils;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.Content;
|
||||
@ -103,6 +107,23 @@ class ThumbnailViewNode extends FilterNode {
|
||||
thumbTask = null;
|
||||
}
|
||||
|
||||
static class ThumbnailLoader {
|
||||
|
||||
private final ExecutorService executor = Executors.newFixedThreadPool(4,
|
||||
new ThreadFactoryBuilder().setNameFormat("Thumbnail-Loader-%d").build() );
|
||||
|
||||
private final List<Future<?>> futures = new ArrayList<>();
|
||||
|
||||
synchronized void cancellAll() {
|
||||
futures.forEach(future -> future.cancel(true));
|
||||
futures.clear();
|
||||
}
|
||||
|
||||
synchronized void load(ThumbnailViewNode.ThumbnailLoadTask task) {
|
||||
futures.add(task);
|
||||
executor.submit(task);
|
||||
}
|
||||
}
|
||||
class ThumbnailLoadTask extends SwingWorker<Image, Object> {
|
||||
|
||||
private final Content content;
|
||||
|
Loading…
x
Reference in New Issue
Block a user