19 package org.sleuthkit.autopsy.ingest.runIngestModuleWizard;
21 import java.awt.Cursor;
22 import java.awt.event.ActionEvent;
23 import java.text.MessageFormat;
24 import java.util.ArrayList;
25 import java.util.List;
26 import java.util.logging.Level;
27 import javax.swing.AbstractAction;
28 import javax.swing.Action;
29 import javax.swing.JOptionPane;
30 import javax.swing.RootPaneContainer;
31 import org.openide.DialogDisplayer;
32 import org.openide.WizardDescriptor;
33 import org.openide.util.NbBundle.Messages;
34 import org.openide.windows.WindowManager;
50 @Messages(
"RunIngestModulesAction.name=Run Ingest Modules")
69 List<String> warnings = ingestJobSettings.getWarnings();
70 if (warnings.isEmpty() ==
false) {
71 StringBuilder warningMessage =
new StringBuilder(1024);
72 for (String warning : warnings) {
73 warningMessage.append(warning).append(
"\n");
75 JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), warningMessage.toString());
86 this.putValue(Action.NAME, Bundle.RunIngestModulesAction_name());
87 this.dataSources.addAll(dataSources);
99 this.putValue(Action.NAME, Bundle.RunIngestModulesAction_name());
103 this.setEnabled(parentFile.hasChildren());
104 }
catch (TskCoreException ex) {
105 this.setEnabled(
false);
106 logger.log(Level.SEVERE, String.format(
"Failed to get children count for parent file %s (objId=%d), RunIngestModulesAction disabled", parentFile.getName(), parentFile.getId()), ex);
117 "RunIngestModulesAction.actionPerformed.errorMessage=Error querying the case database for the selected item."
126 RootPaneContainer root = (RootPaneContainer) WindowManager.getDefault().getMainWindow();
127 root.getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
128 root.getGlassPane().setVisible(
true);
130 WizardDescriptor wiz =
new WizardDescriptor(wizard);
131 wiz.setTitleFormat(
new MessageFormat(
"{0}"));
132 wiz.setTitle(Bundle.RunIngestModulesAction_name());
133 root.getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
134 root.getGlassPane().setVisible(
false);
135 if (DialogDisplayer.getDefault().notify(wiz) == WizardDescriptor.FINISH_OPTION) {
142 Content dataSource =
parentFile.getDataSource();
143 List<Content> children =
parentFile.getChildren();
144 List<AbstractFile> files =
new ArrayList<>();
145 for (Content child : children) {
146 if (child instanceof AbstractFile) {
147 files.add((AbstractFile) child);
150 if (!files.isEmpty()) {
153 }
catch (TskCoreException ex) {
154 logger.log(Level.SEVERE, String.format(
"Failed to get data source or children for parent file %s (objId=%d), action failed",
parentFile.getName(),
parentFile.getId()), ex);
162 public Object
clone() throws CloneNotSupportedException {
163 throw new CloneNotSupportedException(
"Clone is not supported for the RunIngestModulesAction");
final IngestJobSettings.IngestType ingestType
static synchronized IngestManager getInstance()
final List< Content > dataSources
final AbstractFile parentFile
static final Logger logger
RunIngestModulesAction(List< Content > dataSources)
RunIngestModulesAction(AbstractFile parentFile)
static final long serialVersionUID
static void showWarnings(IngestJobSettings ingestJobSettings)
void queueIngestJob(Collection< Content > dataSources, IngestJobSettings settings)
void actionPerformed(ActionEvent e)
static final String EXECUTION_CONTEXT
static void error(String message)