19 package org.sleuthkit.autopsy.datamodel;
22 import java.util.List;
23 import java.util.Observable;
24 import java.util.Observer;
25 import java.util.logging.Level;
26 import org.openide.nodes.AbstractNode;
27 import org.openide.nodes.ChildFactory;
28 import org.openide.nodes.Children;
29 import org.openide.nodes.Node;
30 import org.openide.nodes.Sheet;
31 import org.openide.util.NbBundle;
32 import org.openide.util.lookup.Lookups;
59 super(Children.create(
new FileTypeChildFactory(filter, skCase),
true), Lookups.singleton(filter.getDisplayName()));
73 super(Children.create(
new FileTypeChildFactory(filter, skCase, o),
true), Lookups.singleton(filter.getDisplayName()));
81 super.setName(filter.getName());
83 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/file-filter-icon.png");
100 public void update(Observable o, Object arg) {
107 super.setDisplayName(filter.getDisplayName() +
" (" + count +
")");
112 return v.
visit(
this);
117 Sheet s = super.createSheet();
118 Sheet.Set ss = s.get(Sheet.PROPERTIES);
120 ss = Sheet.createPropertiesSet();
124 ss.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.filterType.name"),
125 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.filterType.displayName"),
126 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.filterType.desc"),
127 filter.getDisplayName()));
128 String extensions =
"";
129 for (String ext : filter.getFilter()) {
130 extensions +=
"'" + ext +
"', ";
132 extensions = extensions.substring(0, extensions.lastIndexOf(
','));
133 ss.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.fileExt.name"),
134 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.fileExt.displayName"),
135 NbBundle.getMessage(
this.getClass(),
"FileTypeNode.createSheet.fileExt.desc"),
181 if (notifier != null) {
188 if (notifier != null) {
198 public void update(Observable o, Object arg) {
211 }
catch (TskCoreException ex) {
212 logger.log(Level.SEVERE,
"Error getting file search view count", ex);
222 }
catch (TskCoreException ex) {
223 logger.log(Level.SEVERE,
"Couldn't get search results", ex);
229 StringBuilder query =
new StringBuilder();
230 query.append(
"(dir_type = ").append(TskData.TSK_FS_NAME_TYPE_ENUM.REG.getValue()).append(
")");
232 query.append(
" AND (known IS NULL OR known != ").append(TskData.FileKnown.KNOWN.getFileKnownValue()).append(
")");
234 query.append(
" AND (NULL");
235 for (String s :
filter.getFilter()) {
236 query.append(
" OR LOWER(name) LIKE LOWER('%").append(s).append(
"')");
239 return query.toString();
244 return key.accept(
new ContentVisitor.Default<AbstractNode>() {
246 public FileNode visit(File f) {
247 return new FileNode(f, false);
271 protected AbstractNode defaultVisit(Content di) {
272 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)
static String createQuery(FileTypeExtensionFilters.SearchFilterInterface filter)
Node createNodeForKey(Content key)
void update(Observable o, Object arg)
final FileTypeExtensionFilters.SearchFilterInterface filter
synchronized static Logger getLogger(String name)
final SleuthkitCase skCase