From c43fa27c7d64183ad99528c7191c670200ef57b7 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Thu, 28 Jan 2016 16:57:35 -0500 Subject: [PATCH 001/145] 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 002/145] 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 003/145] 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 004/145] 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 005/145] 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 006/145] 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 007/145] 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 008/145] 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 009/145] 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 010/145] 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 011/145] 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 012/145] 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 013/145] 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 8b1528277d8bd575005d90932cd153799c4e1d8d Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Tue, 16 Feb 2016 12:43:56 -0500 Subject: [PATCH 014/145] Made check of known mandatory --- .../filetypeid/FileTypeIdIngestModule.java | 14 ++----- .../filetypeid/FileTypeIdModuleFactory.java | 38 +------------------ 2 files changed, 6 insertions(+), 46 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java index b3c09dfb81..8433b489b1 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java @@ -29,6 +29,7 @@ import org.sleuthkit.autopsy.ingest.IngestServices; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.TskData.FileKnown; import org.sleuthkit.autopsy.ingest.IngestModule.ProcessResult; +import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; import org.sleuthkit.autopsy.ingest.IngestModuleReferenceCounter; /** @@ -38,7 +39,7 @@ import org.sleuthkit.autopsy.ingest.IngestModuleReferenceCounter; public class FileTypeIdIngestModule implements FileIngestModule { private static final Logger logger = Logger.getLogger(FileTypeIdIngestModule.class.getName()); - private final FileTypeIdModuleSettings settings; + private final IngestModuleIngestJobSettings settings; private long jobId; private static final HashMap totalsForIngestJobs = new HashMap<>(); private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter(); @@ -69,7 +70,7 @@ public class FileTypeIdIngestModule implements FileIngestModule { * * @param settings The ingest module settings. */ - FileTypeIdIngestModule(FileTypeIdModuleSettings settings) { + FileTypeIdIngestModule(IngestModuleIngestJobSettings settings) { this.settings = settings; } @@ -93,13 +94,6 @@ public class FileTypeIdIngestModule implements FileIngestModule { @Override public ProcessResult process(AbstractFile file) { - /** - * Skip known files if configured to do so. - */ - if (settings.skipKnownFiles() && (file.getKnown() == FileKnown.KNOWN)) { - return ProcessResult.OK; - } - /** * Attempt to detect the file type. Do it within an exception firewall, * so that any issues with reading file content or complaints from tika @@ -174,4 +168,4 @@ public class FileTypeIdIngestModule implements FileIngestModule { long numFiles = 0; } -} +} \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdModuleFactory.java b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdModuleFactory.java index 38823ca03d..07adc3c2a1 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdModuleFactory.java +++ b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdModuleFactory.java @@ -92,35 +92,6 @@ public class FileTypeIdModuleFactory extends IngestModuleFactoryAdapter { return globalSettingsPanel; } - /** - * @inheritDoc - */ - @Override - public IngestModuleIngestJobSettings getDefaultIngestJobSettings() { - return new FileTypeIdModuleSettings(); - } - - /** - * @inheritDoc - */ - @Override - public boolean hasIngestJobSettingsPanel() { - return true; - } - - /** - * @inheritDoc - */ - @Override - public IngestModuleIngestJobSettingsPanel getIngestJobSettingsPanel(IngestModuleIngestJobSettings settings) { - assert settings instanceof FileTypeIdModuleSettings; - if (!(settings instanceof FileTypeIdModuleSettings)) { - throw new IllegalArgumentException(NbBundle.getMessage(this.getClass(), - "FileTypeIdModuleFactory.getIngestJobSettingsPanel.exception.msg")); - } - return new FileTypeIdIngestJobSettingsPanel((FileTypeIdModuleSettings) settings); - } - /** * @inheritDoc */ @@ -134,11 +105,6 @@ public class FileTypeIdModuleFactory extends IngestModuleFactoryAdapter { */ @Override public FileIngestModule createFileIngestModule(IngestModuleIngestJobSettings settings) { - assert settings instanceof FileTypeIdModuleSettings; - if (!(settings instanceof FileTypeIdModuleSettings)) { - throw new IllegalArgumentException( - NbBundle.getMessage(this.getClass(), "FileTypeIdModuleFactory.createFileIngestModule.exception.msg")); - } - return new FileTypeIdIngestModule((FileTypeIdModuleSettings) settings); + return new FileTypeIdIngestModule(settings); } -} +} \ No newline at end of file From dc65fed3e92b7e8ebb46401a0f5c2eb8f06feb99 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Tue, 16 Feb 2016 13:20:34 -0500 Subject: [PATCH 015/145] Added exceptions to ingest module exceptions --- .../EmbeddedFileExtractorIngestModule.java | 4 ++-- .../embeddedfileextractor/SevenZipExtractor.java | 2 +- .../modules/exif/ExifParserFileIngestModule.java | 2 +- .../modules/filetypeid/FileTypeIdIngestModule.java | 2 +- .../photoreccarver/PhotoRecCarverFileIngestModule.java | 4 ++-- .../keywordsearch/KeywordSearchIngestModule.java | 10 +++++----- .../recentactivity/SearchEngineURLQueryAnalyzer.java | 8 ++++---- .../autopsy/scalpel/ScalpelCarverIngestModule.java | 2 +- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java index 7e0d220f11..b7f6529786 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java @@ -79,7 +79,7 @@ public final class EmbeddedFileExtractorIngestModule implements FileIngestModule } catch (SecurityException ex) { logger.log(Level.SEVERE, "Error initializing output dir: " + moduleDirAbsolute, ex); //NON-NLS services.postMessage(IngestMessage.createErrorMessage(EmbeddedFileExtractorModuleFactory.getModuleName(), "Error initializing", "Error initializing output dir: " + moduleDirAbsolute)); //NON-NLS - throw new IngestModuleException(ex.getMessage()); + throw new IngestModuleException(ex.getMessage(), ex); } } @@ -87,7 +87,7 @@ public final class EmbeddedFileExtractorIngestModule implements FileIngestModule try { fileTypeDetector = new FileTypeDetector(); } catch (FileTypeDetector.FileTypeDetectorInitException ex) { - throw new IngestModuleException(ex.getMessage()); + throw new IngestModuleException(ex.getMessage(), ex); } // initialize the extraction modules. diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java index 44052df224..881e7c5fa4 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java +++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java @@ -133,7 +133,7 @@ class SevenZipExtractor { String details = NbBundle.getMessage(SevenZipExtractor.class, "EmbeddedFileExtractorIngestModule.ArchiveExtractor.init.errCantInitLib", e.getMessage()); services.postMessage(IngestMessage.createErrorMessage(EmbeddedFileExtractorModuleFactory.getModuleName(), msg, details)); - throw new IngestModuleException(e.getMessage()); + throw new IngestModuleException(e.getMessage(), e); } } this.context = context; diff --git a/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java index de946ffd0f..b2ce0beca2 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java @@ -91,7 +91,7 @@ public final class ExifParserFileIngestModule implements FileIngestModule { try { fileTypeDetector = new FileTypeDetector(); } catch (FileTypeDetector.FileTypeDetectorInitException ex) { - throw new IngestModuleException(NbBundle.getMessage(this.getClass(), "ExifParserFileIngestModule.startUp.fileTypeDetectorInitializationException.msg")); + throw new IngestModuleException(NbBundle.getMessage(this.getClass(), "ExifParserFileIngestModule.startUp.fileTypeDetectorInitializationException.msg"), ex); } } diff --git a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java index b3c09dfb81..956ddef89e 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java @@ -83,7 +83,7 @@ public class FileTypeIdIngestModule implements FileIngestModule { try { fileTypeDetector = new FileTypeDetector(); } catch (FileTypeDetector.FileTypeDetectorInitException ex) { - throw new IngestModuleException(NbBundle.getMessage(this.getClass(), "FileTypeIdIngestModule.startUp.fileTypeDetectorInitializationException.msg")); + throw new IngestModuleException(NbBundle.getMessage(this.getClass(), "FileTypeIdIngestModule.startUp.fileTypeDetectorInitializationException.msg"), ex); } } diff --git a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java index f848838d02..16ae16e4bd 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java @@ -152,7 +152,7 @@ final class PhotoRecCarverFileIngestModule implements FileIngestModule { // Initialize job totals initTotalsForIngestJob(jobId); } catch (SecurityException | IOException | UnsupportedOperationException ex) { - throw new IngestModule.IngestModuleException(NbBundle.getMessage(PhotoRecCarverFileIngestModule.class, "cannotCreateOutputDir.message", ex.getLocalizedMessage())); + throw new IngestModule.IngestModuleException(NbBundle.getMessage(PhotoRecCarverFileIngestModule.class, "cannotCreateOutputDir.message", ex.getLocalizedMessage()), ex); } } } @@ -396,7 +396,7 @@ final class PhotoRecCarverFileIngestModule implements FileIngestModule { } catch (FileAlreadyExistsException ex) { // No worries. } catch (IOException | SecurityException | UnsupportedOperationException ex) { - throw new IngestModule.IngestModuleException(NbBundle.getMessage(PhotoRecCarverFileIngestModule.class, "cannotCreateOutputDir.message", ex.getLocalizedMessage())); + throw new IngestModule.IngestModuleException(NbBundle.getMessage(PhotoRecCarverFileIngestModule.class, "cannotCreateOutputDir.message", ex.getLocalizedMessage()), ex); } return path; } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java index bb86774bbe..7d5ee1b5a4 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java @@ -142,7 +142,7 @@ public final class KeywordSearchIngestModule implements FileIngestModule { try { fileTypeDetector = new FileTypeDetector(); } catch (FileTypeDetector.FileTypeDetectorInitException ex) { - throw new IngestModuleException(NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.startUp.fileTypeDetectorInitializationException.msg")); + throw new IngestModuleException(NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.startUp.fileTypeDetectorInitializationException.msg"), ex); } ingester = Server.getIngester(); this.context = context; @@ -162,7 +162,7 @@ public final class KeywordSearchIngestModule implements FileIngestModule { String details = NbBundle.getMessage(this.getClass(), "SolrConnectionCheck.Port"); logger.log(Level.SEVERE, "{0}: {1} {2}", new Object[]{msg, details, ex.toString()}); services.postMessage(IngestMessage.createErrorMessage(KeywordSearchModuleFactory.getModuleName(), msg, details)); - throw new IngestModuleException(msg); + throw new IngestModuleException(msg, ex); } try { kwsService.tryConnect(UserPreferences.getIndexingServerHost(), port); @@ -171,7 +171,7 @@ public final class KeywordSearchIngestModule implements FileIngestModule { String details = ex.getMessage(); logger.log(Level.SEVERE, "{0}: {1} {2}", new Object[]{msg, details, ex.toString()}); services.postMessage(IngestMessage.createErrorMessage(KeywordSearchModuleFactory.getModuleName(), msg, details)); - throw new IngestModuleException(msg); + throw new IngestModuleException(msg, ex); } } else { // for single-user cases need to verify connection to local SOLR service @@ -189,7 +189,7 @@ public final class KeywordSearchIngestModule implements FileIngestModule { String msg = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.badInitMsg"); String details = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.tryStopSolrMsg", msg); services.postMessage(IngestMessage.createErrorMessage(KeywordSearchModuleFactory.getModuleName(), msg, details)); - throw new IngestModuleException(msg); + throw new IngestModuleException(msg, ex); } try { // make an actual query to verify that server is responding @@ -198,7 +198,7 @@ public final class KeywordSearchIngestModule implements FileIngestModule { } catch (KeywordSearchModuleException | NoOpenCoreException ex) { throw new IngestModuleException( NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.exception.errConnToSolr.msg", - ex.getMessage())); + ex.getMessage()), ex); } // check if this job has any searchable keywords diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java index 17736afd4b..def7610d11 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/SearchEngineURLQueryAnalyzer.java @@ -161,11 +161,11 @@ class SearchEngineURLQueryAnalyzer extends Extract { } } catch (IOException e) { - throw new IngestModuleException("Was not able to load SEUQAMappings.xml: " + e.getLocalizedMessage()); //NON-NLS + throw new IngestModuleException("Was not able to load SEUQAMappings.xml: " + e.getLocalizedMessage(), e); //NON-NLS } catch (ParserConfigurationException pce) { - throw new IngestModuleException("Unable to build XML parser: " + pce.getLocalizedMessage()); //NON-NLS + throw new IngestModuleException("Unable to build XML parser: " + pce.getLocalizedMessage(), pce); //NON-NLS } catch (SAXException sxe) { - throw new IngestModuleException("Unable to parse XML file: " + sxe.getLocalizedMessage()); //NON-NLS + throw new IngestModuleException("Unable to parse XML file: " + sxe.getLocalizedMessage(), sxe); //NON-NLS } NodeList nlist = xmlinput.getElementsByTagName("SearchEngine"); //NON-NLS @@ -394,7 +394,7 @@ class SearchEngineURLQueryAnalyzer extends Extract { String message = NbBundle .getMessage(this.getClass(), "SearchEngineURLQueryAnalyzer.init.exception.msg", XMLFILE); logger.log(Level.SEVERE, message, e); - throw new IngestModuleException(message); + throw new IngestModuleException(message, e); } loadConfigFile(); diff --git a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java index d6318a02de..2c7a140567 100644 --- a/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java +++ b/ScalpelCarver/src/org/sleuthkit/autopsy/scalpel/ScalpelCarverIngestModule.java @@ -106,7 +106,7 @@ class ScalpelCarverIngestModule implements FileIngestModule { } catch (IOException ex) { String message = NbBundle.getMessage(this.getClass(), "ScalpelCarverIngestModule.startUp.exception.msg4"); logger.log(Level.SEVERE, message, ex); - throw new IngestModuleException(message); + throw new IngestModuleException(message, ex); } initialized = true; From 2654cf4c3025b7b634cd1559953322fb64fee226 Mon Sep 17 00:00:00 2001 From: Richard Cordovano Date: Tue, 16 Feb 2016 17:04:58 -0500 Subject: [PATCH 016/145] Temporarily change ImageGallery,DrawableFile to use deprectaed AbstractFile ctor --- .../autopsy/imagegallery/datamodel/DrawableFile.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java index 979429b880..6b47245334 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2013-15 Basis Technology Corp. + * Copyright 2011-2016 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -122,8 +122,7 @@ public abstract class DrawableFile extends AbstractFile file.getGid(), file.getMd5Hash(), file.getKnown(), - file.getParentPath(), - file.getMIMEType()); + file.getParentPath()); this.analyzed = new SimpleBooleanProperty(analyzed); this.file = file; } From 0d9f9186acaf8843c46b91794b3883c4026a762b Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Wed, 17 Feb 2016 10:17:10 -0500 Subject: [PATCH 017/145] Made file type detector run on undetected files --- .../FileExtMismatchIngestModule.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java index e22e73ae26..2bb902d68f 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2014 Basis Technology Corp. + * Copyright 2011-2016 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,13 +18,11 @@ */ package org.sleuthkit.autopsy.modules.fileextmismatch; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.logging.Level; -import org.openide.util.Exceptions; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.services.Blackboard; @@ -40,7 +38,6 @@ import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE; -import org.sleuthkit.datamodel.BlackboardAttribute; import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskData; import org.sleuthkit.datamodel.TskException; @@ -58,6 +55,7 @@ public class FileExtMismatchIngestModule implements FileIngestModule { private static final HashMap totalsForIngestJobs = new HashMap<>(); private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter(); private static Blackboard blackboard; + private FileTypeDetector detector; private static class IngestJobTotals { @@ -94,6 +92,11 @@ public class FileExtMismatchIngestModule implements FileIngestModule { FileExtMismatchXML xmlLoader = FileExtMismatchXML.getDefault(); SigTypeToExtMap = xmlLoader.load(); + try { + this.detector = new FileTypeDetector(); + } catch (FileTypeDetector.FileTypeDetectorInitException ex) { + throw new IngestModuleException("Could not create file extension mismatch module.", ex); + } } @@ -157,7 +160,7 @@ public class FileExtMismatchIngestModule implements FileIngestModule { if (settings.skipFilesWithNoExtension() && currActualExt.isEmpty()) { return false; } - String currActualSigType = abstractFile.getMIMEType(); + String currActualSigType = detector.getFileType(abstractFile); if (currActualSigType == null) { return false; } From a4f3377a6413f2b3507153a0ef4889d52b7d4842 Mon Sep 17 00:00:00 2001 From: jmillman Date: Wed, 17 Feb 2016 13:05:15 -0500 Subject: [PATCH 018/145] refactor DrawableFile so it no longer extends AbstractFile remove type paramater from DrawableFile since it was not adding anything usefull and cluttered up the code add getters that delegate to private AbastractFile instance refactor methods on DrawableTagsManager to deal with Content or DrawableFile objects remove unneeded invocation of ImageIO.scanForPlugins() in ImageFile --- .../imagegallery/ImageGalleryController.java | 4 +- .../autopsy/imagegallery/ThumbnailCache.java | 10 +- .../actions/AddDrawableTagAction.java | 5 +- .../actions/CategorizeAction.java | 5 +- .../actions/DeleteFollowUpTagAction.java | 4 +- .../actions/OpenExternalViewerAction.java | 2 +- .../datamodel/CategoryManager.java | 2 +- .../datamodel/DrawableAttribute.java | 10 +- .../imagegallery/datamodel/DrawableDB.java | 16 +- .../imagegallery/datamodel/DrawableFile.java | 160 +++++++++--------- .../datamodel/DrawableTagsManager.java | 26 ++- .../imagegallery/datamodel/ImageFile.java | 10 +- .../imagegallery/datamodel/VideoFile.java | 4 +- .../datamodel/grouping/GroupManager.java | 4 +- .../autopsy/imagegallery/gui/VideoPlayer.java | 4 +- .../gui/drawableviews/DrawableTile.java | 6 +- .../gui/drawableviews/DrawableTileBase.java | 2 +- .../gui/drawableviews/DrawableUIBase.java | 14 +- .../gui/drawableviews/DrawableView.java | 2 +- .../gui/drawableviews/GroupPane.java | 2 +- .../gui/drawableviews/MetaDataPane.java | 2 +- .../gui/drawableviews/SlideShowView.java | 19 +-- 22 files changed, 156 insertions(+), 157 deletions(-) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java index c3aedf6dcc..568b28c003 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java @@ -441,7 +441,7 @@ public final class ImageGalleryController implements Executor { } @Nullable - synchronized public DrawableFile getFileFromId(Long fileID) throws TskCoreException { + synchronized public DrawableFile getFileFromId(Long fileID) throws TskCoreException { if (Objects.isNull(db)) { LOGGER.log(Level.WARNING, "Could not get file from id, no DB set. The case is probably closed."); //NON-NLS return null; @@ -662,7 +662,7 @@ public final class ImageGalleryController implements Executor { @Override public void run() { try { - DrawableFile drawableFile = DrawableFile.create(getFile(), true, getTaskDB().isVideoFile(getFile())); + DrawableFile drawableFile = DrawableFile.create(getFile(), true, false); getTaskDB().updateFile(drawableFile); } catch (NullPointerException ex) { // This is one of the places where we get many errors if the case is closed during processing. diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java index a0c962c775..dfd60e5d13 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ThumbnailCache.java @@ -97,7 +97,7 @@ public enum ThumbnailCache { * could not be generated */ @Nullable - public Image get(DrawableFile file) { + public Image get(DrawableFile file) { try { return cache.get(file.getId(), () -> load(file)); } catch (UncheckedExecutionException | CacheLoader.InvalidCacheLoadException | ExecutionException ex) { @@ -124,9 +124,9 @@ public enum ThumbnailCache { * * @return an (possibly empty) optional containing a thumbnail */ - private Image load(DrawableFile file) { + private Image load(DrawableFile file) { - if (FileTypeUtils.isGIF(file)) { + if (FileTypeUtils.isGIF(file.getAbstractFile())) { //directly read gif to preserve potential animation, //NOTE: not saved to disk! return new Image(new BufferedInputStream(new ReadContentInputStream(file.getAbstractFile())), MAX_THUMBNAIL_SIZE, MAX_THUMBNAIL_SIZE, true, true); @@ -171,7 +171,7 @@ public enum ThumbnailCache { * @return a Optional containing a File to store the cached icon in or an * empty optional if there was a problem. */ - private static Optional getCacheFile(DrawableFile file) { + private static Optional getCacheFile(DrawableFile file) { try { return Optional.of(ImageUtils.getCachedThumbnailFile(file.getAbstractFile(), MAX_THUMBNAIL_SIZE)); @@ -181,7 +181,7 @@ public enum ThumbnailCache { } } - public Task getThumbnailTask(DrawableFile file) { + public Task getThumbnailTask(DrawableFile file) { final Image thumbnail = cache.getIfPresent(file.getId()); if (thumbnail != null) { return TaskUtils.taskFrom(() -> thumbnail); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java index 92e9a979c2..aaabd15997 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/AddDrawableTagAction.java @@ -28,7 +28,6 @@ import javafx.application.Platform; import javafx.scene.control.Alert; import javafx.scene.control.Menu; import javax.swing.SwingWorker; - import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.sleuthkit.autopsy.coreutils.Logger; @@ -85,12 +84,12 @@ public class AddDrawableTagAction extends AddTagAction { protected Void doInBackground() throws Exception { for (Long fileID : selectedFiles) { try { - final DrawableFile file = controller.getFileFromId(fileID); + final DrawableFile file = controller.getFileFromId(fileID); LOGGER.log(Level.INFO, "tagging {0} with {1} and comment {2}", new Object[]{file.getName(), tagName.getDisplayName(), comment}); //NON-NLS // check if the same tag is being added for the same abstract file. DrawableTagsManager tagsManager = controller.getTagsManager(); - List contentTags = tagsManager.getContentTagsByContent(file); + List contentTags = tagsManager.getContentTags(file); Optional duplicateTagName = contentTags.stream() .map(ContentTag::getName) .filter(tagName::equals) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java index 8c819373c8..fd7f61aa9c 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/CategorizeAction.java @@ -35,7 +35,6 @@ import javafx.scene.input.KeyCodeCombination; import javax.annotation.Nonnull; import javax.annotation.concurrent.Immutable; import javax.swing.JOptionPane; - import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; @@ -146,7 +145,7 @@ public class CategorizeAction extends AddTagAction { Map oldCats = new HashMap<>(); for (long fileID : fileIDs) { try { - DrawableFile file = controller.getFileFromId(fileID); //drawable db access + DrawableFile file = controller.getFileFromId(fileID); //drawable db access if (createUndo) { Category oldCat = file.getCategory(); //drawable db access TagName oldCatTagName = categoryManager.getTagName(oldCat); @@ -155,7 +154,7 @@ public class CategorizeAction extends AddTagAction { } } - final List fileTags = tagsManager.getContentTagsByContent(file); + final List fileTags = tagsManager.getContentTags(file); if (tagName == categoryManager.getTagName(Category.ZERO)) { // delete all cat tags for cat-0 fileTags.stream() diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java index 57f8afa2cf..dcf2655efc 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteFollowUpTagAction.java @@ -40,7 +40,7 @@ public class DeleteFollowUpTagAction extends Action { private static final Logger LOGGER = Logger.getLogger(DeleteFollowUpTagAction.class.getName()); @NbBundle.Messages("DeleteFollwUpTagAction.displayName=Delete Follow Up Tag") - public DeleteFollowUpTagAction(final ImageGalleryController controller, final DrawableFile file) { + public DeleteFollowUpTagAction(final ImageGalleryController controller, final DrawableFile file) { super(Bundle.DeleteFollwUpTagAction_displayName()); setEventHandler((ActionEvent t) -> { new SwingWorker() { @@ -52,7 +52,7 @@ public class DeleteFollowUpTagAction extends Action { try { final TagName followUpTagName = tagsManager.getFollowUpTagName(); - List contentTagsByContent = tagsManager.getContentTagsByContent(file); + List contentTagsByContent = tagsManager.getContentTags(file); for (ContentTag ct : contentTagsByContent) { if (ct.getName().getDisplayName().equals(followUpTagName.getDisplayName())) { tagsManager.deleteContentTag(ct); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java index 20d6357241..a698c22191 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java @@ -39,7 +39,7 @@ public class OpenExternalViewerAction extends Action { private static final Image EXTERNAL = new Image(OpenExternalViewerAction.class.getResource("/org/sleuthkit/autopsy/imagegallery/images/external.png").toExternalForm()); //NON-NLS private static final ActionEvent ACTION_EVENT = new ActionEvent(OpenExternalViewerAction.class, ActionEvent.ACTION_PERFORMED, ""); //Swing ActionEvent //NOI18N - public OpenExternalViewerAction(DrawableFile file) { + public OpenExternalViewerAction(DrawableFile file) { super(Bundle.OpenExternalViewerAction_displayName()); /** diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java index 464c2492b0..f546c21f7c 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java @@ -248,7 +248,7 @@ public class CategoryManager { final DrawableTagsManager tagsManager = controller.getTagsManager(); try { //remove old category tag(s) if necessary - for (ContentTag ct : tagsManager.getContentTagsByContent(addedTag.getContent())) { + for (ContentTag ct : tagsManager.getContentTags(addedTag.getContent())) { if (ct.getId() != addedTag.getId() && CategoryManager.isCategoryTagName(ct.getName())) { try { diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java index f0f956a304..96e37d0a83 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableAttribute.java @@ -111,13 +111,13 @@ public class DrawableAttribute> { new DrawableAttribute<>(AttributeName.CREATED_TIME, Bundle.DrawableAttribute_createdTime(), true, "clock--plus.png", //NON-NLS - f -> Collections.singleton(ContentUtils.getStringTime(f.getCrtime(), f))); + f -> Collections.singleton(ContentUtils.getStringTime(f.getCrtime(), f.getAbstractFile()))); public final static DrawableAttribute MODIFIED_TIME = new DrawableAttribute<>(AttributeName.MODIFIED_TIME, Bundle.DrawableAttribute_modifiedTime(), true, "clock--pencil.png", //NON-NLS - f -> Collections.singleton(ContentUtils.getStringTime(f.getMtime(), f))); + f -> Collections.singleton(ContentUtils.getStringTime(f.getMtime(), f.getAbstractFile()))); public final static DrawableAttribute MAKE = new DrawableAttribute<>(AttributeName.MAKE, Bundle.DrawableAttribute_cameraMake(), @@ -168,9 +168,9 @@ public class DrawableAttribute> { Arrays.asList(NAME, ANALYZED, CATEGORY, TAGS, PATH, CREATED_TIME, MODIFIED_TIME, MD5_HASH, HASHSET, MAKE, MODEL, OBJ_ID, WIDTH, HEIGHT, MIME_TYPE); - private final Function, Collection> extractor; + private final Function> extractor; - private DrawableAttribute(AttributeName name, String displayName, Boolean isDBColumn, String imageName, Function, Collection> extractor) { + private DrawableAttribute(AttributeName name, String displayName, Boolean isDBColumn, String imageName, Function> extractor) { this.attrName = name; this.displayName = new ReadOnlyStringWrapper(displayName); this.isDBColumn = isDBColumn; @@ -223,7 +223,7 @@ public class DrawableAttribute> { return displayName.get(); } - public Collection getValue(DrawableFile f) { + public Collection getValue(DrawableFile f) { return extractor.apply(f); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java index 034fbe3b03..9429dd7d8a 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java @@ -569,23 +569,23 @@ public final class DrawableDB { return removeFile; } - public void updateFile(DrawableFile f) { + public void updateFile(DrawableFile f) { DrawableTransaction trans = beginTransaction(); updateFile(f, trans); commitTransaction(trans, true); } - public void insertFile(DrawableFile f) { + public void insertFile(DrawableFile f) { DrawableTransaction trans = beginTransaction(); insertFile(f, trans); commitTransaction(trans, true); } - public void insertFile(DrawableFile f, DrawableTransaction tr) { + public void insertFile(DrawableFile f, DrawableTransaction tr) { insertOrUpdateFile(f, tr, insertFileStmt); } - public void updateFile(DrawableFile f, DrawableTransaction tr) { + public void updateFile(DrawableFile f, DrawableTransaction tr) { insertOrUpdateFile(f, tr, updateFileStmt); } @@ -602,7 +602,7 @@ public final class DrawableDB { * @param tr a transaction to use, must not be null * @param stmt the statement that does the actull inserting */ - private void insertOrUpdateFile(DrawableFile f, @Nonnull DrawableTransaction tr, @Nonnull PreparedStatement stmt) { + private void insertOrUpdateFile(DrawableFile f, @Nonnull DrawableTransaction tr, @Nonnull PreparedStatement stmt) { if (tr.isClosed()) { throw new IllegalArgumentException("can't update database with closed transaction"); @@ -686,7 +686,7 @@ public final class DrawableDB { tr.commit(notify); } - public Boolean isFileAnalyzed(DrawableFile f) { + public Boolean isFileAnalyzed(DrawableFile f) { return isFileAnalyzed(f.getId()); } @@ -984,7 +984,7 @@ public final class DrawableDB { * @throws TskCoreException if unable to get a file from the currently open * {@link SleuthkitCase} */ - private DrawableFile getFileFromID(Long id, boolean analyzed) throws TskCoreException { + private DrawableFile getFileFromID(Long id, boolean analyzed) throws TskCoreException { try { AbstractFile f = tskCase.getAbstractFileById(id); return DrawableFile.create(f, analyzed, isVideoFile(f)); @@ -1002,7 +1002,7 @@ public final class DrawableDB { * @throws TskCoreException if unable to get a file from the currently open * {@link SleuthkitCase} */ - public DrawableFile getFileFromID(Long id) throws TskCoreException { + public DrawableFile getFileFromID(Long id) throws TskCoreException { try { AbstractFile f = tskCase.getAbstractFileById(id); return DrawableFile.create(f, diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java index 6b47245334..e02e752930 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java @@ -19,6 +19,7 @@ package org.sleuthkit.autopsy.imagegallery.datamodel; import java.lang.ref.SoftReference; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -42,39 +43,36 @@ import org.sleuthkit.autopsy.imagegallery.ThumbnailCache; import org.sleuthkit.autopsy.imagegallery.utils.TaskUtils; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.BlackboardArtifact; +import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE; import org.sleuthkit.datamodel.BlackboardAttribute; -import org.sleuthkit.datamodel.Content; -import org.sleuthkit.datamodel.ContentVisitor; -import org.sleuthkit.datamodel.ReadContentInputStream; -import org.sleuthkit.datamodel.SleuthkitItemVisitor; +import org.sleuthkit.datamodel.BlackboardAttribute.ATTRIBUTE_TYPE; +import org.sleuthkit.datamodel.ContentTag; +import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.Tag; import org.sleuthkit.datamodel.TagName; import org.sleuthkit.datamodel.TskCoreException; /** - * @TODO: There is something I don't understand or have done wrong about - * implementing this class,as it is unreadable by - * {@link ReadContentInputStream}. As a work around we keep a reference to the - * original {@link AbstractFile} to use when reading the image. -jm + * A file that contains visual information such as an image or video. */ -public abstract class DrawableFile extends AbstractFile { +public abstract class DrawableFile { private static final Logger LOGGER = Logger.getLogger(DrawableFile.class.getName()); - public static DrawableFile create(AbstractFile abstractFileById, boolean analyzed) { + public static DrawableFile create(AbstractFile abstractFileById, boolean analyzed) { return create(abstractFileById, analyzed, FileTypeUtils.isVideoFile(abstractFileById)); } /** * Skip the database query if we have already determined the file type. */ - public static DrawableFile create(AbstractFile abstractFileById, boolean analyzed, boolean isVideo) { + public static DrawableFile create(AbstractFile abstractFileById, boolean analyzed, boolean isVideo) { return isVideo - ? new VideoFile<>(abstractFileById, analyzed) - : new ImageFile<>(abstractFileById, analyzed); + ? new VideoFile(abstractFileById, analyzed) + : new ImageFile(abstractFileById, analyzed); } - public static DrawableFile create(Long id, boolean analyzed) throws TskCoreException, IllegalStateException { + public static DrawableFile create(Long id, boolean analyzed) throws TskCoreException, IllegalStateException { return create(Case.getCurrentCase().getSleuthkitCase().getAbstractFileById(id), analyzed); } @@ -82,7 +80,7 @@ public abstract class DrawableFile extends AbstractFile private String drawablePath; - private final T file; + private final AbstractFile file; private final SimpleBooleanProperty analyzed; @@ -92,88 +90,77 @@ public abstract class DrawableFile extends AbstractFile private String model; - protected DrawableFile(T file, Boolean analyzed) { - /* - * @TODO: the two 'new Integer(0).shortValue()' values and null are - * placeholders because the super constructor expects values i can't get - * easily at the moment. I assume this is related to why - * ReadContentInputStream can't read from DrawableFiles. - */ - - super(file.getSleuthkitCase(), - file.getId(), - file.getAttrType(), - file.getAttrId(), - file.getName(), - file.getType(), - file.getMetaAddr(), - (int) file.getMetaSeq(), - file.getDirType(), - file.getMetaType(), - null, - new Integer(0).shortValue(), - file.getSize(), - file.getCtime(), - file.getCrtime(), - file.getAtime(), - file.getMtime(), - new Integer(0).shortValue(), - file.getUid(), - file.getGid(), - file.getMd5Hash(), - file.getKnown(), - file.getParentPath()); + protected DrawableFile(AbstractFile file, Boolean analyzed) { this.analyzed = new SimpleBooleanProperty(analyzed); this.file = file; } public abstract boolean isVideo(); - @Override - public boolean isRoot() { - return false; - } - - @Override - public T accept(SleuthkitItemVisitor v) { - return file.accept(v); - } - - @Override - public T accept(ContentVisitor v) { - return file.accept(v); - } - - @Override - public List getChildren() throws TskCoreException { - return new ArrayList<>(); - } - - @Override - public List getChildrenIds() throws TskCoreException { - return new ArrayList<>(); - } - public List, Collection>> getAttributesList() { return DrawableAttribute.getValues().stream() .map(this::makeAttributeValuePair) .collect(Collectors.toList()); } + public String getMIMEType() { + return file.getMIMEType(); + } + + public long getId() { + return file.getId(); + } + + public long getCtime() { + return file.getCtime(); + } + + public long getCrtime() { + return file.getCrtime(); + } + + public long getAtime() { + return file.getAtime(); + } + + public long getMtime() { + return file.getMtime(); + } + + public String getMd5Hash() { + return file.getMd5Hash(); + } + + public String getName() { + return file.getName(); + } + + public String getAtimeAsDate() { + return file.getAtimeAsDate(); + } + + public synchronized String getUniquePath() throws TskCoreException { + return file.getUniquePath(); + } + + public SleuthkitCase getSleuthkitCase() { + return file.getSleuthkitCase(); + } + private Pair, Collection> makeAttributeValuePair(DrawableAttribute t) { return new Pair<>(t, t.getValue(DrawableFile.this)); } public String getModel() { if (model == null) { - model = WordUtils.capitalizeFully((String) getValueOfBBAttribute(BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA_EXIF, BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DEVICE_MODEL)); + model = WordUtils.capitalizeFully((String) getValueOfBBAttribute(ARTIFACT_TYPE.TSK_METADATA_EXIF, ATTRIBUTE_TYPE.TSK_DEVICE_MODEL)); } return model; } public String getMake() { if (make == null) { - make = WordUtils.capitalizeFully((String) getValueOfBBAttribute(BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA_EXIF, BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DEVICE_MAKE)); + make = WordUtils.capitalizeFully((String) getValueOfBBAttribute(ARTIFACT_TYPE.TSK_METADATA_EXIF, ATTRIBUTE_TYPE.TSK_DEVICE_MAKE)); } return make; } @@ -181,18 +168,18 @@ public abstract class DrawableFile extends AbstractFile public Set getTagNames() { try { - return getSleuthkitCase().getContentTagsByContent(this).stream() + return getContentTags().stream() .map(Tag::getName) .collect(Collectors.toSet()); } catch (TskCoreException ex) { Logger.getAnonymousLogger().log(Level.WARNING, "problem looking up " + DrawableAttribute.TAGS.getDisplayName() + " for " + file.getName(), ex); //NON-NLS } catch (IllegalStateException ex) { - Logger.getAnonymousLogger().log(Level.WARNING, "there is no case open; failed to look up " + DrawableAttribute.TAGS.getDisplayName() + " for " + file.getName()); //NON-NLS + Logger.getAnonymousLogger().log(Level.WARNING, "there is no case open; failed to look up " + DrawableAttribute.TAGS.getDisplayName() + " for " + getContentPathSafe(), ex); //NON-NLS } return Collections.emptySet(); } - protected Object getValueOfBBAttribute(BlackboardArtifact.ARTIFACT_TYPE artType, BlackboardAttribute.ATTRIBUTE_TYPE attrType) { + protected Object getValueOfBBAttribute(ARTIFACT_TYPE artType, ATTRIBUTE_TYPE attrType) { try { //why doesn't file.getArtifacts() work? @@ -222,7 +209,8 @@ public abstract class DrawableFile extends AbstractFile } } } catch (TskCoreException ex) { - Logger.getAnonymousLogger().log(Level.WARNING, "problem looking up {0}/{1}" + " " + " for {2}", new Object[]{artType.getDisplayName(), attrType.getDisplayName(), getName()}); //NON-NLS + Logger.getAnonymousLogger().log(Level.WARNING, ex, + () -> MessageFormat.format("problem looking up {0}/{1}" + " " + " for {2}", new Object[]{artType.getDisplayName(), attrType.getDisplayName(), getContentPathSafe()})); //NON-NLS } return ""; } @@ -246,7 +234,7 @@ public abstract class DrawableFile extends AbstractFile */ private void updateCategory() { try { - category.set(getSleuthkitCase().getContentTagsByContent(this).stream() + category.set(getContentTags().stream() .map(Tag::getName).filter(CategoryManager::isCategoryTagName) .map(TagName::getDisplayName) .map(Category::fromDisplayName) @@ -254,12 +242,16 @@ public abstract class DrawableFile extends AbstractFile .orElse(Category.ZERO) ); } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "problem looking up category for file " + this.getName() + ex.getLocalizedMessage()); //NON-NLS + LOGGER.log(Level.WARNING, "problem looking up category for " + this.getContentPathSafe(), ex); //NON-NLS } catch (IllegalStateException ex) { // We get here many times if the case is closed during ingest, so don't print out a ton of warnings. } } + private List getContentTags() throws TskCoreException { + return getSleuthkitCase().getContentTagsByContent(file); + } + @Deprecated public Image getThumbnail() { try { @@ -316,7 +308,7 @@ public abstract class DrawableFile extends AbstractFile return analyzed.get(); } - public T getAbstractFile() { + public AbstractFile getAbstractFile() { return this.file; } @@ -332,12 +324,16 @@ public abstract class DrawableFile extends AbstractFile drawablePath = StringUtils.removeEnd(getUniquePath(), getName()); return drawablePath; } catch (TskCoreException ex) { - LOGGER.log(Level.WARNING, "failed to get drawablePath from {0}", getName()); //NON-NLS + LOGGER.log(Level.WARNING, "failed to get drawablePath from " + getContentPathSafe(), ex); //NON-NLS return ""; } } } + public Set getHashSetNames() throws TskCoreException { + return file.getHashSetNames(); + } + @Nonnull public Set getHashSetNamesUnchecked() { try { @@ -358,7 +354,7 @@ public abstract class DrawableFile extends AbstractFile */ public String getContentPathSafe() { try { - return this.getUniquePath(); + return getUniquePath(); } catch (TskCoreException tskCoreException) { String contentName = this.getName(); LOGGER.log(Level.SEVERE, "Failed to get unique path for " + contentName, tskCoreException); //NOI18N NON-NLS diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java index ea2f17f62e..c653500804 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableTagsManager.java @@ -164,21 +164,35 @@ public class DrawableTagsManager { } /** - * Gets content tags count by content. + * Gets content tags by content. * - * @param The content of interest. + * @param content The content of interest. * * @return A list, possibly empty, of the tags that have been applied to the - * artifact. + * content. * - * @throws TskCoreException + * @throws TskCoreException if there was an error reading from the db */ - public List getContentTagsByContent(Content content) throws TskCoreException { + public List getContentTags(Content content) throws TskCoreException { synchronized (autopsyTagsManagerLock) { return autopsyTagsManager.getContentTagsByContent(content); } } + /** + * Gets content tags by DrawableFile. + * + * @param drawable The DrawableFile of interest. + * + * @return A list, possibly empty, of the tags that have been applied to the + * DrawableFile. + * + * @throws TskCoreException if there was an error reading from the db + */ + public List getContentTags(DrawableFile drawable) throws TskCoreException { + return getContentTags(drawable.getAbstractFile()); + } + public TagName getTagName(String displayName) throws TskCoreException { synchronized (autopsyTagsManagerLock) { try { @@ -207,7 +221,7 @@ public class DrawableTagsManager { } } - public ContentTag addContentTag(DrawableFile file, TagName tagName, String comment) throws TskCoreException { + public ContentTag addContentTag(DrawableFile file, TagName tagName, String comment) throws TskCoreException { synchronized (autopsyTagsManagerLock) { return autopsyTagsManager.addContentTag(file.getAbstractFile(), tagName, comment); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java index 01e5cfd983..d3e2ab10f1 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/ImageFile.java @@ -21,7 +21,6 @@ package org.sleuthkit.autopsy.imagegallery.datamodel; import java.io.IOException; import javafx.concurrent.Task; import javafx.scene.image.Image; -import javax.imageio.ImageIO; import org.sleuthkit.autopsy.coreutils.ImageUtils; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.AbstractFile; @@ -31,17 +30,12 @@ import org.sleuthkit.datamodel.AbstractFile; * wrapper(/decorator?/adapter?) around {@link AbstractFile} and provides * methods to get an thumbnail sized and a full sized {@link Image}. */ -public class ImageFile extends DrawableFile { +public class ImageFile extends DrawableFile { private static final Logger LOGGER = Logger.getLogger(ImageFile.class.getName()); - static { - ImageIO.scanForPlugins(); - } - - ImageFile(T f, Boolean analyzed) { + ImageFile(AbstractFile f, Boolean analyzed) { super(f, analyzed); - } @Override diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java index 1da586f603..9cc75107af 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/VideoFile.java @@ -36,13 +36,13 @@ import org.sleuthkit.autopsy.coreutils.VideoUtils; import org.sleuthkit.autopsy.datamodel.ContentUtils; import org.sleuthkit.datamodel.AbstractFile; -public class VideoFile extends DrawableFile { +public class VideoFile extends DrawableFile { private static final Logger LOGGER = Logger.getLogger(VideoFile.class.getName()); private static final Image VIDEO_ICON = new Image("org/sleuthkit/autopsy/imagegallery/images/Clapperboard.png"); //NON-NLS - VideoFile(T file, Boolean analyzed) { + VideoFile(AbstractFile file, Boolean analyzed) { super(file, analyzed); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java index cebcd6c222..59f9dd8aa1 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/grouping/GroupManager.java @@ -169,7 +169,7 @@ public class GroupManager { * file is a part of */ @SuppressWarnings({"rawtypes", "unchecked"}) - synchronized public Set> getGroupKeysForFile(DrawableFile file) { + synchronized public Set> getGroupKeysForFile(DrawableFile file) { Set> resultSet = new HashSet<>(); for (Comparable val : groupBy.getValue(file)) { if (groupBy == DrawableAttribute.TAGS) { @@ -193,7 +193,7 @@ public class GroupManager { synchronized public Set> getGroupKeysForFileID(Long fileID) { try { if (nonNull(db)) { - DrawableFile file = db.getFileFromID(fileID); + DrawableFile file = db.getFileFromID(fileID); return getGroupKeysForFile(file); } else { Logger.getLogger(GroupManager.class.getName()).log(Level.WARNING, "Failed to load file with id: {0} from database. There is no database assigned.", fileID); //NON-NLS diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java index 01b0e5dd1b..4b33f2cea6 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/VideoPlayer.java @@ -104,7 +104,7 @@ public class VideoPlayer extends BorderPane { mp.seek(Duration.millis(timeSlider.getValue())); } }; - private final VideoFile file; + private final VideoFile file; @FXML @NbBundle.Messages({"# {0} - exception type", @@ -236,7 +236,7 @@ public class VideoPlayer extends BorderPane { } } - public VideoPlayer(MediaPlayer mp, VideoFile file) { + public VideoPlayer(MediaPlayer mp, VideoFile file) { this.file = file; this.mp = mp; FXMLConstructor.construct(this, "MediaControl.fxml"); //NON-NLS diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java index cef4600bbe..ea4e7ba181 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTile.java @@ -31,13 +31,11 @@ import javafx.scene.image.Image; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; -import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.imagegallery.FXMLConstructor; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile; import org.sleuthkit.autopsy.imagegallery.gui.Toolbar; -import org.sleuthkit.datamodel.AbstractContent; /** * GUI component that represents a single image as a tile with an icon, a label, @@ -108,12 +106,12 @@ public class DrawableTile extends DrawableTileBase { } @Override - Task newReadImageTask(DrawableFile file) { + Task newReadImageTask(DrawableFile file) { return file.getThumbnailTask(); } @Override protected String getTextForLabel() { - return getFile().map(AbstractContent::getName).orElse(""); + return getFile().map(DrawableFile::getName).orElse(""); } } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java index b25b76f7ff..16280a0afd 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java @@ -179,7 +179,7 @@ public abstract class DrawableTileBase extends DrawableUIBase { t.consume(); } - private ContextMenu buildContextMenu(DrawableFile file) { + private ContextMenu buildContextMenu(DrawableFile file) { final ArrayList menuItems = new ArrayList<>(); menuItems.add(new CategorizeAction(getController()).getPopupMenu()); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java index 1a6bfd227e..da8120f632 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableUIBase.java @@ -66,7 +66,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView private final ImageGalleryController controller; - private Optional> fileOpt = Optional.empty(); + private Optional fileOpt = Optional.empty(); private Optional fileIDOpt = Optional.empty(); private volatile Task imageTask; @@ -89,12 +89,12 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView this.fileIDOpt = fileIDOpt; } - synchronized void setFileOpt(Optional> fileOpt) { + synchronized void setFileOpt(Optional fileOpt) { this.fileOpt = fileOpt; } @Override - synchronized public Optional> getFile() { + synchronized public Optional getFile() { if (fileIDOpt.isPresent()) { if (fileOpt.isPresent() && fileOpt.get().getId() == fileIDOpt.get()) { return fileOpt; @@ -131,7 +131,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView } } - synchronized Node doReadImageTask(DrawableFile file) { + synchronized Node doReadImageTask(DrawableFile file) { Task myTask = newReadImageTask(file); imageTask = myTask; Node progressNode = newProgressIndicator(myTask); @@ -191,7 +191,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView } @ThreadConfined(type = ThreadConfined.ThreadType.JFX) - private void showImage(DrawableFile file, Task imageTask) { + private void showImage(DrawableFile file, Task imageTask) { //Note that all error conditions are allready logged in readImageTask.succeeded() try { Image fxImage = imageTask.get(); @@ -210,7 +210,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView } @ThreadConfined(type = ThreadConfined.ThreadType.JFX) - void showErrorNode(String errorMessage, DrawableFile file) { + void showErrorNode(String errorMessage, DrawableFile file) { Button createButton = ActionUtils.createButton(new OpenExternalViewerAction(file)); VBox vBox = new VBox(10, new Label(errorMessage), createButton); @@ -218,5 +218,5 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView imageBorder.setCenter(vBox); } - abstract Task newReadImageTask(DrawableFile file); + abstract Task newReadImageTask(DrawableFile file); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java index 1219e2d1a8..6668657619 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableView.java @@ -52,7 +52,7 @@ public interface DrawableView { Region getCategoryBorderRegion(); - Optional> getFile(); + Optional getFile(); void setFile(final Long fileID); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java index 160b6ccbcc..4435709654 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/GroupPane.java @@ -306,7 +306,7 @@ public class GroupPane extends BorderPane { } - void syncCatToggle(DrawableFile file) { + void syncCatToggle(DrawableFile file) { getToggleForCategory(file.getCategory()).setSelected(true); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java index a14a777e6f..bf6597ecb5 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/MetaDataPane.java @@ -201,7 +201,7 @@ public class MetaDataPane extends DrawableUIBase { } @Override - Task newReadImageTask(DrawableFile file) { + Task newReadImageTask(DrawableFile file) { return file.getThumbnailTask(); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java index a3aef0cca3..94e56cf93c 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/SlideShowView.java @@ -56,7 +56,6 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.VideoFile; import org.sleuthkit.autopsy.imagegallery.gui.VideoPlayer; import static org.sleuthkit.autopsy.imagegallery.gui.drawableviews.DrawableUIBase.exec; import static org.sleuthkit.autopsy.imagegallery.gui.drawableviews.DrawableView.CAT_BORDER_WIDTH; -import org.sleuthkit.datamodel.AbstractContent; /** * Displays the files of a group one at a time. Designed to be embedded in a @@ -186,16 +185,16 @@ public class SlideShowView extends DrawableTileBase { synchronized protected void updateContent() { disposeContent(); if (getFile().isPresent()) { - DrawableFile file = getFile().get(); + DrawableFile file = getFile().get(); if (file.isVideo()) { - doMediaLoadTask((VideoFile) file); + doMediaLoadTask((VideoFile) file); } else { doReadImageTask(file); } } } - synchronized private Node doMediaLoadTask(VideoFile file) { + synchronized private Node doMediaLoadTask(VideoFile file) { //specially handling for videos MediaLoadTask myTask = new MediaLoadTask(file); @@ -225,7 +224,7 @@ public class SlideShowView extends DrawableTileBase { } @ThreadConfined(type = ThreadConfined.ThreadType.JFX) - private void showMedia(DrawableFile file, Task mediaTask) { + private void showMedia(DrawableFile file, Task mediaTask) { //Note that all error conditions are allready logged in readImageTask.succeeded() try { Node mediaNode = mediaTask.get(); @@ -265,7 +264,7 @@ public class SlideShowView extends DrawableTileBase { */ @Override protected String getTextForLabel() { - return getFile().map(AbstractContent::getName).orElse("") + " " + getSupplementalText(); + return getFile().map(DrawableFile::getName).orElse("") + " " + getSupplementalText(); } /** @@ -308,7 +307,7 @@ public class SlideShowView extends DrawableTileBase { @Override @ThreadConfined(type = ThreadType.ANY) public Category updateCategory() { - Optional> file = getFile(); + Optional file = getFile(); if (file.isPresent()) { Category updateCategory = super.updateCategory(); Platform.runLater(() -> getGroupPane().syncCatToggle(file.get())); @@ -319,7 +318,7 @@ public class SlideShowView extends DrawableTileBase { } @Override - Task newReadImageTask(DrawableFile file) { + Task newReadImageTask(DrawableFile file) { return file.getReadFullSizeImageTask(); } @@ -328,9 +327,9 @@ public class SlideShowView extends DrawableTileBase { "MediaLoadTask.messageText=Reading video: {0}"}) private class MediaLoadTask extends Task { - private final VideoFile file; + private final VideoFile file; - MediaLoadTask(VideoFile file) { + MediaLoadTask(VideoFile file) { updateMessage(Bundle.MediaLoadTask_messageText(file.getName())); this.file = file; } From c63cc88b429608ce2429cf1b71053ca73f211f60 Mon Sep 17 00:00:00 2001 From: Karl Mortensen Date: Thu, 18 Feb 2016 11:04:45 -0500 Subject: [PATCH 019/145] Only internationalize user facing text --- .../src/org/sleuthkit/autopsy/casemodule/Case.java | 14 +++++++++++--- .../autopsy/casemodule/CasePropertiesForm.java | 2 +- .../autopsy/casemodule/NewCaseWizardPanel1.java | 4 ++-- .../sleuthkit/autopsy/ingest/IngestManager.java | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java index 6d0aca0f6e..78bc2ba7ee 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java @@ -219,11 +219,11 @@ public class Case implements SleuthkitCase.ErrorObserver { * multi-user (using PostgreSql) */ @NbBundle.Messages({"Case_caseType_singleUser=Single-user case", - "Case_caseType_multiUser=Multi-user case"}) + "Case_caseType_multiUser=Multi-user case"}) public enum CaseType { - SINGLE_USER_CASE(Bundle.Case_caseType_singleUser()), - MULTI_USER_CASE(Bundle.Case_caseType_multiUser()); + SINGLE_USER_CASE("Single-user case"), //NON-NLS + MULTI_USER_CASE("Multi-user case"); //NON-NLS private final String caseType; @@ -250,6 +250,14 @@ public class Case implements SleuthkitCase.ErrorObserver { public String toString() { return caseType; } + + public String getInternationalizedDisplayName() { + if (fromString(caseType) == SINGLE_USER_CASE) { + return Bundle.Case_caseType_singleUser(); + } else { + return Bundle.Case_caseType_multiUser(); + } + } }; private String name; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java index c9c4d87864..56d7a8f10f 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java @@ -92,7 +92,7 @@ class CasePropertiesForm extends javax.swing.JPanel { CaseMetadata caseMetadata = new CaseMetadata(Paths.get(currentCase.getConfigFilePath())); tbDbName.setText(caseMetadata.getCaseDatabaseName()); Case.CaseType caseType = caseMetadata.getCaseType(); - tbDbType.setText(caseType.toString()); + tbDbType.setText(caseType.getInternationalizedDisplayName()); if (caseType == Case.CaseType.SINGLE_USER_CASE) { deleteCaseButton.setEnabled(true); } else { diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java index b7b432a9eb..24c1e2a17e 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardPanel1.java @@ -239,7 +239,7 @@ class NewCaseWizardPanel1 implements WizardDescriptor.ValidatingPanel Date: Thu, 18 Feb 2016 11:17:26 -0500 Subject: [PATCH 020/145] not public, localized --- Core/src/org/sleuthkit/autopsy/casemodule/Case.java | 2 +- .../org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java index 78bc2ba7ee..6615cde7e6 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java @@ -251,7 +251,7 @@ public class Case implements SleuthkitCase.ErrorObserver { return caseType; } - public String getInternationalizedDisplayName() { + String getLocalizedDisplayName() { if (fromString(caseType) == SINGLE_USER_CASE) { return Bundle.Case_caseType_singleUser(); } else { diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java index 56d7a8f10f..eae7cf228d 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesForm.java @@ -92,7 +92,7 @@ class CasePropertiesForm extends javax.swing.JPanel { CaseMetadata caseMetadata = new CaseMetadata(Paths.get(currentCase.getConfigFilePath())); tbDbName.setText(caseMetadata.getCaseDatabaseName()); Case.CaseType caseType = caseMetadata.getCaseType(); - tbDbType.setText(caseType.getInternationalizedDisplayName()); + tbDbType.setText(caseType.getLocalizedDisplayName()); if (caseType == Case.CaseType.SINGLE_USER_CASE) { deleteCaseButton.setEnabled(true); } else { From 0df81b010a011260894b17c13b890133be410955 Mon Sep 17 00:00:00 2001 From: Karl Mortensen Date: Thu, 18 Feb 2016 11:22:44 -0500 Subject: [PATCH 021/145] bump version to 4.1.0 --- .../core.jar/org/netbeans/core/startup/Bundle.properties | 4 ++-- .../org/netbeans/core/windows/view/ui/Bundle.properties | 6 +++--- nbproject/project.properties | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties b/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties index 4ff9793bf3..59eab2b22a 100644 --- a/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties +++ b/branding/core/core.jar/org/netbeans/core/startup/Bundle.properties @@ -1,5 +1,5 @@ #Updated by build script -#Wed, 03 Feb 2016 16:24:40 -0500 +#Thu, 18 Feb 2016 11:18:53 -0500 LBL_splash_window_title=Starting Autopsy SPLASH_HEIGHT=314 SPLASH_WIDTH=538 @@ -8,4 +8,4 @@ SplashRunningTextBounds=0,289,538,18 SplashRunningTextColor=0x0 SplashRunningTextFontSize=19 -currentVersion=Autopsy 4.0.1 +currentVersion=Autopsy 4.1.0 diff --git a/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties b/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties index 6707567a21..0e7d1765ed 100644 --- a/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties +++ b/branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties @@ -1,4 +1,4 @@ #Updated by build script -#Wed, 03 Feb 2016 16:24:40 -0500 -CTL_MainWindow_Title=Autopsy 4.0.1 -CTL_MainWindow_Title_No_Project=Autopsy 4.0.1 +#Thu, 18 Feb 2016 11:18:53 -0500 +CTL_MainWindow_Title=Autopsy 4.1.0 +CTL_MainWindow_Title_No_Project=Autopsy 4.1.0 diff --git a/nbproject/project.properties b/nbproject/project.properties index a1c1fa49fd..8d6bea269f 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -4,7 +4,7 @@ app.title=Autopsy ### lowercase version of above app.name=${branding.token} ### if left unset, version will default to today's date -app.version=4.0.1 +app.version=4.1.0 ### build.type must be one of: DEVELOPMENT, RELEASE #build.type=RELEASE build.type=DEVELOPMENT From f0e808d72995d3572c1787e8419604b91465e412 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Thu, 18 Feb 2016 11:38:14 -0500 Subject: [PATCH 022/145] Moved Content-Type meta tag out of CSS style block and into the main head block. --- Core/src/org/sleuthkit/autopsy/report/ReportHTML.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java index d7a7014022..6083c0870a 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java @@ -984,8 +984,8 @@ class ReportHTML implements TableReportModule { StringBuilder head = new StringBuilder(); head.append("\n\n").append( //NON-NLS NbBundle.getMessage(this.getClass(), "ReportHTML.writeSum.title")).append("\n"); //NON-NLS - head.append("