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.List;
25 import java.util.Observable;
26 import java.util.Observer;
27 import java.util.logging.Level;
28 import org.openide.nodes.ChildFactory;
29 import org.openide.nodes.Children;
30 import org.openide.nodes.Node;
31 import org.openide.nodes.Sheet;
32 import org.openide.util.NbBundle;
33 import org.openide.util.lookup.Lookups;
55 private final String
ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
84 super(Children.create(
new TagNameNodeFactory(),
true), Lookups.singleton(DISPLAY_NAME));
85 super.setName(DISPLAY_NAME);
86 super.setDisplayName(DISPLAY_NAME);
87 this.setIconBaseWithExtension(ICON_PATH);
102 Sheet propertySheet = super.createSheet();
103 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
104 if (properties == null) {
105 properties = Sheet.createPropertiesSet();
106 propertySheet.put(properties);
108 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"TagsNode.createSheet.name.name"),
109 NbBundle.getMessage(
this.getClass(),
"TagsNode.createSheet.name.displayName"),
"", getName()));
110 return propertySheet;
115 return getClass().getName();
121 private final PropertyChangeListener
pcl =
new PropertyChangeListener() {
123 public void propertyChange(PropertyChangeEvent evt) {
124 String eventType = evt.getPropertyName();
139 }
catch (IllegalStateException notUsed) {
156 }
catch (IllegalStateException notUsed) {
163 if (evt.getNewValue() == null) {
176 tagResults.addObserver(
this);
184 tagResults.deleteObserver(
this);
191 Collections.sort(tagNamesInUse);
192 keys.addAll(tagNamesInUse);
193 }
catch (TskCoreException ex) {
205 public void update(Observable o, Object arg) {
217 private final String ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
222 super(Children.create(
new TagTypeNodeFactory(tagName),
true), Lookups.singleton(NbBundle.getMessage(
TagNameNode.class,
"TagNameNode.namePlusTags.text", tagName.getDisplayName())));
224 setName(tagName.getDisplayName());
226 if (tagName.getDisplayName().equals(NbBundle.getMessage(
this.getClass(),
"TagNameNode.bookmark.text"))) {
227 setIconBaseWithExtension(BOOKMARK_TAG_ICON_PATH);
229 setIconBaseWithExtension(ICON_PATH);
231 tagResults.addObserver(
this);
240 }
catch (TskCoreException ex) {
241 Logger.
getLogger(
TagNameNode.class.getName()).log(Level.SEVERE,
"Failed to get tags count for " + tagName.getDisplayName() +
" tag name", ex);
243 setDisplayName(tagName.getDisplayName() +
" \u200E(\u200E" + tagsCount +
")\u200E");
248 Sheet propertySheet = super.createSheet();
249 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
250 if (properties == null) {
251 properties = Sheet.createPropertiesSet();
252 propertySheet.put(properties);
254 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"TagNameNode.createSheet.name.name"),
255 NbBundle.getMessage(
this.getClass(),
"TagNameNode.createSheet.name.displayName"), tagName.getDescription(), getName()));
256 return propertySheet;
263 return v.
visit(
this);
272 public void update(Observable o, Object arg) {
278 return getClass().getName();
299 keys.add(CONTENT_TAG_TYPE_NODE_KEY);
300 keys.add(BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY);
306 if (CONTENT_TAG_TYPE_NODE_KEY.equals(key)) {
308 }
else if (BLACKBOARD_ARTIFACT_TAG_TYPE_NODE_KEY.equals(key)) {
327 private final String ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
333 super.setName(CONTENT_DISPLAY_NAME);
335 this.setIconBaseWithExtension(ICON_PATH);
336 tagResults.addObserver(
this);
343 }
catch (TskCoreException ex) {
346 super.setDisplayName(CONTENT_DISPLAY_NAME +
" (" + tagsCount +
")");
351 Sheet propertySheet = super.createSheet();
352 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
353 if (properties == null) {
354 properties = Sheet.createPropertiesSet();
355 propertySheet.put(properties);
357 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"ContentTagTypeNode.createSheet.name.name"),
358 NbBundle.getMessage(
this.getClass(),
"ContentTagTypeNode.createSheet.name.displayName"),
"", getName()));
359 return propertySheet;
364 return v.
visit(
this);
373 public void update(Observable o, Object arg) {
379 return getClass().getName();
390 tagResults.addObserver(
this);
398 }
catch (TskCoreException ex) {
407 return new ContentTagNode(key);
411 public void update(Observable o, Object arg) {
427 private final String ICON_PATH =
"org/sleuthkit/autopsy/images/tag-folder-blue-icon-16.png";
432 super.setName(ARTIFACT_DISPLAY_NAME);
433 this.setIconBaseWithExtension(ICON_PATH);
435 tagResults.addObserver(
this);
442 }
catch (TskCoreException ex) {
445 super.setDisplayName(ARTIFACT_DISPLAY_NAME +
" (" + tagsCount +
")");
450 Sheet propertySheet = super.createSheet();
451 Sheet.Set properties = propertySheet.get(Sheet.PROPERTIES);
452 if (properties == null) {
453 properties = Sheet.createPropertiesSet();
454 propertySheet.put(properties);
456 properties.put(
new NodeProperty<>(NbBundle.getMessage(
this.getClass(),
"BlackboardArtifactTagTypeNode.createSheet.name.name"),
457 NbBundle.getMessage(
this.getClass(),
"BlackboardArtifactTagTypeNode.createSheet.name.displayName"),
"", getName()));
458 return propertySheet;
463 return v.
visit(
this);
472 public void update(Observable o, Object arg) {
478 return getClass().getName();
489 tagResults.addObserver(
this);
493 protected boolean createKeys(List<BlackboardArtifactTag> keys) {
497 }
catch (TskCoreException ex) {
510 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)
static void removePropertyChangeListener(PropertyChangeListener listener)
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)
static void addPropertyChangeListener(PropertyChangeListener listener)
BLACKBOARD_ARTIFACT_TAG_ADDED
void addIngestModuleEventListener(final PropertyChangeListener listener)
static Case getCurrentCase()
synchronized static Logger getLogger(String name)
BLACKBOARD_ARTIFACT_TAG_DELETED