diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportModule.java b/Core/src/org/sleuthkit/autopsy/report/ReportModule.java index 8796041474..f6a072f2fa 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportModule.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportModule.java @@ -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 + } } diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportModuleConfig.java b/Core/src/org/sleuthkit/autopsy/report/ReportModuleConfig.java index 2ec5e7a260..9099c218a7 100755 --- a/Core/src/org/sleuthkit/autopsy/report/ReportModuleConfig.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportModuleConfig.java @@ -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(); } /** diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java index 7b0cbaa646..fd61c56121 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel1.java @@ -50,7 +50,7 @@ final class ReportVisualPanel1 extends JPanel implements ListSelectionListener { private List tableModules = new ArrayList<>(); private List fileModules = new ArrayList<>(); private PortableCaseReportModule portableCaseModule; - private Map moduleConfigs; + private final Map 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 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; }