From 2ea0cb0bb0c88e77c693cd54a7e9592f0a989ef4 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Fri, 30 Mar 2018 17:24:56 -0400 Subject: [PATCH] 3710 editing a file filter without adding any new ones no longer uses stale filter --- .../ingest/IngestJobSettingsPanel.java | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java index b5aef4ad0b..6a6d70677f 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java @@ -72,8 +72,8 @@ public final class IngestJobSettingsPanel extends javax.swing.JPanel { private static final Logger logger = Logger.getLogger(IngestJobSettingsPanel.class.getName()); /** - * Construct a panel to allow a user to make ingest job settings. - * This constructor assumes there is no ingest history. + * Construct a panel to allow a user to make ingest job settings. This + * constructor assumes there is no ingest history. * * @param settings The initial settings for the ingest job. */ @@ -88,8 +88,8 @@ public final class IngestJobSettingsPanel extends javax.swing.JPanel { } /** - * Construct a panel to allow a user to make ingest job settings. - * This constructor enables tracking of ingest job history. + * Construct a panel to allow a user to make ingest job settings. This + * constructor enables tracking of ingest job history. * * @param settings The initial settings for the ingest job. * @param dataSources The data sources ingest is being run on. @@ -423,16 +423,20 @@ public final class IngestJobSettingsPanel extends javax.swing.JPanel { } catch (FilesSetsManager.FilesSetsManagerException ex) { logger.log(Level.SEVERE, "Failed to get user created file ingest filters, only default available for selection", ex); //NON-NLS } + String filterToSelect = settings.getFileFilter().getName(); for (FilesSet filter : newFilterList) { //getting one of the recently created filters if (!oldFilterList.contains(filter.getName())) { //set newly created filter to selected filter - settings.setFileFilter(filter); + filterToSelect = filter.getName(); break; } } fileIngestFilterComboBox.setModel(new DefaultComboBoxModel<>(getComboBoxContents())); //set the selected filter after the comboBox Contents were updated to include it - fileIngestFilterComboBox.setSelectedItem(settings.getFileFilter().getName()); + fileIngestFilterComboBox.setSelectedItem(filterToSelect); + //refresh the saved filter in use case where the selected modified filter + //has the same name as a previously existing filter + updateSelectedFilter(filterToSelect); dialog.close(); } ); @@ -440,21 +444,25 @@ public final class IngestJobSettingsPanel extends javax.swing.JPanel { //return to saved selection in case they cancel out of filter creation fileIngestFilterComboBox.setSelectedItem(settings.getFileFilter().getName()); } else if (evt.getActionCommand().equals("comboBoxChanged")) { - try { - Map fileIngestFilters = FilesSetsManager.getInstance() - .getCustomFileIngestFilters(); - for (FilesSet fSet : FilesSetsManager.getStandardFileIngestFilters()) { - fileIngestFilters.put(fSet.getName(), fSet); - } - settings.setFileFilter(fileIngestFilters - .get(fileIngestFilterComboBox.getSelectedItem().toString())); - } catch (FilesSetsManager.FilesSetsManagerException ex) { - settings.setFileFilter(FilesSetsManager.getDefaultFilter()); - logger.log(Level.SEVERE, "Failed to get file ingest filter from combobox selection, default filter being used", ex); //NON-NLS - } + updateSelectedFilter(fileIngestFilterComboBox.getSelectedItem().toString()); } }//GEN-LAST:event_fileIngestFilterComboBoxActionPerformed + private void updateSelectedFilter(String filterName) { + try { + Map fileIngestFilters = FilesSetsManager.getInstance() + .getCustomFileIngestFilters(); + for (FilesSet fSet : FilesSetsManager.getStandardFileIngestFilters()) { + fileIngestFilters.put(fSet.getName(), fSet); + } + settings.setFileFilter(fileIngestFilters + .get(filterName)); + } catch (FilesSetsManager.FilesSetsManagerException ex) { + settings.setFileFilter(FilesSetsManager.getDefaultFilter()); + logger.log(Level.SEVERE, "Failed to get file ingest filter from combobox selection, default filter being used", ex); //NON-NLS + } + } + /** * Returns an array which will contain the names of all options which should * exist in the "Run Ingest Modules On:" JCombobox