19 package org.sleuthkit.autopsy.datamodel;
21 import java.sql.ResultSet;
22 import java.sql.SQLException;
23 import java.util.LinkedHashMap;
24 import java.util.List;
26 import java.util.logging.Level;
27 import org.openide.nodes.Sheet;
28 import org.openide.util.NbBundle;
59 if (ld.isDataSource()) {
60 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/fileset-icon-16.png");
62 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/folder-icon-virtual.png");
67 @NbBundle.Messages({
"VirtualDirectoryNode.createSheet.size.name=Size (Bytes)",
68 "VirtualDirectoryNode.createSheet.size.displayName=Size (Bytes)",
69 "VirtualDirectoryNode.createSheet.size.desc=Size of the data source in bytes.",
70 "VirtualDirectoryNode.createSheet.type.name=Type",
71 "VirtualDirectoryNode.createSheet.type.displayName=Type",
72 "VirtualDirectoryNode.createSheet.type.desc=Type of the image.",
73 "VirtualDirectoryNode.createSheet.type.text=Logical File Set",
74 "VirtualDirectoryNode.createSheet.timezone.name=Timezone",
75 "VirtualDirectoryNode.createSheet.timezone.displayName=Timezone",
76 "VirtualDirectoryNode.createSheet.timezone.desc=Timezone of the image",
77 "VirtualDirectoryNode.createSheet.deviceId.name=Device ID",
78 "VirtualDirectoryNode.createSheet.deviceId.displayName=Device ID",
79 "VirtualDirectoryNode.createSheet.deviceId.desc=Device ID of the image"})
81 Sheet sheet = super.createSheet();
82 Sheet.Set sheetSet = sheet.get(Sheet.PROPERTIES);
83 if (sheetSet == null) {
84 sheetSet = Sheet.createPropertiesSet();
89 sheetSet.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"VirtualDirectoryNode.createSheet.name.name"),
90 NbBundle.getMessage(
this.getClass(),
91 "VirtualDirectoryNode.createSheet.name.displayName"),
92 NbBundle.getMessage(
this.getClass(),
"VirtualDirectoryNode.createSheet.name.desc"),
94 if (!this.content.isDataSource()) {
106 Map<String, Object> map =
new LinkedHashMap<>();
109 final String
NO_DESCR = NbBundle.getMessage(this.getClass(),
"VirtualDirectoryNode.createSheet.noDesc");
110 for (Map.Entry<String, Object> entry : map.entrySet()) {
114 sheetSet.put(
new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_type_name(),
115 Bundle.VirtualDirectoryNode_createSheet_type_displayName(),
116 Bundle.VirtualDirectoryNode_createSheet_type_desc(),
117 Bundle.VirtualDirectoryNode_createSheet_type_text()));
118 sheetSet.put(
new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_size_name(),
119 Bundle.VirtualDirectoryNode_createSheet_size_displayName(),
120 Bundle.VirtualDirectoryNode_createSheet_size_desc(),
121 this.content.getSize()));
123 ResultSet timeZoneSet = query.getResultSet();
124 if (timeZoneSet.next()) {
125 sheetSet.put(
new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_timezone_name(),
126 Bundle.VirtualDirectoryNode_createSheet_timezone_displayName(),
127 Bundle.VirtualDirectoryNode_createSheet_timezone_desc(),
128 timeZoneSet.getString(
"time_zone")));
131 logger.log(Level.SEVERE,
"Failed to get time zone for the following image: " +
this.content.getId(), ex);
134 ResultSet deviceIdSet = query.getResultSet();
135 if (deviceIdSet.next()) {
136 sheetSet.put(
new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_deviceId_name(),
137 Bundle.VirtualDirectoryNode_createSheet_deviceId_displayName(),
138 Bundle.VirtualDirectoryNode_createSheet_deviceId_desc(),
139 deviceIdSet.getString(
"device_id")));
142 logger.log(Level.SEVERE,
"Failed to get device id for the following image: " +
this.content.getId(), ex);
151 public <T> T accept(ContentNodeVisitor<T> visitor) {
152 return visitor.visit(
this);
156 public <T> T accept(DisplayableItemNodeVisitor<T> visitor) {
157 return visitor.visit(
this);
final void addScoreProperty(Sheet.Set sheetSet, List< ContentTag > tags)
final CorrelationAttributeInstance getCorrelationAttributeInstance()
static boolean useCentralRepo()
static void fillPropertyMap(Map< String, Object > map, AbstractFile content)
VirtualDirectoryNode(VirtualDirectory ld)
static final Logger logger
static final String NO_DESCR
SleuthkitCase getSleuthkitCase()
final void addCountProperty(Sheet.Set sheetSet, CorrelationAttributeInstance attribute)
final void addCommentProperty(Sheet.Set sheetSet, List< ContentTag > tags, CorrelationAttributeInstance attribute)
synchronized static Logger getLogger(String name)
static Case getCurrentCaseThrows()
static boolean hideCentralRepoCommentsAndOccurrences()
static final String LOGICAL_FILE_SET_PREFIX
final List< ContentTag > getContentTagsFromDatabase()
static String nameForVirtualDirectory(VirtualDirectory ld)