19 package org.sleuthkit.autopsy.datamodel;
21 import java.beans.PropertyChangeEvent;
22 import java.beans.PropertyChangeListener;
23 import java.util.Collections;
24 import java.util.EnumSet;
25 import java.util.List;
26 import java.util.Observable;
27 import java.util.Observer;
29 import java.util.logging.Level;
30 import org.openide.nodes.ChildFactory;
31 import org.openide.nodes.Children;
32 import org.openide.nodes.Node;
33 import org.openide.nodes.Sheet;
34 import org.openide.util.NbBundle;
35 import org.openide.util.lookup.Lookups;
58 private final String
ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
62 return visitor.
visit(
this);
87 super(Children.create(
new TagNameNodeFactory(),
true), Lookups.singleton(DISPLAY_NAME));
88 super.setName(DISPLAY_NAME);
89 super.setDisplayName(DISPLAY_NAME);
90 this.setIconBaseWithExtension(ICON_PATH);
100 return visitor.
visit(
this);
105 Sheet propertySheet = super.createSheet();
106 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
107 if (properties == null) {
108 properties = Sheet.createPropertiesSet();
109 propertySheet.put(properties);
111 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"TagsNode.createSheet.name.name"),
112 NbBundle.getMessage(
this.getClass(),
"TagsNode.createSheet.name.displayName"),
"", getName()));
113 return propertySheet;
118 return getClass().getName();
130 private final PropertyChangeListener
pcl =
new PropertyChangeListener() {
132 public void propertyChange(PropertyChangeEvent evt) {
133 String eventType = evt.getPropertyName();
172 if (evt.getNewValue() == null) {
185 tagResults.addObserver(
this);
193 tagResults.deleteObserver(
this);
200 Collections.sort(tagNamesInUse);
201 keys.addAll(tagNamesInUse);
214 public void update(Observable o, Object arg) {
226 private final String ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
231 super(Children.create(
new TagTypeNodeFactory(tagName),
true), Lookups.singleton(NbBundle.getMessage(
TagNameNode.class,
"TagNameNode.namePlusTags.text", tagName.getDisplayName())));
233 setName(tagName.getDisplayName());
235 if (tagName.getDisplayName().equals(NbBundle.getMessage(
this.getClass(),
"TagNameNode.bookmark.text"))) {
236 setIconBaseWithExtension(BOOKMARK_TAG_ICON_PATH);
238 setIconBaseWithExtension(ICON_PATH);
240 tagResults.addObserver(
this);
250 Logger.
getLogger(
TagNameNode.class.getName()).log(Level.SEVERE,
"Failed to get tags count for " + tagName.getDisplayName() +
" tag name", ex);
252 setDisplayName(tagName.getDisplayName() +
" \u200E(\u200E" + tagsCount +
")\u200E");
257 Sheet propertySheet = super.createSheet();
258 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
259 if (properties == null) {
260 properties = Sheet.createPropertiesSet();
261 propertySheet.put(properties);
263 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"TagNameNode.createSheet.name.name"),
264 NbBundle.getMessage(
this.getClass(),
"TagNameNode.createSheet.name.displayName"), tagName.getDescription(), getName()));
265 return propertySheet;
272 return visitor.
visit(
this);
281 public void update(Observable o, Object arg) {
287 return getClass().getName();
308 keys.add(CONTENT_TAG_TYPE_NODE_KEY);
309 keys.add(BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY);
315 if (CONTENT_TAG_TYPE_NODE_KEY.equals(key)) {
317 }
else if (BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY.equals(key)) {
336 private final String ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
342 super.setName(CONTENT_DISPLAY_NAME);
344 this.setIconBaseWithExtension(ICON_PATH);
345 tagResults.addObserver(
this);
355 super.setDisplayName(CONTENT_DISPLAY_NAME +
" (" + tagsCount +
")");
360 Sheet propertySheet = super.createSheet();
361 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
362 if (properties == null) {
363 properties = Sheet.createPropertiesSet();
364 propertySheet.put(properties);
366 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"ContentTagTypeNode.createSheet.name.name"),
367 NbBundle.getMessage(
this.getClass(),
"ContentTagTypeNode.createSheet.name.displayName"),
"", getName()));
368 return propertySheet;
373 return visitor.
visit(
this);
382 public void update(Observable o, Object arg) {
388 return getClass().getName();
399 tagResults.addObserver(
this);
416 return new ContentTagNode(key);
420 public void update(Observable o, Object arg) {
436 private final String ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
441 super.setName(ARTIFACT_DISPLAY_NAME);
442 this.setIconBaseWithExtension(ICON_PATH);
444 tagResults.addObserver(
this);
454 super.setDisplayName(ARTIFACT_DISPLAY_NAME +
" (" + tagsCount +
")");
459 Sheet propertySheet = super.createSheet();
460 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
461 if (properties == null) {
462 properties = Sheet.createPropertiesSet();
463 propertySheet.put(properties);
465 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"BlackboardArtifactTagTypeNode.createSheet.name.name"),
466 NbBundle.getMessage(
this.getClass(),
"BlackboardArtifactTagTypeNode.createSheet.name.displayName"),
"", getName()));
467 return propertySheet;
472 return visitor.
visit(
this);
481 public void update(Observable o, Object arg) {
487 return getClass().getName();
498 tagResults.addObserver(
this);
502 protected boolean createKeys(List<BlackboardArtifactTag> keys) {
519 public void update(Observable o, Object arg) {
void removeIngestModuleEventListener(final PropertyChangeListener listener)
void update(Observable o, Object arg)
static synchronized IngestManager getInstance()
Node createNodeForKey(ContentTag key)
ContentTagTypeNode(TagName tagName)
void update(Observable o, Object arg)
T visit(DataSourcesNode in)
void removeIngestJobEventListener(final PropertyChangeListener listener)
boolean createKeys(List< ContentTag > keys)
TagsManager getTagsManager()
void addIngestJobEventListener(final PropertyChangeListener listener)
BLACKBOARD_ARTIFACT_TAG_ADDED
void addIngestModuleEventListener(final PropertyChangeListener listener)
synchronized static Logger getLogger(String name)
static Case getCurrentCaseThrows()
static void addEventTypeSubscriber(Set< Events > eventTypes, PropertyChangeListener subscriber)
static void removeEventTypeSubscriber(Set< Events > eventTypes, PropertyChangeListener subscriber)
BLACKBOARD_ARTIFACT_TAG_DELETED