mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
Changed plumbing for adding content to hash db actions
This commit is contained in:
parent
136f93d38c
commit
c13f41f67c
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Autopsy Forensic Browser
|
||||||
|
*
|
||||||
|
* Copyright 2011 - 2013 Basis Technology Corp.
|
||||||
|
* Contact: carrier <at> sleuthkit <dot> org
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.sleuthkit.autopsy.corecomponentinterfaces;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import javax.swing.Action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementers of this interface provide Actions that will be added to context
|
||||||
|
* menus in Autopsy.
|
||||||
|
*/
|
||||||
|
public interface ContextMenuActionsProvider {
|
||||||
|
/**
|
||||||
|
* Gets context menu Actions appropriate to the org.sleuthkit.datamodel
|
||||||
|
* objects in the NetBeans Lookup for the active TopComponent.
|
||||||
|
* Implementers can discover the data model objects by calling
|
||||||
|
* org.openide.util.Utilities.actionsGlobalContext().lookupAll().
|
||||||
|
* @return A list, possibly empty, of Action objects.
|
||||||
|
*/
|
||||||
|
List<Action> getActions();
|
||||||
|
}
|
45
Core/src/org/sleuthkit/autopsy/coreutils/ContextMenuExtensionPoint.java
Executable file
45
Core/src/org/sleuthkit/autopsy/coreutils/ContextMenuExtensionPoint.java
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Autopsy Forensic Browser
|
||||||
|
*
|
||||||
|
* Copyright 2011 - 2013 Basis Technology Corp.
|
||||||
|
* Contact: carrier <at> sleuthkit <dot> org
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.sleuthkit.autopsy.coreutils;
|
||||||
|
|
||||||
|
import org.openide.util.Lookup;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.swing.Action;
|
||||||
|
import org.sleuthkit.autopsy.corecomponentinterfaces.ContextMenuActionsProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class implements the ContextMenuActionsProvider extension point.
|
||||||
|
*/
|
||||||
|
public class ContextMenuExtensionPoint {
|
||||||
|
/**
|
||||||
|
* Gets all of the Actions provided by registered implementers of the
|
||||||
|
* ContextMenuActionsProvider interface.
|
||||||
|
* @return A list, possibly empty, of Action objects.
|
||||||
|
*/
|
||||||
|
static public List<Action> getActions() {
|
||||||
|
ArrayList<Action> actions = new ArrayList<>();
|
||||||
|
Collection<? extends ContextMenuActionsProvider> actionProviders = Lookup.getDefault().lookupAll(ContextMenuActionsProvider.class);
|
||||||
|
for (ContextMenuActionsProvider provider : actionProviders) {
|
||||||
|
actions.addAll(provider.getActions());
|
||||||
|
}
|
||||||
|
return actions;
|
||||||
|
}
|
||||||
|
}
|
@ -21,7 +21,6 @@ package org.sleuthkit.autopsy.datamodel;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import org.sleuthkit.autopsy.directorytree.AddContentToHashDbAction;
|
|
||||||
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.TagAbstractFileAction;
|
import org.sleuthkit.autopsy.directorytree.TagAbstractFileAction;
|
||||||
@ -78,7 +77,6 @@ public class DirectoryNode extends AbstractFsContentNode<AbstractFile> {
|
|||||||
actions.add(ExtractAction.getInstance());
|
actions.add(ExtractAction.getInstance());
|
||||||
actions.add(null); // creates a menu separator
|
actions.add(null); // creates a menu separator
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actions.toArray(new Action[0]);
|
return actions.toArray(new Action[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,6 @@ package org.sleuthkit.autopsy.datamodel;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import org.sleuthkit.autopsy.directorytree.AddContentToHashDbAction;
|
|
||||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.HashSearchAction;
|
import org.sleuthkit.autopsy.directorytree.HashSearchAction;
|
||||||
@ -86,7 +85,6 @@ public class FileNode extends AbstractFsContentNode<AbstractFile> {
|
|||||||
actionsList.add(new HashSearchAction("Search for files with the same MD5 hash", this));
|
actionsList.add(new HashSearchAction("Search for files with the same MD5 hash", this));
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(TagAbstractFileAction.getInstance());
|
actionsList.add(TagAbstractFileAction.getInstance());
|
||||||
actionsList.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actionsList.toArray(new Action[0]);
|
return actionsList.toArray(new Action[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,6 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import org.openide.nodes.Sheet;
|
import org.openide.nodes.Sheet;
|
||||||
import org.sleuthkit.autopsy.directorytree.AddContentToHashDbAction;
|
|
||||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
@ -110,7 +109,6 @@ public class LayoutFileNode extends AbstractAbstractFileNode<LayoutFile> {
|
|||||||
actionsList.add(ExtractAction.getInstance());
|
actionsList.add(ExtractAction.getInstance());
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(TagAbstractFileAction.getInstance());
|
actionsList.add(TagAbstractFileAction.getInstance());
|
||||||
actionsList.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actionsList.toArray(new Action[0]);
|
return actionsList.toArray(new Action[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ import java.util.Map;
|
|||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import org.openide.nodes.Sheet;
|
import org.openide.nodes.Sheet;
|
||||||
import org.sleuthkit.autopsy.datamodel.DisplayableItemNode.TYPE;
|
import org.sleuthkit.autopsy.datamodel.DisplayableItemNode.TYPE;
|
||||||
import org.sleuthkit.autopsy.directorytree.AddContentToHashDbAction;
|
|
||||||
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
import org.sleuthkit.autopsy.directorytree.ExternalViewerAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.HashSearchAction;
|
import org.sleuthkit.autopsy.directorytree.HashSearchAction;
|
||||||
@ -94,7 +93,6 @@ public class LocalFileNode extends AbstractAbstractFileNode<AbstractFile> {
|
|||||||
actionsList.add(new HashSearchAction("Search for files with the same MD5 hash", this));
|
actionsList.add(new HashSearchAction("Search for files with the same MD5 hash", this));
|
||||||
actionsList.add(null); // creates a menu separator
|
actionsList.add(null); // creates a menu separator
|
||||||
actionsList.add(TagAbstractFileAction.getInstance());
|
actionsList.add(TagAbstractFileAction.getInstance());
|
||||||
actionsList.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actionsList.toArray(new Action[0]);
|
return actionsList.toArray(new Action[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,6 @@ import java.util.Map;
|
|||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import org.openide.nodes.Sheet;
|
import org.openide.nodes.Sheet;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.autopsy.directorytree.AddContentToHashDbAction;
|
|
||||||
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.TagAbstractFileAction;
|
import org.sleuthkit.autopsy.directorytree.TagAbstractFileAction;
|
||||||
@ -83,7 +82,6 @@ public class VirtualDirectoryNode extends AbstractAbstractFileNode<VirtualDirect
|
|||||||
actions.add(ExtractAction.getInstance());
|
actions.add(ExtractAction.getInstance());
|
||||||
actions.add(null); // creates a menu separator
|
actions.add(null); // creates a menu separator
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actions.toArray(new Action[0]);
|
return actions.toArray(new Action[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +208,6 @@ public class DataResultFilterNode extends FilterNode {
|
|||||||
actions.add(null); // creates a menu separator
|
actions.add(null); // creates a menu separator
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(TagBlackboardArtifactAction.getInstance());
|
actions.add(TagBlackboardArtifactAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((d = ban.getLookup().lookup(Directory.class)) != null) {
|
if ((d = ban.getLookup().lookup(Directory.class)) != null) {
|
||||||
@ -225,7 +224,6 @@ public class DataResultFilterNode extends FilterNode {
|
|||||||
actions.add(null); // creates a menu separator
|
actions.add(null); // creates a menu separator
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(TagBlackboardArtifactAction.getInstance());
|
actions.add(TagBlackboardArtifactAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((vd = ban.getLookup().lookup(VirtualDirectory.class)) != null) {
|
if ((vd = ban.getLookup().lookup(VirtualDirectory.class)) != null) {
|
||||||
@ -242,7 +240,6 @@ public class DataResultFilterNode extends FilterNode {
|
|||||||
actions.add(null); // creates a menu separator
|
actions.add(null); // creates a menu separator
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(TagBlackboardArtifactAction.getInstance());
|
actions.add(TagBlackboardArtifactAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
}
|
}
|
||||||
} else if ((lf = ban.getLookup().lookup(LayoutFile.class)) != null) {
|
} else if ((lf = ban.getLookup().lookup(LayoutFile.class)) != null) {
|
||||||
LayoutFileNode lfn = new LayoutFileNode(lf);
|
LayoutFileNode lfn = new LayoutFileNode(lf);
|
||||||
@ -258,7 +255,6 @@ public class DataResultFilterNode extends FilterNode {
|
|||||||
actions.add(null); // creates a menu separator
|
actions.add(null); // creates a menu separator
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(TagBlackboardArtifactAction.getInstance());
|
actions.add(TagBlackboardArtifactAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
}
|
}
|
||||||
} else if ((locF = ban.getLookup().lookup(LocalFile.class)) != null
|
} else if ((locF = ban.getLookup().lookup(LocalFile.class)) != null
|
||||||
|| (locF = ban.getLookup().lookup(DerivedFile.class)) != null) {
|
|| (locF = ban.getLookup().lookup(DerivedFile.class)) != null) {
|
||||||
@ -275,7 +271,6 @@ public class DataResultFilterNode extends FilterNode {
|
|||||||
actions.add(null); // creates a menu separator
|
actions.add(null); // creates a menu separator
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(TagBlackboardArtifactAction.getInstance());
|
actions.add(TagBlackboardArtifactAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,6 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
public List<? extends Action> visit(final Directory d) {
|
public List<? extends Action> visit(final Directory d) {
|
||||||
List<Action> actions = new ArrayList<>();
|
List<Action> actions = new ArrayList<>();
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +110,6 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actions = new ArrayList<>();
|
List<Action> actions = new ArrayList<>();
|
||||||
actions.add(ExtractAction.getInstance());
|
actions.add(ExtractAction.getInstance());
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +118,6 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actions = new ArrayList<>();
|
List<Action> actions = new ArrayList<>();
|
||||||
actions.add(ExtractAction.getInstance());
|
actions.add(ExtractAction.getInstance());
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,7 +126,6 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actions = new ArrayList<>();
|
List<Action> actions = new ArrayList<>();
|
||||||
actions.add(ExtractAction.getInstance());
|
actions.add(ExtractAction.getInstance());
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +134,6 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
List<Action> actions = new ArrayList<>();
|
List<Action> actions = new ArrayList<>();
|
||||||
actions.add(ExtractAction.getInstance());
|
actions.add(ExtractAction.getInstance());
|
||||||
actions.add(TagAbstractFileAction.getInstance());
|
actions.add(TagAbstractFileAction.getInstance());
|
||||||
actions.add(AddContentToHashDbAction.getInstance());
|
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,25 +16,29 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package org.sleuthkit.autopsy.directorytree;
|
package org.sleuthkit.autopsy.hashdatabase;
|
||||||
|
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
|
import javax.swing.JMenu;
|
||||||
|
import javax.swing.JMenuItem;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import org.openide.util.Utilities;
|
import org.openide.util.Utilities;
|
||||||
import org.openide.util.Lookup;
|
import org.openide.util.Lookup;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.openide.util.actions.Presenter;
|
||||||
import org.sleuthkit.autopsy.ingest.IngestConfigurator;
|
import org.sleuthkit.autopsy.ingest.IngestConfigurator;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
import org.sleuthkit.datamodel.TskCoreException;
|
import org.sleuthkit.datamodel.TskCoreException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instances of this Action allow users to content to a hash database.
|
* Instances of this Action allow users to content to a hash database.
|
||||||
*/
|
*/
|
||||||
public class AddContentToHashDbAction extends AbstractAction {
|
public class AddContentToHashDbAction extends AbstractAction implements Presenter.Popup {
|
||||||
// This class is a singleton to support multi-selection of nodes, since
|
// 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
|
// 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).
|
// node in the array returns a reference to the same action object from Node.getActions(boolean).
|
||||||
@ -81,21 +85,44 @@ public class AddContentToHashDbAction extends AbstractAction {
|
|||||||
super(SINGLE_SELECTION_NAME);
|
super(SINGLE_SELECTION_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JMenuItem getPopupPresenter() {
|
||||||
|
return new AddContentToHashDbMenu();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent event) {
|
public void actionPerformed(ActionEvent event) {
|
||||||
Collection<? extends AbstractFile> selectedFiles = Utilities.actionsGlobalContext().lookupAll(AbstractFile.class);
|
}
|
||||||
for (AbstractFile file : selectedFiles) {
|
|
||||||
try {
|
private class AddContentToHashDbMenu extends JMenu {
|
||||||
// RJCTODO: Complete this method.
|
AddContentToHashDbMenu() {
|
||||||
String md5Hash = file.getMd5Hash();
|
// RJCTODO: Need super call?
|
||||||
if (null != md5Hash) {
|
|
||||||
throw new TskCoreException("RJCTODO");
|
// Get the current set of updateable hash databases and add each
|
||||||
}
|
// one as a menu item.
|
||||||
|
for (final HashDb database : HashDbXML.getCurrent().getKnownBadSets()) {
|
||||||
|
if (database.isUpdateable()) {
|
||||||
|
JMenuItem databaseItem = add(database.getName());
|
||||||
|
databaseItem.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
Collection<? extends AbstractFile> selectedFiles = Utilities.actionsGlobalContext().lookupAll(AbstractFile.class);
|
||||||
|
for (AbstractFile file : selectedFiles) {
|
||||||
|
String md5Hash = file.getMd5Hash();
|
||||||
|
if (null != md5Hash) {
|
||||||
|
try {
|
||||||
|
database.addContentHash(file);
|
||||||
|
}
|
||||||
|
catch (TskCoreException ex) {
|
||||||
|
Logger.getLogger(AddContentToHashDbAction.class.getName()).log(Level.SEVERE, "Error tagging result", ex);
|
||||||
|
JOptionPane.showMessageDialog(null, "Unable to add " + file.getName() + "to hash database.", "Add to Hash Database Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (TskCoreException ex) {
|
}
|
||||||
Logger.getLogger(AddContentToHashDbAction.class.getName()).log(Level.SEVERE, "Error tagging result", ex);
|
}
|
||||||
JOptionPane.showMessageDialog(null, "Unable to add " + file.getName() + "to hash database.", "Add to Hash Database Error", JOptionPane.ERROR_MESSAGE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -32,7 +32,6 @@ import javax.xml.parsers.ParserConfigurationException;
|
|||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
||||||
import org.sleuthkit.autopsy.coreutils.XMLUtil;
|
import org.sleuthkit.autopsy.coreutils.XMLUtil;
|
||||||
import org.sleuthkit.autopsy.directorytree.AddContentToHashDbAction;
|
|
||||||
import org.sleuthkit.autopsy.hashdatabase.HashDb.DBType;
|
import org.sleuthkit.autopsy.hashdatabase.HashDb.DBType;
|
||||||
import org.sleuthkit.datamodel.SleuthkitJNI;
|
import org.sleuthkit.datamodel.SleuthkitJNI;
|
||||||
import org.sleuthkit.datamodel.TskCoreException;
|
import org.sleuthkit.datamodel.TskCoreException;
|
||||||
|
@ -33,7 +33,7 @@ import org.sleuthkit.autopsy.directorytree.ExtractAction;
|
|||||||
import org.sleuthkit.autopsy.directorytree.TagAbstractFileAction;
|
import org.sleuthkit.autopsy.directorytree.TagAbstractFileAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.HashSearchAction;
|
import org.sleuthkit.autopsy.directorytree.HashSearchAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
import org.sleuthkit.autopsy.directorytree.NewWindowViewAction;
|
||||||
import org.sleuthkit.autopsy.directorytree.AddContentToHashDbAction;
|
import org.sleuthkit.autopsy.hashdatabase.AddContentToHashDbAction;
|
||||||
import org.sleuthkit.datamodel.Content;
|
import org.sleuthkit.datamodel.Content;
|
||||||
import org.sleuthkit.datamodel.ContentVisitor;
|
import org.sleuthkit.datamodel.ContentVisitor;
|
||||||
import org.sleuthkit.datamodel.DerivedFile;
|
import org.sleuthkit.datamodel.DerivedFile;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user