5678 fix reseting of content viewer when nothing in instances table

This commit is contained in:
William Schaefer 2019-12-12 15:28:44 -05:00
parent 6aa99b5844
commit 6efd161deb

View File

@ -142,14 +142,22 @@ public class ResultsPanel extends javax.swing.JPanel {
*/ */
synchronized void populateInstancesList() { synchronized void populateInstancesList() {
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
instancesList.removeListSelectionListener(listener); List<AbstractFile> files = getInstancesForSelected();
instancesListModel.removeAllElements(); if (files.isEmpty()) {
for (AbstractFile file : getInstancesForSelected()) { //if there are no files currently remove the current items without removing listener to cause content viewer to reset
instancesListModel.addElement(file); instancesListModel.removeAllElements();
} } else {
instancesList.addListSelectionListener(listener); //remove listener so content viewer node is not set multiple times
if (!instancesListModel.isEmpty()) { instancesList.removeListSelectionListener(listener);
instancesList.setSelectedIndex(0); instancesListModel.removeAllElements();
for (AbstractFile file : files) {
instancesListModel.addElement(file);
}
//add listener back to allow selection of first index to cause content viewer node to be set
instancesList.addListSelectionListener(listener);
if (!instancesListModel.isEmpty()) {
instancesList.setSelectedIndex(0);
}
} }
}); });
} }