Changes to ReportModule interface, modified UI to use it

This commit is contained in:
Eugene Livis 2019-08-20 15:31:48 -04:00
parent 82dfa7227f
commit d7bd6cedd0
3 changed files with 49 additions and 14 deletions

View File

@ -61,4 +61,31 @@ interface ReportModule {
public default JPanel getConfigurationPanel() { public default JPanel getConfigurationPanel() {
return new DefaultReportConfigurationPanel(); return new DefaultReportConfigurationPanel();
} }
/**
* Get default configuration for this report module.
*
* @return Object which contains default report module settings.
*/
public default ReportModuleSettings getDefaultConfiguration() {
return new NoReportModuleSettings();
}
/**
* Get current configuration for this report module.
*
* @return Object which contains current report module settings.
*/
public default ReportModuleSettings getConfiguration() {
return new NoReportModuleSettings();
}
/**
* Set report module configuration.
*
* @param settings Object which contains report module settings.
*/
public default void setConfiguration(ReportModuleSettings settings) {
// NO-OP
}
} }

View File

@ -40,6 +40,7 @@ final class ReportModuleConfig implements Serializable {
ReportModuleConfig(ReportModule module, boolean enabled) { ReportModuleConfig(ReportModule module, boolean enabled) {
this.moduleName = module.getClass().getCanonicalName(); this.moduleName = module.getClass().getCanonicalName();
this.enabled = enabled; this.enabled = enabled;
this.settings = new NoReportModuleSettings();
} }
/** /**

View File

@ -50,7 +50,7 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
private List<TableReportModule> tableModules = new ArrayList<>(); private List<TableReportModule> tableModules = new ArrayList<>();
private List<FileReportModule> fileModules = new ArrayList<>(); private List<FileReportModule> fileModules = new ArrayList<>();
private PortableCaseReportModule portableCaseModule; private PortableCaseReportModule portableCaseModule;
private Map<String, ReportModuleConfig> moduleConfigs; private final Map<String, ReportModuleConfig> moduleConfigs;
private Integer selectedIndex; private Integer selectedIndex;
/** /**
@ -118,9 +118,12 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
for (ReportModule module : modules) { for (ReportModule module : modules) {
ReportModuleSettings settings; ReportModuleSettings settings;
if (moduleConfigs == null) { if (moduleConfigs == null) {
// ELTODO get default module configuration (API isn't implemented yet) // get default module configuration
// settings = module.getDefaultConfiguration(); settings = module.getDefaultConfiguration();
// update ReportModuleConfig config // update config for this module
ReportModuleConfig moduleConfig = new ReportModuleConfig(module, false);
moduleConfig.setModuleSettings(settings);
moduleConfigs.put(module.getName(), moduleConfig);
} else { } else {
// get configuration for this module // get configuration for this module
ReportModuleConfig config = moduleConfigs.get(module.getClass().getCanonicalName()); ReportModuleConfig config = moduleConfigs.get(module.getClass().getCanonicalName());
@ -128,13 +131,16 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
// there is an existing configuration for this module // there is an existing configuration for this module
settings = config.getModuleSettings(); settings = config.getModuleSettings();
} else { } else {
// ELTODO get default module configuration (API isn't implemented yet) // get default module configuration
// settings = module.getDefaultConfiguration(); settings = module.getDefaultConfiguration();
// update ReportModuleConfig config // update config for this module
ReportModuleConfig moduleConfig = new ReportModuleConfig(module, false);
moduleConfig.setModuleSettings(settings);
moduleConfigs.put(module.getName(), moduleConfig);
} }
} }
// ELTODO set module configuration (API isn't implemented yet) // set module configuration
// module.setConfiguration(settings); module.setConfiguration(settings);
} }
modulesJList.getSelectionModel().addListSelectionListener(this); modulesJList.getSelectionModel().addListSelectionListener(this);
@ -224,13 +230,14 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
* @return * @return
*/ */
Map<String, ReportModuleConfig> getUpdatedModuleConfigs() { Map<String, ReportModuleConfig> getUpdatedModuleConfigs() {
// set module configurations
for (ReportModule module : modules) { for (ReportModule module : modules) {
// ELTODO get updated module configuration (API isn't implemented yet) // get updated module configuration
// settings = module.getConfiguration(); ReportModuleSettings settings = module.getConfiguration();
// update moduleConfigs // update ReportModuleConfig for this module
// moduleConfigs.pu(module.getName(), settings); ReportModuleConfig moduleConfig = new ReportModuleConfig(module, false);
moduleConfig.setModuleSettings(settings);
moduleConfigs.put(module.getName(), moduleConfig);
} }
return moduleConfigs; return moduleConfigs;
} }