From ca73ad4430ff84cc0235a136118b9ceb2b57e96e Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Tue, 26 Nov 2019 17:22:13 -0500 Subject: [PATCH] 5781 prevent listener from responding to events it should not respond to --- .../org/sleuthkit/autopsy/filequery/ResultsPanel.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java index 5f83505af8..2ebc0b0b70 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java @@ -75,6 +75,7 @@ public class ResultsPanel extends javax.swing.JPanel { private PageWorker pageWorker; private final List> thumbnailWorkers = new ArrayList<>(); private final DefaultListModel instancesListModel = new DefaultListModel<>(); + private ListSelectionListener listener = null; /** * Creates new form ResultsPanel. @@ -88,11 +89,15 @@ public class ResultsPanel extends javax.swing.JPanel { videoThumbnailViewer.addListSelectionListener((e) -> { if (!e.getValueIsAdjusting()) { populateInstancesList(); + } else { + instancesList.clearSelection(); } }); imageThumbnailViewer.addListSelectionListener((e) -> { if (!e.getValueIsAdjusting()) { populateInstancesList(); + } else { + instancesList.clearSelection(); } }); //Add the context menu when right clicking @@ -127,7 +132,9 @@ public class ResultsPanel extends javax.swing.JPanel { * * @param listener The ListSelectionListener to add to the instances list. */ - void addListSelectionListener(ListSelectionListener listener) { + void addListSelectionListener(ListSelectionListener newListener) { + instancesList.removeListSelectionListener(listener); + listener = newListener; instancesList.addListSelectionListener(listener); } @@ -136,10 +143,12 @@ public class ResultsPanel extends javax.swing.JPanel { */ synchronized void populateInstancesList() { SwingUtilities.invokeLater(() -> { + instancesList.removeListSelectionListener(listener); instancesListModel.removeAllElements(); for (AbstractFile file : getInstancesForSelected()) { instancesListModel.addElement(file); } + instancesList.addListSelectionListener(listener); if (!instancesListModel.isEmpty()) { instancesList.setSelectedIndex(0); }