mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-14 17:06:16 +00:00
Added LocalFilesDataSourceNode
This commit is contained in:
parent
cd963ef0b6
commit
8ae23cfe47
@ -45,6 +45,7 @@ AttachmentNode.getActions.openInExtViewer.text=Open in External Viewer Ctrl+E
|
||||
AttachmentNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash
|
||||
AttachmentNode.getActions.viewFileInDir.text=View File in Directory
|
||||
AttachmentNode.getActions.viewInNewWin.text=View in New Window
|
||||
# {0} - node name
|
||||
BaseChildFactory.NoSuchEventBusException.message=No event bus for node: {0}
|
||||
BlackboardArtifactNode.createSheet.artifactDetails.displayName=Result Details
|
||||
BlackboardArtifactNode.createSheet.artifactDetails.name=Result Details
|
||||
@ -170,6 +171,23 @@ KeywordHits.kwHits.text=Keyword Hits
|
||||
KeywordHits.simpleLiteralSearch.text=Single Literal Keyword Search
|
||||
KeywordHits.singleRegexSearch.text=Single Regular Expression Search
|
||||
LayoutFileNode.getActions.viewFileInDir.text=View File in Directory
|
||||
LocalFilesDataSourceNode.createSheet.deviceId.desc=Device ID of the image
|
||||
LocalFilesDataSourceNode.createSheet.deviceId.displayName=Device ID
|
||||
LocalFilesDataSourceNode.createSheet.deviceId.name=Device ID
|
||||
LocalFilesDataSourceNode.createSheet.name.desc=no description
|
||||
LocalFilesDataSourceNode.createSheet.name.displayName=Name
|
||||
LocalFilesDataSourceNode.createSheet.name.name=Name
|
||||
LocalFilesDataSourceNode.createSheet.noDesc=no description
|
||||
LocalFilesDataSourceNode.createSheet.size.desc=Size of the data source in bytes.
|
||||
LocalFilesDataSourceNode.createSheet.size.displayName=Size (Bytes)
|
||||
LocalFilesDataSourceNode.createSheet.size.name=Size (Bytes)
|
||||
LocalFilesDataSourceNode.createSheet.timezone.desc=Timezone of the image
|
||||
LocalFilesDataSourceNode.createSheet.timezone.displayName=Timezone
|
||||
LocalFilesDataSourceNode.createSheet.timezone.name=Timezone
|
||||
LocalFilesDataSourceNode.createSheet.type.desc=Type of the image.
|
||||
LocalFilesDataSourceNode.createSheet.type.displayName=Type
|
||||
LocalFilesDataSourceNode.createSheet.type.name=Type
|
||||
LocalFilesDataSourceNode.createSheet.type.text=Logical File Set
|
||||
OpenIDE-Module-Name=DataModel
|
||||
AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg=No Node defined for the given SleuthkitItem
|
||||
AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg=No Node defined for the given DisplayableItem
|
||||
@ -271,10 +289,10 @@ ImageNode.getActions.viewInNewWin.text=View in New Window
|
||||
ImageNode.createSheet.name.name=Name
|
||||
ImageNode.createSheet.name.displayName=Name
|
||||
ImageNode.createSheet.name.desc=no description
|
||||
Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI test call returned without error, but version string was null!
|
||||
Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI test call returned without error, but version string was ""!
|
||||
Installer.tskLibErr.msg=Problem with Sleuth Kit JNI. Test call failed!\n\nDetails: {0}
|
||||
Installer.tskLibErr.err=Fatal Error!
|
||||
Installer.exception.tskVerStringNull.msg=Sleuth Kit JNI test call returned without error, but version string was null\!
|
||||
Installer.exception.taskVerStringBang.msg=Sleuth Kit JNI test call returned without error, but version string was ""\!
|
||||
Installer.tskLibErr.msg=Problem with Sleuth Kit JNI. Test call failed\!\n\nDetails: {0}
|
||||
Installer.tskLibErr.err=Fatal Error\!
|
||||
InterestingHits.interestingItems.text=INTERESTING ITEMS
|
||||
InterestingHits.displayName.text=Interesting Items
|
||||
InterestingHits.createSheet.name.name=Name
|
||||
@ -377,19 +395,6 @@ ViewsNode.name.text=File Views
|
||||
ViewsNode.createSheet.name.name=Name
|
||||
ViewsNode.createSheet.name.displayName=Name
|
||||
ViewsNode.createSheet.name.desc=no description
|
||||
VirtualDirectoryNode.createSheet.deviceId.desc=Device ID of the image
|
||||
VirtualDirectoryNode.createSheet.deviceId.displayName=Device ID
|
||||
VirtualDirectoryNode.createSheet.deviceId.name=Device ID
|
||||
VirtualDirectoryNode.createSheet.size.desc=Size of the data source in bytes.
|
||||
VirtualDirectoryNode.createSheet.size.displayName=Size (Bytes)
|
||||
VirtualDirectoryNode.createSheet.size.name=Size (Bytes)
|
||||
VirtualDirectoryNode.createSheet.timezone.desc=Timezone of the image
|
||||
VirtualDirectoryNode.createSheet.timezone.displayName=Timezone
|
||||
VirtualDirectoryNode.createSheet.timezone.name=Timezone
|
||||
VirtualDirectoryNode.createSheet.type.desc=Type of the image.
|
||||
VirtualDirectoryNode.createSheet.type.displayName=Type
|
||||
VirtualDirectoryNode.createSheet.type.name=Type
|
||||
VirtualDirectoryNode.createSheet.type.text=Logical File Set
|
||||
VirtualDirectoryNode.getActions.viewInNewWin.text=View in New Window
|
||||
VirtualDirectoryNode.createSheet.name.name=Name
|
||||
VirtualDirectoryNode.createSheet.name.displayName=Name
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2011 Basis Technology Corp.
|
||||
* Copyright 2011-2021 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -55,6 +55,8 @@ interface ContentNodeVisitor<T> {
|
||||
T visit(UnsupportedContentNode ucn);
|
||||
|
||||
T visit(OsAccountNode bban);
|
||||
|
||||
T visit(LocalFilesDataSourceNode lfdsn);
|
||||
|
||||
/**
|
||||
* Visitor with an implementable default behavior for all types. Override
|
||||
@ -137,5 +139,10 @@ interface ContentNodeVisitor<T> {
|
||||
public T visit(OsAccountNode bban) {
|
||||
return defaultVisit(bban);
|
||||
}
|
||||
|
||||
@Override
|
||||
public T visit(LocalFilesDataSourceNode lfdsn) {
|
||||
return defaultVisit(lfdsn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import org.sleuthkit.datamodel.Image;
|
||||
import org.sleuthkit.datamodel.LayoutFile;
|
||||
import org.sleuthkit.datamodel.LocalDirectory;
|
||||
import org.sleuthkit.datamodel.LocalFile;
|
||||
import org.sleuthkit.datamodel.LocalFilesDataSource;
|
||||
import org.sleuthkit.datamodel.Pool;
|
||||
import org.sleuthkit.datamodel.SlackFile;
|
||||
import org.sleuthkit.datamodel.SleuthkitItemVisitor;
|
||||
@ -111,4 +112,9 @@ public class CreateSleuthkitNodeVisitor extends SleuthkitItemVisitor.Default<Abs
|
||||
throw new UnsupportedOperationException(NbBundle.getMessage(this.getClass(),
|
||||
"AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbstractContentNode<? extends Content> visit(LocalFilesDataSource ld) {
|
||||
return new LocalFilesDataSourceNode(ld);
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2011 - 2018 Basis Technology Corp.
|
||||
* Copyright 2011 - 2021 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -202,6 +202,8 @@ public interface DisplayableItemNodeVisitor<T> {
|
||||
* Unsupported node
|
||||
*/
|
||||
T visit(UnsupportedContentNode ucn);
|
||||
|
||||
T visit(LocalFilesDataSourceNode lfdsn);
|
||||
|
||||
/**
|
||||
* Visitor with an implementable default behavior for all types. Override
|
||||
@ -574,5 +576,10 @@ public interface DisplayableItemNodeVisitor<T> {
|
||||
public T visit(UnsupportedContentNode node) {
|
||||
return defaultVisit(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public T visit(LocalFilesDataSourceNode node) {
|
||||
return defaultVisit(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
99
Core/src/org/sleuthkit/autopsy/datamodel/LocalFilesDataSourceNode.java
Executable file
99
Core/src/org/sleuthkit/autopsy/datamodel/LocalFilesDataSourceNode.java
Executable file
@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2021 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.datamodel.LocalFilesDataSource;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class LocalFilesDataSourceNode extends VirtualDirectoryNode {
|
||||
|
||||
private final LocalFilesDataSource localFileDataSource;
|
||||
|
||||
public LocalFilesDataSourceNode(LocalFilesDataSource ld) {
|
||||
super(ld);
|
||||
localFileDataSource = ld;
|
||||
this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/fileset-icon-16.png"); //NON-NLS
|
||||
}
|
||||
|
||||
@Override
|
||||
@NbBundle.Messages({"LocalFilesDataSourceNode.createSheet.size.name=Size (Bytes)",
|
||||
"LocalFilesDataSourceNode.createSheet.size.displayName=Size (Bytes)",
|
||||
"LocalFilesDataSourceNode.createSheet.size.desc=Size of the data source in bytes.",
|
||||
"LocalFilesDataSourceNode.createSheet.type.name=Type",
|
||||
"LocalFilesDataSourceNode.createSheet.type.displayName=Type",
|
||||
"LocalFilesDataSourceNode.createSheet.type.desc=Type of the image.",
|
||||
"LocalFilesDataSourceNode.createSheet.type.text=Logical File Set",
|
||||
"LocalFilesDataSourceNode.createSheet.timezone.name=Timezone",
|
||||
"LocalFilesDataSourceNode.createSheet.timezone.displayName=Timezone",
|
||||
"LocalFilesDataSourceNode.createSheet.timezone.desc=Timezone of the image",
|
||||
"LocalFilesDataSourceNode.createSheet.deviceId.name=Device ID",
|
||||
"LocalFilesDataSourceNode.createSheet.deviceId.displayName=Device ID",
|
||||
"LocalFilesDataSourceNode.createSheet.deviceId.desc=Device ID of the image",
|
||||
"LocalFilesDataSourceNode.createSheet.name.name=Name",
|
||||
"LocalFilesDataSourceNode.createSheet.name.displayName=Name",
|
||||
"LocalFilesDataSourceNode.createSheet.name.desc=no description",
|
||||
"LocalFilesDataSourceNode.createSheet.noDesc=no description",})
|
||||
protected Sheet createSheet() {
|
||||
Sheet sheet = new Sheet();
|
||||
Sheet.Set sheetSet = Sheet.createPropertiesSet();
|
||||
sheet.put(sheetSet);
|
||||
|
||||
sheetSet.put(new NodeProperty<>(Bundle.LocalFilesDataSourceNode_createSheet_name_name(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_name_displayName(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_name_desc(),
|
||||
getName()));
|
||||
|
||||
sheetSet.put(new NodeProperty<>(Bundle.LocalFilesDataSourceNode_createSheet_type_name(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_type_displayName(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_type_desc(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_type_text()));
|
||||
|
||||
sheetSet.put(new NodeProperty<>(Bundle.LocalFilesDataSourceNode_createSheet_size_name(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_size_displayName(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_size_desc(),
|
||||
this.content.getSize()));
|
||||
|
||||
sheetSet.put(new NodeProperty<>(Bundle.LocalFilesDataSourceNode_createSheet_timezone_name(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_timezone_displayName(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_timezone_desc(),
|
||||
""));
|
||||
|
||||
sheetSet.put(new NodeProperty<>(Bundle.LocalFilesDataSourceNode_createSheet_deviceId_name(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_deviceId_displayName(),
|
||||
Bundle.LocalFilesDataSourceNode_createSheet_deviceId_desc(),
|
||||
localFileDataSource.getDeviceId()));
|
||||
|
||||
return sheet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T accept(ContentNodeVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T accept(DisplayableItemNodeVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2011-2019 Basis Technology Corp.
|
||||
* Copyright 2011-2021 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -18,16 +18,9 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.logging.Level;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.datamodel.SleuthkitCase;
|
||||
import org.sleuthkit.datamodel.TskCoreException;
|
||||
import org.sleuthkit.datamodel.VirtualDirectory;
|
||||
|
||||
/**
|
||||
@ -47,76 +40,12 @@ public class VirtualDirectoryNode extends SpecialDirectoryNode {
|
||||
super(ld);
|
||||
|
||||
this.setDisplayName(nameForVirtualDirectory(ld));
|
||||
|
||||
//set icon for name, special case for logical file set
|
||||
if (ld.isDataSource()) {
|
||||
this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/fileset-icon-16.png"); //NON-NLS
|
||||
} else {
|
||||
this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/folder-icon-virtual.png"); //TODO NON-NLS
|
||||
}
|
||||
|
||||
this.setIconBaseWithExtension("org/sleuthkit/autopsy/images/folder-icon-virtual.png"); //TODO NON-NLS
|
||||
}
|
||||
|
||||
@Override
|
||||
@NbBundle.Messages({"VirtualDirectoryNode.createSheet.size.name=Size (Bytes)",
|
||||
"VirtualDirectoryNode.createSheet.size.displayName=Size (Bytes)",
|
||||
"VirtualDirectoryNode.createSheet.size.desc=Size of the data source in bytes.",
|
||||
"VirtualDirectoryNode.createSheet.type.name=Type",
|
||||
"VirtualDirectoryNode.createSheet.type.displayName=Type",
|
||||
"VirtualDirectoryNode.createSheet.type.desc=Type of the image.",
|
||||
"VirtualDirectoryNode.createSheet.type.text=Logical File Set",
|
||||
"VirtualDirectoryNode.createSheet.timezone.name=Timezone",
|
||||
"VirtualDirectoryNode.createSheet.timezone.displayName=Timezone",
|
||||
"VirtualDirectoryNode.createSheet.timezone.desc=Timezone of the image",
|
||||
"VirtualDirectoryNode.createSheet.deviceId.name=Device ID",
|
||||
"VirtualDirectoryNode.createSheet.deviceId.displayName=Device ID",
|
||||
"VirtualDirectoryNode.createSheet.deviceId.desc=Device ID of the image"})
|
||||
protected Sheet createSheet() {
|
||||
//Do a special strategy for virtual directories..
|
||||
if(this.content.isDataSource()){
|
||||
Sheet sheet = new Sheet();
|
||||
Sheet.Set sheetSet = Sheet.createPropertiesSet();
|
||||
sheet.put(sheetSet);
|
||||
|
||||
sheetSet.put(new NodeProperty<>(NbBundle.getMessage(this.getClass(), "VirtualDirectoryNode.createSheet.name.name"),
|
||||
NbBundle.getMessage(this.getClass(),
|
||||
"VirtualDirectoryNode.createSheet.name.displayName"),
|
||||
NbBundle.getMessage(this.getClass(), "VirtualDirectoryNode.createSheet.name.desc"),
|
||||
getName()));
|
||||
|
||||
sheetSet.put(new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_type_name(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_type_displayName(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_type_desc(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_type_text()));
|
||||
sheetSet.put(new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_size_name(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_size_displayName(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_size_desc(),
|
||||
this.content.getSize()));
|
||||
try (SleuthkitCase.CaseDbQuery query = Case.getCurrentCaseThrows().getSleuthkitCase().executeQuery("SELECT time_zone FROM data_source_info WHERE obj_id = " + this.content.getId())) {
|
||||
ResultSet timeZoneSet = query.getResultSet();
|
||||
if (timeZoneSet.next()) {
|
||||
sheetSet.put(new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_timezone_name(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_timezone_displayName(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_timezone_desc(),
|
||||
timeZoneSet.getString("time_zone")));
|
||||
}
|
||||
} catch (SQLException | TskCoreException | NoCurrentCaseException ex) {
|
||||
logger.log(Level.SEVERE, "Failed to get time zone for the following image: " + this.content.getId(), ex);
|
||||
}
|
||||
try (SleuthkitCase.CaseDbQuery query = Case.getCurrentCaseThrows().getSleuthkitCase().executeQuery("SELECT device_id FROM data_source_info WHERE obj_id = " + this.content.getId());) {
|
||||
ResultSet deviceIdSet = query.getResultSet();
|
||||
if (deviceIdSet.next()) {
|
||||
sheetSet.put(new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_deviceId_name(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_deviceId_displayName(),
|
||||
Bundle.VirtualDirectoryNode_createSheet_deviceId_desc(),
|
||||
deviceIdSet.getString("device_id")));
|
||||
}
|
||||
} catch (SQLException | TskCoreException | NoCurrentCaseException ex) {
|
||||
logger.log(Level.SEVERE, "Failed to get device id for the following image: " + this.content.getId(), ex);
|
||||
}
|
||||
return sheet;
|
||||
}
|
||||
|
||||
//Otherwise default to the AAFN createSheet method.
|
||||
Sheet defaultSheet = super.createSheet();
|
||||
Sheet.Set defaultSheetSet = defaultSheet.get(Sheet.PROPERTIES);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user