From d3b66102c59a7985f0f979d3542a78d6ef24f687 Mon Sep 17 00:00:00 2001 From: Brian Carrier Date: Thu, 11 Jun 2015 01:14:19 -0400 Subject: [PATCH] Expose child class so that it can be casted in DirectoryTree --- .../autopsy/datamodel/DataSourcesNode.java | 22 +++++++++++++++++-- .../DirectoryTreeTopComponent.java | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java index ba162f6e25..2a1e62d9e1 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.openide.nodes.Sheet; @@ -56,10 +57,13 @@ public class DataSourcesNode extends DisplayableItemNode { } /* Custom Keys implementation that listens for new data sources being added. */ - private static class DataSourcesNodeChildren extends AbstractContentChildren { + // @@@ This can become private once DirectoryTree doesn't want to refresh the entire tree + public static class DataSourcesNodeChildren extends AbstractContentChildren { private static final Logger logger = Logger.getLogger(DataSourcesNodeChildren.class.getName()); + List currentKeys = new ArrayList(); + public DataSourcesNodeChildren() { super(); } @@ -88,12 +92,26 @@ public class DataSourcesNode extends DisplayableItemNode { private void reloadKeys() { try { - setKeys(Case.getCurrentCase().getDataSources()); + currentKeys.addAll(Case.getCurrentCase().getDataSources()); + setKeys(currentKeys); } catch (TskCoreException | IllegalStateException ex) { logger.severe("Error getting data sources: " + ex.getMessage()); // NON-NLS setKeys(Collections.EMPTY_SET); } } + + /** + * Refresh all content keys + * This creates new nodes of keys have changed. + */ + // I think this goes away once we get more listeners in place + // It was added as an interim stage + @Deprecated + public void refreshContentKeys() { + for (Content key : currentKeys) { + refreshKey(key); + } + } } @Override diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java index c22515dfe2..8d0a814355 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java @@ -779,7 +779,7 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat Node imagesNode = imagesNodeOrig.getNode(); - RootContentChildren contentRootChildren = (RootContentChildren) imagesNode.getChildren(); + DataSourcesNode.DataSourcesNodeChildren contentRootChildren = (DataSourcesNode.DataSourcesNodeChildren) imagesNode.getChildren(); contentRootChildren.refreshContentKeys(); //final TreeView tree = getTree();