diff --git a/CoreComponentInterfaces/src/org/sleuthkit/autopsy/corecomponentinterfaces/DataContentViewer.java b/CoreComponentInterfaces/src/org/sleuthkit/autopsy/corecomponentinterfaces/DataContentViewer.java index bb91673725..3cd4fbcf98 100644 --- a/CoreComponentInterfaces/src/org/sleuthkit/autopsy/corecomponentinterfaces/DataContentViewer.java +++ b/CoreComponentInterfaces/src/org/sleuthkit/autopsy/corecomponentinterfaces/DataContentViewer.java @@ -39,8 +39,12 @@ public interface DataContentViewer { public String getTitle(); /** - * Get new DataContentViewer instance. + * Get new DataContentViewer instance. (This method is weird. We use the + * instance returned by the Lookup as a factory for the instances that + * are actually used.) */ + // TODO: extract the factory method out into a seperate interface that + // is used for the Lookup. public DataContentViewer getInstance(); /** diff --git a/DataModel/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java b/DataModel/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java index ac8deb19ea..6246f3402a 100644 --- a/DataModel/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java +++ b/DataModel/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java @@ -97,14 +97,6 @@ abstract class AbstractContentNode extends AbstractNode imple public byte[] read(long offset, long len) throws TskException { return content.read(offset, len); } - - /** - * Returns the location of the file ID / Metadata address on the columns on - * the directory table. - * - * @return - */ - abstract public int getFileIDColumn(); /** * Returns the content of this node. @@ -238,6 +230,5 @@ abstract class AbstractContentNode extends AbstractNode imple public List visit(VolumeSystem vs) { return vs.getParent().accept(this); } - } } diff --git a/DataModel/src/org/sleuthkit/autopsy/datamodel/ContentFilterNode.java b/DataModel/src/org/sleuthkit/autopsy/datamodel/ContentFilterNode.java new file mode 100644 index 0000000000..174f205ff2 --- /dev/null +++ b/DataModel/src/org/sleuthkit/autopsy/datamodel/ContentFilterNode.java @@ -0,0 +1,78 @@ +/* + * Autopsy Forensic Browser + * + * Copyright 2011 Basis Technology Corp. + * Contact: carrier sleuthkit 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.datamodel; + +import java.sql.SQLException; +import org.openide.nodes.FilterNode; +import org.openide.nodes.Node; +import org.openide.util.Lookup; +import org.sleuthkit.datamodel.Content; +import org.sleuthkit.datamodel.TskException; + +public class ContentFilterNode extends FilterNode implements ContentNode { + + public ContentFilterNode(ContentNode original) { + super((Node) original); + } + + public ContentFilterNode(ContentNode original, Children children) { + super((Node) original, children); + } + + public ContentFilterNode(ContentNode original, Children children, Lookup lookup) { + super((Node) original, children, lookup); + } + + + + @Override + public long getID() { + return ((ContentNode) super.getOriginal()).getID(); + } + + @Override + public Object[][] getRowValues(int rows) throws SQLException { + return ((ContentNode) super.getOriginal()).getRowValues(rows); + } + + @Override + public byte[] read(long offset, long len) throws TskException { + return ((ContentNode) super.getOriginal()).read(offset, len); + } + + @Override + public Content getContent() { + return ((ContentNode) super.getOriginal()).getContent(); + } + + @Override + public String[] getDisplayPath() { + return ((ContentNode) super.getOriginal()).getDisplayPath(); + } + + @Override + public String[] getSystemPath() { + return ((ContentNode) super.getOriginal()).getSystemPath(); + } + + @Override + public T accept(ContentNodeVisitor v) { + return ((ContentNode) super.getOriginal()).accept(v); + } +} diff --git a/DataModel/src/org/sleuthkit/autopsy/datamodel/ContentNode.java b/DataModel/src/org/sleuthkit/autopsy/datamodel/ContentNode.java index 885bdc51ea..b8d638a81d 100644 --- a/DataModel/src/org/sleuthkit/autopsy/datamodel/ContentNode.java +++ b/DataModel/src/org/sleuthkit/autopsy/datamodel/ContentNode.java @@ -65,14 +65,6 @@ public interface ContentNode { */ public byte[] read(long offset, long len) throws TskException; - /** - * Returns the location of the file ID / Metadata address on the columns on - * the directory table. - * - * @return - */ - public int getFileIDColumn(); - /** * Returns the content of this node. * diff --git a/DataModel/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java b/DataModel/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java index 0d8ac100f0..38d8622a0d 100644 --- a/DataModel/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java +++ b/DataModel/src/org/sleuthkit/autopsy/datamodel/DirectoryNode.java @@ -100,11 +100,6 @@ public class DirectoryNode extends AbstractFsContentNode { return objs; } - @Override - public int getFileIDColumn() { - return 1; - } - @Override public T accept(ContentNodeVisitor v) { return v.visit(this); diff --git a/DataModel/src/org/sleuthkit/autopsy/datamodel/FileNode.java b/DataModel/src/org/sleuthkit/autopsy/datamodel/FileNode.java index 0105c72f47..0d7605d88c 100644 --- a/DataModel/src/org/sleuthkit/autopsy/datamodel/FileNode.java +++ b/DataModel/src/org/sleuthkit/autopsy/datamodel/FileNode.java @@ -94,12 +94,7 @@ public class FileNode extends AbstractFsContentNode { }); return objs; } - - @Override - public int getFileIDColumn() { - return 1; // change this later when it's defined - } - + @Override public T accept(ContentNodeVisitor v) { return v.visit(this); diff --git a/DataModel/src/org/sleuthkit/autopsy/datamodel/ImageNode.java b/DataModel/src/org/sleuthkit/autopsy/datamodel/ImageNode.java index 2a2f34362b..9b5d85812c 100644 --- a/DataModel/src/org/sleuthkit/autopsy/datamodel/ImageNode.java +++ b/DataModel/src/org/sleuthkit/autopsy/datamodel/ImageNode.java @@ -79,11 +79,6 @@ public class ImageNode extends AbstractContentNode { return objs; } - @Override - public int getFileIDColumn() { - return 0; - } - @Override public Cookie getCookie(Class clazz) { Children ch = getChildren(); diff --git a/DataModel/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java b/DataModel/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java index bf0f06857a..c231d6d901 100644 --- a/DataModel/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java +++ b/DataModel/src/org/sleuthkit/autopsy/datamodel/VolumeNode.java @@ -90,11 +90,6 @@ public class VolumeNode extends AbstractContentNode { return objs; } - @Override - public int getFileIDColumn() { - return 1; - } - /** * Right click action for volume node * diff --git a/DirectoryTree/nbproject/genfiles.properties b/DirectoryTree/nbproject/genfiles.properties index 7c15c292e3..e779ce6c0c 100644 --- a/DirectoryTree/nbproject/genfiles.properties +++ b/DirectoryTree/nbproject/genfiles.properties @@ -1,8 +1,8 @@ build.xml.data.CRC32=db477856 build.xml.script.CRC32=6ec7becb -build.xml.stylesheet.CRC32=a56c6a5b@1.42.2 +build.xml.stylesheet.CRC32=a56c6a5b@1.46.2 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=db477856 nbproject/build-impl.xml.script.CRC32=8c5007a7 -nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.42.2 +nbproject/build-impl.xml.stylesheet.CRC32=238281d1@1.46.2 diff --git a/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java b/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java index 280d32dca4..d839be5bbb 100644 --- a/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java +++ b/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java @@ -205,11 +205,6 @@ public class DataResultFilterNode extends FilterNode implements ContentNode { return ((ContentNode) currentNode).read(offset, len); } - @Override - public int getFileIDColumn() { - return ((ContentNode) currentNode).getFileIDColumn(); - } - @Override public Content getContent() { return ((ContentNode) currentNode).getContent(); diff --git a/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java b/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java index 9d23f82ee5..13d2b4e907 100644 --- a/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java +++ b/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeFilterNode.java @@ -23,7 +23,10 @@ import java.util.List; import javax.swing.Action; import org.openide.nodes.FilterNode; import org.openide.nodes.Node; +import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.datamodel.Content; +import org.sleuthkit.datamodel.SleuthkitCase; +import org.sleuthkit.datamodel.Volume; /** * This class sets the actions for the nodes in the directory tree and creates diff --git a/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/layer.xml b/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/layer.xml index 3b34adc2d7..e39d33d322 100644 --- a/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/layer.xml +++ b/DirectoryTree/src/org/sleuthkit/autopsy/directorytree/layer.xml @@ -26,6 +26,7 @@ + diff --git a/FileSearch/src/org/sleuthkit/autopsy/filesearch/DataResultFilterNode.java b/FileSearch/src/org/sleuthkit/autopsy/filesearch/DataResultFilterNode.java index 973d0a4343..b047739542 100644 --- a/FileSearch/src/org/sleuthkit/autopsy/filesearch/DataResultFilterNode.java +++ b/FileSearch/src/org/sleuthkit/autopsy/filesearch/DataResultFilterNode.java @@ -111,11 +111,6 @@ public class DataResultFilterNode extends FilterNode implements ContentNode { return ((ContentNode) currentNode).read(offset, len); } - @Override - public int getFileIDColumn() { - return ((ContentNode) currentNode).getFileIDColumn(); - } - @Override public Content getContent() { return ((ContentNode) currentNode).getContent(); diff --git a/FileSearch/src/org/sleuthkit/autopsy/filesearch/FileSearchTopComponent.java b/FileSearch/src/org/sleuthkit/autopsy/filesearch/FileSearchTopComponent.java index d02e291974..e77b364823 100644 --- a/FileSearch/src/org/sleuthkit/autopsy/filesearch/FileSearchTopComponent.java +++ b/FileSearch/src/org/sleuthkit/autopsy/filesearch/FileSearchTopComponent.java @@ -40,7 +40,6 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.border.EmptyBorder; -import org.openide.nodes.Node; import org.openide.util.NbBundle; import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; diff --git a/FileSearch/src/org/sleuthkit/autopsy/filesearch/SearchNode.java b/FileSearch/src/org/sleuthkit/autopsy/filesearch/SearchNode.java index f38d584e7a..aeb4b78098 100644 --- a/FileSearch/src/org/sleuthkit/autopsy/filesearch/SearchNode.java +++ b/FileSearch/src/org/sleuthkit/autopsy/filesearch/SearchNode.java @@ -90,11 +90,6 @@ class SearchNode extends AbstractNode implements ContentNode { throw new UnsupportedOperationException("Not supported yet."); } - @Override - public int getFileIDColumn() { - return -1; // change this later when needed - } - @Override public Content getContent() { return null; diff --git a/FileSearch/src/org/sleuthkit/autopsy/filesearch/layer.xml b/FileSearch/src/org/sleuthkit/autopsy/filesearch/layer.xml index 36332b2899..a35b202321 100644 --- a/FileSearch/src/org/sleuthkit/autopsy/filesearch/layer.xml +++ b/FileSearch/src/org/sleuthkit/autopsy/filesearch/layer.xml @@ -22,6 +22,7 @@ +