mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 18:17:43 +00:00
refactoring
This commit is contained in:
parent
9a153d5beb
commit
cdf6eafbf7
@ -44,7 +44,7 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataResult;
|
||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer;
|
||||
import org.sleuthkit.autopsy.datamodel.NodeSelectionInfo;
|
||||
import org.sleuthkit.autopsy.mainui.nodes.SearchResultRootNode;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.ThreePanelDAO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.MainDAO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.SearchResultsDTO;
|
||||
|
||||
/**
|
||||
|
@ -45,11 +45,11 @@ import org.sleuthkit.autopsy.mainui.nodes.DataArtifactNode;
|
||||
import org.sleuthkit.autopsy.mainui.nodes.FileNode;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.FileTypeExtensionsSearchParam;
|
||||
import org.sleuthkit.autopsy.mainui.nodes.SearchResultRootNode;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.ThreePanelDAO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.RowResultDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.MainDAO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.SearchResultsDTO;
|
||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.RowDTO;
|
||||
|
||||
/**
|
||||
* A DataResultTopComponent object is a NetBeans top component that provides
|
||||
@ -371,7 +371,7 @@ public final class DataResultTopComponent extends TopComponent implements DataRe
|
||||
dataResultPanel.setNode(selectedNode);
|
||||
}
|
||||
|
||||
private final ThreePanelDAO threePanelDAO = ThreePanelDAO.getInstance();
|
||||
private final MainDAO threePanelDAO = MainDAO.getInstance();
|
||||
|
||||
public void displayDataArtifact(DataArtifactSearchParam dataArtifactKey) {
|
||||
try {
|
||||
|
@ -88,7 +88,6 @@ import org.sleuthkit.autopsy.datamodel.BaseChildFactory.PageChangeEvent;
|
||||
import org.sleuthkit.autopsy.datamodel.BaseChildFactory.PageCountChangeEvent;
|
||||
import org.sleuthkit.autopsy.datamodel.BaseChildFactory.PageSizeChangeEvent;
|
||||
import org.sleuthkit.autopsy.mainui.nodes.SearchResultRootNode;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.ThreePanelDAO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.SearchResultsDTO;
|
||||
import org.sleuthkit.datamodel.Score.Significance;
|
||||
|
||||
|
@ -23,13 +23,13 @@ import java.util.List;
|
||||
/**
|
||||
* Base implementation for a row result.
|
||||
*/
|
||||
public class BaseRowResultDTO implements RowResultDTO {
|
||||
public class BaseRowDTO implements RowDTO {
|
||||
|
||||
private final List<Object> cellValues;
|
||||
private final long id;
|
||||
private final String typeId;
|
||||
|
||||
public BaseRowResultDTO(List<Object> cellValues, String typeId, long id) {
|
||||
public BaseRowDTO(List<Object> cellValues, String typeId, long id) {
|
||||
this.cellValues = cellValues;
|
||||
this.id = id;
|
||||
this.typeId = typeId;
|
||||
@ -68,7 +68,7 @@ public class BaseRowResultDTO implements RowResultDTO {
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
final BaseRowResultDTO other = (BaseRowResultDTO) obj;
|
||||
final BaseRowDTO other = (BaseRowDTO) obj;
|
||||
if (this.id != other.id) {
|
||||
return false;
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* 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.mainui.datamodel;
|
||||
|
||||
/**
|
||||
* Base implementation of search parameters to provide to a DAO.
|
||||
*/
|
||||
public class BaseSearchParam implements SearchParam {
|
||||
private final long startItem;
|
||||
private final Long maxResultsCount;
|
||||
|
||||
/**
|
||||
* Constructor that gets all results.
|
||||
*/
|
||||
public BaseSearchParam() {
|
||||
this(0, null);
|
||||
}
|
||||
|
||||
public BaseSearchParam(long startItem, Long maxResultsCount) {
|
||||
this.startItem = startItem;
|
||||
this.maxResultsCount = maxResultsCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getStartItem() {
|
||||
return startItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getMaxResultsCount() {
|
||||
return maxResultsCount;
|
||||
}
|
||||
}
|
@ -28,15 +28,15 @@ public class BaseSearchResultsDTO implements SearchResultsDTO {
|
||||
private final String typeId;
|
||||
private final String displayName;
|
||||
private final List<ColumnKey> columns;
|
||||
private final List<RowResultDTO> items;
|
||||
private final List<RowDTO> items;
|
||||
private final long totalResultsCount;
|
||||
private final long startItem;
|
||||
|
||||
public BaseSearchResultsDTO(String typeId, String displayName, List<ColumnKey> columns, List<RowResultDTO> items) {
|
||||
public BaseSearchResultsDTO(String typeId, String displayName, List<ColumnKey> columns, List<RowDTO> items) {
|
||||
this(typeId, displayName, columns, items, 0, items == null ? 0 : items.size());
|
||||
}
|
||||
|
||||
public BaseSearchResultsDTO(String typeId, String displayName, List<ColumnKey> columns, List<RowResultDTO> items, long startItem, long totalResultsCount) {
|
||||
public BaseSearchResultsDTO(String typeId, String displayName, List<ColumnKey> columns, List<RowDTO> items, long startItem, long totalResultsCount) {
|
||||
this.typeId = typeId;
|
||||
this.displayName = displayName;
|
||||
this.columns = columns;
|
||||
@ -61,7 +61,7 @@ public class BaseSearchResultsDTO implements SearchResultsDTO {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RowResultDTO> getItems() {
|
||||
public List<RowDTO> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@ import org.openide.util.NbBundle.Messages;
|
||||
"CountsRowResultDTO_columns_count_displayName=Name",
|
||||
"CountsRowResultDTO_columns_count_description=Name"
|
||||
})
|
||||
public class CountsRowResultDTO implements RowResultDTO {
|
||||
public class CountsRowDTO implements RowDTO {
|
||||
|
||||
private static final String DEFAULT_TYPE_ID = "COUNTS";
|
||||
|
||||
@ -55,11 +55,11 @@ public class CountsRowResultDTO implements RowResultDTO {
|
||||
private final List<Object> cellValues;
|
||||
private final String typeId;
|
||||
|
||||
public CountsRowResultDTO(long id, String displayName, long count) {
|
||||
public CountsRowDTO(long id, String displayName, long count) {
|
||||
this(DEFAULT_TYPE_ID, id, displayName, count);
|
||||
}
|
||||
|
||||
public CountsRowResultDTO(String typeId, long id, String displayName, long count) {
|
||||
public CountsRowDTO(String typeId, long id, String displayName, long count) {
|
||||
this.typeId = typeId;
|
||||
this.id = id;
|
||||
this.displayName = displayName;
|
@ -65,7 +65,7 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
"ThreePanelDataArtifactDAO.dataArtifact.columnKeys.dataSource.displayName=Data Source",
|
||||
"ThreePanelDataArtifactDAO.dataArtifact.columnKeys.dataSource.description=Data Source"
|
||||
})
|
||||
public class ThreePanelDataArtifactDAO {
|
||||
public class DataArtifactDAO {
|
||||
|
||||
// GVDTODO there is a different standard for normal attr strings and email attr strings
|
||||
private static final int STRING_LENGTH_MAX = 160;
|
||||
@ -117,11 +117,11 @@ public class ThreePanelDataArtifactDAO {
|
||||
Bundle.ThreePanelDataArtifactDAO_dataArtifact_columnKeys_dataSource_description()
|
||||
);
|
||||
|
||||
private static ThreePanelDataArtifactDAO instance = null;
|
||||
private static DataArtifactDAO instance = null;
|
||||
|
||||
synchronized static ThreePanelDataArtifactDAO getInstance() {
|
||||
synchronized static DataArtifactDAO getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new ThreePanelDataArtifactDAO();
|
||||
instance = new DataArtifactDAO();
|
||||
}
|
||||
|
||||
return instance;
|
||||
@ -174,7 +174,7 @@ public class ThreePanelDataArtifactDAO {
|
||||
columnKeys.add(DATASOURCE_COL);
|
||||
|
||||
// determine all different attribute types present as well as row data for each artifact
|
||||
List<RowResultDTO> rows = new ArrayList<>();
|
||||
List<RowDTO> rows = new ArrayList<>();
|
||||
|
||||
for (DataArtifact artifact : arts) {
|
||||
List<Object> cellValues = new ArrayList<>();
|
||||
@ -204,7 +204,7 @@ public class ThreePanelDataArtifactDAO {
|
||||
|
||||
boolean isTimelineSupported = isTimelineSupported(attrValues.keySet());
|
||||
|
||||
rows.add(new DataArtifactTableDTO(artifact, srcContent, linkedFile, isTimelineSupported, cellValues, id));
|
||||
rows.add(new DataArtifactRowDTO(artifact, srcContent, linkedFile, isTimelineSupported, cellValues, id));
|
||||
}
|
||||
|
||||
return new DataArtifactTableSearchResultsDTO(artType, columnKeys, rows);
|
@ -25,7 +25,7 @@ import org.sleuthkit.datamodel.DataArtifact;
|
||||
/**
|
||||
* A result for a data artifact.
|
||||
*/
|
||||
public class DataArtifactTableDTO extends BaseRowResultDTO {
|
||||
public class DataArtifactRowDTO extends BaseRowDTO {
|
||||
|
||||
private static final String TYPE_ID = "DATA_ARTIFACT";
|
||||
|
||||
@ -39,7 +39,7 @@ public class DataArtifactTableDTO extends BaseRowResultDTO {
|
||||
final Content linkedFile;
|
||||
final boolean isTimelineSupported;
|
||||
|
||||
public DataArtifactTableDTO(DataArtifact dataArtifact, Content srcContent, Content linkedFile, boolean isTimelineSupported, List<Object> cellValues, long id) {
|
||||
public DataArtifactRowDTO(DataArtifact dataArtifact, Content srcContent, Content linkedFile, boolean isTimelineSupported, List<Object> cellValues, long id) {
|
||||
super(cellValues, TYPE_ID, id);
|
||||
this.dataArtifact = dataArtifact;
|
||||
this.srcContent = srcContent;
|
@ -24,7 +24,7 @@ import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||
/**
|
||||
* Key for data artifact in order to retrieve data from DAO.
|
||||
*/
|
||||
public class DataArtifactSearchParam {
|
||||
public class DataArtifactSearchParam extends BaseSearchParam {
|
||||
private final BlackboardArtifact.Type artifactType;
|
||||
private final Long dataSourceId;
|
||||
|
||||
@ -33,6 +33,12 @@ public class DataArtifactSearchParam {
|
||||
this.dataSourceId = dataSourceId;
|
||||
}
|
||||
|
||||
public DataArtifactSearchParam(BlackboardArtifact.Type artifactType, Long dataSourceId, long startItem, Long maxResultsCount) {
|
||||
super(startItem, maxResultsCount);
|
||||
this.artifactType = artifactType;
|
||||
this.dataSourceId = dataSourceId;
|
||||
}
|
||||
|
||||
public BlackboardArtifact.Type getArtifactType() {
|
||||
return artifactType;
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public class DataArtifactTableSearchResultsDTO extends BaseSearchResultsDTO {
|
||||
|
||||
private final BlackboardArtifact.Type artifactType;
|
||||
|
||||
public DataArtifactTableSearchResultsDTO(BlackboardArtifact.Type artifactType, List<ColumnKey> columns, List<RowResultDTO> items) {
|
||||
public DataArtifactTableSearchResultsDTO(BlackboardArtifact.Type artifactType, List<ColumnKey> columns, List<RowDTO> items) {
|
||||
super(TYPE_ID, artifactType.getDisplayName(), columns, items);
|
||||
this.artifactType = artifactType;
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import org.sleuthkit.datamodel.TskData;
|
||||
/**
|
||||
* DTO Representing an abstract file in the results view.
|
||||
*/
|
||||
public class FileRowDTO extends BaseRowResultDTO {
|
||||
public class FileRowDTO extends BaseRowDTO {
|
||||
|
||||
public enum ExtensionMediaType {
|
||||
IMAGE, VIDEO, AUDIO, DOC, EXECUTABLE, TEXT, WEB, PDF, ARCHIVE, UNCATEGORIZED
|
||||
@ -37,15 +37,18 @@ public class FileRowDTO extends BaseRowResultDTO {
|
||||
return TYPE_ID;
|
||||
}
|
||||
|
||||
final AbstractFile abstractFile;
|
||||
final String fileName;
|
||||
final String extension;
|
||||
final ExtensionMediaType extensionMediaType;
|
||||
final boolean allocated;
|
||||
final TskData.TSK_DB_FILES_TYPE_ENUM fileType;
|
||||
final boolean encryptionDetected;
|
||||
private final AbstractFile abstractFile;
|
||||
private final String fileName;
|
||||
private final String extension;
|
||||
private final ExtensionMediaType extensionMediaType;
|
||||
private final boolean allocated;
|
||||
private final TskData.TSK_DB_FILES_TYPE_ENUM fileType;
|
||||
private final boolean encryptionDetected;
|
||||
private final boolean visibleChildren;
|
||||
|
||||
public FileRowDTO(AbstractFile abstractFile, long id, String fileName, String extension, ExtensionMediaType extensionMediaType, boolean allocated, TskData.TSK_DB_FILES_TYPE_ENUM fileType, boolean encryptionDetected, List<Object> cellValues) {
|
||||
public FileRowDTO(AbstractFile abstractFile, long id, String fileName, String extension,
|
||||
ExtensionMediaType extensionMediaType, boolean allocated, TskData.TSK_DB_FILES_TYPE_ENUM fileType,
|
||||
boolean encryptionDetected, boolean visibleChildren, List<Object> cellValues) {
|
||||
super(cellValues, TYPE_ID, id);
|
||||
this.abstractFile = abstractFile;
|
||||
this.fileName = fileName;
|
||||
@ -54,6 +57,7 @@ public class FileRowDTO extends BaseRowResultDTO {
|
||||
this.allocated = allocated;
|
||||
this.fileType = fileType;
|
||||
this.encryptionDetected = encryptionDetected;
|
||||
this.visibleChildren = visibleChildren;
|
||||
}
|
||||
|
||||
public ExtensionMediaType getExtensionMediaType() {
|
||||
@ -84,4 +88,7 @@ public class FileRowDTO extends BaseRowResultDTO {
|
||||
return fileName;
|
||||
}
|
||||
|
||||
public boolean hasVisibleChildren() {
|
||||
return visibleChildren;
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ import java.util.Objects;
|
||||
/**
|
||||
* Key for accessing data about file type extensions from the DAO.
|
||||
*/
|
||||
public class FileTypeExtensionsSearchParam {
|
||||
public class FileTypeExtensionsSearchParam extends BaseSearchParam {
|
||||
|
||||
private final FileExtSearchFilter filter;
|
||||
private final Long dataSourceId;
|
||||
@ -37,6 +37,13 @@ public class FileTypeExtensionsSearchParam {
|
||||
this.knownShown = showKnown;
|
||||
}
|
||||
|
||||
public FileTypeExtensionsSearchParam(FileExtSearchFilter filter, Long dataSourceId, boolean knownShown, long startItem, Long maxResultsCount) {
|
||||
super(startItem, maxResultsCount);
|
||||
this.filter = filter;
|
||||
this.dataSourceId = dataSourceId;
|
||||
this.knownShown = knownShown;
|
||||
}
|
||||
|
||||
public FileExtSearchFilter getFilter() {
|
||||
return filter;
|
||||
}
|
||||
|
@ -22,26 +22,26 @@ package org.sleuthkit.autopsy.mainui.datamodel;
|
||||
* Main entry point for DAO for providing data to populate the data results
|
||||
* viewer.
|
||||
*/
|
||||
public class ThreePanelDAO {
|
||||
public class MainDAO {
|
||||
|
||||
private static ThreePanelDAO instance = null;
|
||||
private static MainDAO instance = null;
|
||||
|
||||
public synchronized static ThreePanelDAO getInstance() {
|
||||
public synchronized static MainDAO getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new ThreePanelDAO();
|
||||
instance = new MainDAO();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
private final ThreePanelDataArtifactDAO dataArtifactDAO = ThreePanelDataArtifactDAO.getInstance();
|
||||
private final ThreePanelViewsDAO viewsDAO = ThreePanelViewsDAO.getInstance();
|
||||
private final DataArtifactDAO dataArtifactDAO = DataArtifactDAO.getInstance();
|
||||
private final ViewsDAO viewsDAO = ViewsDAO.getInstance();
|
||||
|
||||
public ThreePanelDataArtifactDAO getDataArtifactsDAO() {
|
||||
public DataArtifactDAO getDataArtifactsDAO() {
|
||||
return dataArtifactDAO;
|
||||
}
|
||||
|
||||
public ThreePanelViewsDAO getViewsDAO() {
|
||||
public ViewsDAO getViewsDAO() {
|
||||
return viewsDAO;
|
||||
}
|
||||
}
|
@ -23,7 +23,7 @@ import java.util.List;
|
||||
/**
|
||||
* DTO representing an individual row in search results.
|
||||
*/
|
||||
public interface RowResultDTO {
|
||||
public interface RowDTO {
|
||||
|
||||
List<Object> getCellValues();
|
||||
|
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* 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.mainui.datamodel;
|
||||
|
||||
/**
|
||||
* Describes parameters to provide to the DAO for fetching data.
|
||||
*/
|
||||
public interface SearchParam {
|
||||
|
||||
long getStartItem();
|
||||
|
||||
// null if no max defined
|
||||
Long getMaxResultsCount();
|
||||
}
|
@ -32,7 +32,7 @@ public interface SearchResultsDTO {
|
||||
|
||||
List<ColumnKey> getColumns();
|
||||
|
||||
List<RowResultDTO> getItems();
|
||||
List<RowDTO> getItems();
|
||||
|
||||
long getTotalResultsCount();
|
||||
|
||||
|
@ -71,7 +71,7 @@ import org.sleuthkit.datamodel.TskData;
|
||||
"ThreePanelViewsDAO.fileColumns.mimeType=MIME Type",
|
||||
"ThreePanelViewsDAO.fileColumns.extensionColLbl=Extension",
|
||||
"ThreePanelViewsDAO.fileColumns.noDescription=No Description"})
|
||||
public class ThreePanelViewsDAO {
|
||||
public class ViewsDAO {
|
||||
|
||||
private static final String FILE_VIEW_EXT_TYPE_ID = "FILE_VIEW_BY_EXT";
|
||||
|
||||
@ -103,12 +103,11 @@ public class ThreePanelViewsDAO {
|
||||
getFileColumnKey(Bundle.ThreePanelViewsDAO_fileColumns_mimeType()),
|
||||
getFileColumnKey(Bundle.ThreePanelViewsDAO_fileColumns_extensionColLbl()));
|
||||
|
||||
private static ViewsDAO instance = null;
|
||||
|
||||
private static ThreePanelViewsDAO instance = null;
|
||||
|
||||
synchronized static ThreePanelViewsDAO getInstance() {
|
||||
synchronized static ViewsDAO getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new ThreePanelViewsDAO();
|
||||
instance = new ViewsDAO();
|
||||
}
|
||||
|
||||
return instance;
|
||||
@ -207,11 +206,12 @@ public class ThreePanelViewsDAO {
|
||||
String whereStatement = getFileWhereStatement(filter, dataSourceId, showKnown);
|
||||
List<AbstractFile> files = getCase().findAllFilesWhere(whereStatement);
|
||||
|
||||
List<RowResultDTO> fileRows = new ArrayList<>();
|
||||
List<RowDTO> fileRows = new ArrayList<>();
|
||||
for (AbstractFile file : files) {
|
||||
|
||||
boolean encryptionDetected = FileTypeExtensions.getArchiveExtensions().contains("." + file.getNameExtension().toLowerCase())
|
||||
&& file.getArtifacts(BlackboardArtifact.ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED).size() > 0;
|
||||
boolean isArchive = FileTypeExtensions.getArchiveExtensions().contains("." + file.getNameExtension().toLowerCase());
|
||||
boolean encryptionDetected = isArchive && file.getArtifacts(BlackboardArtifact.ARTIFACT_TYPE.TSK_ENCRYPTION_DETECTED).size() > 0;
|
||||
boolean hasVisibleChildren = isArchive || file.isDir();
|
||||
|
||||
List<Object> cellValues = Arrays.asList(
|
||||
file.getName(), // GVDTODO handle . and .. from getContentDisplayName()
|
||||
@ -229,7 +229,6 @@ public class ThreePanelViewsDAO {
|
||||
file.getSize(),
|
||||
file.getDirFlagAsString(),
|
||||
file.getMetaFlagsAsString(),
|
||||
|
||||
// mode,
|
||||
// userid,
|
||||
// groupid,
|
||||
@ -241,7 +240,6 @@ public class ThreePanelViewsDAO {
|
||||
file.getKnown().getName(),
|
||||
StringUtils.defaultString(file.getMd5Hash()),
|
||||
StringUtils.defaultString(file.getSha256Hash()),
|
||||
|
||||
// objectId,
|
||||
|
||||
StringUtils.defaultString(file.getMIMEType()),
|
||||
@ -257,6 +255,7 @@ public class ThreePanelViewsDAO {
|
||||
file.isDirNameFlagSet(TskData.TSK_FS_NAME_FLAG_ENUM.ALLOC),
|
||||
file.getType(),
|
||||
encryptionDetected,
|
||||
hasVisibleChildren,
|
||||
cellValues));
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.DataArtifactTableDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.DataArtifactRowDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.DataArtifactTableSearchResultsDTO;
|
||||
import org.sleuthkit.datamodel.DataArtifact;
|
||||
import org.sleuthkit.datamodel.DerivedFile;
|
||||
@ -86,7 +86,7 @@ public class DataArtifactNode extends AbstractNode {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(DataArtifactNode.class.getName());
|
||||
|
||||
private static Lookup createLookup(DataArtifactTableDTO row) {
|
||||
private static Lookup createLookup(DataArtifactRowDTO row) {
|
||||
DataArtifactItem artifactItem = new DataArtifactItem(row.getDataArtifact(), row.getSrcContent());
|
||||
if (row.getSrcContent() == null) {
|
||||
return Lookups.fixed(row.getDataArtifact(), artifactItem);
|
||||
@ -96,14 +96,14 @@ public class DataArtifactNode extends AbstractNode {
|
||||
}
|
||||
|
||||
private final BlackboardArtifact.Type artifactType;
|
||||
private final DataArtifactTableDTO artifactRow;
|
||||
private final DataArtifactRowDTO artifactRow;
|
||||
private final List<ColumnKey> columns;
|
||||
|
||||
public DataArtifactNode(DataArtifactTableSearchResultsDTO tableData, DataArtifactTableDTO artifactRow) {
|
||||
public DataArtifactNode(DataArtifactTableSearchResultsDTO tableData, DataArtifactRowDTO artifactRow) {
|
||||
this(tableData, artifactRow, IconsUtil.getIconFilePath(tableData.getArtifactType().getTypeID()));
|
||||
}
|
||||
|
||||
public DataArtifactNode(DataArtifactTableSearchResultsDTO tableData, DataArtifactTableDTO artifactRow, String iconPath) {
|
||||
public DataArtifactNode(DataArtifactTableSearchResultsDTO tableData, DataArtifactRowDTO artifactRow, String iconPath) {
|
||||
super(Children.LEAF, createLookup(artifactRow));
|
||||
|
||||
// use first cell value for display name
|
||||
|
@ -27,12 +27,12 @@ import java.util.stream.Collectors;
|
||||
import org.openide.nodes.ChildFactory;
|
||||
import org.openide.nodes.Node;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.DataArtifactTableDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.DataArtifactRowDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.DataArtifactTableSearchResultsDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.FileRowDTO;
|
||||
import org.sleuthkit.autopsy.mainui.nodes.SearchResultChildFactory.ChildKey;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.RowResultDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.SearchResultsDTO;
|
||||
import org.sleuthkit.autopsy.mainui.datamodel.RowDTO;
|
||||
|
||||
/**
|
||||
* Factory for populating results in a results viewer with a SearchResultsDTO.
|
||||
@ -64,8 +64,8 @@ public class SearchResultChildFactory extends ChildFactory<ChildKey> {
|
||||
protected Node createNodeForKey(ChildKey key) {
|
||||
String typeId = key.getRow().getTypeId();
|
||||
try {
|
||||
if (DataArtifactTableDTO.getTypeIdForClass().equals(typeId)) {
|
||||
return new DataArtifactNode((DataArtifactTableSearchResultsDTO) key.getSearchResults(), (DataArtifactTableDTO) key.getRow());
|
||||
if (DataArtifactRowDTO.getTypeIdForClass().equals(typeId)) {
|
||||
return new DataArtifactNode((DataArtifactTableSearchResultsDTO) key.getSearchResults(), (DataArtifactRowDTO) key.getRow());
|
||||
} else if (FileRowDTO.getTypeIdForClass().equals(typeId)) {
|
||||
return new FileNode(key.getSearchResults(), (FileRowDTO) key.getRow());
|
||||
} else {
|
||||
@ -90,9 +90,9 @@ public class SearchResultChildFactory extends ChildFactory<ChildKey> {
|
||||
static class ChildKey {
|
||||
|
||||
private final SearchResultsDTO searchResults;
|
||||
private final RowResultDTO row;
|
||||
private final RowDTO row;
|
||||
|
||||
ChildKey(SearchResultsDTO searchResults, RowResultDTO child) {
|
||||
ChildKey(SearchResultsDTO searchResults, RowDTO child) {
|
||||
this.searchResults = searchResults;
|
||||
this.row = child;
|
||||
}
|
||||
@ -101,7 +101,7 @@ public class SearchResultChildFactory extends ChildFactory<ChildKey> {
|
||||
return searchResults;
|
||||
}
|
||||
|
||||
RowResultDTO getRow() {
|
||||
RowDTO getRow() {
|
||||
return row;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user