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