Clean up FileSearch DataResultFilterNode

This commit is contained in:
Peter J. Martel 2011-12-16 11:17:59 -05:00
parent 53142025da
commit cc8ede4572

View File

@ -18,16 +18,16 @@
*/ */
package org.sleuthkit.autopsy.filesearch; package org.sleuthkit.autopsy.filesearch;
import org.sleuthkit.autopsy.datamodel.ImageNode;
import org.sleuthkit.autopsy.datamodel.VolumeNode;
import org.sleuthkit.autopsy.datamodel.FileNode;
import org.sleuthkit.autopsy.datamodel.DirectoryNode;
import javax.swing.Action; import javax.swing.Action;
import org.openide.nodes.FilterNode; import org.openide.nodes.FilterNode;
import org.openide.nodes.Node; import org.openide.nodes.Node;
import org.sleuthkit.autopsy.datamodel.ContentUtils; import org.sleuthkit.autopsy.datamodel.ContentUtils;
import org.sleuthkit.autopsy.directorytree.ChangeViewAction; import org.sleuthkit.autopsy.directorytree.ChangeViewAction;
import org.sleuthkit.autopsy.directorytree.ExtractAction;
import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.Content;
import org.sleuthkit.datamodel.ContentVisitor;
import org.sleuthkit.datamodel.Directory;
import org.sleuthkit.datamodel.File;
/** /**
* This class wraps nodes as they are passed to the DataResult viewers. It * This class wraps nodes as they are passed to the DataResult viewers. It
@ -35,12 +35,10 @@ import org.sleuthkit.datamodel.Content;
*/ */
public class DataResultFilterNode extends FilterNode { public class DataResultFilterNode extends FilterNode {
private Node currentNode;
/** the constructor */ /** the constructor */
public DataResultFilterNode(Node arg) { public DataResultFilterNode(Node arg) {
super(arg, new DataResultFilterChildren(arg)); super(arg, new DataResultFilterChildren(arg));
this.currentNode = arg;
} }
/** /**
@ -52,30 +50,35 @@ public class DataResultFilterNode extends FilterNode {
*/ */
@Override @Override
public Action[] getActions(boolean popup) { public Action[] getActions(boolean popup) {
// right click action(s) for image node
if (this.currentNode instanceof ImageNode) { Content content = getOriginal().getLookup().lookup(Content.class);
return new Action[]{}; return content.accept(new GetActionContentVisitor());
} // right click action(s) for volume node }
else if (this.currentNode instanceof VolumeNode) {
return new Action[]{}; private class GetActionContentVisitor extends ContentVisitor.Default<Action[]> {
} // right click action(s) for directory node @Override
else if (this.currentNode instanceof DirectoryNode) { public Action[] visit(Directory dir) {
return new Action[]{ return new Action[]{
new ChangeViewAction("View", 0, currentNode), new ChangeViewAction("View", 0, getOriginal()),
new OpenParentFolderAction("Open Parent Directory", ContentUtils.getSystemPath(currentNode.getLookup().lookup(Content.class))) new OpenParentFolderAction("Open Parent Directory", ContentUtils.getSystemPath(dir))
}; };
} // right click action(s) for the file node }
else if (this.currentNode instanceof FileNode) {
@Override
public Action[] visit(File f) {
return new Action[]{ return new Action[]{
// TODO: ContentNode fix - reimplement ExtractAction new ExtractAction("Extract", getOriginal()),
// new ExtractAction("Extract", (FileNode) this.currentNode), new ChangeViewAction("View", 0, getOriginal()),
new ChangeViewAction("View", 0, currentNode), new OpenParentFolderAction("Open Parent Directory", ContentUtils.getSystemPath(f))
new OpenParentFolderAction("Open Parent Directory", ContentUtils.getSystemPath(currentNode.getLookup().lookup(Content.class))) };
}; }
} else {
@Override
protected Action[] defaultVisit(Content cntnt) {
return new Action[]{}; return new Action[]{};
} }
} }
/** /**
* Double click action for the nodes that we want to pass to the directory * Double click action for the nodes that we want to pass to the directory