19 package org.sleuthkit.autopsy.datamodel;
21 import java.util.List;
22 import java.util.Observable;
23 import java.util.Observer;
24 import java.util.logging.Level;
25 import org.openide.nodes.AbstractNode;
26 import org.openide.nodes.ChildFactory;
27 import org.openide.nodes.Children;
28 import org.openide.nodes.Node;
29 import org.openide.nodes.Sheet;
30 import org.openide.util.NbBundle;
31 import org.openide.util.lookup.Lookups;
52 FileTypeExtensionFilters.SearchFilterInterface filter;
58 super(Children.create(
new FileTypeChildFactory(filter, skCase),
true), Lookups.singleton(filter.getDisplayName()));
72 super(Children.create(
new FileTypeChildFactory(filter, skCase, o),
true), Lookups.singleton(filter.getDisplayName()));
80 super.setName(filter.getName());
82 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/file-filter-icon.png");
89 public void update(Observable o, Object arg) {
96 super.setDisplayName(filter.getDisplayName() +
" (" + count +
")");
101 return v.
visit(
this);
106 Sheet s = super.createSheet();
107 Sheet.Set ss = s.get(Sheet.PROPERTIES);
109 ss = Sheet.createPropertiesSet();
113 ss.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.filterType.name"),
114 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.filterType.displayName"),
115 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.filterType.desc"),
116 filter.getDisplayName()));
117 String extensions =
"";
118 for (String ext : filter.getFilter()) {
119 extensions +=
"'" + ext +
"', ";
121 extensions = extensions.substring(0, extensions.lastIndexOf(
','));
122 ss.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.fileExt.name"),
123 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.fileExt.displayName"),
124 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.fileExt.desc"),
141 private final FileTypeExtensionFilters.SearchFilterInterface
filter;
170 if (notifier != null) {
177 if (notifier != null) {
187 public void update(Observable o, Object arg) {
197 static long calculateItems(
SleuthkitCase sleuthkitCase, FileTypeExtensionFilters.SearchFilterInterface
filter) {
201 logger.log(Level.SEVERE,
"Error getting file search view count", ex);
212 logger.log(Level.SEVERE,
"Couldn't get search results", ex);
218 StringBuilder query =
new StringBuilder();
221 query.append(
" AND (known IS NULL OR known != ").append(
TskData.
FileKnown.
KNOWN.getFileKnownValue()).append(
")");
223 query.append(
" AND (0");
224 for (String s :
filter.getFilter()) {
225 query.append(
" OR name LIKE '%").append(s).append(
"'");
228 return query.toString();
235 public FileNode visit(File f) {
236 return new FileNode(f, false);
260 protected AbstractNode defaultVisit(
Content di) {
261 throw new UnsupportedOperationException(NbBundle.getMessage(
this.getClass(),
"FileTypeChildren.exception.notSupported.msg", di.toString()));
boolean createKeys(List< Content > list)
static final Logger logger
void update(Observable o, Object arg)
static boolean hideKnownFilesInViewsTree()
T visit(DataSourcesNode in)
long countFilesWhere(String sqlWhereClause)
static String createQuery(FileTypeExtensionFilters.SearchFilterInterface filter)
Node createNodeForKey(Content key)
void update(Observable o, Object arg)
List< AbstractFile > findAllFilesWhere(String sqlWhereClause)
final FileTypeExtensionFilters.SearchFilterInterface filter
public< T > T accept(ContentVisitor< T > v)
final SleuthkitCase skCase
static Logger getLogger(String name)