19 package org.sleuthkit.autopsy.datamodel;
22 import java.beans.PropertyChangeEvent;
23 import java.beans.PropertyChangeListener;
24 import java.util.Arrays;
25 import java.util.List;
26 import java.util.Observable;
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;
42 private static final String
FNAME = NbBundle.getMessage(
FileTypesNode.class,
"FileTypesNode.fname.text");
51 super(Children.create(
new FileTypesChildren(skCase,
filter, null),
true), Lookups.singleton(
filter == null ? FNAME :
filter.getName()));
64 super(Children.create(
new FileTypesChildren(skCase,
filter, o),
true), Lookups.singleton(
filter == null ? FNAME :
filter.getName()));
73 super.setDisplayName(FNAME);
76 super.setName(
filter.getName());
77 super.setDisplayName(
filter.getDisplayName());
79 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/file_types.png");
94 Sheet s = super.createSheet();
95 Sheet.Set ss = s.get(Sheet.PROPERTIES);
97 ss = Sheet.createPropertiesSet();
101 ss.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.name"),
102 NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.displayName"),
103 NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.desc"),
127 static class FileTypesChildren
extends ChildFactory<FileTypeExtensionFilters.SearchFilterInterface> {
129 private SleuthkitCase skCase;
131 private Observable notifier;
142 this.skCase = skCase;
145 this.notifier =
new FileTypesChildrenObservable();
170 private final PropertyChangeListener
pcl =
new PropertyChangeListener() {
172 public void propertyChange(PropertyChangeEvent evt) {
173 String eventType = evt.getPropertyName();
187 }
catch (IllegalStateException notUsed) {
194 if (evt.getNewValue() == null) {
208 protected boolean createKeys(List<FileTypeExtensionFilters.SearchFilterInterface> list) {
215 }
else if (
filter.equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER)) {
216 list.addAll(Arrays.asList(FileTypeExtensionFilters.ExecutableFilter.values()));
222 protected Node createNodeForKey(FileTypeExtensionFilters.SearchFilterInterface key) {
224 if (key.getName().equals(FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER.getName())) {
225 return new FileTypesNode(skCase, FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER, notifier);
226 }
else if (key.getName().equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER.getName())) {
227 return new FileTypesNode(skCase, FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER, notifier);
229 return new FileTypeNode(key, skCase, notifier);
void removeIngestModuleEventListener(final PropertyChangeListener listener)
static synchronized IngestManager getInstance()
static final String FNAME
static void removePropertyChangeListener(PropertyChangeListener listener)
final PropertyChangeListener pcl
final FileTypeExtensionFilters.RootFilter filter
T visit(DataSourcesNode in)
void removeIngestJobEventListener(final PropertyChangeListener listener)
FileTypesNode(SleuthkitCase skCase, FileTypeExtensionFilters.RootFilter filter, Observable o)
void addIngestJobEventListener(final PropertyChangeListener listener)
static void addPropertyChangeListener(PropertyChangeListener listener)
void addIngestModuleEventListener(final PropertyChangeListener listener)
static Case getCurrentCase()