minor doc updates for reports

This commit is contained in:
Brian Carrier 2013-04-09 17:12:15 -04:00
parent 2c0a16bb68
commit 39d79d1ba4
3 changed files with 10 additions and 11 deletions

View File

@ -23,11 +23,11 @@ import javax.swing.JPanel;
public interface GeneralReportModule extends ReportModule {
/**
* Generate the report and update the report's ProgressPanel, then save the report
* to the reportPath.
* Called to generate the report. Method is responsible for saving the file at the
* path specified and updating progress via the progressPanel object.
*
* @param reportPath path to save the report
* @param progressPanel panel to update the report's progress
* @param progressPanel panel to update the report's progress with
*/
public void generateReport(String reportPath, ReportProgressPanel progressPanel);
@ -35,7 +35,7 @@ public interface GeneralReportModule extends ReportModule {
* Returns the configuration panel for the report, which is displayed in
* the report configuration step of the report wizard.
*
* @return the report's configuration panel
* @return Configuration panel or null if the module does not need configuration.
*/
public JPanel getConfigurationPanel();

View File

@ -43,8 +43,7 @@ public interface ReportModule {
public String getDescription();
/**
* Calls to the report module to execute a method to get the extension that
* is used for the report
* Returns the extension that is used for the report
*
* @return String the extension the file will be saved as
*

View File

@ -40,14 +40,14 @@ If you implement GeneralReportModule, the overriden methods will be:
For general report modules, Autopsy will simply call the generateReport(String reportPath, ReportProgressPanel progressPanel) method and leave it up to the module to aquire and report data in its desired format. The only requirements are that the module saves to the given report path and updates the org.sleuthkit.autopsy.report.ReportProgressPanel as the report progresses.
When updating the progress panel, it is recommened to update it as infrequently as possible, while still keeping the user informed. If your report processes 100,000 files and you chose to update the UI each time a file is reviewed, the UI would freeze when trying to process all your requests. This would cause problems to not only your reporting module, but to other modules running in parellel. A safer approach would be to update the UI every 1,000 files, or when a certain "category" of the files being processed has changed. For example, the HTML report module increments the progress bar and changes the processing label every time a new Blackboard Artifact Type is being processed.
When updating the progress panel, it is recommended to update it as infrequently as possible, while still keeping the user informed. If your report processes 100,000 files and you chose to update the UI each time a file is reviewed, the UI would freeze when trying to process all your requests. This would cause problems to not only your reporting module, but to other modules running in parallel. A safer approach would be to update the UI every 1,000 files, or when a certain "category" of the files being processed has changed. For example, the HTML report module increments the progress bar and changes the processing label every time a new Blackboard Artifact Type is being processed.
Autopsy will also display the panel returned by getConfigurationPanel() in the generate report wizard, when that particular report module is selected. If null is returned, a blank panel will be displayed instead. This panel can be used to allow the user custom controls over the report.
Autopsy will also display the panel returned by getConfigurationPanel() in the generate report wizard. This panel can be used to allow the user custom controls over the report.
Typically a general report module should interact with both the Blackboard API in the org.sleuthkit.datamodel.SleuthkitCase class, in addition to an API (possibly external/thirdparty) to convert Blackboard Artifacts to the desired reporting format.
\subsection report_create_module_layer Registering the Report in layer.xml
Lastly, it is important to register each report module, regardless of the type, to a layer.xml file. This file serves as a globally excessible instance of the report module, and allows all report modules to be recognized abstractly without knowing each class. Without this file, Autopsy will be unable to see your report module.
Lastly, it is important to register each report module, regardless of the type, to a layer.xml file. This file allows Autopsy to find the report module.
An example entry into layer.xml is shown below:
\code