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");
50 super(Children.create(
new FileTypesChildren(skCase, filter, null),
true), Lookups.singleton(filter == null ? FNAME : filter.getName()));
62 super(Children.create(
new FileTypesChildren(skCase, filter, o),
true), Lookups.singleton(filter == null ? FNAME : filter.getName()));
66 private void init(FileTypeExtensionFilters.RootFilter filter) {
70 super.setDisplayName(FNAME);
73 super.setName(filter.getName());
74 super.setDisplayName(filter.getDisplayName());
76 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/file_types.png");
91 Sheet s = super.createSheet();
92 Sheet.Set ss = s.get(Sheet.PROPERTIES);
94 ss = Sheet.createPropertiesSet();
98 ss.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.name"),
99 NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.displayName"),
100 NbBundle.getMessage(
this.getClass(),
"FileTypesNode.createSheet.name.desc"),
108 static class FileTypesChildren
extends ChildFactory<FileTypeExtensionFilters.SearchFilterInterface> {
111 private FileTypeExtensionFilters.RootFilter filter;
112 private Observable notifier;
121 public FileTypesChildren(
SleuthkitCase skCase, FileTypeExtensionFilters.RootFilter filter, Observable o) {
123 this.skCase = skCase;
124 this.filter = filter;
126 this.notifier =
new FileTypesChildrenObservable();
151 private final PropertyChangeListener
pcl =
new PropertyChangeListener() {
153 public void propertyChange(PropertyChangeEvent evt) {
154 String eventType = evt.getPropertyName();
166 if (evt.getNewValue() == null) {
180 protected boolean createKeys(List<FileTypeExtensionFilters.SearchFilterInterface> list) {
182 if (filter == null) {
183 list.addAll(Arrays.asList(FileTypeExtensionFilters.RootFilter.values()));
185 else if (filter.equals(FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER)) {
186 list.addAll(Arrays.asList(FileTypeExtensionFilters.DocumentFilter.values()));
187 }
else if (filter.equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER)) {
188 list.addAll(Arrays.asList(FileTypeExtensionFilters.ExecutableFilter.values()));
194 protected Node createNodeForKey(FileTypeExtensionFilters.SearchFilterInterface key) {
196 if (key.getName().equals(FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER.getName())) {
197 return new FileTypesNode(skCase, FileTypeExtensionFilters.RootFilter.TSK_DOCUMENT_FILTER, notifier);
198 }
else if (key.getName().equals(FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER.getName())) {
199 return new FileTypesNode(skCase, FileTypeExtensionFilters.RootFilter.TSK_EXECUTABLE_FILTER, notifier);
201 return new FileTypeNode(key, skCase, notifier);
void removeIngestModuleEventListener(final PropertyChangeListener listener)
static synchronized IngestManager getInstance()
static final String FNAME
final PropertyChangeListener pcl
T visit(DataSourcesNode in)
void removeIngestJobEventListener(final PropertyChangeListener listener)
FileTypesNode(SleuthkitCase skCase, FileTypeExtensionFilters.RootFilter filter, Observable o)
void addIngestJobEventListener(final PropertyChangeListener listener)
void init(FileTypeExtensionFilters.RootFilter filter)
static synchronized void removePropertyChangeListener(PropertyChangeListener listener)
void addIngestModuleEventListener(final PropertyChangeListener listener)
static synchronized void addPropertyChangeListener(PropertyChangeListener listener)