mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-14 17:06:16 +00:00
2355 simplified approach to handling multiple FileIngestFilter panels
This commit is contained in:
parent
799c25d7a2
commit
a9a9ae24fa
@ -47,7 +47,7 @@ public class IngestOptionsPanel extends IngestModuleGlobalSettingsPanel implemen
|
||||
private final static int INDEX_OF_SETTINGS_PANEL = 2;
|
||||
private ProfileSettingsPanel profilePanel;
|
||||
private final static int INDEX_OF_PROFILE_PANEL = 1;
|
||||
private boolean fitlerPanelPreviouslySelected = true;
|
||||
private int indexOfPreviousTab;
|
||||
/**
|
||||
* This panel implements a property change listener that listens to ingest
|
||||
* job events so it can disable the buttons on the panel if ingest is
|
||||
@ -59,6 +59,7 @@ public class IngestOptionsPanel extends IngestModuleGlobalSettingsPanel implemen
|
||||
public IngestOptionsPanel() {
|
||||
initComponents();
|
||||
customizeComponents();
|
||||
indexOfPreviousTab = tabbedPane.getSelectedIndex();
|
||||
}
|
||||
|
||||
private void customizeComponents() {
|
||||
@ -79,17 +80,17 @@ public class IngestOptionsPanel extends IngestModuleGlobalSettingsPanel implemen
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
if (e.getSource() instanceof JTabbedPane) {
|
||||
//because we can have two filterPanels open at the same time
|
||||
//we need to save the settings when we change tabs from the filterTab
|
||||
//otherwise they could be overwritten with out of date
|
||||
if (tabbedPane.getSelectedIndex() == INDEX_OF_FILTER_PANEL) {
|
||||
|
||||
if (tabbedPane.getSelectedIndex() == INDEX_OF_FILTER_PANEL && tabbedPane.getSelectedIndex() != indexOfPreviousTab) {
|
||||
//If we are switching to a filter panel we should load
|
||||
//load the filter panel to ensure it is up to date
|
||||
//incase a filter was addded through the Profile->new->create new filter manner
|
||||
filterPanel.load();
|
||||
fitlerPanelPreviouslySelected = true;
|
||||
} else if (fitlerPanelPreviouslySelected) {
|
||||
filterPanel.saveSettings();
|
||||
fitlerPanelPreviouslySelected = false;
|
||||
}
|
||||
|
||||
//save the contents of whichever Tab we just switched from
|
||||
saveTabByIndex(indexOfPreviousTab);
|
||||
//save the index of the current tab for the next time we switch
|
||||
indexOfPreviousTab = tabbedPane.getSelectedIndex();
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -163,12 +164,25 @@ public class IngestOptionsPanel extends IngestModuleGlobalSettingsPanel implemen
|
||||
*/
|
||||
@Override
|
||||
public void saveSettings() {
|
||||
saveTabByIndex(tabbedPane.getSelectedIndex());
|
||||
}
|
||||
|
||||
private void saveTabByIndex(int index) {
|
||||
//Because we can create filters in two seperate windows here we need
|
||||
//to be careful not to save an out of date list over the current list
|
||||
if (fitlerPanelPreviouslySelected) {
|
||||
filterPanel.store();
|
||||
switch (index) {
|
||||
case (INDEX_OF_FILTER_PANEL):
|
||||
filterPanel.saveSettings();
|
||||
break;
|
||||
case (INDEX_OF_PROFILE_PANEL):
|
||||
profilePanel.saveSettings();
|
||||
break;
|
||||
case (INDEX_OF_SETTINGS_PANEL):
|
||||
settingsPanel.saveSettings();
|
||||
break;
|
||||
default:
|
||||
//don't save anything if it wasn't a tab index that should exist
|
||||
}
|
||||
settingsPanel.store();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user