2355 simplified approach to handling multiple FileIngestFilter panels

This commit is contained in:
William Schaefer 2017-03-08 15:37:06 -05:00
parent 799c25d7a2
commit a9a9ae24fa

View File

@ -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();
}
/**