mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
4755 working multi-select context menu action for main window
This commit is contained in:
parent
27271d8942
commit
1fbc4fc373
@ -250,8 +250,7 @@ public final class DataResultTopComponent extends TopComponent implements DataRe
|
|||||||
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(AddBookmarkTagAction.BOOKMARK_SHORTCUT, "addBookmarkTag"); //NON-NLS
|
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(AddBookmarkTagAction.BOOKMARK_SHORTCUT, "addBookmarkTag"); //NON-NLS
|
||||||
getActionMap().put("addBookmarkTag", new AddBookmarkTagAction()); //NON-NLS
|
getActionMap().put("addBookmarkTag", new AddBookmarkTagAction()); //NON-NLS
|
||||||
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS
|
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS
|
||||||
|
getActionMap().put("useExternalViewer", ExternalViewerShortcutAction.getInstance()); //NON-NLS
|
||||||
getActionMap().put("useExternalViewer", new ExternalViewerShortcutAction()); //NON-NLS
|
|
||||||
putClientProperty(TopComponent.PROP_CLOSING_DISABLED, isMain);
|
putClientProperty(TopComponent.PROP_CLOSING_DISABLED, isMain);
|
||||||
putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, true);
|
putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, true);
|
||||||
putClientProperty(TopComponent.PROP_DRAGGING_DISABLED, true);
|
putClientProperty(TopComponent.PROP_DRAGGING_DISABLED, true);
|
||||||
|
@ -37,6 +37,7 @@ import org.sleuthkit.autopsy.actions.ReplaceContentTagAction;
|
|||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
import org.sleuthkit.autopsy.datamodel.Reports.ReportNode;
|
import org.sleuthkit.autopsy.datamodel.Reports.ReportNode;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||||
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
||||||
@ -82,7 +83,13 @@ public class DataModelActionsFactory {
|
|||||||
final FileNode fileNode = new FileNode(file);
|
final FileNode fileNode = new FileNode(file);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, fileNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, fileNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, fileNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, fileNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -91,15 +98,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -122,15 +127,15 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
final Collection<AbstractFile> selectedFilesList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
if(selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -145,7 +150,13 @@ public class DataModelActionsFactory {
|
|||||||
LayoutFileNode layoutFileNode = new LayoutFileNode(file);
|
LayoutFileNode layoutFileNode = new LayoutFileNode(file);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, layoutFileNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, layoutFileNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, layoutFileNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, layoutFileNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());//
|
actionsList.add(ExtractAction.getInstance());//
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -154,15 +165,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -177,7 +186,13 @@ public class DataModelActionsFactory {
|
|||||||
DirectoryNode directoryNode = new DirectoryNode(directory);
|
DirectoryNode directoryNode = new DirectoryNode(directory);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -186,15 +201,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -209,7 +222,13 @@ public class DataModelActionsFactory {
|
|||||||
VirtualDirectoryNode directoryNode = new VirtualDirectoryNode(directory);
|
VirtualDirectoryNode directoryNode = new VirtualDirectoryNode(directory);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -218,15 +237,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,7 +258,13 @@ public class DataModelActionsFactory {
|
|||||||
LocalDirectoryNode directoryNode = new LocalDirectoryNode(directory);
|
LocalDirectoryNode directoryNode = new LocalDirectoryNode(directory);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, directoryNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, directoryNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -250,15 +273,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -273,7 +294,13 @@ public class DataModelActionsFactory {
|
|||||||
final LocalFileNode localFileNode = new LocalFileNode(file);
|
final LocalFileNode localFileNode = new LocalFileNode(file);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -282,15 +309,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -305,7 +330,13 @@ public class DataModelActionsFactory {
|
|||||||
final LocalFileNode localFileNode = new LocalFileNode(file);
|
final LocalFileNode localFileNode = new LocalFileNode(file);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, localFileNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, localFileNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -314,15 +345,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -360,7 +389,13 @@ public class DataModelActionsFactory {
|
|||||||
final ContentTagNode tagNode = new ContentTagNode(contentTag);
|
final ContentTagNode tagNode = new ContentTagNode(contentTag);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, tagNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, tagNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, tagNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, tagNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -369,15 +404,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -389,14 +422,19 @@ public class DataModelActionsFactory {
|
|||||||
return actionsList;
|
return actionsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static List<Action> getActions(BlackboardArtifactTag artifactTag, boolean isArtifactSource) {
|
public static List<Action> getActions(BlackboardArtifactTag artifactTag, boolean isArtifactSource) {
|
||||||
List<Action> actionsList = new ArrayList<>();
|
List<Action> actionsList = new ArrayList<>();
|
||||||
actionsList.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), artifactTag.getContent()));
|
actionsList.add(new ViewContextAction((isArtifactSource ? VIEW_SOURCE_FILE_IN_DIR : VIEW_FILE_IN_DIR), artifactTag.getContent()));
|
||||||
final BlackboardArtifactTagNode tagNode = new BlackboardArtifactTagNode(artifactTag);
|
final BlackboardArtifactTagNode tagNode = new BlackboardArtifactTagNode(artifactTag);
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, tagNode));
|
actionsList.add(new NewWindowViewAction(VIEW_IN_NEW_WINDOW, tagNode));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, tagNode));
|
actionsList.add(new ExternalViewerAction(OPEN_IN_EXTERNAL_VIEWER, tagNode));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
@ -405,15 +443,13 @@ public class DataModelActionsFactory {
|
|||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
if (selectedFilesList.size() == 1) {
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
if(isArtifactSource) {
|
if (isArtifactSource) {
|
||||||
final Collection<BlackboardArtifact> selectedArtifactsList =
|
final Collection<BlackboardArtifact> selectedArtifactsList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class));
|
||||||
if(selectedArtifactsList.size() == 1) {
|
if (selectedArtifactsList.size() == 1) {
|
||||||
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
actionsList.add(DeleteFileBlackboardArtifactTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import org.openide.util.Utilities;
|
|||||||
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
||||||
import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
||||||
@ -98,7 +99,6 @@ public class DirectoryNode extends AbstractFsContentNode<AbstractFile> {
|
|||||||
if (selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
||||||
return actionsList.toArray(new Action[actionsList.size()]);
|
return actionsList.toArray(new Action[actionsList.size()]);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Autopsy Forensic Browser
|
* Autopsy Forensic Browser
|
||||||
*
|
*
|
||||||
* Copyright 2011-2018 Basis Technology Corp.
|
* Copyright 2011-2019 Basis Technology Corp.
|
||||||
* Contact: carrier <at> sleuthkit <dot> org
|
* Contact: carrier <at> sleuthkit <dot> org
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -33,6 +33,7 @@ import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
|||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||||
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
||||||
@ -160,7 +161,14 @@ public class FileNode extends AbstractFsContentNode<AbstractFile> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
actionsList.add(new NewWindowViewAction(Bundle.FileNode_getActions_viewInNewWin_text(), this));
|
actionsList.add(new NewWindowViewAction(Bundle.FileNode_getActions_viewInNewWin_text(), this));
|
||||||
actionsList.add(new ExternalViewerAction(Bundle.FileNode_getActions_openInExtViewer_text(), this));
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
|
actionsList.add(new ExternalViewerAction(
|
||||||
|
Bundle.FileNode_getActions_openInExtViewer_text(), this));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(ViewFileInTimelineAction.createViewFileAction(getContent()));
|
actionsList.add(ViewFileInTimelineAction.createViewFileAction(getContent()));
|
||||||
actionsList.add(null); // Creates an item separator
|
actionsList.add(null); // Creates an item separator
|
||||||
|
|
||||||
@ -168,7 +176,6 @@ public class FileNode extends AbstractFsContentNode<AbstractFile> {
|
|||||||
actionsList.add(null); // Creates an item separator
|
actionsList.add(null); // Creates an item separator
|
||||||
|
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
final Collection<AbstractFile> selectedFilesList = new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if (1 == selectedFilesList.size()) {
|
if (1 == selectedFilesList.size()) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Autopsy Forensic Browser
|
* Autopsy Forensic Browser
|
||||||
*
|
*
|
||||||
* Copyright 2011-2018 Basis Technology Corp.
|
* Copyright 2011-2019 Basis Technology Corp.
|
||||||
* Contact: carrier <at> sleuthkit <dot> org
|
* Contact: carrier <at> sleuthkit <dot> org
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -23,7 +23,6 @@ import java.util.Arrays;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.util.Utilities;
|
import org.openide.util.Utilities;
|
||||||
@ -31,6 +30,7 @@ import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
|||||||
import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||||
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
@ -89,15 +89,19 @@ public class LayoutFileNode extends AbstractAbstractFileNode<LayoutFile> {
|
|||||||
actionsList.addAll(Arrays.asList(super.getActions(true)));
|
actionsList.addAll(Arrays.asList(super.getActions(true)));
|
||||||
actionsList.add(new NewWindowViewAction(
|
actionsList.add(new NewWindowViewAction(
|
||||||
NbBundle.getMessage(this.getClass(), "LayoutFileNode.getActions.viewInNewWin.text"), this));
|
NbBundle.getMessage(this.getClass(), "LayoutFileNode.getActions.viewInNewWin.text"), this));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(
|
actionsList.add(new ExternalViewerAction(
|
||||||
NbBundle.getMessage(this.getClass(), "LayoutFileNode.getActions.openInExtViewer.text"), this));
|
NbBundle.getMessage(this.getClass(), "LayoutFileNode.getActions.openInExtViewer.text"), this));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList
|
|
||||||
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if (selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
|||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||||
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
||||||
@ -69,16 +70,20 @@ public class LocalFileNode extends AbstractAbstractFileNode<AbstractFile> {
|
|||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(
|
actionsList.add(new NewWindowViewAction(
|
||||||
NbBundle.getMessage(this.getClass(), "LocalFileNode.getActions.viewInNewWin.text"), this));
|
NbBundle.getMessage(this.getClass(), "LocalFileNode.getActions.viewInNewWin.text"), this));
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(
|
actionsList.add(new ExternalViewerAction(
|
||||||
NbBundle.getMessage(this.getClass(), "LocalFileNode.getActions.openInExtViewer.text"), this));
|
NbBundle.getMessage(this.getClass(), "LocalFileNode.getActions.openInExtViewer.text"), this));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
|
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList
|
|
||||||
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if (selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import org.openide.util.Utilities;
|
|||||||
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
||||||
import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
import org.sleuthkit.autopsy.actions.DeleteFileContentTagAction;
|
||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
import org.sleuthkit.autopsy.directorytree.ViewContextAction;
|
||||||
@ -88,12 +89,11 @@ public class SlackFileNode extends AbstractFsContentNode<AbstractFile> {
|
|||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
final Collection<AbstractFile> selectedFilesList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
if(selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
||||||
return actionsList.toArray(new Action[actionsList.size()]);
|
return actionsList.toArray(new Action[actionsList.size()]);
|
||||||
}
|
}
|
||||||
|
@ -19,16 +19,21 @@
|
|||||||
package org.sleuthkit.autopsy.datamodel;
|
package org.sleuthkit.autopsy.datamodel;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
|
import org.openide.util.Utilities;
|
||||||
import org.sleuthkit.autopsy.casemodule.datasourcesummary.ViewSummaryInformationAction;
|
import org.sleuthkit.autopsy.casemodule.datasourcesummary.ViewSummaryInformationAction;
|
||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.FileSearchAction;
|
import org.sleuthkit.autopsy.directorytree.FileSearchAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.autopsy.ingest.runIngestModuleWizard.RunIngestModulesAction;
|
import org.sleuthkit.autopsy.ingest.runIngestModuleWizard.RunIngestModulesAction;
|
||||||
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
import org.sleuthkit.datamodel.Content;
|
import org.sleuthkit.datamodel.Content;
|
||||||
import org.sleuthkit.datamodel.SpecialDirectory;
|
import org.sleuthkit.datamodel.SpecialDirectory;
|
||||||
|
|
||||||
|
@ -432,19 +432,23 @@ public class DataResultFilterNode extends FilterNode {
|
|||||||
actionsList.addAll(DataModelActionsFactory.getActions(c, false));
|
actionsList.addAll(DataModelActionsFactory.getActions(c, false));
|
||||||
}
|
}
|
||||||
if (n != null) {
|
if (n != null) {
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(new NewWindowViewAction(
|
actionsList.add(new NewWindowViewAction(
|
||||||
NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInNewWin.text"), n));
|
NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.viewInNewWin.text"), n));
|
||||||
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(new ExternalViewerAction(
|
actionsList.add(new ExternalViewerAction(
|
||||||
NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.openInExtViewer.text"), n));
|
NbBundle.getMessage(this.getClass(), "DataResultFilterNode.action.openInExtViewer.text"), n));
|
||||||
|
} else {
|
||||||
|
actionsList.add(ExternalViewerShortcutAction.getInstance());
|
||||||
|
}
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
actionsList.add(AddBlackboardArtifactTagAction.getInstance());
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList
|
|
||||||
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
|
||||||
if (selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
@ -61,8 +61,7 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
* (TskException ex) {
|
* (TskException ex) {
|
||||||
* Log.get(ExplorerNodeActionVisitor.class).log(Level.WARNING, "Error
|
* Log.get(ExplorerNodeActionVisitor.class).log(Level.WARNING, "Error
|
||||||
* getting show detail actions.", ex); return actions; }
|
* getting show detail actions.", ex); return actions; }
|
||||||
* actions.addAll(c.accept(instance));
|
* actions.addAll(c.accept(instance)); }
|
||||||
}
|
|
||||||
*/
|
*/
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
@ -102,9 +101,9 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actionsList = new ArrayList<>();
|
List<Action> actionsList = new ArrayList<>();
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
final Collection<AbstractFile> selectedFilesList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
if(selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,9 +117,9 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
if (!d.isDataSource()) {
|
if (!d.isDataSource()) {
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
final Collection<AbstractFile> selectedFilesList
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
if(selectedFilesList.size() == 1) {
|
if (selectedFilesList.size() == 1) {
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -134,10 +133,9 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actionsList = new ArrayList<>();
|
List<Action> actionsList = new ArrayList<>();
|
||||||
if (!d.isDataSource()) {
|
if (!d.isDataSource()) {
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
if (selectedFilesList.size() == 1) {
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -151,13 +149,11 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actionsList = new ArrayList<>();
|
List<Action> actionsList = new ArrayList<>();
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
if (selectedFilesList.size() == 1) {
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
||||||
return actionsList;
|
return actionsList;
|
||||||
}
|
}
|
||||||
@ -167,13 +163,11 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actionsList = new ArrayList<>();
|
List<Action> actionsList = new ArrayList<>();
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
if (selectedFilesList.size() == 1) {
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
||||||
return actionsList;
|
return actionsList;
|
||||||
}
|
}
|
||||||
@ -183,13 +177,11 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actionsList = new ArrayList<>();
|
List<Action> actionsList = new ArrayList<>();
|
||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(AddContentTagAction.getInstance());
|
actionsList.add(AddContentTagAction.getInstance());
|
||||||
|
final Collection<AbstractFile> selectedFilesList
|
||||||
final Collection<AbstractFile> selectedFilesList =
|
= new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
if (selectedFilesList.size() == 1) {
|
||||||
if(selectedFilesList.size() == 1) {
|
|
||||||
actionsList.add(DeleteFileContentTagAction.getInstance());
|
actionsList.add(DeleteFileContentTagAction.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
actionsList.addAll(ContextMenuExtensionPoint.getActions());
|
||||||
return actionsList;
|
return actionsList;
|
||||||
}
|
}
|
||||||
|
@ -39,10 +39,22 @@ public class ExternalViewerShortcutAction extends AbstractAction {
|
|||||||
|
|
||||||
public static final KeyStroke EXTERNAL_VIEWER_SHORTCUT = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK);
|
public static final KeyStroke EXTERNAL_VIEWER_SHORTCUT = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK);
|
||||||
|
|
||||||
public ExternalViewerShortcutAction() {
|
private ExternalViewerShortcutAction() {
|
||||||
super(Bundle.ExternalViewerShortcutAction_title_text());
|
super(Bundle.ExternalViewerShortcutAction_title_text());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This class is a singleton to support multi-selection of nodes, since
|
||||||
|
// org.openide.nodes.NodeOp.findActions(Node[] nodes) will only pick up an Action if every
|
||||||
|
// node in the array returns a reference to the same action object from Node.getActions(boolean).
|
||||||
|
private static ExternalViewerShortcutAction instance;
|
||||||
|
|
||||||
|
public static synchronized ExternalViewerShortcutAction getInstance() {
|
||||||
|
if (null == instance) {
|
||||||
|
instance = new ExternalViewerShortcutAction();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
final Collection<AbstractFile> selectedFiles = new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
final Collection<AbstractFile> selectedFiles = new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class));
|
||||||
|
@ -263,7 +263,7 @@ public final class TimeLineTopComponent extends TopComponent implements Explorer
|
|||||||
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(AddBookmarkTagAction.BOOKMARK_SHORTCUT, "addBookmarkTag"); //NON-NLS
|
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(AddBookmarkTagAction.BOOKMARK_SHORTCUT, "addBookmarkTag"); //NON-NLS
|
||||||
getActionMap().put("addBookmarkTag", new AddBookmarkTagAction()); //NON-NLS
|
getActionMap().put("addBookmarkTag", new AddBookmarkTagAction()); //NON-NLS
|
||||||
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS
|
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS
|
||||||
getActionMap().put("useExternalViewer", new ExternalViewerShortcutAction()); //NON-NLS
|
getActionMap().put("useExternalViewer", ExternalViewerShortcutAction.getInstance()); //NON-NLS
|
||||||
this.controller = controller;
|
this.controller = controller;
|
||||||
|
|
||||||
//create linked result and content views
|
//create linked result and content views
|
||||||
|
@ -241,7 +241,7 @@ public final class ImageGalleryTopComponent extends TopComponent implements Expl
|
|||||||
setName(Bundle.CTL_ImageGalleryTopComponent());
|
setName(Bundle.CTL_ImageGalleryTopComponent());
|
||||||
initComponents();
|
initComponents();
|
||||||
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS
|
getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS
|
||||||
getActionMap().put("useExternalViewer", new ExternalViewerShortcutAction()); //NON-NLS
|
getActionMap().put("useExternalViewer", ExternalViewerShortcutAction.getInstance()); //NON-NLS
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -217,7 +217,7 @@ public abstract class DrawableTileBase extends DrawableUIBase {
|
|||||||
MenuItem externalViewer = new MenuItem("Open in External Viewer");
|
MenuItem externalViewer = new MenuItem("Open in External Viewer");
|
||||||
externalViewer.setOnAction(actionEvent
|
externalViewer.setOnAction(actionEvent
|
||||||
-> SwingUtilities.invokeLater(() -> {
|
-> SwingUtilities.invokeLater(() -> {
|
||||||
new ExternalViewerShortcutAction()
|
ExternalViewerShortcutAction.getInstance()
|
||||||
.actionPerformed(null);
|
.actionPerformed(null);
|
||||||
}));
|
}));
|
||||||
externalViewer.setAccelerator(OpenExternalViewerAction.EXTERNAL_VIEWER_SHORTCUT);
|
externalViewer.setAccelerator(OpenExternalViewerAction.EXTERNAL_VIEWER_SHORTCUT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user