From c43fa27c7d64183ad99528c7191c670200ef57b7 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Thu, 28 Jan 2016 16:57:35 -0500 Subject: [PATCH 01/86] Begun transition to Type --- .../autopsy/report/ReportGenerator.java | 45 ++++++++++++++----- .../autopsy/report/ReportWizardAction.java | 3 +- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 13aaf200dc..bc25842300 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -41,6 +41,8 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; +import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.logging.Level; import javax.swing.JDialog; @@ -66,6 +68,7 @@ import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.SleuthkitCase.CaseDbQuery; import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskData; +import org.sleuthkit.datamodel.BlackboardAttribute.Type; /** * Instances of this class use GeneralReportModules, TableReportModules and @@ -239,7 +242,7 @@ class ReportGenerator { * @param tagSelections the enabled/disabled state of the tag names to be * included in the report */ - public void generateTableReports(Map artifactTypeSelections, Map tagNameSelections) { + public void generateTableReports(Map artifactTypeSelections, Map tagNameSelections) { if (!tableProgress.isEmpty() && null != artifactTypeSelections) { TableReportsWorker worker = new TableReportsWorker(artifactTypeSelections, tagNameSelections); worker.execute(); @@ -420,19 +423,19 @@ class ReportGenerator { private class TableReportsWorker extends SwingWorker { private List tableModules = new ArrayList<>(); - private List artifactTypes = new ArrayList<>(); + private List artifactTypes = new ArrayList<>(); private HashSet tagNamesFilter = new HashSet<>(); private List images = new ArrayList<>(); - TableReportsWorker(Map artifactTypeSelections, Map tagNameSelections) { + TableReportsWorker(Map artifactTypeSelections, Map tagNameSelections) { // Get the report modules selected by the user. for (Entry entry : tableProgress.entrySet()) { tableModules.add(entry.getKey()); } // Get the artifact types selected by the user. - for (Entry entry : artifactTypeSelections.entrySet()) { + for (Entry entry : artifactTypeSelections.entrySet()) { if (entry.getValue()) { artifactTypes.add(entry.getKey()); } @@ -492,7 +495,7 @@ class ReportGenerator { } // Add a table to the report for every enabled blackboard artifact type. - for (ARTIFACT_TYPE type : artifactTypes) { + for (BlackboardArtifact.Type type : artifactTypes) { // Check for cancellaton. removeCancelledTableReportModules(); if (tableModules.isEmpty()) { @@ -525,6 +528,13 @@ class ReportGenerator { // each time an element is added, which adds unnecessary overhead if we only need it sorted once. Collections.sort(unsortedArtifacts); + Set attrTypeSet = new HashSet<>(); + for (ArtifactData data : unsortedArtifacts) { + List attributes = data.getAttributes(); + for (BlackboardAttribute attribute : attributes) { + attrTypeSet.add(attribute.getAttributeType()); + } + } // Get the column headers appropriate for the artifact type. /* * @@@ BC: Seems like a better design here would be to have a @@ -875,10 +885,10 @@ class ReportGenerator { * * @return a list of the filtered tags. */ - private List getFilteredArtifacts(ARTIFACT_TYPE type, HashSet tagNamesFilter) { + private List getFilteredArtifacts(BlackboardArtifact.Type type, HashSet tagNamesFilter) { List artifacts = new ArrayList<>(); try { - for (BlackboardArtifact artifact : skCase.getBlackboardArtifacts(type)) { + for (BlackboardArtifact artifact : skCase.getBlackboardArtifacts(type.getTypeID())) { List tags = Case.getCurrentCase().getServices().getTagsManager().getBlackboardArtifactTagsByArtifact(artifact); HashSet uniqueTagNames = new HashSet<>(); for (BlackboardArtifactTag tag : tags) { @@ -1843,10 +1853,9 @@ class ReportGenerator { orderedRowData.add(file.getName()); orderedRowData.add(file.getNameExtension()); String mimeType = file.getMIMEType(); - if(mimeType == null) { + if (mimeType == null) { orderedRowData.add(""); - } - else { + } else { orderedRowData.add(mimeType); } orderedRowData.add(file.getUniquePath()); @@ -1957,4 +1966,20 @@ class ReportGenerator { return uniqueTagNames; } + private class ArtifactCell { + + private String columnHeader; + private BlackboardAttribute.Type attributeType; + + /** + * Constructs an ArtifactCell + * + * @param columnHeader The header text of this cell's column + * @param attributeType The attribute type associated with this column + */ + ArtifactCell(String columnHeader, BlackboardAttribute.Type attributeType) { + this.columnHeader = Objects.requireNonNull(columnHeader); + this.attributeType = attributeType; + } + } } diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java b/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java index 231942223a..753dfd201d 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java @@ -42,6 +42,7 @@ import org.openide.util.actions.CallableSystemAction; import org.openide.util.actions.Presenter; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.core.RuntimeProperties; +import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE; @ActionID(category = "Tools", id = "org.sleuthkit.autopsy.report.ReportWizardAction") @@ -68,7 +69,7 @@ public final class ReportWizardAction extends CallableSystemAction implements Pr ReportGenerator generator = new ReportGenerator((Map) wiz.getProperty("tableModuleStates"), //NON-NLS (Map) wiz.getProperty("generalModuleStates"), //NON-NLS (Map) wiz.getProperty("fileModuleStates")); //NON-NLS - generator.generateTableReports((Map) wiz.getProperty("artifactStates"), (Map) wiz.getProperty("tagStates")); //NON-NLS + generator.generateTableReports((Map) wiz.getProperty("artifactStates"), (Map) wiz.getProperty("tagStates")); //NON-NLS generator.generateFileListReports((Map) wiz.getProperty("fileReportOptions")); //NON-NLS generator.generateGeneralReports(); generator.displayProgressPanels(); From e5739f44af0e736216f12fc7c31577abe6670bef Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Fri, 29 Jan 2016 14:58:47 -0500 Subject: [PATCH 02/86] Farther in process --- .../autopsy/report/ReportGenerator.java | 75 +++++++++++++++++-- 1 file changed, 69 insertions(+), 6 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index bc25842300..add0703642 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -544,7 +544,7 @@ class ReportGenerator { * artifact-specific logic in both getArtifactTableCoumnHeaders * and ArtifactData.getRow() */ - List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID()); + List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet); if (columnHeaders == null) { // @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed. continue; @@ -1217,58 +1217,85 @@ class ReportGenerator { * reporting on. * * @param artifactTypeId artifact type ID + * @param types The set of types available for this artifact type * * @return List row titles */ - private List getArtifactTableColumnHeaders(int artifactTypeId) { - ArrayList columnHeaders; + private List getArtifactTableColumnHeaders(int artifactTypeId, Set types) { + ArrayList columnHeaders; BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId); switch (type) { case TSK_WEB_BOOKMARK: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType())), + //ATTRIBUTE_TYPE.TSK_TITLE NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + //ATTRIBUTE_TYPE.TSK_DATETIME_CREATED NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), + //ATTRIBUTE_TYPE.TSK_PROG_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_COOKIE: columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + //ATTRIBUTE_TYPE.TSK_URL NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + //ATTRIBUTE_TYPE.TSK_DATETIME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + //ATTRIBUTE_TYPE.TSK_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + //ATTRIBUTE_TYPE.TSK_VALUE NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), + //ATTRIBUTE_TYPE.TSK_PROG_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_HISTORY: columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + //ATTRIBUTE_TYPE.TSK_URL NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + //ATTRIBUTE_TYPE.TSK_REFERRER NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), + //ATTRIBUTE_TYPE.TSK_TITLE NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + //ATTRIBUTE_TYPE.TSK_PROG_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + //ATTRIBUTE_TYPE.TSK_URL_DECODED NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_DOWNLOAD: columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + //ATTRIBUTE_TYPE.TSK_PATH NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), + //ATTRIBUTE_TYPE.TSK_URL NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), + //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + //ATTRIBUTE_TYPE.TSK_PROG_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_RECENT_OBJECT: columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + //ATTRIBUTE_TYPE.TSK_PATH NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), + //ATTRIBUTE_TYPE.TSK_DATETIME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_INSTALLED_PROG: columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + //ATTRIBUTE_TYPE.TSK_PROG_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + //ATTRIBUTE_TYPE.TSK_DATETIME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; @@ -1966,7 +1993,14 @@ class ReportGenerator { return uniqueTagNames; } - private class ArtifactCell { + private interface Cell { + + String getColumnHeader(); + + BlackboardAttribute.Type getType(); + } + + private class ArtifactCell implements Cell { private String columnHeader; private BlackboardAttribute.Type attributeType; @@ -1981,5 +2015,34 @@ class ReportGenerator { this.columnHeader = Objects.requireNonNull(columnHeader); this.attributeType = attributeType; } + + @Override + public String getColumnHeader() { + return this.columnHeader; + } + + @Override + public Type getType() { + return this.attributeType; + } + } + + private class OtherCell implements Cell { + + private String columnHeader; + + OtherCell(String columnHeader) { + this.columnHeader = columnHeader; + } + + @Override + public String getColumnHeader() { + return this.columnHeader; + } + + @Override + public Type getType() { + return null; + } } } From aa7f4c71df006963673e1191dfa93c4f435d48e2 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Fri, 29 Jan 2016 17:00:37 -0500 Subject: [PATCH 03/86] Started fixing switch --- .../autopsy/report/ReportGenerator.java | 273 +++++++++++++++--- 1 file changed, 232 insertions(+), 41 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index add0703642..81224cc00d 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -1234,29 +1234,61 @@ class ReportGenerator { ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), ATTRIBUTE_TYPE.TSK_URL.getValueType())), //ATTRIBUTE_TYPE.TSK_TITLE - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), + ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TITLE.getValueType())), //ATTRIBUTE_TYPE.TSK_DATETIME_CREATED - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType())), //ATTRIBUTE_TYPE.TSK_PROG_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); break; case TSK_WEB_COOKIE: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ //ATTRIBUTE_TYPE.TSK_URL - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType())), //ATTRIBUTE_TYPE.TSK_DATETIME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //ATTRIBUTE_TYPE.TSK_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), //ATTRIBUTE_TYPE.TSK_VALUE - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), + ATTRIBUTE_TYPE.TSK_VALUE.getLabel(), + ATTRIBUTE_TYPE.TSK_VALUE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_VALUE.getValueType())), //ATTRIBUTE_TYPE.TSK_PROG_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); + new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); break; case TSK_WEB_HISTORY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ //ATTRIBUTE_TYPE.TSK_URL NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED @@ -1272,7 +1304,7 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_DOWNLOAD: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ //ATTRIBUTE_TYPE.TSK_PATH NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), //ATTRIBUTE_TYPE.TSK_URL @@ -1284,7 +1316,7 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_RECENT_OBJECT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ //ATTRIBUTE_TYPE.TSK_PATH NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), //ATTRIBUTE_TYPE.TSK_DATETIME @@ -1292,7 +1324,7 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_INSTALLED_PROG: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ //ATTRIBUTE_TYPE.TSK_PROG_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), //ATTRIBUTE_TYPE.TSK_DATETIME @@ -1300,17 +1332,23 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_KEYWORD_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.preview"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_HASHSET_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.size")})); break; case TSK_DEVICE_ATTACHED: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devMake"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), @@ -1318,7 +1356,13 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_WEB_SEARCH_QUERY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), @@ -1326,7 +1370,15 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_METADATA_EXIF: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), @@ -1336,7 +1388,15 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_CONTACT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), @@ -1346,7 +1406,19 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_MESSAGE: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.readStatus"), @@ -1360,7 +1432,14 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_CALLLOG: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), @@ -1369,7 +1448,14 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_CALENDAR_ENTRY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), @@ -1378,28 +1464,51 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_SPEED_DIAL_ENTRY: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_BLUETOOTH_PAIRING: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_GPS_TRACKPOINT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_GPS_BOOKMARK: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), @@ -1409,7 +1518,15 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_GPS_LAST_KNOWN_LOCATION: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), @@ -1419,7 +1536,15 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_GPS_SEARCH: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), @@ -1429,7 +1554,19 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_SERVICE_ACCOUNT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), @@ -1443,26 +1580,45 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_ENCRYPTION_DETECTED: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_EXT_MISMATCH_DETECTED: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path")})); break; case TSK_OS_INFO: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); break; case TSK_EMAIL_MSG: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), //TSK_EMAIL_TO NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), //TSK_EMAIL_FROM NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), //TSK_SUBJECT @@ -1474,13 +1630,29 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId")})); //TSK_MSG_ID break; case TSK_INTERESTING_FILE_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + String pathToShow = mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID()); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), //TSK_SET_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), //TSK_CATEGORY NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath")})); //TSK_PATH break; case TSK_GPS_ROUTE: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), //TSK_CATEGORY NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), //TSK_DATETIME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), //TSK_GEO_LATITUDE_END @@ -1492,13 +1664,24 @@ class ReportGenerator { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program")}));//TSK_PROG_NAME break; case TSK_INTERESTING_ARTIFACT_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), //TSK_SET_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), //TSK_ASSOCIATED_ARTIFACT NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program")})); //TSK_PROG_NAME break; case TSK_PROG_RUN: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), //TSK_PROG_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), //TSK_ASSOCIATED_ARTIFACT NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), //TSK_DATETIME @@ -1506,13 +1689,21 @@ class ReportGenerator { break; case TSK_OS_ACCOUNT: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), //TSK_USER_NAME NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId")})); //TSK_USER_ID break; case TSK_REMOTE_DRIVE: - columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), //TSK_LOCAL_PATH NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath")})); //TSK_REMOTE_PATH break; From 2aa817b6b2fd9dc8bccebcf05c2f44376d7c6469 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Mon, 1 Feb 2016 11:06:39 -0500 Subject: [PATCH 04/86] Almost done fixing giant switch --- .../autopsy/report/ReportGenerator.java | 1394 +++++++++++------ 1 file changed, 949 insertions(+), 445 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 81224cc00d..8ab609d2ce 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -1223,390 +1223,752 @@ class ReportGenerator { */ private List getArtifactTableColumnHeaders(int artifactTypeId, Set types) { ArrayList columnHeaders; + if (ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType())), + //ATTRIBUTE_TYPE.TSK_TITLE + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), + ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TITLE.getValueType())), + //ATTRIBUTE_TYPE.TSK_DATETIME_CREATED + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType())), + //ATTRIBUTE_TYPE.TSK_PROG_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + //ATTRIBUTE_TYPE.TSK_URL + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType())), + //ATTRIBUTE_TYPE.TSK_DATETIME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + //ATTRIBUTE_TYPE.TSK_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + //ATTRIBUTE_TYPE.TSK_VALUE + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), + ATTRIBUTE_TYPE.TSK_VALUE.getLabel(), + ATTRIBUTE_TYPE.TSK_VALUE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_VALUE.getValueType())), + //ATTRIBUTE_TYPE.TSK_PROG_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + //ATTRIBUTE_TYPE.TSK_URL + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType())), + //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType())), + //ATTRIBUTE_TYPE.TSK_REFERRER + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), + ATTRIBUTE_TYPE.TSK_REFERRER.getLabel(), + ATTRIBUTE_TYPE.TSK_REFERRER.getDisplayName(), + ATTRIBUTE_TYPE.TSK_REFERRER.getValueType())), + //ATTRIBUTE_TYPE.TSK_TITLE + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), + ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TITLE.getValueType())), + //ATTRIBUTE_TYPE.TSK_PROG_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + //ATTRIBUTE_TYPE.TSK_URL_DECODED + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL_DECODED.getLabel(), + ATTRIBUTE_TYPE.TSK_URL_DECODED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL_DECODED.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + //ATTRIBUTE_TYPE.TSK_PATH + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType())), + //ATTRIBUTE_TYPE.TSK_URL + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType())), + //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType())), + //ATTRIBUTE_TYPE.TSK_PROG_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + //ATTRIBUTE_TYPE.TSK_PATH + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType())), + //ATTRIBUTE_TYPE.TSK_DATETIME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + //ATTRIBUTE_TYPE.TSK_PROG_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + //ATTRIBUTE_TYPE.TSK_DATETIME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.preview")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.size"))})); + } else if (ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID() == artifactTypeId) { + /* + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devMake"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), + ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), + ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TEXT.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + ATTRIBUTE_TYPE.TSK_DOMAIN.getLabel(), + ATTRIBUTE_TYPE.TSK_DOMAIN.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DOMAIN.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_CONTACT.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumOffice"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumMobile"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.email"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_MESSAGE.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID(), + ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getLabel(), + ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.readStatus"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID(), + ATTRIBUTE_TYPE.TSK_READ_STATUS.getLabel(), + ATTRIBUTE_TYPE.TSK_READ_STATUS.getDisplayName(), + ATTRIBUTE_TYPE.TSK_READ_STATUS.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromEmail"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toEmail"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.subject"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), + ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), + ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TEXT.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_CALLLOG.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID(), + ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getLabel(), + ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.endDateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_END.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_END.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID(), + ATTRIBUTE_TYPE.TSK_SHORTCUT.getLabel(), + ATTRIBUTE_TYPE.TSK_SHORTCUT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SHORTCUT.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME_PERSON.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME_PERSON.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME_PERSON.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_GPS_TRACKPOINT.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_ID.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID(), + ATTRIBUTE_TYPE.TSK_PASSWORD.getLabel(), + ATTRIBUTE_TYPE.TSK_PASSWORD.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PASSWORD.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.replytoAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mailServer"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SERVER_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SERVER_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SERVER_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } + - BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId); - switch (type) { - case TSK_WEB_BOOKMARK: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType())), - //ATTRIBUTE_TYPE.TSK_TITLE - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), - ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), - ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_TITLE.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME_CREATED - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType())), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); - break; - case TSK_WEB_COOKIE: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_URL - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - //ATTRIBUTE_TYPE.TSK_NAME - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - //ATTRIBUTE_TYPE.TSK_VALUE - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), - ATTRIBUTE_TYPE.TSK_VALUE.getLabel(), - ATTRIBUTE_TYPE.TSK_VALUE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_VALUE.getValueType())), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); - break; - case TSK_WEB_HISTORY: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_URL - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), - //ATTRIBUTE_TYPE.TSK_REFERRER - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), - //ATTRIBUTE_TYPE.TSK_TITLE - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - //ATTRIBUTE_TYPE.TSK_URL_DECODED - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_WEB_DOWNLOAD: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_PATH - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), - //ATTRIBUTE_TYPE.TSK_URL - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), - //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_RECENT_OBJECT: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_PATH - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), - //ATTRIBUTE_TYPE.TSK_DATETIME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_INSTALLED_PROG: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_PROG_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), - //ATTRIBUTE_TYPE.TSK_DATETIME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_KEYWORD_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.preview"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_HASHSET_HIT: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.size")})); - break; - case TSK_DEVICE_ATTACHED: - /* - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devMake"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_WEB_SEARCH_QUERY: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_METADATA_EXIF: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_CONTACT: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumOffice"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumMobile"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.email"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_MESSAGE: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.readStatus"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromEmail"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toEmail"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.subject"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_CALLLOG: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_CALENDAR_ENTRY: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.endDateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_SPEED_DIAL_ENTRY: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_BLUETOOTH_PAIRING: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_GPS_TRACKPOINT: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_GPS_BOOKMARK: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_GPS_LAST_KNOWN_LOCATION: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_GPS_SEARCH: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_SERVICE_ACCOUNT: - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appName"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appPath"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.replytoAddress"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mailServer"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_ENCRYPTION_DETECTED: + case TSK_ENCRYPTION_DETECTED + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_EXT_MISMATCH_DETECTED: - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path")})); - break; - case TSK_OS_INFO: + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + break; + case TSK_EXT_MISMATCH_DETECTED + : + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"))})); + break; + case TSK_OS_INFO + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); - break; - case TSK_EMAIL_MSG: + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getLabel(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + break; + case TSK_EMAIL_MSG + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); @@ -1618,29 +1980,79 @@ class ReportGenerator { orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), //TSK_EMAIL_TO - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), //TSK_EMAIL_FROM - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), //TSK_SUBJECT - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), //TSK_DATETIME_SENT - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), //TSK_DATETIME_RCVD - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), //TSK_PATH - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), //TSK_EMAIL_CC - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), //TSK_EMAIL_BCC - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId")})); //TSK_MSG_ID - break; - case TSK_INTERESTING_FILE_HIT: + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType())), //TSK_EMAIL_TO + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType())), //TSK_EMAIL_FROM + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType())), //TSK_SUBJECT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getValueType())), //TSK_DATETIME_SENT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getValueType())), //TSK_DATETIME_RCVD + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType())), //TSK_PATH + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getValueType())), //TSK_EMAIL_CC + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getValueType())), //TSK_EMAIL_BCC + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getValueType()))})); //TSK_MSG_ID + break; + case TSK_INTERESTING_FILE_HIT + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); String pathToShow = mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID()); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), //TSK_SET_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), //TSK_CATEGORY - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath")})); //TSK_PATH - break; - case TSK_GPS_ROUTE: + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))})); //TSK_PATH + break; + case TSK_GPS_ROUTE + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); @@ -1652,80 +2064,170 @@ class ReportGenerator { orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), //TSK_CATEGORY - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), //TSK_DATETIME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), //TSK_GEO_LATITUDE_END - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), //TSK_GEO_LONGITUDE_END - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), //TSK_GEO_LATITUDE_START - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), //TSK_GEO_LONGITUDE_START - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), //TSK_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), //TSK_LOCATION - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program")}));//TSK_PROG_NAME - break; - case TSK_INTERESTING_ARTIFACT_HIT: + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getValueType())), //TSK_GEO_LATITUDE_END + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getValueType())), //TSK_GEO_LONGITUDE_END + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getValueType())), //TSK_GEO_LATITUDE_START + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getValueType())), //TSK_GEO_LONGITUDE_START + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), //TSK_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), //TSK_LOCATION + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))}));//TSK_PROG_NAME + break; + case TSK_INTERESTING_ARTIFACT_HIT + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), //TSK_SET_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), //TSK_ASSOCIATED_ARTIFACT - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program")})); //TSK_PROG_NAME - break; - case TSK_PROG_RUN: + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))})); //TSK_PROG_NAME + break; + case TSK_PROG_RUN + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), //TSK_PROG_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), //TSK_ASSOCIATED_ARTIFACT - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), //TSK_DATETIME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count")})); //TSK_COUNT - break; + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), //TSK_PROG_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID(), + ATTRIBUTE_TYPE.TSK_COUNT.getLabel(), + ATTRIBUTE_TYPE.TSK_COUNT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_COUNT.getValueType()))})); //TSK_COUNT + break; - case TSK_OS_ACCOUNT: + case TSK_OS_ACCOUNT + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), //TSK_USER_NAME - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId")})); //TSK_USER_ID - break; + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getValueType())), //TSK_USER_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))})); //TSK_USER_ID + break; - case TSK_REMOTE_DRIVE: + case TSK_REMOTE_DRIVE + : /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), //TSK_LOCAL_PATH - NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath")})); //TSK_REMOTE_PATH - break; - default: + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getValueType())), //TSK_LOCAL_PATH + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getValueType()))})); //TSK_REMOTE_PATH + break; + default + + : return null; - } - columnHeaders.add(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags")); + columnHeaders.add ( + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))); - return columnHeaders; - } + return columnHeaders ; +} + +/** + * Map all BlackboardAttributes' values in a list of BlackboardAttributes to + * each attribute's attribute type ID, using module's dateToString method for + * date/time conversions if a module is supplied. + * + * @param attList list of BlackboardAttributes to be mapped + * @param module the TableReportModule the mapping is for + * + * @return Map of the BlackboardAttributes mapped to their + * attribute type ID + */ + + + - /** - * Map all BlackboardAttributes' values in a list of BlackboardAttributes to - * each attribute's attribute type ID, using module's dateToString method - * for date/time conversions if a module is supplied. - * - * @param attList list of BlackboardAttributes to be mapped - * @param module the TableReportModule the mapping is for - * - * @return Map of the BlackboardAttributes mapped to their - * attribute type ID - */ public Map getMappedAttributes(List attList, TableReportModule... module) { Map attributes = new HashMap<>(); int size = ATTRIBUTE_TYPE.values().length; @@ -1798,6 +2300,7 @@ class ReportGenerator { logger.log(Level.WARNING, "Failed to get Abstract File by ID.", ex); //NON-NLS } return ""; + } /** @@ -2182,6 +2685,7 @@ class ReportGenerator { } return uniqueTagNames; + } private interface Cell { @@ -2191,7 +2695,7 @@ class ReportGenerator { BlackboardAttribute.Type getType(); } - private class ArtifactCell implements Cell { + private class AttributeCell implements Cell { private String columnHeader; private BlackboardAttribute.Type attributeType; @@ -2202,7 +2706,7 @@ class ReportGenerator { * @param columnHeader The header text of this cell's column * @param attributeType The attribute type associated with this column */ - ArtifactCell(String columnHeader, BlackboardAttribute.Type attributeType) { + AttributeCell(String columnHeader, BlackboardAttribute.Type attributeType) { this.columnHeader = Objects.requireNonNull(columnHeader); this.attributeType = attributeType; } From 9897b0a42d52551b410d59f1fd753ccfa99ee0a8 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Mon, 1 Feb 2016 15:53:39 -0500 Subject: [PATCH 05/86] Finished reports update pending approval --- .../UserArtifactIngestModule.java | 8 +- .../UserArtifactIngestModuleFactory.java | 2 +- .../report/ArtifactSelectionDialog.form | 2 +- .../report/ArtifactSelectionDialog.java | 46 +- .../autopsy/report/ReportGenerator.java | 1157 +++++++++-------- .../sleuthkit/autopsy/report/ReportHTML.java | 1 - .../autopsy/report/ReportVisualPanel2.java | 27 +- .../autopsy/report/ReportWizardAction.java | 1 - 8 files changed, 635 insertions(+), 609 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java index eed24aa489..00888bd11f 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java @@ -56,13 +56,13 @@ public class UserArtifactIngestModule implements DataSourceIngestModule { } else { art2 = dataSource.newArtifact(type2.getTypeID()); } - BlackboardAttribute.Type attributeType = Case.getCurrentCase().getServices().getBlackboard().addAttributeType("Test", TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.LONG, "2"); - BlackboardAttribute.Type attributeType2 = Case.getCurrentCase().getServices().getBlackboard().addAttributeType("Test2", TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.BYTE, "3"); + BlackboardAttribute.Type attributeType = Case.getCurrentCase().getServices().getBlackboard().addAttributeType("Test", TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING, "2"); + BlackboardAttribute.Type attributeType2 = Case.getCurrentCase().getServices().getBlackboard().addAttributeType("Test2", TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.STRING, "3"); art1.addAttribute(new BlackboardAttribute(attributeType, - UserArtifactIngestModuleFactory.getModuleName(), -1L)); + UserArtifactIngestModuleFactory.getModuleName(), "tester1")); progressBar.progress(1); art2.addAttribute(new BlackboardAttribute(attributeType2, - UserArtifactIngestModuleFactory.getModuleName(), new byte[7])); + UserArtifactIngestModuleFactory.getModuleName(), "abatecombo")); progressBar.progress(1); IngestServices.getInstance().postMessage(IngestMessage.createDataMessage( "name", diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java index f7e6b010d7..eeb500a522 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java @@ -17,7 +17,7 @@ import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; * * @author oliver */ -//@ServiceProvider(service = IngestModuleFactory.class) +@ServiceProvider(service = IngestModuleFactory.class) public class UserArtifactIngestModuleFactory extends IngestModuleFactoryAdapter { static String getModuleName() { diff --git a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.form b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.form index c4bd675f90..76a6f6cec7 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.form +++ b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.form @@ -87,7 +87,7 @@ - + diff --git a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java index a75ab43848..279a78b4ff 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java +++ b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.EnumMap; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; @@ -40,15 +41,14 @@ import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.BlackboardArtifact; -import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE; import org.sleuthkit.datamodel.TskCoreException; public class ArtifactSelectionDialog extends javax.swing.JDialog { private ArtifactModel model; private ArtifactRenderer renderer; - private Map artifactStates; - private List artifacts; + private Map artifactStates; + private List artifacts; /** * Creates new form ArtifactSelectionDialog @@ -66,21 +66,25 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { @SuppressWarnings("deprecation") private void populateList() { try { - ArrayList doNotReport = new ArrayList<>(); - doNotReport.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO); - doNotReport.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT); // output is too unstructured for table review. + ArrayList doNotReport = new ArrayList<>(); + doNotReport.add(new BlackboardArtifact.Type(BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getDisplayName())); + doNotReport.add(new BlackboardArtifact.Type(BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getDisplayName())); // output is too unstructured for table review - artifacts = Case.getCurrentCase().getSleuthkitCase().getBlackboardArtifactTypesInUse(); + artifacts = Case.getCurrentCase().getSleuthkitCase().getArtifactTypesInUse(); artifacts.removeAll(doNotReport); - Collections.sort(artifacts, new Comparator() { + Collections.sort(artifacts, new Comparator() { @Override - public int compare(ARTIFACT_TYPE o1, ARTIFACT_TYPE o2) { + public int compare(BlackboardArtifact.Type o1, BlackboardArtifact.Type o2) { return o1.getDisplayName().compareTo(o2.getDisplayName()); } }); - artifactStates = new EnumMap<>(BlackboardArtifact.ARTIFACT_TYPE.class); - for (BlackboardArtifact.ARTIFACT_TYPE type : artifacts) { + artifactStates = new HashMap<>(); + for (BlackboardArtifact.Type type : artifacts) { artifactStates.put(type, Boolean.TRUE); } } catch (TskCoreException ex) { @@ -99,7 +103,7 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { @Override public void mousePressed(MouseEvent evt) { int index = artifactList.locationToIndex(evt.getPoint()); - BlackboardArtifact.ARTIFACT_TYPE type = model.getElementAt(index); + BlackboardArtifact.Type type = model.getElementAt(index); artifactStates.put(type, !artifactStates.get(type)); artifactList.repaint(); } @@ -108,8 +112,10 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { /** * Display this dialog, and return the selected artifacts. + * + * @return The state of artifact types displayed */ - Map display() { + Map display() { this.setTitle(NbBundle.getMessage(this.getClass(), "ArtifactSelectionDialog.dlgTitle.text")); Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize(); // set the popUp window / JFrame @@ -215,20 +221,20 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { }//GEN-LAST:event_okButtonActionPerformed private void selectAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectAllButtonActionPerformed - for (ARTIFACT_TYPE type : artifacts) { + for (BlackboardArtifact.Type type : artifacts) { artifactStates.put(type, Boolean.TRUE); } artifactList.repaint(); }//GEN-LAST:event_selectAllButtonActionPerformed private void deselectAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deselectAllButtonActionPerformed - for (ARTIFACT_TYPE type : artifacts) { + for (BlackboardArtifact.Type type : artifacts) { artifactStates.put(type, Boolean.FALSE); } artifactList.repaint(); }//GEN-LAST:event_deselectAllButtonActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JList artifactList; + private javax.swing.JList artifactList; private javax.swing.JScrollPane artifactScrollPane; private javax.swing.JButton deselectAllButton; private javax.swing.JButton okButton; @@ -236,7 +242,7 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { private javax.swing.JLabel titleLabel; // End of variables declaration//GEN-END:variables - private class ArtifactModel implements ListModel { + private class ArtifactModel implements ListModel { @Override public int getSize() { @@ -244,7 +250,7 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { } @Override - public ARTIFACT_TYPE getElementAt(int index) { + public BlackboardArtifact.Type getElementAt(int index) { return artifacts.get(index); } @@ -257,10 +263,10 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { } } - private class ArtifactRenderer extends JCheckBox implements ListCellRenderer { + private class ArtifactRenderer extends JCheckBox implements ListCellRenderer { @Override - public Component getListCellRendererComponent(JList list, ARTIFACT_TYPE value, int index, boolean isSelected, boolean cellHasFocus) { + public Component getListCellRendererComponent(JList list, BlackboardArtifact.Type value, int index, boolean isSelected, boolean cellHasFocus) { if (value != null) { setEnabled(list.isEnabled()); setSelected(artifactStates.get(value)); diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 8ab609d2ce..5e570e31ce 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -43,6 +43,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Objects; import java.util.Set; +import java.util.TreeSet; import java.util.concurrent.ExecutionException; import java.util.logging.Level; import javax.swing.JDialog; @@ -509,10 +510,10 @@ class ReportGenerator { } // Keyword hits and hashset hit artifacts get special handling. - if (type.equals(ARTIFACT_TYPE.TSK_KEYWORD_HIT)) { + if (type.getTypeID() == ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID()) { writeKeywordHits(tableModules, comment.toString(), tagNamesFilter); continue; - } else if (type.equals(ARTIFACT_TYPE.TSK_HASHSET_HIT)) { + } else if (type.getTypeID() == ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID()) { writeHashsetHits(tableModules, comment.toString(), tagNamesFilter); continue; } @@ -526,9 +527,7 @@ class ReportGenerator { // The most efficient way to sort all the Artifacts is to add them to a List, and then // sort that List based off a Comparator. Adding to a TreeMap/Set/List sorts the list // each time an element is added, which adds unnecessary overhead if we only need it sorted once. - Collections.sort(unsortedArtifacts); - - Set attrTypeSet = new HashSet<>(); + Set attrTypeSet = new TreeSet<>(); for (ArtifactData data : unsortedArtifacts) { List attributes = data.getAttributes(); for (BlackboardAttribute attribute : attributes) { @@ -549,10 +548,18 @@ class ReportGenerator { // @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed. continue; } + for (ArtifactData d : unsortedArtifacts) { + d.setColumnHeaders(columnHeaders); + } + Collections.sort(unsortedArtifacts); + List columnHeaderNames = new ArrayList<>(); + for (Cell c : columnHeaders) { + columnHeaderNames.add(c.getColumnHeader()); + } for (TableReportModule module : tableModules) { module.startDataType(type.getDisplayName(), comment.toString()); - module.startTable(columnHeaders); + module.startTable(columnHeaderNames); } boolean msgSent = false; @@ -561,7 +568,7 @@ class ReportGenerator { for (TableReportModule module : tableModules) { // Get the row data for this type of artifact. - List rowData = artifactData.getRow(); + List rowData = artifactData.getRow(columnHeaders); if (rowData.isEmpty()) { if (msgSent == false) { MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), @@ -1056,7 +1063,12 @@ class ReportGenerator { currentKeyword = keyword; for (TableReportModule module : tableModules) { module.addSetElement(currentKeyword); - module.startTable(getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID())); + List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID(), new HashSet()); + List columnHeaderNames = new ArrayList<>(); + for (Cell c : columnHeaders) { + columnHeaderNames.add(c.getColumnHeader()); + } + module.startTable(columnHeaderNames); } } @@ -1188,7 +1200,12 @@ class ReportGenerator { currentSet = set; for (TableReportModule module : tableModules) { module.startSet(currentSet); - module.startTable(getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID())); + List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID(), new HashSet()); + List columnHeaderNames = new ArrayList<>(); + for (Cell c : columnHeaders) { + columnHeaderNames.add(c.getColumnHeader()); + } + module.startTable(columnHeaderNames); tableProgress.get(module).updateStatusLabel( NbBundle.getMessage(this.getClass(), "ReportGenerator.progress.processingList", ARTIFACT_TYPE.TSK_HASHSET_HIT.getDisplayName(), currentSet)); @@ -1222,7 +1239,7 @@ class ReportGenerator { * @return List row titles */ private List getArtifactTableColumnHeaders(int artifactTypeId, Set types) { - ArrayList columnHeaders; + ArrayList columnHeaders = new ArrayList<>(); if (ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID() == artifactTypeId) { columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), @@ -1918,316 +1935,289 @@ class ReportGenerator { ATTRIBUTE_TYPE.TSK_SERVER_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_SERVER_NAME.getValueType())), new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID() == artifactTypeId) { + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text")), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"))})); + } else if (ARTIFACT_TYPE.TSK_OS_INFO.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getLabel(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + } else if (ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType())), //TSK_EMAIL_TO + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType())), //TSK_EMAIL_FROM + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType())), //TSK_SUBJECT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getValueType())), //TSK_DATETIME_SENT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getValueType())), //TSK_DATETIME_RCVD + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType())), //TSK_PATH + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getValueType())), //TSK_EMAIL_CC + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getValueType())), //TSK_EMAIL_BCC + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getValueType()))})); //TSK_MSG_ID + } else if (ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + String pathToShow = mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID()); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))})); //TSK_PATH + } else if (ARTIFACT_TYPE.TSK_GPS_ROUTE.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getValueType())), //TSK_GEO_LATITUDE_END + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getValueType())), //TSK_GEO_LONGITUDE_END + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getValueType())), //TSK_GEO_LATITUDE_START + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getValueType())), //TSK_GEO_LONGITUDE_START + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType())), //TSK_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), //TSK_LOCATION + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))}));//TSK_PROG_NAME + } else if (ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))})); //TSK_PROG_NAME + } else if (ARTIFACT_TYPE.TSK_PROG_RUN.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), //TSK_PROG_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID(), + ATTRIBUTE_TYPE.TSK_COUNT.getLabel(), + ATTRIBUTE_TYPE.TSK_COUNT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_COUNT.getValueType()))})); //TSK_COUNT + } else if (ARTIFACT_TYPE.TSK_OS_ACCOUNT.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getValueType())), //TSK_USER_NAME + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))})); //TSK_USER_ID + } else if (ARTIFACT_TYPE.TSK_REMOTE_DRIVE.getTypeID() == artifactTypeId) { + /* + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); + */ + columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getValueType())), //TSK_LOCAL_PATH + new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getValueType()))})); //TSK_REMOTE_PATH + } else { + for (BlackboardAttribute.Type type : types) { + columnHeaders.add(new AttributeCell(type.getDisplayName(), type)); + } + columnHeaders.add(new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } - + columnHeaders.add( + new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))); - case TSK_ENCRYPTION_DETECTED - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); - break; - case TSK_EXT_MISMATCH_DETECTED - : - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"))})); - break; - case TSK_OS_INFO - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getLabel(), - ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); - break; - case TSK_EMAIL_MSG - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType())), //TSK_EMAIL_TO - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType())), //TSK_EMAIL_FROM - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType())), //TSK_SUBJECT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getValueType())), //TSK_DATETIME_SENT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getValueType())), //TSK_DATETIME_RCVD - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType())), //TSK_PATH - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_CC.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_CC.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_CC.getValueType())), //TSK_EMAIL_CC - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getValueType())), //TSK_EMAIL_BCC - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), - ATTRIBUTE_TYPE.TSK_MSG_ID.getLabel(), - ATTRIBUTE_TYPE.TSK_MSG_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_MSG_ID.getValueType()))})); //TSK_MSG_ID - break; - case TSK_INTERESTING_FILE_HIT - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - String pathToShow = mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID()); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType()))})); //TSK_PATH - break; - case TSK_GPS_ROUTE - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getValueType())), //TSK_GEO_LATITUDE_END - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getValueType())), //TSK_GEO_LONGITUDE_END - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getValueType())), //TSK_GEO_LATITUDE_START - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getValueType())), //TSK_GEO_LONGITUDE_START - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), //TSK_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), //TSK_LOCATION - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))}));//TSK_PROG_NAME - break; - case TSK_INTERESTING_ARTIFACT_HIT - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))})); //TSK_PROG_NAME - break; - case TSK_PROG_RUN - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), //TSK_PROG_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID(), - ATTRIBUTE_TYPE.TSK_COUNT.getLabel(), - ATTRIBUTE_TYPE.TSK_COUNT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_COUNT.getValueType()))})); //TSK_COUNT - break; - - case TSK_OS_ACCOUNT - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_USER_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_USER_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_NAME.getValueType())), //TSK_USER_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), - ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), - ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))})); //TSK_USER_ID - break; - - case TSK_REMOTE_DRIVE - : - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getValueType())), //TSK_LOCAL_PATH - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getValueType()))})); //TSK_REMOTE_PATH - break; - default - - : - return null; - columnHeaders.add ( - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))); - - return columnHeaders ; -} - -/** - * Map all BlackboardAttributes' values in a list of BlackboardAttributes to - * each attribute's attribute type ID, using module's dateToString method for - * date/time conversions if a module is supplied. - * - * @param attList list of BlackboardAttributes to be mapped - * @param module the TableReportModule the mapping is for - * - * @return Map of the BlackboardAttributes mapped to their - * attribute type ID - */ - - - + return columnHeaders; + } + /** + * Map all BlackboardAttributes' values in a list of BlackboardAttributes to + * each attribute's attribute type ID, using module's dateToString method + * for date/time conversions if a module is supplied. + * + * @param attList list of BlackboardAttributes to be mapped + * @param module the TableReportModule the mapping is for + * + * @return Map of the BlackboardAttributes mapped to their + * attribute type ID + */ public Map getMappedAttributes(List attList, TableReportModule... module) { Map attributes = new HashMap<>(); int size = ATTRIBUTE_TYPE.values().length; @@ -2313,6 +2303,7 @@ class ReportGenerator { private List attributes; private HashSet tags; private List rowData = null; + private List columnHeaders = null; ArtifactData(BlackboardArtifact artifact, List attrs, HashSet tags) { this.artifact = artifact; @@ -2340,9 +2331,14 @@ class ReportGenerator { return artifact.getObjectID(); } + public void setColumnHeaders(List columnHeaders) { + this.columnHeaders = columnHeaders; + } + /** * Compares ArtifactData objects by the first attribute they have in - * common in their List. + * common in their List. Should only be used on two + * artifacts of the same type * * If all attributes are the same, they are assumed duplicates and are * compared by their artifact id. Should only be used with attributes of @@ -2350,25 +2346,32 @@ class ReportGenerator { */ @Override public int compareTo(ArtifactData otherArtifactData) { - List thisRow = getRow(); - List otherRow = otherArtifactData.getRow(); - for (int i = 0; i < thisRow.size(); i++) { - int compare = thisRow.get(i).compareTo(otherRow.get(i)); - if (compare != 0) { - return compare; + if (columnHeaders != null) { + List thisRow = getRow(columnHeaders); + List otherRow = otherArtifactData.getRow(columnHeaders); + for (int i = 0; i < thisRow.size(); i++) { + int compare = thisRow.get(i).compareTo(otherRow.get(i)); + if (compare != 0) { + return compare; + } } } + //OS TODO: figure out a way to compare artifact data without messing up rowData // If all attributes are the same, they're most likely duplicates so sort by artifact ID return ((Long) this.getArtifactID()).compareTo((Long) otherArtifactData.getArtifactID()); } /** * Get the values for each row in the table report. + * + * @param columnHeaders The list of column headers that is used to find + * the value types of custom artifacts + * @return A list of string representing the data for this artifact. */ - public List getRow() { + public List getRow(List columnHeaders) { if (rowData == null) { try { - rowData = getOrderedRowDataAsStrings(); + rowData = getOrderedRowDataAsStrings(columnHeaders); // replace null values if attribute was not defined for (int i = 0; i < rowData.size(); i++) { if (rowData.get(i) == null) { @@ -2389,261 +2392,241 @@ class ReportGenerator { * Get a list of Strings with all the row values for the Artifact in the * correct order to be written to the report. * + * @param columnHeaders The list of column headers that is used to find + * the value types of custom artifacts + * * @return List row values. Values could be null if attribute is * not defined in artifact * * @throws TskCoreException */ - private List getOrderedRowDataAsStrings() throws TskCoreException { + private List getOrderedRowDataAsStrings(List columnHeaders) throws TskCoreException { Map mappedAttributes = getMappedAttributes(); List orderedRowData = new ArrayList<>(); - BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(getArtifact().getArtifactTypeID()); - switch (type) { - case TSK_WEB_BOOKMARK: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_WEB_COOKIE: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_WEB_HISTORY: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_WEB_DOWNLOAD: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_RECENT_OBJECT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_INSTALLED_PROG: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_DEVICE_ATTACHED: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_WEB_SEARCH_QUERY: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_METADATA_EXIF: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_CONTACT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_MESSAGE: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_CALLLOG: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_CALENDAR_ENTRY: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_SPEED_DIAL_ENTRY: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_BLUETOOTH_PAIRING: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_GPS_TRACKPOINT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_GPS_BOOKMARK: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_GPS_LAST_KNOWN_LOCATION: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_GPS_SEARCH: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_SERVICE_ACCOUNT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_TOOL_OUTPUT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_ENCRYPTION_DETECTED: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_EXT_MISMATCH_DETECTED: - AbstractFile file = skCase.getAbstractFileById(getObjectID()); - if (file != null) { - orderedRowData.add(file.getName()); - orderedRowData.add(file.getNameExtension()); - String mimeType = file.getMIMEType(); - if (mimeType == null) { - orderedRowData.add(""); - } else { - orderedRowData.add(mimeType); - } - orderedRowData.add(file.getUniquePath()); + if (ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_CONTACT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_MESSAGE.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_CALLLOG.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_GPS_TRACKPOINT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID() == getArtifact().getArtifactTypeID()) { + AbstractFile file = skCase.getAbstractFileById(getObjectID()); + if (file != null) { + orderedRowData.add(file.getName()); + orderedRowData.add(file.getNameExtension()); + String mimeType = file.getMIMEType(); + if (mimeType == null) { + orderedRowData.add(""); } else { - // Make empty rows to make sure the formatting is correct - orderedRowData.add(null); - orderedRowData.add(null); - orderedRowData.add(null); - orderedRowData.add(null); + orderedRowData.add(mimeType); } - break; - case TSK_OS_INFO: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - break; - case TSK_EMAIL_MSG: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); - break; - case TSK_INTERESTING_FILE_HIT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - String pathToShow = mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID()); - if (pathToShow.isEmpty()) { - pathToShow = getFileUniquePath(getObjectID()); + orderedRowData.add(file.getUniquePath()); + } else { + // Make empty rows to make sure the formatting is correct + orderedRowData.add(null); + orderedRowData.add(null); + orderedRowData.add(null); + orderedRowData.add(null); + } + } else if (ARTIFACT_TYPE.TSK_OS_INFO.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(getFileUniquePath(getObjectID())); + } else if (ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); + } else if (ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + String pathToShow = mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID()); + if (pathToShow.isEmpty()) { + pathToShow = getFileUniquePath(getObjectID()); + } + orderedRowData.add(pathToShow); + } else if (ARTIFACT_TYPE.TSK_GPS_ROUTE.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + } else if (ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + } else if (ARTIFACT_TYPE.TSK_PROG_RUN.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); + } else if (ARTIFACT_TYPE.TSK_OS_ACCOUNT.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); + } else if (ARTIFACT_TYPE.TSK_REMOTE_DRIVE.getTypeID() == getArtifact().getArtifactTypeID()) { + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); + orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); + } else { + for (Cell c : columnHeaders) { + String rowData = c.getRowData(this.attributes); + if (rowData.equals("")) { + if (c.getColumnHeader().equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))) { + rowData = getFileUniquePath(getObjectID()); + } } - orderedRowData.add(pathToShow); - break; - case TSK_GPS_ROUTE: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - break; - case TSK_INTERESTING_ARTIFACT_HIT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - break; - case TSK_PROG_RUN: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); - break; - case TSK_OS_ACCOUNT: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - break; - case TSK_REMOTE_DRIVE: - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); - break; + orderedRowData.add(rowData); + } } orderedRowData.add(makeCommaSeparatedList(getTags())); @@ -2693,6 +2676,8 @@ class ReportGenerator { String getColumnHeader(); BlackboardAttribute.Type getType(); + + String getRowData(List attributes); } private class AttributeCell implements Cell { @@ -2720,6 +2705,31 @@ class ReportGenerator { public Type getType() { return this.attributeType; } + + @Override + public String getRowData(List attributes) { + for (BlackboardAttribute attribute : attributes) { + if (attribute.getAttributeType().equals(this.attributeType)) { + switch (attribute.getValueType()) { + case STRING: + return attribute.getValueString(); + case INTEGER: + return attribute.getValueInt() + ""; + case DOUBLE: + return attribute.getValueDouble() + ""; + case LONG: + return attribute.getValueLong() + ""; + case DATETIME: + SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + return sdf.format(new java.util.Date((attribute.getValueLong() * 1000))); + case BYTE: + return attribute.getValueBytes().toString(); + + } + } + } + return ""; + } } private class OtherCell implements Cell { @@ -2739,5 +2749,10 @@ class ReportGenerator { public Type getType() { return null; } + + @Override + public String getRowData(List attributes) { + return ""; + } } } diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java index 4a57d802d7..49c3552a0b 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java @@ -262,7 +262,6 @@ class ReportHTML implements TableReportModule { break; } } else { // no defined artifact found for this dataType - logger.log(Level.WARNING, "useDataTypeIcon: no artifact found for data type = " + dataType); //NON-NLS in = getClass().getResourceAsStream("/org/sleuthkit/autopsy/report/images/star.png"); //NON-NLS iconFileName = "star.png"; //NON-NLS iconFilePath = path + File.separator + iconFileName; diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java index 68a167b0bc..eee2c6957d 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java @@ -23,6 +23,7 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.EnumMap; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -50,8 +51,8 @@ final class ReportVisualPanel2 extends JPanel { private Map tagStates = new LinkedHashMap<>(); private List tags = new ArrayList<>(); ArtifactSelectionDialog dialog = new ArtifactSelectionDialog(new JFrame(), true); - private Map artifactStates = new EnumMap<>(ARTIFACT_TYPE.class); - private List artifacts = new ArrayList<>(); + private Map artifactStates = new HashMap<>(); + private List artifacts = new ArrayList<>(); private TagsListModel tagsModel; private TagsListRenderer tagsRenderer; @@ -109,16 +110,20 @@ final class ReportVisualPanel2 extends JPanel { private void initArtifactTypes() { try { - ArrayList doNotReport = new ArrayList<>(); - doNotReport.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO); - doNotReport.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT); // output is too unstructured for table review + ArrayList doNotReport = new ArrayList<>(); + doNotReport.add(new BlackboardArtifact.Type(BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getDisplayName())); + doNotReport.add(new BlackboardArtifact.Type(BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getDisplayName())); // output is too unstructured for table review - artifacts = Case.getCurrentCase().getSleuthkitCase().getBlackboardArtifactTypesInUse(); + artifacts = Case.getCurrentCase().getSleuthkitCase().getArtifactTypesInUse(); artifacts.removeAll(doNotReport); - artifactStates = new EnumMap<>(ARTIFACT_TYPE.class); - for (ARTIFACT_TYPE type : artifacts) { + artifactStates = new HashMap<>(); + for (BlackboardArtifact.Type type : artifacts) { artifactStates.put(type, Boolean.TRUE); } } catch (TskCoreException ex) { @@ -132,9 +137,11 @@ final class ReportVisualPanel2 extends JPanel { } /** + * Gets the enabled/disabled state of all artifacts + * * @return the enabled/disabled state of all Artifacts */ - Map getArtifactStates() { + Map getArtifactStates() { return artifactStates; } @@ -157,7 +164,7 @@ final class ReportVisualPanel2 extends JPanel { private boolean areArtifactsSelected() { boolean result = false; - for (Entry entry : artifactStates.entrySet()) { + for (Entry entry : artifactStates.entrySet()) { if (entry.getValue()) { result = true; } diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java b/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java index 753dfd201d..bf51dfee86 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportWizardAction.java @@ -43,7 +43,6 @@ import org.openide.util.actions.Presenter; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.core.RuntimeProperties; import org.sleuthkit.datamodel.BlackboardArtifact; -import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE; @ActionID(category = "Tools", id = "org.sleuthkit.autopsy.report.ReportWizardAction") @ActionRegistration(displayName = "#CTL_ReportWizardAction", lazy = false) From da50e9c7e0f5be363cdcc0421669c625c2bcaa0b Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Tue, 9 Feb 2016 16:08:43 -0500 Subject: [PATCH 06/86] Fixed issues discussed in pr report --- .../UserArtifactIngestModuleFactory.java | 4 +- .../report/ArtifactSelectionDialog.java | 39 ++++++------- .../autopsy/report/Bundle.properties | 2 - .../autopsy/report/ReportGenerator.java | 55 ++++++------------- 4 files changed, 39 insertions(+), 61 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java index b63d9f928a..82ff77b269 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java @@ -19,15 +19,17 @@ package org.sleuthkit.autopsy.modules.UserArtifacts; import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; import org.python.apache.xmlcommons.Version; import org.sleuthkit.autopsy.ingest.DataSourceIngestModule; +import org.sleuthkit.autopsy.ingest.IngestModuleFactory; import org.sleuthkit.autopsy.ingest.IngestModuleFactoryAdapter; import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; /** * Factory for test module that creates new artifact and attribute types. */ -//@ServiceProvider(service = IngestModuleFactory.class) +@ServiceProvider(service = IngestModuleFactory.class) public class UserArtifactIngestModuleFactory extends IngestModuleFactoryAdapter { static String getModuleName() { diff --git a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java index 279a78b4ff..05c5e720f4 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java +++ b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java @@ -47,8 +47,8 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { private ArtifactModel model; private ArtifactRenderer renderer; - private Map artifactStates; - private List artifacts; + private Map artifactTypeSelections; + private List artifactTypes; /** * Creates new form ArtifactSelectionDialog @@ -61,7 +61,7 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { } /** - * Populate the list of artifacts with all important artifacts. + * Populate the list of artifactTypes with all important artifactTypes. */ @SuppressWarnings("deprecation") private void populateList() { @@ -74,18 +74,18 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getLabel(), BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getDisplayName())); // output is too unstructured for table review - artifacts = Case.getCurrentCase().getSleuthkitCase().getArtifactTypesInUse(); - artifacts.removeAll(doNotReport); - Collections.sort(artifacts, new Comparator() { + artifactTypes = Case.getCurrentCase().getSleuthkitCase().getArtifactTypesInUse(); + artifactTypes.removeAll(doNotReport); + Collections.sort(artifactTypes, new Comparator() { @Override public int compare(BlackboardArtifact.Type o1, BlackboardArtifact.Type o2) { return o1.getDisplayName().compareTo(o2.getDisplayName()); } }); - artifactStates = new HashMap<>(); - for (BlackboardArtifact.Type type : artifacts) { - artifactStates.put(type, Boolean.TRUE); + artifactTypeSelections = new HashMap<>(); + for (BlackboardArtifact.Type type : artifactTypes) { + artifactTypeSelections.put(type, Boolean.TRUE); } } catch (TskCoreException ex) { Logger.getLogger(ArtifactSelectionDialog.class.getName()).log(Level.SEVERE, "Error getting list of artifacts in use: " + ex.getLocalizedMessage()); //NON-NLS @@ -104,14 +104,14 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { public void mousePressed(MouseEvent evt) { int index = artifactList.locationToIndex(evt.getPoint()); BlackboardArtifact.Type type = model.getElementAt(index); - artifactStates.put(type, !artifactStates.get(type)); + artifactTypeSelections.put(type, !artifactTypeSelections.get(type)); artifactList.repaint(); } }); } /** - * Display this dialog, and return the selected artifacts. + * Display this dialog, and return the selected artifactTypes. * * @return The state of artifact types displayed */ @@ -126,7 +126,7 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { setLocation((screenDimension.width - w) / 2, (screenDimension.height - h) / 2); this.setVisible(true); - return artifactStates; + return artifactTypeSelections; } /** @@ -221,15 +221,15 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { }//GEN-LAST:event_okButtonActionPerformed private void selectAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectAllButtonActionPerformed - for (BlackboardArtifact.Type type : artifacts) { - artifactStates.put(type, Boolean.TRUE); + for (BlackboardArtifact.Type type : artifactTypes) { + artifactTypeSelections.put(type, Boolean.TRUE); } artifactList.repaint(); }//GEN-LAST:event_selectAllButtonActionPerformed private void deselectAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deselectAllButtonActionPerformed - for (BlackboardArtifact.Type type : artifacts) { - artifactStates.put(type, Boolean.FALSE); + for (BlackboardArtifact.Type type : artifactTypes) { + artifactTypeSelections.put(type, Boolean.FALSE); } artifactList.repaint(); }//GEN-LAST:event_deselectAllButtonActionPerformed @@ -246,12 +246,13 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { @Override public int getSize() { - return artifacts.size(); + return artifactTypes.size(); } + @Override public BlackboardArtifact.Type getElementAt(int index) { - return artifacts.get(index); + return artifactTypes.get(index); } @Override @@ -269,7 +270,7 @@ public class ArtifactSelectionDialog extends javax.swing.JDialog { public Component getListCellRendererComponent(JList list, BlackboardArtifact.Type value, int index, boolean isSelected, boolean cellHasFocus) { if (value != null) { setEnabled(list.isEnabled()); - setSelected(artifactStates.get(value)); + setSelected(artifactTypeSelections.get(value)); setFont(list.getFont()); setBackground(list.getBackground()); setForeground(list.getForeground()); diff --git a/Core/src/org/sleuthkit/autopsy/report/Bundle.properties b/Core/src/org/sleuthkit/autopsy/report/Bundle.properties index 5e74024afe..d535c310f4 100644 --- a/Core/src/org/sleuthkit/autopsy/report/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/report/Bundle.properties @@ -71,8 +71,6 @@ ReportGenerator.artifactTable.taggedResults.text=Contains results that were tagg ReportGenerator.progress.processing=Now processing {0}... ReportGenerator.msgShow.skippingArtType.title=Skipping artifact type {0} in reports ReportGenerator.msgShow.skippingArtType.msg=Unknown columns to report on -ReportGenerator.msgShow.skippingArtRow.title=Skipping artifact rows for type {0} in reports -ReportGenerator.msgShow.skippingArtRow.msg=Unknown columns to report on ReportGenerator.makeContTagTab.taggedFiles.msg=Contains files that were tagged with one of the following\: ReportGenerator.makeBbArtTagTab.taggedRes.msg=This report only includes results tagged with\: ReportGenerator.tagTable.header.resultType=Result Type diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 5e570e31ce..901ad42263 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -518,40 +518,28 @@ class ReportGenerator { continue; } - List unsortedArtifacts = getFilteredArtifacts(type, tagNamesFilter); + List artifactList = getFilteredArtifacts(type, tagNamesFilter); - if (unsortedArtifacts.isEmpty()) { + if (artifactList.isEmpty()) { continue; } - // The most efficient way to sort all the Artifacts is to add them to a List, and then - // sort that List based off a Comparator. Adding to a TreeMap/Set/List sorts the list - // each time an element is added, which adds unnecessary overhead if we only need it sorted once. Set attrTypeSet = new TreeSet<>(); - for (ArtifactData data : unsortedArtifacts) { + for (ArtifactData data : artifactList) { List attributes = data.getAttributes(); for (BlackboardAttribute attribute : attributes) { attrTypeSet.add(attribute.getAttributeType()); } } // Get the column headers appropriate for the artifact type. - /* - * @@@ BC: Seems like a better design here would be to have a - * method that takes in the artifact as an argument and returns - * the attributes. We then use that to make the headers and to - * make each row afterwards so that we don't have - * artifact-specific logic in both getArtifactTableCoumnHeaders - * and ArtifactData.getRow() - */ List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet); - if (columnHeaders == null) { - // @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed. - continue; - } - for (ArtifactData d : unsortedArtifacts) { + for (ArtifactData d : artifactList) { d.setColumnHeaders(columnHeaders); } - Collections.sort(unsortedArtifacts); + // The most efficient way to sort all the Artifacts is to add them to a List, and then + // sort that List based off a Comparator. Adding to a TreeMap/Set/List sorts the list + // each time an element is added, which adds unnecessary overhead if we only need it sorted once. + Collections.sort(artifactList); List columnHeaderNames = new ArrayList<>(); for (Cell c : columnHeaders) { columnHeaderNames.add(c.getColumnHeader()); @@ -561,24 +549,13 @@ class ReportGenerator { module.startDataType(type.getDisplayName(), comment.toString()); module.startTable(columnHeaderNames); } - - boolean msgSent = false; - for (ArtifactData artifactData : unsortedArtifacts) { + for (ArtifactData artifactData : artifactList) { // Add the row data to all of the reports. for (TableReportModule module : tableModules) { // Get the row data for this type of artifact. - List rowData = artifactData.getRow(columnHeaders); + List rowData = artifactData.getRow(); if (rowData.isEmpty()) { - if (msgSent == false) { - MessageNotifyUtil.Notify.show(NbBundle.getMessage(this.getClass(), - "ReportGenerator.msgShow.skippingArtRow.title", - type), - NbBundle.getMessage(this.getClass(), - "ReportGenerator.msgShow.skippingArtRow.msg"), - MessageNotifyUtil.MessageType.ERROR); - msgSent = true; - } continue; } @@ -2303,7 +2280,7 @@ class ReportGenerator { private List attributes; private HashSet tags; private List rowData = null; - private List columnHeaders = null; + private List columnHeaders = new ArrayList<>(); ArtifactData(BlackboardArtifact artifact, List attrs, HashSet tags) { this.artifact = artifact; @@ -2347,8 +2324,8 @@ class ReportGenerator { @Override public int compareTo(ArtifactData otherArtifactData) { if (columnHeaders != null) { - List thisRow = getRow(columnHeaders); - List otherRow = otherArtifactData.getRow(columnHeaders); + List thisRow = getRow(); + List otherRow = otherArtifactData.getRow(); for (int i = 0; i < thisRow.size(); i++) { int compare = thisRow.get(i).compareTo(otherRow.get(i)); if (compare != 0) { @@ -2368,10 +2345,10 @@ class ReportGenerator { * the value types of custom artifacts * @return A list of string representing the data for this artifact. */ - public List getRow(List columnHeaders) { + public List getRow() { if (rowData == null) { try { - rowData = getOrderedRowDataAsStrings(columnHeaders); + rowData = getOrderedRowDataAsStrings(this.columnHeaders); // replace null values if attribute was not defined for (int i = 0; i < rowData.size(); i++) { if (rowData.get(i) == null) { @@ -2394,7 +2371,7 @@ class ReportGenerator { * * @param columnHeaders The list of column headers that is used to find * the value types of custom artifacts - * + * * @return List row values. Values could be null if attribute is * not defined in artifact * From 8cea238af50dbe0fda7a4e5c70ae75f581717b99 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Wed, 10 Feb 2016 09:42:50 -0500 Subject: [PATCH 07/86] Updating structure of getRow --- .../autopsy/report/ReportGenerator.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 901ad42263..ea859fb428 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -2596,12 +2596,7 @@ class ReportGenerator { orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); } else { for (Cell c : columnHeaders) { - String rowData = c.getRowData(this.attributes); - if (rowData.equals("")) { - if (c.getColumnHeader().equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))) { - rowData = getFileUniquePath(getObjectID()); - } - } + String rowData = c.getRowData(this); orderedRowData.add(rowData); } } @@ -2654,7 +2649,7 @@ class ReportGenerator { BlackboardAttribute.Type getType(); - String getRowData(List attributes); + String getRowData(ArtifactData artData); } private class AttributeCell implements Cell { @@ -2684,7 +2679,8 @@ class ReportGenerator { } @Override - public String getRowData(List attributes) { + public String getRowData(ArtifactData artData) { + List attributes = artData.getAttributes(); for (BlackboardAttribute attribute : attributes) { if (attribute.getAttributeType().equals(this.attributeType)) { switch (attribute.getValueType()) { @@ -2728,7 +2724,10 @@ class ReportGenerator { } @Override - public String getRowData(List attributes) { + public String getRowData(ArtifactData artData) { + if (this.columnHeader.equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))) { + return getFileUniquePath(artData.getObjectID()); + } return ""; } } From f7b2dc6cfc896e4af85065c634f85103c8123313 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Wed, 10 Feb 2016 10:35:17 -0500 Subject: [PATCH 08/86] Moved towards having tags work --- Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index ea859fb428..28a8f760bb 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -2599,6 +2599,7 @@ class ReportGenerator { String rowData = c.getRowData(this); orderedRowData.add(rowData); } + return orderedRowData; } orderedRowData.add(makeCommaSeparatedList(getTags())); @@ -2727,6 +2728,8 @@ class ReportGenerator { public String getRowData(ArtifactData artData) { if (this.columnHeader.equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))) { return getFileUniquePath(artData.getObjectID()); + } else if (this.columnHeader.equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))) { + return makeCommaSeparatedList(artData.getTags()); } return ""; } From b75a5c4751f375087f015c61dac61088cc6dc899 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Wed, 10 Feb 2016 11:18:15 -0500 Subject: [PATCH 09/86] Finished reports code --- .../autopsy/report/ReportGenerator.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 28a8f760bb..31cf814479 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -533,16 +533,19 @@ class ReportGenerator { } // Get the column headers appropriate for the artifact type. List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet); - for (ArtifactData d : artifactList) { - d.setColumnHeaders(columnHeaders); + if(columnHeaders.isEmpty()) { + continue; + } + for (ArtifactData artData : artifactList) { + artData.setColumnHeaders(columnHeaders); } // The most efficient way to sort all the Artifacts is to add them to a List, and then // sort that List based off a Comparator. Adding to a TreeMap/Set/List sorts the list // each time an element is added, which adds unnecessary overhead if we only need it sorted once. Collections.sort(artifactList); List columnHeaderNames = new ArrayList<>(); - for (Cell c : columnHeaders) { - columnHeaderNames.add(c.getColumnHeader()); + for (Cell currCell : columnHeaders) { + columnHeaderNames.add(currCell.getColumnHeader()); } for (TableReportModule module : tableModules) { @@ -1042,8 +1045,8 @@ class ReportGenerator { module.addSetElement(currentKeyword); List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID(), new HashSet()); List columnHeaderNames = new ArrayList<>(); - for (Cell c : columnHeaders) { - columnHeaderNames.add(c.getColumnHeader()); + for (Cell currCell : columnHeaders) { + columnHeaderNames.add(currCell.getColumnHeader()); } module.startTable(columnHeaderNames); } @@ -1179,8 +1182,8 @@ class ReportGenerator { module.startSet(currentSet); List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID(), new HashSet()); List columnHeaderNames = new ArrayList<>(); - for (Cell c : columnHeaders) { - columnHeaderNames.add(c.getColumnHeader()); + for (Cell currCell : columnHeaders) { + columnHeaderNames.add(currCell.getColumnHeader()); } module.startTable(columnHeaderNames); tableProgress.get(module).updateStatusLabel( @@ -2348,7 +2351,7 @@ class ReportGenerator { public List getRow() { if (rowData == null) { try { - rowData = getOrderedRowDataAsStrings(this.columnHeaders); + rowData = getOrderedRowDataAsStrings(); // replace null values if attribute was not defined for (int i = 0; i < rowData.size(); i++) { if (rowData.get(i) == null) { @@ -2377,7 +2380,7 @@ class ReportGenerator { * * @throws TskCoreException */ - private List getOrderedRowDataAsStrings(List columnHeaders) throws TskCoreException { + private List getOrderedRowDataAsStrings() throws TskCoreException { Map mappedAttributes = getMappedAttributes(); List orderedRowData = new ArrayList<>(); if (ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID() == getArtifact().getArtifactTypeID()) { @@ -2595,8 +2598,8 @@ class ReportGenerator { orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); } else { - for (Cell c : columnHeaders) { - String rowData = c.getRowData(this); + for (Cell currCell : this.columnHeaders) { + String rowData = currCell.getRowData(this); orderedRowData.add(rowData); } return orderedRowData; From 73a8c633c1fe3efdd65df0c3c43e0b98cca6b3d3 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Thu, 11 Feb 2016 10:31:15 -0500 Subject: [PATCH 10/86] Code cleanup --- .../autopsy/report/ReportGenerator.java | 1498 ++++++++--------- 1 file changed, 725 insertions(+), 773 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 31cf814479..67fd29b3a2 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -532,8 +532,8 @@ class ReportGenerator { } } // Get the column headers appropriate for the artifact type. - List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet); - if(columnHeaders.isEmpty()) { + List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet); + if (columnHeaders.isEmpty()) { continue; } for (ArtifactData artData : artifactList) { @@ -544,7 +544,7 @@ class ReportGenerator { // each time an element is added, which adds unnecessary overhead if we only need it sorted once. Collections.sort(artifactList); List columnHeaderNames = new ArrayList<>(); - for (Cell currCell : columnHeaders) { + for (Column currCell : columnHeaders) { columnHeaderNames.add(currCell.getColumnHeader()); } @@ -1043,9 +1043,9 @@ class ReportGenerator { currentKeyword = keyword; for (TableReportModule module : tableModules) { module.addSetElement(currentKeyword); - List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID(), new HashSet()); + List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID(), new HashSet()); List columnHeaderNames = new ArrayList<>(); - for (Cell currCell : columnHeaders) { + for (Column currCell : columnHeaders) { columnHeaderNames.add(currCell.getColumnHeader()); } module.startTable(columnHeaderNames); @@ -1180,9 +1180,9 @@ class ReportGenerator { currentSet = set; for (TableReportModule module : tableModules) { module.startSet(currentSet); - List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID(), new HashSet()); + List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID(), new HashSet()); List columnHeaderNames = new ArrayList<>(); - for (Cell currCell : columnHeaders) { + for (Column currCell : columnHeaders) { columnHeaderNames.add(currCell.getColumnHeader()); } module.startTable(columnHeaderNames); @@ -1218,966 +1218,910 @@ class ReportGenerator { * * @return List row titles */ - private List getArtifactTableColumnHeaders(int artifactTypeId, Set types) { - ArrayList columnHeaders = new ArrayList<>(); + private List getArtifactTableColumnHeaders(int artifactTypeId, Set types) { + ArrayList columnHeaders = new ArrayList<>(); if (ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType())), - //ATTRIBUTE_TYPE.TSK_TITLE - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), - ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), - ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_TITLE.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME_CREATED - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType())), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add( + new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), + ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TITLE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_URL - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - //ATTRIBUTE_TYPE.TSK_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - //ATTRIBUTE_TYPE.TSK_VALUE - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), - ATTRIBUTE_TYPE.TSK_VALUE.getLabel(), - ATTRIBUTE_TYPE.TSK_VALUE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_VALUE.getValueType())), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), + ATTRIBUTE_TYPE.TSK_VALUE.getLabel(), + ATTRIBUTE_TYPE.TSK_VALUE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_VALUE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_URL - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType())), - //ATTRIBUTE_TYPE.TSK_REFERRER - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), - ATTRIBUTE_TYPE.TSK_REFERRER.getLabel(), - ATTRIBUTE_TYPE.TSK_REFERRER.getDisplayName(), - ATTRIBUTE_TYPE.TSK_REFERRER.getValueType())), - //ATTRIBUTE_TYPE.TSK_TITLE - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), - ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), - ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_TITLE.getValueType())), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - //ATTRIBUTE_TYPE.TSK_URL_DECODED - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL_DECODED.getLabel(), - ATTRIBUTE_TYPE.TSK_URL_DECODED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL_DECODED.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), + ATTRIBUTE_TYPE.TSK_REFERRER.getLabel(), + ATTRIBUTE_TYPE.TSK_REFERRER.getDisplayName(), + ATTRIBUTE_TYPE.TSK_REFERRER.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), + ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TITLE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL_DECODED.getLabel(), + ATTRIBUTE_TYPE.TSK_URL_DECODED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL_DECODED.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_PATH - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType())), - //ATTRIBUTE_TYPE.TSK_URL - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType())), - //ATTRIBUTE_TYPE.TSK_PROG_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_PATH - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - //ATTRIBUTE_TYPE.TSK_PROG_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - //ATTRIBUTE_TYPE.TSK_DATETIME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); - } else if (ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.preview")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); - } else if (ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.size"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID() == artifactTypeId) { - /* - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devMake"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), - ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), - ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), - ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), - ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devMake"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), - ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), - ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_TEXT.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), - ATTRIBUTE_TYPE.TSK_DOMAIN.getLabel(), - ATTRIBUTE_TYPE.TSK_DOMAIN.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DOMAIN.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), + ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), + ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TEXT.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), + ATTRIBUTE_TYPE.TSK_DOMAIN.getLabel(), + ATTRIBUTE_TYPE.TSK_DOMAIN.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DOMAIN.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), - ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), - ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_CONTACT.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumOffice"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumMobile"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.email"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumOffice"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumMobile"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.email"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_MESSAGE.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID(), - ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getLabel(), - ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), - ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), - ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.readStatus"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID(), - ATTRIBUTE_TYPE.TSK_READ_STATUS.getLabel(), - ATTRIBUTE_TYPE.TSK_READ_STATUS.getDisplayName(), - ATTRIBUTE_TYPE.TSK_READ_STATUS.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromEmail"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toEmail"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.subject"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), - ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), - ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_TEXT.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID(), + ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getLabel(), + ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.readStatus"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID(), + ATTRIBUTE_TYPE.TSK_READ_STATUS.getLabel(), + ATTRIBUTE_TYPE.TSK_READ_STATUS.getDisplayName(), + ATTRIBUTE_TYPE.TSK_READ_STATUS.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromEmail"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toEmail"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.subject"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), + ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), + ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TEXT.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_CALLLOG.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), - ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), - ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID(), - ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getLabel(), - ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), - ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), - ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.endDateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_END.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_END.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_END.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID(), + ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getLabel(), + ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.endDateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_END.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_END.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID(), - ATTRIBUTE_TYPE.TSK_SHORTCUT.getLabel(), - ATTRIBUTE_TYPE.TSK_SHORTCUT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SHORTCUT.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME_PERSON.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME_PERSON.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME_PERSON.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID(), + ATTRIBUTE_TYPE.TSK_SHORTCUT.getLabel(), + ATTRIBUTE_TYPE.TSK_SHORTCUT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SHORTCUT.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME_PERSON.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME_PERSON.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME_PERSON.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), - ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), - ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_GPS_TRACKPOINT.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_ID.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), + ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID(), ATTRIBUTE_TYPE.TSK_PASSWORD.getLabel(), ATTRIBUTE_TYPE.TSK_PASSWORD.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PASSWORD.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + ATTRIBUTE_TYPE.TSK_PASSWORD.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appName"), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), ATTRIBUTE_TYPE.TSK_URL.getLabel(), ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appPath"), + ATTRIBUTE_TYPE.TSK_URL.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appPath"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), ATTRIBUTE_TYPE.TSK_PATH.getLabel(), ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.replytoAddress"), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.replytoAddress"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mailServer"), + ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mailServer"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_SERVER_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_SERVER_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SERVER_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + ATTRIBUTE_TYPE.TSK_SERVER_NAME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID() == artifactTypeId) { - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text")), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"))})); + columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"))); + + columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text"))); + + columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text"))); + + columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"))); + } else if (ARTIFACT_TYPE.TSK_OS_INFO.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID(), ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getLabel(), ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))})); + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType())), //TSK_EMAIL_TO - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType())), //TSK_EMAIL_FROM - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType())), //TSK_SUBJECT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), + ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getValueType())), //TSK_DATETIME_SENT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getValueType())), //TSK_DATETIME_RCVD - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), ATTRIBUTE_TYPE.TSK_PATH.getLabel(), ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType())), //TSK_PATH - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL_CC.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL_CC.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_CC.getValueType())), //TSK_EMAIL_CC - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getValueType())), //TSK_EMAIL_BCC - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId"), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), ATTRIBUTE_TYPE.TSK_MSG_ID.getLabel(), ATTRIBUTE_TYPE.TSK_MSG_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_MSG_ID.getValueType()))})); //TSK_MSG_ID + ATTRIBUTE_TYPE.TSK_MSG_ID.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - String pathToShow = mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID()); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), ATTRIBUTE_TYPE.TSK_PATH.getLabel(), ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType()))})); //TSK_PATH + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_GPS_ROUTE.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType())), //TSK_CATEGORY - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getValueType())), //TSK_GEO_LATITUDE_END - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getValueType())), //TSK_GEO_LONGITUDE_END - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getValueType())), //TSK_GEO_LATITUDE_START - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getValueType())), //TSK_GEO_LONGITUDE_START - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType())), //TSK_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType())), //TSK_LOCATION - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))}));//TSK_PROG_NAME + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType())), //TSK_SET_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))})); //TSK_PROG_NAME + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_PROG_RUN.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType())), //TSK_PROG_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType())), //TSK_ASSOCIATED_ARTIFACT - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType())), //TSK_DATETIME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count"), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID(), ATTRIBUTE_TYPE.TSK_COUNT.getLabel(), ATTRIBUTE_TYPE.TSK_COUNT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_COUNT.getValueType()))})); //TSK_COUNT + ATTRIBUTE_TYPE.TSK_COUNT.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_OS_ACCOUNT.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_USER_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_USER_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_NAME.getValueType())), //TSK_USER_NAME - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + ATTRIBUTE_TYPE.TSK_USER_NAME.getValueType()))); + + columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))})); //TSK_USER_ID + ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))); } else if (ARTIFACT_TYPE.TSK_REMOTE_DRIVE.getTypeID() == artifactTypeId) { /* orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); */ - columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{ - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), + columnHeaders = new ArrayList<>(Arrays.asList(new Column[]{ + new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID(), ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getLabel(), ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getDisplayName(), ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getValueType())), //TSK_LOCAL_PATH - new AttributeCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath"), + new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID(), ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getLabel(), ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getDisplayName(), ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getValueType()))})); //TSK_REMOTE_PATH } else { for (BlackboardAttribute.Type type : types) { - columnHeaders.add(new AttributeCell(type.getDisplayName(), type)); + columnHeaders.add(new AttributeColumn(type.getDisplayName(), type)); } columnHeaders.add(new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } @@ -2283,7 +2227,7 @@ class ReportGenerator { private List attributes; private HashSet tags; private List rowData = null; - private List columnHeaders = new ArrayList<>(); + private List columnHeaders = new ArrayList<>(); ArtifactData(BlackboardArtifact artifact, List attrs, HashSet tags) { this.artifact = artifact; @@ -2311,7 +2255,7 @@ class ReportGenerator { return artifact.getObjectID(); } - public void setColumnHeaders(List columnHeaders) { + public void setColumnHeaders(List columnHeaders) { this.columnHeaders = columnHeaders; } @@ -2336,7 +2280,7 @@ class ReportGenerator { } } } - //OS TODO: figure out a way to compare artifact data without messing up rowData + //OS TODO: figure out a way to compare artifact data without messing up cellData // If all attributes are the same, they're most likely duplicates so sort by artifact ID return ((Long) this.getArtifactID()).compareTo((Long) otherArtifactData.getArtifactID()); } @@ -2598,9 +2542,9 @@ class ReportGenerator { orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); } else { - for (Cell currCell : this.columnHeaders) { - String rowData = currCell.getRowData(this); - orderedRowData.add(rowData); + for (Column currCell : this.columnHeaders) { + String cellData = currCell.getCellData(this); + orderedRowData.add(cellData); } return orderedRowData; } @@ -2647,16 +2591,14 @@ class ReportGenerator { } - private interface Cell { + private interface Column { String getColumnHeader(); - BlackboardAttribute.Type getType(); - - String getRowData(ArtifactData artData); + String getCellData(ArtifactData artData); } - private class AttributeCell implements Cell { + private class AttributeColumn implements Column { private String columnHeader; private BlackboardAttribute.Type attributeType; @@ -2667,7 +2609,7 @@ class ReportGenerator { * @param columnHeader The header text of this cell's column * @param attributeType The attribute type associated with this column */ - AttributeCell(String columnHeader, BlackboardAttribute.Type attributeType) { + AttributeColumn(String columnHeader, BlackboardAttribute.Type attributeType) { this.columnHeader = Objects.requireNonNull(columnHeader); this.attributeType = attributeType; } @@ -2678,42 +2620,22 @@ class ReportGenerator { } @Override - public Type getType() { - return this.attributeType; - } - - @Override - public String getRowData(ArtifactData artData) { + public String getCellData(ArtifactData artData) { List attributes = artData.getAttributes(); for (BlackboardAttribute attribute : attributes) { if (attribute.getAttributeType().equals(this.attributeType)) { - switch (attribute.getValueType()) { - case STRING: - return attribute.getValueString(); - case INTEGER: - return attribute.getValueInt() + ""; - case DOUBLE: - return attribute.getValueDouble() + ""; - case LONG: - return attribute.getValueLong() + ""; - case DATETIME: - SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - return sdf.format(new java.util.Date((attribute.getValueLong() * 1000))); - case BYTE: - return attribute.getValueBytes().toString(); - - } + return attribute.getDisplayString(); } } return ""; } } - private class OtherCell implements Cell { + private class SourceFileColumn implements Column { private String columnHeader; - OtherCell(String columnHeader) { + SourceFileColumn(String columnHeader) { this.columnHeader = columnHeader; } @@ -2723,18 +2645,48 @@ class ReportGenerator { } @Override - public Type getType() { - return null; + public String getCellData(ArtifactData artData) { + return getFileUniquePath(artData.getObjectID()); + /*else if (this.columnHeader.equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))) { + return makeCommaSeparatedList(artData.getTags()); + } + return "";*/ + } + } + + private class TaggedResultsColumn implements Column { + + private String columnHeader; + + TaggedResultsColumn(String columnHeader) { + this.columnHeader = columnHeader; } @Override - public String getRowData(ArtifactData artData) { - if (this.columnHeader.equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))) { - return getFileUniquePath(artData.getObjectID()); - } else if (this.columnHeader.equals(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))) { - return makeCommaSeparatedList(artData.getTags()); - } - return ""; + public String getColumnHeader() { + return this.columnHeader; + } + + @Override + public String getCellData(ArtifactData artData) { + return makeCommaSeparatedList(artData.getTags()); + } + } + private class UnspecifiedColumn implements Column { + private String columnHeader; + + UnspecifiedColumn(String columnHeader) { + this.columnHeader = columnHeader; + } + + @Override + public String getColumnHeader() { + return columnHeader; + } + + @Override + public String getCellData(ArtifactData artData) { + throw new UnsupportedOperationException("Cannot get cell data of unspecified column"); } } } From 1f309781a9c1ae3d02b6012020e0691b9b2d720f Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Thu, 11 Feb 2016 11:43:21 -0500 Subject: [PATCH 11/86] Finished code cleanup --- .../autopsy/report/ReportGenerator.java | 1308 +++++++---------- 1 file changed, 561 insertions(+), 747 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 67fd29b3a2..e771289cfc 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -531,21 +531,21 @@ class ReportGenerator { attrTypeSet.add(attribute.getAttributeType()); } } - // Get the column headers appropriate for the artifact type. - List columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet); - if (columnHeaders.isEmpty()) { + // Get the columns appropriate for the artifact type. + List columns = getArtifactTableColumns(type.getTypeID(), attrTypeSet); + if (columns.isEmpty()) { continue; } for (ArtifactData artData : artifactList) { - artData.setColumnHeaders(columnHeaders); + artData.setColumns(columns); } // The most efficient way to sort all the Artifacts is to add them to a List, and then // sort that List based off a Comparator. Adding to a TreeMap/Set/List sorts the list // each time an element is added, which adds unnecessary overhead if we only need it sorted once. Collections.sort(artifactList); List columnHeaderNames = new ArrayList<>(); - for (Column currCell : columnHeaders) { - columnHeaderNames.add(currCell.getColumnHeader()); + for (Column currColumn : columns) { + columnHeaderNames.add(currColumn.getColumnHeader()); } for (TableReportModule module : tableModules) { @@ -1043,10 +1043,10 @@ class ReportGenerator { currentKeyword = keyword; for (TableReportModule module : tableModules) { module.addSetElement(currentKeyword); - List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID(), new HashSet()); + List columns = getArtifactTableColumns(ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID(), new HashSet()); List columnHeaderNames = new ArrayList<>(); - for (Column currCell : columnHeaders) { - columnHeaderNames.add(currCell.getColumnHeader()); + for (Column currColumn : columns) { + columnHeaderNames.add(currColumn.getColumnHeader()); } module.startTable(columnHeaderNames); } @@ -1180,10 +1180,10 @@ class ReportGenerator { currentSet = set; for (TableReportModule module : tableModules) { module.startSet(currentSet); - List columnHeaders = getArtifactTableColumnHeaders(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID(), new HashSet()); + List columns = getArtifactTableColumns(ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID(), new HashSet()); List columnHeaderNames = new ArrayList<>(); - for (Column currCell : columnHeaders) { - columnHeaderNames.add(currCell.getColumnHeader()); + for (Column currColumn : columns) { + columnHeaderNames.add(currColumn.getColumnHeader()); } module.startTable(columnHeaderNames); tableProgress.get(module).updateStatusLabel( @@ -1218,917 +1218,913 @@ class ReportGenerator { * * @return List row titles */ - private List getArtifactTableColumnHeaders(int artifactTypeId, Set types) { - ArrayList columnHeaders = new ArrayList<>(); + private List getArtifactTableColumns(int artifactTypeId, Set types) { + ArrayList columns = new ArrayList<>(); if (ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID() == artifactTypeId) { - columnHeaders.add( - new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), - ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), - ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_TITLE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); - - } else if (ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), ATTRIBUTE_TYPE.TSK_URL.getLabel(), ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), ATTRIBUTE_TYPE.TSK_URL.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), + ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), + ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_TITLE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + + } else if (ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID() == artifactTypeId) { + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(), ATTRIBUTE_TYPE.TSK_VALUE.getLabel(), ATTRIBUTE_TYPE.TSK_VALUE.getDisplayName(), ATTRIBUTE_TYPE.TSK_VALUE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), ATTRIBUTE_TYPE.TSK_URL.getLabel(), ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), ATTRIBUTE_TYPE.TSK_URL.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID(), ATTRIBUTE_TYPE.TSK_REFERRER.getLabel(), ATTRIBUTE_TYPE.TSK_REFERRER.getDisplayName(), ATTRIBUTE_TYPE.TSK_REFERRER.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID(), ATTRIBUTE_TYPE.TSK_TITLE.getLabel(), ATTRIBUTE_TYPE.TSK_TITLE.getDisplayName(), ATTRIBUTE_TYPE.TSK_TITLE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID(), ATTRIBUTE_TYPE.TSK_URL_DECODED.getLabel(), ATTRIBUTE_TYPE.TSK_URL_DECODED.getDisplayName(), ATTRIBUTE_TYPE.TSK_URL_DECODED.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), ATTRIBUTE_TYPE.TSK_PATH.getLabel(), ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), ATTRIBUTE_TYPE.TSK_URL.getLabel(), ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), ATTRIBUTE_TYPE.TSK_URL.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), ATTRIBUTE_TYPE.TSK_PATH.getLabel(), ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devMake"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devMake"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceId"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), ATTRIBUTE_TYPE.TSK_TEXT.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.domain"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID(), ATTRIBUTE_TYPE.TSK_DOMAIN.getLabel(), ATTRIBUTE_TYPE.TSK_DOMAIN.getDisplayName(), ATTRIBUTE_TYPE.TSK_DOMAIN.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTaken"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devManufacturer"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID(), ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getLabel(), ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getDisplayName(), ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.devModel"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID(), ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getLabel(), ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getDisplayName(), ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_CONTACT.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumHome"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumOffice"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumOffice"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumMobile"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumMobile"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.email"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.email"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL.getDisplayName(), ATTRIBUTE_TYPE.TSK_EMAIL.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_MESSAGE.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.msgType"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID(), ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getLabel(), ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getDisplayName(), ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.readStatus"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.readStatus"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID(), ATTRIBUTE_TYPE.TSK_READ_STATUS.getLabel(), ATTRIBUTE_TYPE.TSK_READ_STATUS.getDisplayName(), ATTRIBUTE_TYPE.TSK_READ_STATUS.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromEmail"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromEmail"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toEmail"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toEmail"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.subject"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.subject"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.text"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID(), ATTRIBUTE_TYPE.TSK_TEXT.getLabel(), ATTRIBUTE_TYPE.TSK_TEXT.getDisplayName(), ATTRIBUTE_TYPE.TSK_TEXT.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_CALLLOG.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.fromPhoneNum"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.toPhoneNum"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.direction"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID(), ATTRIBUTE_TYPE.TSK_DIRECTION.getLabel(), ATTRIBUTE_TYPE.TSK_DIRECTION.getDisplayName(), ATTRIBUTE_TYPE.TSK_DIRECTION.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.calendarEntryType"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID(), ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getLabel(), ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getDisplayName(), ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.startDateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_START.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_START.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME_START.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.endDateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.endDateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME_END.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME_END.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME_END.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.shortCut"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID(), ATTRIBUTE_TYPE.TSK_SHORTCUT.getLabel(), ATTRIBUTE_TYPE.TSK_SHORTCUT.getDisplayName(), ATTRIBUTE_TYPE.TSK_SHORTCUT.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID(), ATTRIBUTE_TYPE.TSK_NAME_PERSON.getLabel(), ATTRIBUTE_TYPE.TSK_NAME_PERSON.getDisplayName(), ATTRIBUTE_TYPE.TSK_NAME_PERSON.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.phoneNumber"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getLabel(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getDisplayName(), ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceName"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID(), ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getLabel(), ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getDisplayName(), ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.deviceAddress"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID(), ATTRIBUTE_TYPE.TSK_DEVICE_ID.getLabel(), ATTRIBUTE_TYPE.TSK_DEVICE_ID.getDisplayName(), ATTRIBUTE_TYPE.TSK_DEVICE_ID.getValueType()))); - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_GPS_TRACKPOINT.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } else if (ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.altitude"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.locationAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), - ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), - ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID(), - ATTRIBUTE_TYPE.TSK_PASSWORD.getLabel(), - ATTRIBUTE_TYPE.TSK_PASSWORD.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PASSWORD.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), - ATTRIBUTE_TYPE.TSK_URL.getLabel(), - ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), - ATTRIBUTE_TYPE.TSK_URL.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appPath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), - ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), - ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.replytoAddress"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mailServer"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_SERVER_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_SERVER_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SERVER_NAME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.category"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.password"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID(), + ATTRIBUTE_TYPE.TSK_PASSWORD.getLabel(), + ATTRIBUTE_TYPE.TSK_PASSWORD.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PASSWORD.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.personName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(), + ATTRIBUTE_TYPE.TSK_URL.getLabel(), + ATTRIBUTE_TYPE.TSK_URL.getDisplayName(), + ATTRIBUTE_TYPE.TSK_URL.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.appPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.description"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getLabel(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DESCRIPTION.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.replytoAddress"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mailServer"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SERVER_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SERVER_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SERVER_NAME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID() == artifactTypeId) { - columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"))); - - columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text"))); - - columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text"))); - - columnHeaders.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"))); - + columns.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"))); + + columns.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text"))); + + columns.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text"))); + + columns.add(new UnspecifiedColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"))); + } else if (ARTIFACT_TYPE.TSK_OS_INFO.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getLabel(), - ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - - columnHeaders.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.processorArchitecture.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getLabel(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osName.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.osInstallDate.text"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + } else if (ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_CC.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_CC.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_CC.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID(), - ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getLabel(), - ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getDisplayName(), - ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), - ATTRIBUTE_TYPE.TSK_MSG_ID.getLabel(), - ATTRIBUTE_TYPE.TSK_MSG_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_MSG_ID.getValueType()))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailTo"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_TO.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailFrom"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSubject"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getLabel(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SUBJECT.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeSent"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskDateTimeRcvd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailCc"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_CC.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskEmailBcc"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getLabel(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getDisplayName(), + ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskMsgId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_MSG_ID.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskInterestingFilesCategory"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PATH.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_GPS_ROUTE.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), - ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getLabel(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getDisplayName(), - ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskGpsRouteCategory"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getLabel(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getDisplayName(), + ATTRIBUTE_TYPE.TSK_CATEGORY.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeEnd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeEnd"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.latitudeStart"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.longitudeStart"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getLabel(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getDisplayName(), + ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.location"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCATION.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCATION.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCATION.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tskSetName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_SET_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_PROG_RUN.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), - ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), - ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID(), - ATTRIBUTE_TYPE.TSK_COUNT.getLabel(), - ATTRIBUTE_TYPE.TSK_COUNT.getDisplayName(), - ATTRIBUTE_TYPE.TSK_COUNT.getValueType()))); - + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_PROG_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.associatedArtifact"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getLabel(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID(), + ATTRIBUTE_TYPE.TSK_DATETIME.getLabel(), + ATTRIBUTE_TYPE.TSK_DATETIME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_DATETIME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.count"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID(), + ATTRIBUTE_TYPE.TSK_COUNT.getLabel(), + ATTRIBUTE_TYPE.TSK_COUNT.getDisplayName(), + ATTRIBUTE_TYPE.TSK_COUNT.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_OS_ACCOUNT.getTypeID() == artifactTypeId) { - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), - ATTRIBUTE_TYPE.TSK_USER_NAME.getLabel(), - ATTRIBUTE_TYPE.TSK_USER_NAME.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_NAME.getValueType()))); - - columnHeaders.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), - ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), - ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), - ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))); + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userName"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_NAME.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.userId"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID(), + ATTRIBUTE_TYPE.TSK_USER_ID.getLabel(), + ATTRIBUTE_TYPE.TSK_USER_ID.getDisplayName(), + ATTRIBUTE_TYPE.TSK_USER_ID.getValueType()))); + } else if (ARTIFACT_TYPE.TSK_REMOTE_DRIVE.getTypeID() == artifactTypeId) { - /* - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); - */ - columnHeaders = new ArrayList<>(Arrays.asList(new Column[]{ - new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getValueType())), //TSK_LOCAL_PATH - new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath"), - new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID(), - ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getLabel(), - ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getDisplayName(), - ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getValueType()))})); //TSK_REMOTE_PATH + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.localPath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getValueType()))); + + columns.add(new AttributeColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.remotePath"), + new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getLabel(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getDisplayName(), + ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getValueType()))); } else { for (BlackboardAttribute.Type type : types) { - columnHeaders.add(new AttributeColumn(type.getDisplayName(), type)); + columns.add(new AttributeColumn(type.getDisplayName(), type)); } - columnHeaders.add(new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); + columns.add(new SourceFileColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile"))); } - columnHeaders.add( - new OtherCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))); + columns.add( + new TaggedResultsColumn(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.tags"))); - return columnHeaders; + return columns; } /** @@ -2227,7 +2223,7 @@ class ReportGenerator { private List attributes; private HashSet tags; private List rowData = null; - private List columnHeaders = new ArrayList<>(); + private List columns = new ArrayList<>(); ArtifactData(BlackboardArtifact artifact, List attrs, HashSet tags) { this.artifact = artifact; @@ -2255,8 +2251,8 @@ class ReportGenerator { return artifact.getObjectID(); } - public void setColumnHeaders(List columnHeaders) { - this.columnHeaders = columnHeaders; + public void setColumns(List columns) { + this.columns = columns; } /** @@ -2270,7 +2266,7 @@ class ReportGenerator { */ @Override public int compareTo(ArtifactData otherArtifactData) { - if (columnHeaders != null) { + if (columns != null) { List thisRow = getRow(); List otherRow = otherArtifactData.getRow(); for (int i = 0; i < thisRow.size(); i++) { @@ -2327,154 +2323,7 @@ class ReportGenerator { private List getOrderedRowDataAsStrings() throws TskCoreException { Map mappedAttributes = getMappedAttributes(); List orderedRowData = new ArrayList<>(); - if (ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_VALUE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TITLE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL_DECODED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MAKE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_MODEL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_CONTACT.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_HOME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_OFFICE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_MOBILE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_MESSAGE.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MESSAGE_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_READ_STATUS.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_CALLLOG.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DIRECTION.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CALENDAR_ENTRY_TYPE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SHORTCUT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME_PERSON.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PHONE_NUMBER.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DEVICE_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_GPS_TRACKPOINT.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_ALTITUDE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PASSWORD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_URL.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DESCRIPTION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_REPLYTO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SERVER_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_TEXT.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID() == getArtifact().getArtifactTypeID()) { + if (ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID() == getArtifact().getArtifactTypeID()) { AbstractFile file = skCase.getAbstractFileById(getObjectID()); if (file != null) { orderedRowData.add(file.getName()); @@ -2493,21 +2342,6 @@ class ReportGenerator { orderedRowData.add(null); orderedRowData.add(null); } - } else if (ARTIFACT_TYPE.TSK_OS_INFO.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROCESSOR_ARCHITECTURE.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(getFileUniquePath(getObjectID())); - } else if (ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_TO.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_FROM.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SUBJECT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_CC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_EMAIL_BCC.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_MSG_ID.getTypeID())); } else if (ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getTypeID() == getArtifact().getArtifactTypeID()) { orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); @@ -2516,36 +2350,14 @@ class ReportGenerator { pathToShow = getFileUniquePath(getObjectID()); } orderedRowData.add(pathToShow); - } else if (ARTIFACT_TYPE.TSK_GPS_ROUTE.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_CATEGORY.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - } else if (ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - } else if (ARTIFACT_TYPE.TSK_PROG_RUN.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_COUNT.getTypeID())); - } else if (ARTIFACT_TYPE.TSK_OS_ACCOUNT.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID())); - } else if (ARTIFACT_TYPE.TSK_REMOTE_DRIVE.getTypeID() == getArtifact().getArtifactTypeID()) { - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID())); - orderedRowData.add(mappedAttributes.get(ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID())); } else { - for (Column currCell : this.columnHeaders) { - String cellData = currCell.getCellData(this); + for (Column currColumn : this.columns) { + String cellData = currColumn.getCellData(this); orderedRowData.add(cellData); } + /* + Short circuits so that the tag list is not added twice (the tag column is represented in the column list) + */ return orderedRowData; } orderedRowData.add(makeCommaSeparatedList(getTags())); @@ -2606,7 +2418,7 @@ class ReportGenerator { /** * Constructs an ArtifactCell * - * @param columnHeader The header text of this cell's column + * @param columnHeader The header text of this column * @param attributeType The attribute type associated with this column */ AttributeColumn(String columnHeader, BlackboardAttribute.Type attributeType) { @@ -2672,9 +2484,11 @@ class ReportGenerator { return makeCommaSeparatedList(artData.getTags()); } } + private class UnspecifiedColumn implements Column { + private String columnHeader; - + UnspecifiedColumn(String columnHeader) { this.columnHeader = columnHeader; } From 178c31c5d2ff05f5eaee33f1c83754db9589fe65 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Thu, 11 Feb 2016 12:44:26 -0500 Subject: [PATCH 12/86] Updated for deprecation --- .../DataContentViewerArtifact.java | 2 +- .../datamodel/ArtifactStringContent.java | 20 +++++++++---------- .../datamodel/BlackboardArtifactNode.java | 4 ++-- .../directorytree/DataResultFilterNode.java | 4 ++-- .../DirectoryTreeTopComponent.java | 6 +++--- .../autopsy/modules/stix/EvalAccountObj.java | 6 +++--- .../autopsy/modules/stix/EvalAddressObj.java | 2 +- .../autopsy/modules/stix/EvalDomainObj.java | 2 +- .../modules/stix/EvalNetworkShareObj.java | 4 ++-- .../autopsy/modules/stix/EvalURIObj.java | 2 +- .../modules/stix/EvalURLHistoryObj.java | 14 ++++++------- .../autopsy/report/ReportGenerator.java | 6 +----- .../sleuthkit/autopsy/report/ReportKML.java | 20 +++++++++---------- .../eventtype/ArtifactEventType.java | 17 ++++++++-------- 14 files changed, 52 insertions(+), 57 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java index 635a8b0e37..c7226483ef 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerArtifact.java @@ -488,7 +488,7 @@ public class DataContentViewerArtifact extends javax.swing.JPanel implements Dat // if the artifact has an ASSOCIATED ARTIFACT, then we display the associated artifact instead try { for (BlackboardAttribute attr : artifact.getAttributes()) { - if (attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID()) { + if (attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID()) { long assocArtifactId = attr.getValueLong(); int assocArtifactIndex = -1; for (BlackboardArtifact art : artifacts) { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java index 502a7828a4..8ca442aef7 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ArtifactStringContent.java @@ -72,19 +72,19 @@ public class ArtifactStringContent implements StringContent { // name column buffer.append(""); //NON-NLS - buffer.append(attr.getAttributeTypeDisplayName()); + buffer.append(attr.getAttributeType().getDisplayName()); buffer.append(""); //NON-NLS // value column buffer.append(""); //NON-NLS - if (attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID() - || attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID() - || attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID() - || attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_MODIFIED.getTypeID() - || attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID() - || attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID() - || attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID() - || attr.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID()) { + if (attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID() + || attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID() + || attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID() + || attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_MODIFIED.getTypeID() + || attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID() + || attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID() + || attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID() + || attr.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID()) { long epoch = attr.getValueLong(); String time = "0000-00-00 00:00:00"; if (epoch != 0) { @@ -93,7 +93,7 @@ public class ArtifactStringContent implements StringContent { } buffer.append(time); } else { - switch (attr.getValueType()) { + switch (attr.getAttributeType().getValueType()) { case STRING: String str = attr.getValueString(); str = str.replaceAll(" ", " "); //NON-NLS diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java index 198baaf923..25c05ef7fd 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java @@ -117,7 +117,7 @@ public class BlackboardArtifactNode extends DisplayableItemNode { if (artifact != null && artifact.getArtifactTypeID() == ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID()) { try { for (BlackboardAttribute attribute : artifact.getAttributes()) { - if (attribute.getAttributeTypeID() == ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID()) { + if (attribute.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID()) { BlackboardArtifact associatedArtifact = Case.getCurrentCase().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong()); if (associatedArtifact != null) { displayName = associatedArtifact.getDisplayName() + " Artifact"; // NON-NLS @@ -384,7 +384,7 @@ public class BlackboardArtifactNode extends DisplayableItemNode { String keyword = null; String regexp = null; for (BlackboardAttribute att : attributes) { - final int attributeTypeID = att.getAttributeTypeID(); + final int attributeTypeID = att.getAttributeType().getTypeID(); if (attributeTypeID == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { keyword = att.getValueString(); } else if (attributeTypeID == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD_REGEXP.getTypeID()) { diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java b/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java index e4c34ebce9..52b1954188 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java @@ -271,8 +271,8 @@ public class DataResultFilterNode extends FilterNode { Content c = null; try { for (BlackboardAttribute attr : art.getAttributes()) { - if (attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID()) { - switch (attr.getValueType()) { + if (attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PATH_ID.getTypeID()) { + switch (attr.getAttributeType().getValueType()) { case INTEGER: int i = attr.getValueInt(); if (i != -1) { diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java index cabc5cc3d4..57de4e760e 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java @@ -865,7 +865,7 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat String setName = null; List attributes = art.getAttributes(); for (BlackboardAttribute att : attributes) { - int typeId = att.getAttributeTypeID(); + int typeId = att.getAttributeType().getTypeID(); if (typeId == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID()) { setName = att.getValueString(); } @@ -882,7 +882,7 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat String keywordName = null; List attributes = art.getAttributes(); for (BlackboardAttribute att : attributes) { - int typeId = att.getAttributeTypeID(); + int typeId = att.getAttributeType().getTypeID(); if (typeId == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID()) { listName = att.getValueString(); } else if (typeId == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { @@ -909,7 +909,7 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat String setName = null; List attributes = art.getAttributes(); for (BlackboardAttribute att : attributes) { - int typeId = att.getAttributeTypeID(); + int typeId = att.getAttributeType().getTypeID(); if (typeId == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_SET_NAME.getTypeID()) { setName = att.getValueString(); } diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java index eaec84d5d1..d2a6b19551 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java +++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java @@ -115,15 +115,15 @@ class EvalAccountObj extends EvaluatableObject { boolean foundSIDMatch = false; for (BlackboardAttribute attr : art.getAttributes()) { - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PATH.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PATH.getTypeID()) && (haveHomeDir)) { foundHomeDirMatch = compareStringObject(userAccountObj.getHomeDirectory(), attr.getValueString()); } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID()) && (haveUsername)) { foundUsernameMatch = compareStringObject(userAccountObj.getUsername(), attr.getValueString()); } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_ID.getTypeID()) && (haveSID) && (winUserObj != null)) { foundSIDMatch = compareStringObject(winUserObj.getSecurityID(), attr.getValueString()); } diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java index 2df8ffe93e..faaac1dc4e 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java +++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java @@ -117,7 +117,7 @@ class EvalAddressObj extends EvaluatableObject { for (BlackboardArtifact art : artList) { for (BlackboardAttribute attr : art.getAttributes()) { - if (attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { + if (attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { if (compareStringObject(addressStr, obj.getAddressValue().getCondition(), obj.getAddressValue().getApplyCondition(), attr.getValueString())) { finalHits.add(art); diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java index 03a8041c1f..2dd6c7f680 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java +++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java @@ -80,7 +80,7 @@ class EvalDomainObj extends EvaluatableObject { for (BlackboardArtifact art : artList) { for (BlackboardAttribute attr : art.getAttributes()) { - if (attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { + if (attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { String url = attr.getValueString(); // Check whether the domain name is a substring of the URL (regardless diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java index 98c0d9d95a..843f19c293 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java +++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java @@ -98,11 +98,11 @@ class EvalNetworkShareObj extends EvaluatableObject { boolean foundLocalPathMatch = false; for (BlackboardAttribute attr : art.getAttributes()) { - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_REMOTE_PATH.getTypeID()) && (obj.getNetname() != null)) { foundRemotePathMatch = compareStringObject(obj.getNetname(), attr.getValueString()); } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_LOCAL_PATH.getTypeID()) && (obj.getLocalPath() != null)) { foundLocalPathMatch = compareStringObject(obj.getLocalPath(), attr.getValueString()); } diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java index d7ce6b8c7e..c5e598b034 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java +++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java @@ -108,7 +108,7 @@ class EvalURIObj extends EvaluatableObject { for (BlackboardArtifact art : artList) { for (BlackboardAttribute attr : art.getAttributes()) { - if (attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { + if (attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID()) { String modifiedAttrString = attr.getValueString(); if (modifiedAttrString != null) { diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java index 416784dd81..f6a6b67075 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java +++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java @@ -152,7 +152,7 @@ class EvalURLHistoryObj extends EvaluatableObject { boolean foundBrowserNameMatch = false; for (BlackboardAttribute attr : art.getAttributes()) { - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_URL.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_URL.getTypeID()) && (haveURL)) { if (entry.getURL().getValue() instanceof AnyURIObjectPropertyType) { foundURLMatch = compareStringObject(entry.getURL().getValue().getValue().toString(), @@ -163,12 +163,12 @@ class EvalURLHistoryObj extends EvaluatableObject { addWarning("Non-AnyURIObjectPropertyType found in URL value field"); //NON-NLS } } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID()) && (haveHostname)) { foundHostnameMatch = compareStringObject(entry.getHostname().getHostnameValue(), attr.getValueString()); } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_REFERRER.getTypeID()) && (haveReferrer)) { if (entry.getReferrerURL().getValue() instanceof AnyURIObjectPropertyType) { foundReferrerMatch = compareStringObject(entry.getReferrerURL().getValue().getValue().toString(), @@ -179,17 +179,17 @@ class EvalURLHistoryObj extends EvaluatableObject { addWarning("Non-AnyURIObjectPropertyType found in URL value field"); //NON-NLS } } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_TITLE.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_TITLE.getTypeID()) && (havePageTitle)) { foundPageTitleMatch = compareStringObject(entry.getPageTitle(), attr.getValueString()); } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_USER_NAME.getTypeID()) && (haveUserProfile)) { foundUserProfileMatch = compareStringObject(entry.getUserProfileName(), attr.getValueString()); } - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID()) && (haveBrowserName)) { foundBrowserNameMatch = compareStringObject(obj.getBrowserInformation().getName(), null, null, attr.getValueString()); @@ -240,7 +240,7 @@ class EvalURLHistoryObj extends EvaluatableObject { boolean foundBrowserNameMatch = false; for (BlackboardAttribute attr : art.getAttributes()) { - if ((attr.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID()) + if ((attr.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID()) && (haveBrowserName)) { foundBrowserNameMatch = compareStringObject(obj.getBrowserInformation().getName(), null, null, attr.getValueString()); diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index e771289cfc..edd1ce5570 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -2146,7 +2146,7 @@ class ReportGenerator { } for (BlackboardAttribute tempatt : attList) { String value = ""; - Integer type = tempatt.getAttributeTypeID(); + Integer type = tempatt.getAttributeType().getTypeID(); if (type.equals(ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID()) || type.equals(ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID()) || type.equals(ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID()) @@ -2284,7 +2284,6 @@ class ReportGenerator { /** * Get the values for each row in the table report. * - * @param columnHeaders The list of column headers that is used to find * the value types of custom artifacts * @return A list of string representing the data for this artifact. */ @@ -2312,9 +2311,6 @@ class ReportGenerator { * Get a list of Strings with all the row values for the Artifact in the * correct order to be written to the report. * - * @param columnHeaders The list of column headers that is used to find - * the value types of custom artifacts - * * @return List row values. Values could be null if attribute is * not defined in artifact * diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportKML.java b/Core/src/org/sleuthkit/autopsy/report/ReportKML.java index 117263bcd0..abdd7dee96 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportKML.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportKML.java @@ -113,12 +113,12 @@ class ReportKML implements GeneralReportModule { geoPath = ""; String extractedToPath; for (BlackboardAttribute attribute : artifact.getAttributes()) { - if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID()) //latitude + if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID()) //latitude { lat = attribute.getValueDouble(); } - if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID()) //longitude + if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID()) //longitude { lon = attribute.getValueDouble(); } @@ -150,11 +150,11 @@ class ReportKML implements GeneralReportModule { lat = 0; lon = 0; for (BlackboardAttribute attribute : artifact.getAttributes()) { - if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID()) //latitude + if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE.getTypeID()) //latitude { lat = attribute.getValueDouble(); } - if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID()) //longitude + if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE.getTypeID()) //longitude { lon = attribute.getValueDouble(); } @@ -172,22 +172,22 @@ class ReportKML implements GeneralReportModule { String name = ""; String location = ""; for (BlackboardAttribute attribute : artifact.getAttributes()) { - if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID()) //latitude + if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_START.getTypeID()) //latitude { lat = attribute.getValueDouble(); - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID()) //longitude + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE_END.getTypeID()) //longitude { destlat = attribute.getValueDouble(); - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID()) //longitude + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_START.getTypeID()) //longitude { lon = attribute.getValueDouble(); - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID()) //longitude + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE_END.getTypeID()) //longitude { destlon = attribute.getValueDouble(); - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_NAME.getTypeID()) //longitude + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_NAME.getTypeID()) //longitude { name = attribute.getValueString(); - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID()) //longitude + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_LOCATION.getTypeID()) //longitude { location = attribute.getValueString(); } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/ArtifactEventType.java b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/ArtifactEventType.java index d0029d305e..8467240937 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/ArtifactEventType.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/datamodel/eventtype/ArtifactEventType.java @@ -36,7 +36,7 @@ public interface ArtifactEventType extends EventType { /** * @return the Artifact type this event type is derived form, or null if - * there is no artifact type (eg file system events) + * there is no artifact type (eg file system events) */ public BlackboardArtifact.ARTIFACT_TYPE getArtifactType(); @@ -69,19 +69,19 @@ public interface ArtifactEventType extends EventType { /** * @return a function from an artifact and a map of its attributes, to a - * String to use as part of the full event description + * String to use as part of the full event description */ BiFunction, String> getFullExtractor(); /** * @return a function from an artifact and a map of its attributes, to a - * String to use as part of the medium event description + * String to use as part of the medium event description */ BiFunction, String> getMedExtractor(); /** * @return a function from an artifact and a map of its attributes, to a - * String to use as part of the short event description + * String to use as part of the short event description */ BiFunction, String> getShortExtractor(); @@ -135,13 +135,13 @@ public interface ArtifactEventType extends EventType { * {@link BlackboardAttribute}s to the event description. * * @param artf the {@link BlackboardArtifact} to derive the event - * description from + * description from * * @return an {@link AttributeEventDescription} derived from the given - * artifact, if the given artifact has no timestamp + * artifact, if the given artifact has no timestamp * * @throws TskCoreException is there is a problem accessing the blackboard - * data + * data */ static public AttributeEventDescription buildEventDescription(ArtifactEventType type, BlackboardArtifact artf) throws TskCoreException { //if we got passed an artifact that doesn't correspond to the type of the event, @@ -159,8 +159,7 @@ public interface ArtifactEventType extends EventType { List attributes = artf.getAttributes(); Map attrMap = new HashMap<>(); for (BlackboardAttribute attr : attributes) { - attrMap.put(BlackboardAttribute.ATTRIBUTE_TYPE.fromLabel(attr. - getAttributeTypeName()), attr); + attrMap.put(BlackboardAttribute.ATTRIBUTE_TYPE.fromLabel(attr.getAttributeType().getTypeName()), attr); } if (attrMap.get(type.getDateTimeAttrubuteType()) == null) { From 07c8d3169c0dc378db5492a10a51c6f450c7dda4 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Thu, 11 Feb 2016 16:48:11 -0500 Subject: [PATCH 13/86] Eliminated use of deprecated methods --- .../keywordsearch/KeywordCachedArtifact.java | 4 ++-- .../keywordsearch/SolrSearchService.java | 18 +++++++++--------- .../SearchEngineURLQueryAnalyzer.java | 8 ++++---- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordCachedArtifact.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordCachedArtifact.java index 93a83a25b2..68f85dd29a 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordCachedArtifact.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordCachedArtifact.java @@ -52,12 +52,12 @@ class KeywordCachedArtifact { } void add(BlackboardAttribute attribute) { - attributes.put(attribute.getAttributeTypeID(), attribute); + attributes.put(attribute.getAttributeType().getTypeID(), attribute); } void add(Collection attributes) { for (BlackboardAttribute attr : attributes) { - this.attributes.put(attr.getAttributeTypeID(), attr); + this.attributes.put(attr.getAttributeType().getTypeID(), attr); } } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java index e86ef70c52..d38d38b10b 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java @@ -94,7 +94,7 @@ public class SolrSearchService implements KeywordSearchService { StringBuilder artifactContents = new StringBuilder(); for (BlackboardAttribute attribute : artifact.getAttributes()) { - artifactContents.append(attribute.getAttributeTypeDisplayName()); + artifactContents.append(attribute.getAttributeType().getDisplayName()); artifactContents.append(" : "); // This is ugly since it will need to updated any time a new @@ -109,14 +109,14 @@ public class SolrSearchService implements KeywordSearchService { // the fact that BlackboardAttribute exists in Sleuthkit data model // while the utility to determine the timezone to use is in ContentUtils // in the Autopsy datamodel. - if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID() - || attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID() - || attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID() - || attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_MODIFIED.getTypeID() - || attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID() - || attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID() - || attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID() - || attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID()) { + if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME.getTypeID() + || attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID() + || attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_CREATED.getTypeID() + || attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_MODIFIED.getTypeID() + || attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_RCVD.getTypeID() + || attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_SENT.getTypeID() + || attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_START.getTypeID() + || attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_END.getTypeID()) { artifactContents.append(ContentUtils.getStringTime(attribute.getValueLong(), dataSource)); } else { diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java index 17736afd4b..879be0f161 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java @@ -309,7 +309,7 @@ class SearchEngineURLQueryAnalyzer extends Extract { Collection listAttributes = currentCase.getSleuthkitCase().getMatchingAttributes("WHERE artifact_id = " + artifact.getArtifactID()); //NON-NLS for (BlackboardAttribute attribute : listAttributes) { - if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_URL.getTypeID()) { + if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_URL.getTypeID()) { final String urlString = attribute.getValueString(); se = getSearchEngineFromUrl(urlString); if (se == null) { @@ -322,11 +322,11 @@ class SearchEngineURLQueryAnalyzer extends Extract { break; } - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID()) { + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME.getTypeID()) { browser = attribute.getValueString(); - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID()) { + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DOMAIN.getTypeID()) { searchEngineDomain = attribute.getValueString(); - } else if (attribute.getAttributeTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID()) { + } else if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED.getTypeID()) { last_accessed = attribute.getValueLong(); } } From 1465e1a529f6690dbeee73401d26e7cbd8635b72 Mon Sep 17 00:00:00 2001 From: jmillman Date: Fri, 12 Feb 2016 14:25:58 -0500 Subject: [PATCH 14/86] cleanup CategorizeAction, StatusBar, and ImageGalleryController, especially realted to background(db) tasks --- .../imagegallery/ImageGalleryController.java | 153 +++++++++--------- .../actions/CategorizeAction.java | 2 +- .../autopsy/imagegallery/gui/StatusBar.fxml | 43 +++-- .../autopsy/imagegallery/gui/StatusBar.java | 47 +----- 4 files changed, 109 insertions(+), 136 deletions(-) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java index 7fb7f9032f..1ac88ee221 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java @@ -128,8 +128,6 @@ public final class ImageGalleryController implements Executor { */ private final SimpleBooleanProperty listeningEnabled = new SimpleBooleanProperty(false); - private final ReadOnlyIntegerWrapper queueSizeProperty = new ReadOnlyIntegerWrapper(0); - private final ReadOnlyBooleanWrapper regroupDisabled = new ReadOnlyBooleanWrapper(false); @ThreadConfined(type = ThreadConfined.ThreadType.JFX) @@ -154,7 +152,6 @@ public final class ImageGalleryController implements Executor { private Node infoOverlay; private SleuthkitCase sleuthKitCase; -// private NavPanel navPanel; public ReadOnlyBooleanProperty getMetaDataCollapsed() { return metaDataCollapsed.getReadOnlyProperty(); @@ -176,7 +173,7 @@ public final class ImageGalleryController implements Executor { return historyManager.currentState(); } - public synchronized FileIDSelectionModel getSelectionModel() { + public FileIDSelectionModel getSelectionModel() { return selectionModel; } @@ -188,12 +185,16 @@ public final class ImageGalleryController implements Executor { return db; } - synchronized public void setListeningEnabled(boolean enabled) { - listeningEnabled.set(enabled); + public void setListeningEnabled(boolean enabled) { + synchronized (listeningEnabled) { + listeningEnabled.set(enabled); + } } - synchronized boolean isListeningEnabled() { - return listeningEnabled.get(); + boolean isListeningEnabled() { + synchronized (listeningEnabled) { + return listeningEnabled.get(); + } } @ThreadConfined(type = ThreadConfined.ThreadType.ANY) @@ -249,12 +250,14 @@ public final class ImageGalleryController implements Executor { checkForGroups(); }); - IngestManager.getInstance().addIngestModuleEventListener((PropertyChangeEvent evt) -> { - Platform.runLater(this::updateRegroupDisabled); - }); - IngestManager.getInstance().addIngestJobEventListener((PropertyChangeEvent evt) -> { - Platform.runLater(this::updateRegroupDisabled); - }); + IngestManager ingestManager = IngestManager.getInstance(); + PropertyChangeListener ingestEventHandler = + propertyChangeEvent -> Platform.runLater(this::updateRegroupDisabled); + + ingestManager.addIngestModuleEventListener(ingestEventHandler); + ingestManager.addIngestJobEventListener(ingestEventHandler); + + queueSizeProperty.addListener(obs -> this.updateRegroupDisabled()); } public ReadOnlyBooleanProperty getCanAdvance() { @@ -281,8 +284,9 @@ public final class ImageGalleryController implements Executor { return historyManager.retreat(); } + @ThreadConfined(type = ThreadConfined.ThreadType.JFX) private void updateRegroupDisabled() { - regroupDisabled.set(getFileUpdateQueueSizeProperty().get() > 0 || IngestManager.getInstance().isIngestRunning()); + regroupDisabled.set((queueSizeProperty.get() > 0) || IngestManager.getInstance().isIngestRunning()); } /** @@ -313,7 +317,7 @@ public final class ImageGalleryController implements Executor { new ProgressIndicator())); } - } else if (getFileUpdateQueueSizeProperty().get() > 0) { + } else if (queueSizeProperty.get() > 0) { replaceNotification(fullUIStackPane, new NoGroupsDialog(Bundle.ImageGalleryController_noGroupsDlg_msg3(), new ProgressIndicator())); @@ -358,20 +362,14 @@ public final class ImageGalleryController implements Executor { } } - private void restartWorker() { - if (dbWorkerThread != null) { + synchronized private DBWorkerThread restartWorker() { + if (dbWorkerThread == null) { + dbWorkerThread = new DBWorkerThread(this); + dbWorkerThread.start(); + } else { // Keep using the same worker thread if one exists - return; } - dbWorkerThread = new DBWorkerThread(); - - getFileUpdateQueueSizeProperty().addListener((Observable o) -> { - Platform.runLater(this::updateRegroupDisabled); - }); - - Thread th = new Thread(dbWorkerThread, "DB-Worker-Thread"); - th.setDaemon(false); // we want it to go away when it is done - th.start(); + return dbWorkerThread; } /** @@ -412,15 +410,16 @@ public final class ImageGalleryController implements Executor { setListeningEnabled(false); ThumbnailCache.getDefault().clearCache(); historyManager.clear(); + groupManager.clear(); tagsManager.clearFollowUpTagName(); tagsManager.unregisterListener(groupManager); tagsManager.unregisterListener(categoryManager); - dbWorkerThread.cancelAllTasks(); + dbWorkerThread.cancel(); dbWorkerThread = null; - restartWorker(); + dbWorkerThread = restartWorker(); Toolbar.getDefault(this).reset(); - groupManager.clear(); + if (db != null) { db.closeDBCon(); } @@ -432,11 +431,9 @@ public final class ImageGalleryController implements Executor { * * @param innerTask */ - public void queueDBWorkerTask(InnerTask innerTask) { - - // @@@ We could make a lock for the worker thread + public synchronized void queueDBWorkerTask(BackgroundTask innerTask) { if (dbWorkerThread == null) { - restartWorker(); + dbWorkerThread = restartWorker(); } dbWorkerThread.addTask(innerTask); } @@ -456,10 +453,6 @@ public final class ImageGalleryController implements Executor { Platform.runLater(this::checkForGroups); } - public ReadOnlyIntegerProperty getFileUpdateQueueSizeProperty() { - return queueSizeProperty.getReadOnlyProperty(); - } - public ReadOnlyDoubleProperty regroupProgress() { return groupManager.regroupProgress(); } @@ -497,29 +490,43 @@ public final class ImageGalleryController implements Executor { return undoManager; } - // @@@ REVIEW IF THIS SHOLD BE STATIC... - //TODO: concept seems like the controller deal with how much work to do at a given time + public ReadOnlyIntegerProperty getDBTasksQueueSizeProperty() { + return queueSizeProperty.getReadOnlyProperty(); + } + private final ReadOnlyIntegerWrapper queueSizeProperty = new ReadOnlyIntegerWrapper(0); + // @@@ review this class for synchronization issues (i.e. reset and cancel being called, add, etc.) - private class DBWorkerThread implements Runnable { + static private class DBWorkerThread extends Thread implements Cancellable { + + private final ImageGalleryController controller; + + DBWorkerThread(ImageGalleryController controller) { + super("DB-Worker-Thread"); + setDaemon(false); + this.controller = controller; + } // true if the process was requested to stop. Currently no way to reset it private volatile boolean cancelled = false; // list of tasks to run - private final BlockingQueue workQueue = new LinkedBlockingQueue<>(); + private final BlockingQueue workQueue = new LinkedBlockingQueue<>(); /** * Cancel all of the queued up tasks and the currently scheduled task. * Note that after you cancel, you cannot submit new jobs to this * thread. */ - public void cancelAllTasks() { + @Override + public boolean cancel() { cancelled = true; - for (InnerTask it : workQueue) { + for (BackgroundTask it : workQueue) { it.cancel(); } workQueue.clear(); - queueSizeProperty.set(workQueue.size()); + int size = workQueue.size(); + Platform.runLater(() -> controller.queueSizeProperty.set(size)); + return true; } /** @@ -527,11 +534,10 @@ public final class ImageGalleryController implements Executor { * * @param it */ - public void addTask(InnerTask it) { + public void addTask(BackgroundTask it) { workQueue.add(it); - Platform.runLater(() -> { - queueSizeProperty.set(workQueue.size()); - }); + int size = workQueue.size(); + Platform.runLater(() -> controller.queueSizeProperty.set(size)); } @Override @@ -539,19 +545,17 @@ public final class ImageGalleryController implements Executor { // nearly infinite loop waiting for tasks while (true) { - if (cancelled) { + if (cancelled || isInterrupted()) { return; } try { - InnerTask it = workQueue.take(); + BackgroundTask it = workQueue.take(); if (it.isCancelled() == false) { it.run(); } - - Platform.runLater(() -> { - queueSizeProperty.set(workQueue.size()); - }); + int size = workQueue.size(); + Platform.runLater(() -> controller.queueSizeProperty.set(size)); } catch (InterruptedException ex) { LOGGER.log(Level.SEVERE, "Failed to run DB worker thread", ex); //NON-NLS @@ -569,7 +573,14 @@ public final class ImageGalleryController implements Executor { */ @NbBundle.Messages({"ImageGalleryController.InnerTask.progress.name=progress", "ImageGalleryController.InnerTask.message.name=status"}) - static public abstract class InnerTask implements Runnable, Cancellable { + static public abstract class BackgroundTask implements Runnable, Cancellable { + + private final SimpleObjectProperty state = new SimpleObjectProperty<>(Worker.State.READY); + private final SimpleDoubleProperty progress = new SimpleDoubleProperty(this, Bundle.ImageGalleryController_InnerTask_progress_name()); + private final SimpleStringProperty message = new SimpleStringProperty(this, Bundle.ImageGalleryController_InnerTask_message_name()); + + protected BackgroundTask() { + } public double getProgress() { return progress.get(); @@ -586,9 +597,6 @@ public final class ImageGalleryController implements Executor { public final void updateMessage(String Status) { this.message.set(Status); } - private final SimpleObjectProperty state = new SimpleObjectProperty<>(Worker.State.READY); - private final SimpleDoubleProperty progress = new SimpleDoubleProperty(this, Bundle.ImageGalleryController_InnerTask_progress_name()); - private final SimpleStringProperty message = new SimpleStringProperty(this, Bundle.ImageGalleryController_InnerTask_message_name()); public SimpleDoubleProperty progressProperty() { return progress; @@ -602,24 +610,21 @@ public final class ImageGalleryController implements Executor { return state.get(); } - protected void updateState(Worker.State newState) { - state.set(newState); - } - public ReadOnlyObjectProperty stateProperty() { return new ReadOnlyObjectWrapper<>(state.get()); } - protected InnerTask() { - } - @Override - synchronized public boolean cancel() { + public synchronized boolean cancel() { updateState(Worker.State.CANCELLED); return true; } - synchronized protected boolean isCancelled() { + protected void updateState(Worker.State newState) { + state.set(newState); + } + + protected synchronized boolean isCancelled() { return getState() == Worker.State.CANCELLED; } } @@ -627,7 +632,7 @@ public final class ImageGalleryController implements Executor { /** * Abstract base class for tasks associated with a file in the database */ - static public abstract class FileTask extends InnerTask { + static public abstract class FileTask extends BackgroundTask { private final AbstractFile file; private final DrawableDB taskDB; @@ -704,7 +709,7 @@ public final class ImageGalleryController implements Executor { @NbBundle.Messages({"BulkTask.committingDb.status=commiting image/video database", "BulkTask.stopCopy.status=Stopping copy to drawable db task.", "BulkTask.errPopulating.errMsg=There was an error populating Image Gallery database."}) - abstract static private class BulkTransferTask extends InnerTask { + abstract static private class BulkTransferTask extends BackgroundTask { static private final String FILE_EXTENSION_CLAUSE = "(name LIKE '%." //NON-NLS @@ -805,10 +810,11 @@ public final class ImageGalleryController implements Executor { * adds them to the Drawable DB. Uses the presence of a mimetype as an * approximation to 'analyzed'. */ + @NbBundle.Messages({"CopyAnalyzedFiles.committingDb.status=commiting image/video database", + "CopyAnalyzedFiles.stopCopy.status=Stopping copy to drawable db task.", + "CopyAnalyzedFiles.errPopulating.errMsg=There was an error populating Image Gallery database."}) static private class CopyAnalyzedFiles extends BulkTransferTask { - private static final Logger LOGGER = Logger.getLogger(CopyAnalyzedFiles.class.getName()); - CopyAnalyzedFiles(ImageGalleryController controller, DrawableDB taskDB, SleuthkitCase tskCase) { super(controller, taskDB, tskCase); } @@ -866,6 +872,7 @@ public final class ImageGalleryController implements Executor { * TODO: create methods to simplify progress value/text updates to both * netbeans and ImageGallery progress/status */ + @NbBundle.Messages({"PrePopulateDataSourceFiles.committingDb.status=commiting image/video database"}) static private class PrePopulateDataSourceFiles extends BulkTransferTask { private static final Logger LOGGER = Logger.getLogger(PrePopulateDataSourceFiles.class.getName()); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java index ab59df29e4..77d3f2c0f9 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java @@ -112,7 +112,7 @@ public class CategorizeAction extends Action { @NbBundle.Messages({"# {0} - fileID number", "CategorizeTask.errorUnable.msg=Unable to categorize {0}.", "CategorizeTask.errorUnable.title=Categorizing Error"}) - private class CategorizeTask extends ImageGalleryController.InnerTask { + private class CategorizeTask extends ImageGalleryController.BackgroundTask { private final Set fileIDs; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.fxml b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.fxml index 03d26395ce..b02e2e2496 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.fxml +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/StatusBar.fxml @@ -1,16 +1,20 @@ - - - - - + + + + + + + + + - + - + @@ -18,7 +22,10 @@ + + + + @@ -27,10 +34,13 @@ - @@ -42,19 +52,6 @@ -
- - - - - -