From 88b1efceb29236e83291299f1e4330c971e5ca90 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Mon, 11 Jan 2016 16:44:09 -0500 Subject: [PATCH 1/3] Updated TypeFactory and associated classes to use BlackboardArtifact.Type --- .../autopsy/datamodel/ExtractedContent.java | 154 ++++++++++++++---- 1 file changed, 123 insertions(+), 31 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java index bdc98adb43..4768730356 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java @@ -84,6 +84,83 @@ public class ExtractedContent implements AutopsyVisitableItem { return skCase; } + static String getIcon(BlackboardArtifact.Type type) { + int typeID = type.getTypeID(); + if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID()) { + return "bookmarks.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID()) { + return "cookies.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID()) { + return "history.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID()) { + return "downloads.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID()) { + return "programs.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID()) { + return "recent_docs.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID()) { + return "usb_devices.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID()) { + return "searchquery.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID()) { + return "camera-icon-16.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID()) { + return "mail-icon-16.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CONTACT.getTypeID()) { + return "contact.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_MESSAGE.getTypeID()) { + return "message.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CALLLOG.getTypeID()) { + return "calllog.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID()) { + return "calendar.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID()) { + return "speeddialentry.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID()) { + return "bluetooth.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID()) { + return "gpsfav.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID()) { + return "gps-lastlocation.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID()) { + return "gps-search.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID()) { + return "account-icon-16.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID()) { + return "encrypted-file.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID()) { + return "mismatch-16.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_OS_INFO.getTypeID()) { + return "computer.png"; //NON-NLS + } + else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_FACE_DETECTED.getTypeID()) { + return "face.png"; //NON-NLS + } + return "artifact-icon.png"; //NON-NLS + } + public class RootNode extends DisplayableItemNode { public RootNode(SleuthkitCase skCase) { @@ -130,22 +207,40 @@ public class ExtractedContent implements AutopsyVisitableItem { * This area has all of the blackboard artifacts that are not displayed in a * more specific form elsewhere in the tree. */ - private class TypeFactory extends ChildFactory.Detachable { + private class TypeFactory extends ChildFactory.Detachable { - private final ArrayList doNotShow = new ArrayList<>(); + private final ArrayList doNotShow = new ArrayList<>(); // maps the artifact type to its child node - private final HashMap typeNodeList = new HashMap<>(); + private final HashMap typeNodeList = new HashMap<>(); public TypeFactory() { super(); // these are shown in other parts of the UI tree - doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO); - doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG); - doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_HASHSET_HIT); - doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT); - doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT); - doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT); + doNotShow.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())); + doNotShow.add(new BlackboardArtifact.Type( + BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getDisplayName())); + doNotShow.add(new BlackboardArtifact.Type( + BlackboardArtifact.ARTIFACT_TYPE.TSK_HASHSET_HIT.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_HASHSET_HIT.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_HASHSET_HIT.getDisplayName())); + doNotShow.add(new BlackboardArtifact.Type( + BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT.getDisplayName())); + doNotShow.add(new BlackboardArtifact.Type( + BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_FILE_HIT.getDisplayName())); + doNotShow.add(new BlackboardArtifact.Type( + BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getTypeID(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getLabel(), + BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getDisplayName())); } private final PropertyChangeListener pcl = (PropertyChangeEvent evt) -> { @@ -166,12 +261,12 @@ public class ExtractedContent implements AutopsyVisitableItem { final ModuleDataEvent event = (ModuleDataEvent) evt.getOldValue(); if (null != event) { boolean passed = true; - for(BlackboardArtifact.ARTIFACT_TYPE type: doNotShow) { - if(type.getTypeID() == event.getBlackboardArtifactType().getTypeID()) { + for (BlackboardArtifact.Type type : doNotShow) { + if (type.getTypeID() == event.getBlackboardArtifactType().getTypeID()) { passed = false; } } - if(passed) { + if (passed) { refresh(true); } } @@ -220,28 +315,24 @@ public class ExtractedContent implements AutopsyVisitableItem { } @Override - protected boolean createKeys(List list) { + protected boolean createKeys(List list) { //TEST COMMENT if (skCase != null) { try { - List inUse = new ArrayList<>(); List types = skCase.getArtifactTypesInUse(); - for (BlackboardArtifact.Type type: types) { - inUse.add(BlackboardArtifact.ARTIFACT_TYPE.fromID(type.getTypeID())); - } - inUse.removeAll(doNotShow); - Collections.sort(inUse, - new Comparator() { + types.removeAll(doNotShow); + Collections.sort(types, + new Comparator() { @Override - public int compare(BlackboardArtifact.ARTIFACT_TYPE a, BlackboardArtifact.ARTIFACT_TYPE b) { + public int compare(BlackboardArtifact.Type a, BlackboardArtifact.Type b) { return a.getDisplayName().compareTo(b.getDisplayName()); } }); - list.addAll(inUse); + list.addAll(types); // the create node method will get called only for new types // refresh the counts if we already created them from a previous update - for (BlackboardArtifact.ARTIFACT_TYPE art : inUse) { + for (BlackboardArtifact.Type art : types) { TypeNode node = typeNodeList.get(art); if (node != null) { node.updateDisplayName(); @@ -255,7 +346,7 @@ public class ExtractedContent implements AutopsyVisitableItem { } @Override - protected Node createNodeForKey(BlackboardArtifact.ARTIFACT_TYPE key) { + protected Node createNodeForKey(BlackboardArtifact.Type key) { TypeNode node = new TypeNode(key); typeNodeList.put(key, node); return node; @@ -270,14 +361,14 @@ public class ExtractedContent implements AutopsyVisitableItem { */ public class TypeNode extends DisplayableItemNode { - private BlackboardArtifact.ARTIFACT_TYPE type; + private BlackboardArtifact.Type type; private long childCount = 0; - TypeNode(BlackboardArtifact.ARTIFACT_TYPE type) { + TypeNode(BlackboardArtifact.Type type) { super(Children.create(new ArtifactFactory(type), true), Lookups.singleton(type.getDisplayName())); - super.setName(type.getLabel()); + super.setName(type.getTypeName()); this.type = type; - this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/" + getIcon(type)); //NON-NLS + this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/" + ExtractedContent.getIcon(type)); //NON-NLS updateDisplayName(); } @@ -397,9 +488,9 @@ public class ExtractedContent implements AutopsyVisitableItem { */ private class ArtifactFactory extends ChildFactory.Detachable { - private BlackboardArtifact.ARTIFACT_TYPE type; + private BlackboardArtifact.Type type; - public ArtifactFactory(BlackboardArtifact.ARTIFACT_TYPE type) { + public ArtifactFactory(BlackboardArtifact.Type type) { super(); this.type = type; } @@ -424,7 +515,7 @@ public class ExtractedContent implements AutopsyVisitableItem { * for the event to have a null oldValue. */ final ModuleDataEvent event = (ModuleDataEvent) evt.getOldValue(); - if (null != event && event.getBlackboardArtifactType().getTypeID() == type.getTypeID()) { + if (null != event && event.getBlackboardArtifactType().equals(type)) { refresh(true); } } catch (IllegalStateException notUsed) { @@ -482,4 +573,5 @@ public class ExtractedContent implements AutopsyVisitableItem { return new BlackboardArtifactNode(key); } } + } From 98fda5f654eb5e0b2d686af3458b019a07ee3acc Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Tue, 12 Jan 2016 15:36:05 -0500 Subject: [PATCH 2/3] Formatting fix --- Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java index 4768730356..cafd28ad39 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java @@ -573,5 +573,4 @@ public class ExtractedContent implements AutopsyVisitableItem { return new BlackboardArtifactNode(key); } } - } From f877b03f14f15ff9b041591b017b00c44792799b Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Tue, 12 Jan 2016 16:49:57 -0500 Subject: [PATCH 3/3] Updated design, eliminated unneccessary icon method --- .../autopsy/datamodel/ExtractedContent.java | 139 ++++-------------- 1 file changed, 26 insertions(+), 113 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java index cafd28ad39..b1d3d50174 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java @@ -86,76 +86,53 @@ public class ExtractedContent implements AutopsyVisitableItem { static String getIcon(BlackboardArtifact.Type type) { int typeID = type.getTypeID(); - if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID()) { + if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_BOOKMARK.getTypeID()) { return "bookmarks.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_COOKIE.getTypeID()) { return "cookies.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY.getTypeID()) { return "history.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_DOWNLOAD.getTypeID()) { return "downloads.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_INSTALLED_PROG.getTypeID()) { return "programs.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_RECENT_OBJECT.getTypeID()) { return "recent_docs.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_DEVICE_ATTACHED.getTypeID()) { return "usb_devices.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_SEARCH_QUERY.getTypeID()) { return "searchquery.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_METADATA_EXIF.getTypeID()) { return "camera-icon-16.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG.getTypeID()) { return "mail-icon-16.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CONTACT.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CONTACT.getTypeID()) { return "contact.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_MESSAGE.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_MESSAGE.getTypeID()) { return "message.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CALLLOG.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CALLLOG.getTypeID()) { return "calllog.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_CALENDAR_ENTRY.getTypeID()) { return "calendar.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_SPEED_DIAL_ENTRY.getTypeID()) { return "speeddialentry.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_BLUETOOTH_PAIRING.getTypeID()) { return "bluetooth.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_BOOKMARK.getTypeID()) { return "gpsfav.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_LAST_KNOWN_LOCATION.getTypeID()) { return "gps-lastlocation.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_SEARCH.getTypeID()) { return "gps-search.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_SERVICE_ACCOUNT.getTypeID()) { return "account-icon-16.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED.getTypeID()) { return "encrypted-file.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_EXT_MISMATCH_DETECTED.getTypeID()) { return "mismatch-16.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_OS_INFO.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_OS_INFO.getTypeID()) { return "computer.png"; //NON-NLS - } - else if(typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_FACE_DETECTED.getTypeID()) { + } else if (typeID == BlackboardArtifact.ARTIFACT_TYPE.TSK_FACE_DETECTED.getTypeID()) { return "face.png"; //NON-NLS } return "artifact-icon.png"; //NON-NLS @@ -259,16 +236,8 @@ public class ExtractedContent implements AutopsyVisitableItem { * the event is a remote event. */ final ModuleDataEvent event = (ModuleDataEvent) evt.getOldValue(); - if (null != event) { - boolean passed = true; - for (BlackboardArtifact.Type type : doNotShow) { - if (type.getTypeID() == event.getBlackboardArtifactType().getTypeID()) { - passed = false; - } - } - if (passed) { - refresh(true); - } + if (null != event && !(this.doNotShow.contains(event.getBlackboardArtifactType()))) { + refresh(true); } } catch (IllegalStateException notUsed) { /** @@ -416,62 +385,6 @@ public class ExtractedContent implements AutopsyVisitableItem { return v.visit(this); } - // @@@ TODO: Merge with BlackboartArtifactNode.getIcon() - private String getIcon(BlackboardArtifact.ARTIFACT_TYPE type) { - switch (type) { - case TSK_WEB_BOOKMARK: - return "bookmarks.png"; //NON-NLS - case TSK_WEB_COOKIE: - return "cookies.png"; //NON-NLS - case TSK_WEB_HISTORY: - return "history.png"; //NON-NLS - case TSK_WEB_DOWNLOAD: - return "downloads.png"; //NON-NLS - case TSK_INSTALLED_PROG: - return "programs.png"; //NON-NLS - case TSK_RECENT_OBJECT: - return "recent_docs.png"; //NON-NLS - case TSK_DEVICE_ATTACHED: - return "usb_devices.png"; //NON-NLS - case TSK_WEB_SEARCH_QUERY: - return "searchquery.png"; //NON-NLS - case TSK_METADATA_EXIF: - return "camera-icon-16.png"; //NON-NLS - case TSK_EMAIL_MSG: - return "mail-icon-16.png"; //NON-NLS - case TSK_CONTACT: - return "contact.png"; //NON-NLS - case TSK_MESSAGE: - return "message.png"; //NON-NLS - case TSK_CALLLOG: - return "calllog.png"; //NON-NLS - case TSK_CALENDAR_ENTRY: - return "calendar.png"; //NON-NLS - case TSK_SPEED_DIAL_ENTRY: - return "speeddialentry.png"; //NON-NLS - case TSK_BLUETOOTH_PAIRING: - return "bluetooth.png"; //NON-NLS - case TSK_GPS_BOOKMARK: - return "gpsfav.png"; //NON-NLS - case TSK_GPS_LAST_KNOWN_LOCATION: - return "gps-lastlocation.png"; //NON-NLS - case TSK_GPS_SEARCH: - return "gps-search.png"; //NON-NLS - case TSK_SERVICE_ACCOUNT: - return "account-icon-16.png"; //NON-NLS - case TSK_ENCRYPTION_DETECTED: - return "encrypted-file.png"; //NON-NLS - case TSK_EXT_MISMATCH_DETECTED: - return "mismatch-16.png"; //NON-NLS - case TSK_OS_INFO: - return "computer.png"; //NON-NLS - case TSK_FACE_DETECTED: - return "face.png"; //NON-NLS - - } - return "artifact-icon.png"; //NON-NLS - } - @Override public boolean isLeafTypeNode() { return true;