Expose child class so that it can be casted in DirectoryTree

This commit is contained in:
Brian Carrier 2015-06-11 01:14:19 -04:00
parent 6648873dbb
commit d3b66102c5
2 changed files with 21 additions and 3 deletions

View File

@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.datamodel;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import org.openide.nodes.Sheet; 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. */ /* Custom Keys implementation that listens for new data sources being added. */
private static class DataSourcesNodeChildren extends AbstractContentChildren<Content> { // @@@ This can become private once DirectoryTree doesn't want to refresh the entire tree
public static class DataSourcesNodeChildren extends AbstractContentChildren<Content> {
private static final Logger logger = Logger.getLogger(DataSourcesNodeChildren.class.getName()); private static final Logger logger = Logger.getLogger(DataSourcesNodeChildren.class.getName());
List<Content> currentKeys = new ArrayList();
public DataSourcesNodeChildren() { public DataSourcesNodeChildren() {
super(); super();
} }
@ -88,12 +92,26 @@ public class DataSourcesNode extends DisplayableItemNode {
private void reloadKeys() { private void reloadKeys() {
try { try {
setKeys(Case.getCurrentCase().getDataSources()); currentKeys.addAll(Case.getCurrentCase().getDataSources());
setKeys(currentKeys);
} catch (TskCoreException | IllegalStateException ex) { } catch (TskCoreException | IllegalStateException ex) {
logger.severe("Error getting data sources: " + ex.getMessage()); // NON-NLS logger.severe("Error getting data sources: " + ex.getMessage()); // NON-NLS
setKeys(Collections.EMPTY_SET); 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 @Override

View File

@ -779,7 +779,7 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat
Node imagesNode = imagesNodeOrig.getNode(); Node imagesNode = imagesNodeOrig.getNode();
RootContentChildren contentRootChildren = (RootContentChildren) imagesNode.getChildren(); DataSourcesNode.DataSourcesNodeChildren contentRootChildren = (DataSourcesNode.DataSourcesNodeChildren) imagesNode.getChildren();
contentRootChildren.refreshContentKeys(); contentRootChildren.refreshContentKeys();
//final TreeView tree = getTree(); //final TreeView tree = getTree();