From fc4fe7afd3f3576f7556e1a95da0440850e0f29a Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Mon, 6 Mar 2017 18:29:14 -0500 Subject: [PATCH 1/2] 2367 Edit and delete now check if new is enabled prior to enabling --- .../org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java index 1be76f8ecc..c92f19a748 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java @@ -415,8 +415,10 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op if (selectedProfile != null) { profileDescArea.setText(selectedProfile.getDescription()); filterNameText.setText(selectedProfile.getFileIngestFilter()); - editProfileButton.setEnabled(true); - deleteProfileButton.setEnabled(true); + if (newProfileButton.isEnabled()) { + editProfileButton.setEnabled(true); + deleteProfileButton.setEnabled(true); + } try { Map fileIngestFilters = FilesSetsManager.getInstance().getCustomFileIngestFilters(); for (FilesSet fSet : FilesSetsManager.getStandardFileIngestFilters()) { From 9f0004d40bd2faa02c8401beb02bba98641b97cd Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 8 Mar 2017 16:17:38 -0500 Subject: [PATCH 2/2] 2367 - simplified logic while disabling and enabling buttons on Profile panel --- .../autopsy/ingest/ProfileSettingsPanel.java | 49 +++++++------------ 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java index 01bcd069e4..94fd0626e5 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/ProfileSettingsPanel.java @@ -47,12 +47,13 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op "# {0} - profile name", "ProfileSettingsPanel.doFileSetsDialog.duplicateProfile.text=Profile with name {0} already exists.", "ProfileSettingsPanel.infoTextArea.text=An Ingest Profile runs a preconfigured set of ingest modules" - + " on some or all of the files in a data source. Create a profile if you frequently run the same set of modules on a subset of the files." + + " on some or all of the files in a data source. Create a profile if you frequently run the same set of modules on a subset of the files." }) private final DefaultListModel profilesListModel; private Map profiles; private ProfilePanel panel; + private boolean canBeEnabled; //if something can be enabled ingest is not running /** * Creates new form ProfileOptionsPanel @@ -63,8 +64,8 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op this.profileList.setModel(profilesListModel); this.profileList.addListSelectionListener(new ProfileSettingsPanel.ProfileListSelectionListener()); ingestWarningLabel.setVisible(false); - editProfileButton.setEnabled(false); - deleteProfileButton.setEnabled(false); + canBeEnabled = !IngestManager.getInstance().isIngestRunning(); + refreshButtons(); } /** @@ -315,10 +316,9 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op * @param isEnabled */ void enableButtons(boolean isEnabled) { - newProfileButton.setEnabled(isEnabled); - editProfileButton.setEnabled(isEnabled); - deleteProfileButton.setEnabled(isEnabled); - ingestWarningLabel.setVisible(!isEnabled); + canBeEnabled = isEnabled; //update value of canBeEnabled to be used by refresh + refreshButtons(); + ingestWarningLabel.setVisible(!canBeEnabled); } /** @@ -334,23 +334,20 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op this.filterNameText.setText(""); this.selectedModulesArea.setText(""); } - refreshEditDeleteButtons(); + refreshButtons(); } /** - * When Ingest is not running this will changed enabled status of the edit - * and delete buttons to reflect their current availability. + * When Ingest is not running this will change the enabled status of the + * edit and delete buttons to reflect their current availability. */ - private void refreshEditDeleteButtons() { - if (newProfileButton.isEnabled()) { - if (profilesListModel.isEmpty()) { - editProfileButton.setEnabled(false); - deleteProfileButton.setEnabled(false); - } else { - editProfileButton.setEnabled(true); - deleteProfileButton.setEnabled(true); - } - } + private void refreshButtons() { + IngestProfile selectedProfile = ProfileSettingsPanel.this.profileList.getSelectedValue(); + boolean profileIsSelected = (selectedProfile != null); + newProfileButton.setEnabled(canBeEnabled); + editProfileButton.setEnabled(canBeEnabled && profileIsSelected); + deleteProfileButton.setEnabled(canBeEnabled && profileIsSelected); + } @@ -397,7 +394,6 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op panel.saveSettings(); load(); } - } @Override @@ -423,7 +419,7 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op if (currentIndex < 0 || currentIndex >= profilesListModel.getSize()) { currentIndex = 0; } - refreshEditDeleteButtons(); + refreshButtons(); this.profileList.setSelectedIndex(currentIndex); } @@ -437,13 +433,10 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op // Get the selected interesting files set and populate the set // components. IngestProfile selectedProfile = ProfileSettingsPanel.this.profileList.getSelectedValue(); + refreshButtons(); if (selectedProfile != null) { profileDescArea.setText(selectedProfile.getDescription()); filterNameText.setText(selectedProfile.getFileIngestFilter()); - if (newProfileButton.isEnabled()) { - editProfileButton.setEnabled(true); - deleteProfileButton.setEnabled(true); - } try { Map fileIngestFilters = FilesSetsManager.getInstance().getCustomFileIngestFilters(); for (FilesSet fSet : FilesSetsManager.getStandardFileIngestFilters()) { @@ -457,10 +450,6 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op for (String moduleName : IngestJobSettings.getEnabledModules(selectedProfile.getName())) { selectedModulesArea.append(moduleName + "\n"); } - - } else { - editProfileButton.setEnabled(false); - deleteProfileButton.setEnabled(false); } } }