19package org.sleuthkit.autopsy.datamodel;
21import java.beans.PropertyChangeEvent;
22import java.beans.PropertyChangeListener;
23import java.util.EnumSet;
26import java.util.logging.Level;
27import java.util.stream.Collectors;
28import org.openide.nodes.ChildFactory;
29import org.openide.nodes.Children;
30import org.openide.nodes.Node;
31import org.openide.nodes.Sheet;
32import org.openide.util.NbBundle;
33import org.openide.util.NbBundle.Messages;
34import org.openide.util.WeakListeners;
35import org.openide.util.lookup.Lookups;
36import org.sleuthkit.autopsy.casemodule.Case;
37import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
38import org.sleuthkit.autopsy.coreutils.Logger;
39import org.sleuthkit.datamodel.TskCoreException;
51 "DataSourcesHostsNode_name=Data Sources"
66 .map(evt -> evt.name())
67 .collect(Collectors.toSet());
71 private final PropertyChangeListener
pcl =
new PropertyChangeListener() {
73 public void propertyChange(PropertyChangeEvent evt) {
74 String eventType = evt.getPropertyName();
81 private final PropertyChangeListener
weakPcl = WeakListeners.propertyChange(
pcl,
null);
95 protected boolean createKeys(List<HostDataSources> toPopulate) {
98 .map(HostDataSources::new)
100 .forEach(toPopulate::add);
103 logger.log(Level.SEVERE,
"Error getting data sources: {0}", ex.getMessage());
116 private static final String
NAME = Bundle.DataSourcesHostsNode_name();
129 super(Children.create(
new DataSourcesByTypeChildren(),
true), Lookups.singleton(NAME));
131 setDisplayName(NAME);
132 this.setIconBaseWithExtension(
"org/sleuthkit/autopsy/images/image.png");
137 return getClass().getName();
147 return visitor.
visit(
this);
152 Sheet sheet = super.createSheet();
153 Sheet.Set sheetSet = sheet.get(Sheet.PROPERTIES);
154 if (sheetSet ==
null) {
155 sheetSet = Sheet.createPropertiesSet();
159 sheetSet.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"DataSourcesNode.createSheet.name.name"),
160 NbBundle.getMessage(
this.getClass(),
"DataSourcesNode.createSheet.name.displayName"),
161 NbBundle.getMessage(
this.getClass(),
"DataSourcesNode.createSheet.name.desc"),
static void removeEventTypeSubscriber(Set< Events > eventTypes, PropertyChangeListener subscriber)
SleuthkitCase getSleuthkitCase()
static Case getCurrentCaseThrows()
static void addEventTypeSubscriber(Set< Events > eventTypes, PropertyChangeListener subscriber)
synchronized static Logger getLogger(String name)
boolean createKeys(List< HostDataSources > toPopulate)
static final Logger logger
static final Set< Case.Events > UPDATE_EVTS
final PropertyChangeListener pcl
static final Set< String > UPDATE_EVT_STRS
final PropertyChangeListener weakPcl
Node createNodeForKey(HostDataSources key)
static String getNameIdentifier()
DisplayableItemNode(Children children)
T visit(DataSourceFilesNode in)