From 0f8a74fd5185bc57f33df9ddb778128709594138 Mon Sep 17 00:00:00 2001 From: Greg DiCristofaro Date: Tue, 15 Jun 2021 20:14:27 -0400 Subject: [PATCH 1/2] selection context fix --- .../org/sleuthkit/autopsy/directorytree/SelectionContext.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java b/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java index de84a49e85..b8064788d2 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java @@ -20,7 +20,9 @@ package org.sleuthkit.autopsy.directorytree; import org.openide.nodes.Node; import org.openide.util.NbBundle; +import org.sleuthkit.autopsy.datamodel.DataSourceFilesNode; import static org.sleuthkit.autopsy.directorytree.Bundle.*; +import org.sleuthkit.datamodel.DataSource; @NbBundle.Messages({"SelectionContext.dataSources=Data Sources", "SelectionContext.dataSourceFiles=Data Source Files", @@ -62,6 +64,8 @@ enum SelectionContext { if (n == null || n.getParentNode() == null) { // Parent of root node or root node. Occurs during case open / close. return SelectionContext.OTHER; + } else if (DataSourceFilesNode.getNameIdentifier() == n.getName() || n.getLookup().lookup(DataSource.class) != null) { + return SelectionContext.DATA_SOURCES; } else if (n.getParentNode().getParentNode() == null) { // One level below root node. Should be one of DataSources, Views, or Results return SelectionContext.getContextFromName(n.getDisplayName()); From 823c8697aba0c2ebf31dc69a22b39e7bf1c750f1 Mon Sep 17 00:00:00 2001 From: Greg DiCristofaro Date: Wed, 16 Jun 2021 09:41:03 -0400 Subject: [PATCH 2/2] fixes --- .../directorytree/SelectionContext.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java b/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java index b8064788d2..6c3c546018 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/SelectionContext.java @@ -18,11 +18,13 @@ */ package org.sleuthkit.autopsy.directorytree; +import java.util.Objects; import org.openide.nodes.Node; import org.openide.util.NbBundle; +import org.sleuthkit.autopsy.casemodule.CasePreferences; import org.sleuthkit.autopsy.datamodel.DataSourceFilesNode; +import org.sleuthkit.autopsy.datamodel.DataSourcesNode; import static org.sleuthkit.autopsy.directorytree.Bundle.*; -import org.sleuthkit.datamodel.DataSource; @NbBundle.Messages({"SelectionContext.dataSources=Data Sources", "SelectionContext.dataSourceFiles=Data Source Files", @@ -30,12 +32,12 @@ import org.sleuthkit.datamodel.DataSource; enum SelectionContext { DATA_SOURCES(SelectionContext_dataSources()), VIEWS(SelectionContext_views()), - OTHER(""), // Subnode of another node. - DATA_SOURCE_FILES(SelectionContext_dataSourceFiles()); + OTHER(""), // Subnode of another node. + DATA_SOURCE_FILES(SelectionContext_dataSourceFiles()); private final String displayName; - private SelectionContext(String displayName) { + private SelectionContext(String displayName) { this.displayName = displayName; } @@ -64,7 +66,11 @@ enum SelectionContext { if (n == null || n.getParentNode() == null) { // Parent of root node or root node. Occurs during case open / close. return SelectionContext.OTHER; - } else if (DataSourceFilesNode.getNameIdentifier() == n.getName() || n.getLookup().lookup(DataSource.class) != null) { + } else if ((!Objects.equals(CasePreferences.getGroupItemsInTreeByDataSource(), true) && DataSourcesNode.getNameIdentifier().equals(n.getParentNode().getName())) + || (Objects.equals(CasePreferences.getGroupItemsInTreeByDataSource(), true) && DataSourceFilesNode.getNameIdentifier().equals(n.getParentNode().getName()))) { + // if group by data type and root is the DataSourcesNode or + // if group by persons/hosts and parent of DataSourceFilesNode + // then it is a data source node return SelectionContext.DATA_SOURCES; } else if (n.getParentNode().getParentNode() == null) { // One level below root node. Should be one of DataSources, Views, or Results @@ -79,7 +85,7 @@ enum SelectionContext { return context; } } - + return getSelectionContext(n.getParentNode()); } }