diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java index 73402efbc4..6e96b9689c 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactTagNode.java @@ -19,6 +19,7 @@ package org.sleuthkit.autopsy.datamodel; import java.text.MessageFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.logging.Level; @@ -98,14 +99,13 @@ public class BlackboardArtifactTagNode extends DisplayableItemNode { return propertySheet; } - @NbBundle.Messages("BlackboardArtifactTagNode.viewSourceArtifact.text=View Source Result...") + + @NbBundle.Messages("BlackboardArtifactTagNode.viewSourceArtifact.text=View Source Result") @Override public Action[] getActions(boolean context) { - List actions = DataModelActionsFactory.getActions(tag.getContent(), true); + List actions = new ArrayList<>(); actions.addAll(Arrays.asList(super.getActions(context))); - BlackboardArtifact artifact = getLookup().lookup(BlackboardArtifact.class); - actions.add(new ViewTaggedArtifactAction(BlackboardArtifactTagNode_viewSourceArtifact_text(), artifact)); //if this artifact has a time stamp add the action to view it in the timeline try { if (ViewArtifactInTimelineAction.hasSupportedTimeStamp(artifact)) { @@ -126,14 +126,13 @@ public class BlackboardArtifactTagNode extends DisplayableItemNode { LOGGER.log(Level.SEVERE, MessageFormat.format("Error getting linked file from blackboard artifact{0}.", artifact.getArtifactID()), ex); //NON-NLS MessageNotifyUtil.Notify.error(Bundle.BlackboardArtifactNode_getAction_errorTitle(), Bundle.BlackboardArtifactNode_getAction_linkedFileMessage()); } - //if this artifact has associated content, add the action to view the content in the timeline AbstractFile file = getLookup().lookup(AbstractFile.class); if (null != file) { - actions.add(ViewFileInTimelineAction.createViewSourceFileAction(file)); } - + actions.add(new ViewTaggedArtifactAction(BlackboardArtifactTagNode_viewSourceArtifact_text(), artifact)); + actions.addAll(DataModelActionsFactory.getActions(tag.getContent(), true)); actions.add(DeleteBlackboardArtifactTagAction.getInstance()); return actions.toArray(new Action[0]); } diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java index 74ab98d517..2108e982d7 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ContentTagNode.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.datamodel; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.logging.Level; @@ -111,14 +112,14 @@ class ContentTagNode extends DisplayableItemNode { @Override public Action[] getActions(boolean context) { - List actions = DataModelActionsFactory.getActions(tag.getContent(), false); + List actions = new ArrayList<>(); actions.addAll(Arrays.asList(super.getActions(context))); AbstractFile file = getLookup().lookup(AbstractFile.class); if (file != null) { actions.add(ViewFileInTimelineAction.createViewFileAction(file)); } - actions.add(null); // Adds a menu item separator. + actions.addAll(DataModelActionsFactory.getActions(tag.getContent(), false)); actions.add(DeleteContentTagAction.getInstance()); return actions.toArray(new Action[actions.size()]); } diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java b/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java index 60725818a4..21146610da 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DataResultFilterNode.java @@ -295,7 +295,7 @@ public class DataResultFilterNode extends FilterNode { } } - @NbBundle.Messages("DataResultFilterNode.viewSourceArtifact.text=View Source Result...") + @NbBundle.Messages("DataResultFilterNode.viewSourceArtifact.text=View Source Result") /** * Uses the default nodes actions per node, adds some custom ones and * returns them per visited node type