19 package org.sleuthkit.autopsy.datamodel;
21 import java.beans.PropertyChangeEvent;
22 import java.beans.PropertyChangeListener;
23 import java.util.Arrays;
24 import java.util.List;
25 import java.util.Observable;
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;
41 private static final String
FNAME = NbBundle.getMessage(
FileTypesNode.class,
"FileTypesNode.fname.text");
42 private final FileTypeExtensionFilters.RootFilter
filter;
50 super(Children.create(
new FileTypesChildren(skCase,
filter, null),
true), Lookups.singleton(
filter == null ? FNAME :
filter.getName()));
62 private FileTypesNode(SleuthkitCase skCase, FileTypeExtensionFilters.RootFilter
filter, Observable o) {
63 super(Children.create(
new FileTypesChildren(skCase,
filter, o),
true), Lookups.singleton(
filter == null ? FNAME :
filter.getName()));
72 super.setDisplayName(FNAME);
75 super.setName(
filter.getName());
76 super.setDisplayName(
filter.getDisplayName());
78 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/file_types.png");
93 Sheet s = super.createSheet();
94 Sheet.Set ss = s.get(Sheet.PROPERTIES);
96 ss = Sheet.createPropertiesSet();
100 ss.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.name"),
101 NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.displayName"),
102 NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.desc"),
126 static class FileTypesChildren
extends ChildFactory<FileTypeExtensionFilters.SearchFilterInterface> {
128 private SleuthkitCase skCase;
129 private FileTypeExtensionFilters.RootFilter
filter;
130 private Observable notifier;
139 public FileTypesChildren(SleuthkitCase skCase, FileTypeExtensionFilters.RootFilter
filter, Observable o) {
141 this.skCase = skCase;
144 this.notifier =
new FileTypesChildrenObservable();
169 private final PropertyChangeListener
pcl =
new PropertyChangeListener() {
171 public void propertyChange(PropertyChangeEvent evt) {
172 String eventType = evt.getPropertyName();
186 }
catch (IllegalStateException notUsed) {
193 if (evt.getNewValue() == null) {
207 protected boolean createKeys(List<FileTypeExtensionFilters.SearchFilterInterface> list) {
210 list.addAll(Arrays.asList(FileTypeExtensionFilters.RootFilter.values()));
212 else if (
filter.equals(FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER)) {
213 list.addAll(Arrays.asList(FileTypeExtensionFilters.DocumentFilter.values()));
214 }
else if (
filter.equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER)) {
215 list.addAll(Arrays.asList(FileTypeExtensionFilters.ExecutableFilter.values()));
221 protected Node createNodeForKey(FileTypeExtensionFilters.SearchFilterInterface key) {
223 if (key.getName().equals(FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER.getName())) {
224 return new FileTypesNode(skCase, FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER, notifier);
225 }
else if (key.getName().equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER.getName())) {
226 return new FileTypesNode(skCase, FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER, notifier);
228 return new FileTypeNode(key, skCase, notifier);
void removeIngestModuleEventListener(final PropertyChangeListener listener)
static synchronized IngestManager getInstance()
static final String FNAME
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 synchronized void removePropertyChangeListener(PropertyChangeListener listener)
void addIngestModuleEventListener(final PropertyChangeListener listener)
static synchronized void addPropertyChangeListener(PropertyChangeListener listener)
static Case getCurrentCase()