diff --git a/Core/manifest.mf b/Core/manifest.mf
index 7aa34c46dc..9c9ba77918 100644
--- a/Core/manifest.mf
+++ b/Core/manifest.mf
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
OpenIDE-Module: org.sleuthkit.autopsy.core/9
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/core/Bundle.properties
OpenIDE-Module-Layer: org/sleuthkit/autopsy/core/layer.xml
-OpenIDE-Module-Implementation-Version: 9
+OpenIDE-Module-Implementation-Version: 10
OpenIDE-Module-Requires: org.openide.windows.WindowManager, org.netbeans.api.javahelp.Help
AutoUpdate-Show-In-Client: true
AutoUpdate-Essential-Module: true
diff --git a/Core/nbproject/project.properties b/Core/nbproject/project.properties
index 377812104d..69d3afa92d 100644
--- a/Core/nbproject/project.properties
+++ b/Core/nbproject/project.properties
@@ -6,5 +6,5 @@ license.file=../LICENSE-2.0.txt
nbm.homepage=http://www.sleuthkit.org/
nbm.module.author=Brian Carrier
nbm.needs.restart=true
-spec.version.base=7.0
+spec.version.base=7.1
diff --git a/Core/nbproject/project.xml b/Core/nbproject/project.xml
index 54b91610de..7dd5bfd278 100644
--- a/Core/nbproject/project.xml
+++ b/Core/nbproject/project.xml
@@ -194,6 +194,7 @@
org.sleuthkit.autopsy.actions
org.sleuthkit.autopsy.casemodule
org.sleuthkit.autopsy.casemodule.services
+ org.sleuthkit.autopsy.contentviewers
org.sleuthkit.autopsy.core
org.sleuthkit.autopsy.corecomponentinterfaces
org.sleuthkit.autopsy.corecomponents
@@ -206,14 +207,14 @@
org.sleuthkit.autopsy.report
org.sleuthkit.datamodel
-
- ext/sqlite-jdbc-3.8.0-SNAPSHOT.jar
- release/modules/ext/sqlite-jdbc-3.8.0-SNAPSHOT.jar
-
ext/Tsk_DataModel.jar
release/modules/ext/Tsk_DataModel.jar
+
+ ext/sqlite-jdbc-3.8.0-SNAPSHOT.jar
+ release/modules/ext/sqlite-jdbc-3.8.0-SNAPSHOT.jar
+
diff --git a/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties b/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties
index 370ea83377..2151fafa49 100755
--- a/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties
+++ b/Core/src/org/sleuthkit/autopsy/actions/Bundle.properties
@@ -14,9 +14,7 @@ GetTagNameAndCommentDialog.commentLabel.text=Comment:
GetTagNameAndCommentDialog.cancelButton.text=Cancel
GetTagNameAndCommentDialog.tagCombo.toolTipText=Select tag to use
GetTagNameAndCommentDialog.tagLabel.text=Tag:
-#todo this means to tag a result? not result of a tag?
AddBlackboardArtifactTagAction.singularTagResult=Tag Result
-#todo check meaning
AddBlackboardArtifactTagAction.pluralTagResult=Tag Results
AddBlackboardArtifactTagAction.unableToTag.msg=Unable to tag {0}.
AddBlackboardArtifactTagAction.taggingErr=Tagging Error
diff --git a/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties
index bb42ba0a82..0cf5a8be40 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties
+++ b/Core/src/org/sleuthkit/autopsy/actions/Bundle_ja.properties
@@ -10,8 +10,8 @@ GetTagNameAndCommentDialog.commentLabel.text=\u30B3\u30E1\u30F3\u30C8\uFF1A
GetTagNameAndCommentDialog.cancelButton.text=\u30AD\u30E3\u30F3\u30BB\u30EB
GetTagNameAndCommentDialog.tagCombo.toolTipText=\u4F7F\u7528\u3059\u308B\u30BF\u30B0\u3092\u9078\u629E
GetTagNameAndCommentDialog.tagLabel.text=\u30BF\u30B0\uFF1A
-AddBlackboardArtifactTagAction.singularTagResult=\u30BF\u30B0\u306E\u7D50\u679C
-AddBlackboardArtifactTagAction.pluralTagResult=\u30BF\u30B0\u306E\u7D50\u679C
+AddBlackboardArtifactTagAction.singularTagResult=\u7D50\u679C\u306B\u30BF\u30B0\u3092\u8FFD\u52A0
+AddBlackboardArtifactTagAction.pluralTagResult=\u7D50\u679C\u306B\u30BF\u30B0\u3092\u8FFD\u52A0
AddBlackboardArtifactTagAction.unableToTag.msg={0}\u306B\u30BF\u30B0\u3092\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3002
AddBlackboardArtifactTagAction.taggingErr=\u30BF\u30B0\u4ED8\u3051\u30A8\u30E9\u30FC
AddContentTagAction.singularTagFile=\u30D5\u30A1\u30A4\u30EB\u306B\u30BF\u30B0\u3092\u8FFD\u52A0
diff --git a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.form b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.form
index cbbdaebb26..47ff059281 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.form
+++ b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.form
@@ -109,6 +109,7 @@
+
diff --git a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java
index 960b2d183a..68c38b6114 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java
@@ -245,7 +245,7 @@ public class GetTagNameAndCommentDialog extends JDialog {
private javax.swing.JTextField commentText;
private javax.swing.JButton newTagButton;
private javax.swing.JButton okButton;
- private javax.swing.JComboBox tagCombo;
+ private javax.swing.JComboBox tagCombo;
private javax.swing.JLabel tagLabel;
// End of variables declaration//GEN-END:variables
}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java
index 469b600ac2..a769194ed3 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java
@@ -111,15 +111,18 @@ public final class AddImageAction extends CallableSystemAction implements Presen
final IngestConfigurator ingestConfig = Lookup.getDefault().lookup(IngestConfigurator.class);
if (null != ingestConfig && ingestConfig.isIngestRunning()) {
- final String msg = "Ingest is ongoing on another data source. Adding a new source now might slow down the current ingest.
Do you want to proceed and add a new data source now?";
- if (JOptionPane.showConfirmDialog(null, msg, "Ingest in progress", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.NO_OPTION) {
+ final String msg = NbBundle.getMessage(this.getClass(), "AddImageAction.ingestConfig.ongoingIngest.msg");
+ if (JOptionPane.showConfirmDialog(null, msg,
+ NbBundle.getMessage(this.getClass(),
+ "AddImageAction.ingestConfig.ongoingIngest.title"),
+ JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.NO_OPTION) {
return;
}
}
iterator = new AddImageWizardIterator(this);
wizardDescriptor = new WizardDescriptor(iterator);
- wizardDescriptor.setTitle("Add Data Source");
+ wizardDescriptor.setTitle(NbBundle.getMessage(this.getClass(), "AddImageAction.wizard.title"));
wizardDescriptor.putProperty(NAME, e);
if (dialog != null) {
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java
index 0057aa689f..7e27a21010 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java
@@ -24,6 +24,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
+
+import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback;
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
import org.sleuthkit.autopsy.coreutils.Logger;
@@ -97,12 +99,14 @@ import org.sleuthkit.datamodel.TskException;
String currDir = process.currentDirectory();
if (currDir != null) {
if (!currDir.isEmpty() ) {
- progressMonitor.setProgressText("Adding: " + currDir);
+ progressMonitor.setProgressText(
+ NbBundle.getMessage(this.getClass(), "AddImageTask.run.progress.adding",
+ currDir));
}
}
// this sleep here prevents the UI from locking up
// due to too frequent updates to the progressMonitor above
- Thread.sleep(2 * 1000);
+ Thread.sleep(500);
}
} catch (InterruptedException ie) {
// nothing to do, thread was interrupted externally
@@ -298,7 +302,7 @@ import org.sleuthkit.datamodel.TskException;
logger.log(Level.INFO, "interrupt() add image process");
addImageProcess.stop(); //it might take time to truly stop processing and writing to db
} catch (TskCoreException ex) {
- throw new Exception("Error stopping add-image process.", ex);
+ throw new Exception(NbBundle.getMessage(this.getClass(), "AddImageTask.interrupt.exception.msg"), ex);
}
}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
index 951d60c834..14920f7183 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
@@ -29,6 +29,7 @@ import javax.swing.event.ChangeListener;
import org.openide.WizardDescriptor;
import org.openide.util.HelpCtx;
import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
/**
@@ -136,7 +137,8 @@ class AddImageWizardAddingProgressPanel implements WizardDescriptor.FinishablePa
public boolean isValid() {
// set the focus to the next button of the wizard dialog if it's enabled
if (imgAdded) {
- Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton("Next >");
+ Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton(
+ NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressPanel.isValid.focusNext"));
}
return imgAdded;
@@ -147,7 +149,8 @@ class AddImageWizardAddingProgressPanel implements WizardDescriptor.FinishablePa
*/
void setStateStarted() {
component.getProgressBar().setIndeterminate(true);
- component.setProgressBarTextAndColor("*This process may take some time for large data sources.", 0, Color.black);
+ component.setProgressBarTextAndColor(
+ NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressPanel.stateStarted.progressBarText"), 0, Color.black);
}
/**
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java
index a7be36a1d7..afd5ec7281 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java
@@ -23,6 +23,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JProgressBar;
import org.openide.WizardDescriptor;
+import org.openide.util.NbBundle;
/**
* visual component to display progress bar and status updates while adding an
@@ -30,7 +31,8 @@ import org.openide.WizardDescriptor;
*/
class AddImageWizardAddingProgressVisual extends javax.swing.JPanel {
- private static final String ADDING_DATA_SOURCE_COMPLETE = "Adding Data Source - Complete";
+ private static final String ADDING_DATA_SOURCE_COMPLETE = NbBundle
+ .getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.addingDsComplete.text");
private String errorLog = "";
private boolean hasCriticalErrors = false;
@@ -42,7 +44,7 @@ import org.openide.WizardDescriptor;
*/
@Override
public String getName() {
- return "Add Data Source";
+ return NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.getName.text");
}
/**
@@ -115,10 +117,12 @@ import org.openide.WizardDescriptor;
//progressBar.setValue(100); //always invoked when process completed
if (hasCriticalErrors) {
statusLabel.setForeground(Color.RED);
- statusLabel.setText("*Failed to add data source (critical errors encountered). Click below to view the log.");
+ statusLabel.setText(
+ NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.critText"));
} else {
statusLabel.setForeground(Color.BLACK);
- statusLabel.setText("*Data Source added (non-critical errors encountered). Click below to view the log.");
+ statusLabel.setText(
+ NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.nonCritText"));
}
errorLog += errors + "\n";
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java
index d662439f3b..9f595e92d3 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java
@@ -25,6 +25,8 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.logging.Level;
+
+import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -106,7 +108,8 @@ class AddImageWizardChooseDataSourcePanel implements WizardDescriptor.Panel");
+ Lookup.getDefault().lookup(AddImageAction.class).requestFocusButton(
+ NbBundle.getMessage(this.getClass(), "AddImageWizardChooseDataSourcePanel.moveFocusNext"));
}
}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java
index 65a97761dd..7cd8f412ba 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java
@@ -18,7 +18,6 @@
*/
package org.sleuthkit.autopsy.casemodule;
-
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -37,25 +36,22 @@ import javax.swing.JSeparator;
import javax.swing.event.DocumentEvent;
import javax.swing.ListCellRenderer;
import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
/**
- * visual component for the first panel of add image wizard.
- * Allows the user to choose the data source type and then select the data source
+ * visual component for the first panel of add image wizard. Allows the user to
+ * choose the data source type and then select the data source
*
*/
final class AddImageWizardChooseDataSourceVisual extends JPanel {
static final Logger logger = Logger.getLogger(AddImageWizardChooseDataSourceVisual.class.getName());
-
private AddImageWizardChooseDataSourcePanel wizPanel;
-
private JPanel currentPanel;
- private Map datasourceProcessorsMap = new HashMap();
-
-
- List coreDSPTypes = new ArrayList();
+ private Map datasourceProcessorsMap = new HashMap<>();
+ List coreDSPTypes = new ArrayList<>();
/**
* Creates new form AddImageVisualPanel1
@@ -65,46 +61,45 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel {
AddImageWizardChooseDataSourceVisual(AddImageWizardChooseDataSourcePanel wizPanel) {
initComponents();
this.wizPanel = wizPanel;
-
+
customInit();
}
private void customInit() {
-
+
typePanel.setLayout(new BorderLayout());
-
+
discoverDataSourceProcessors();
-
+
// set up the DSP type combobox
typeComboBox.removeAllItems();
-
+
Set dspTypes = datasourceProcessorsMap.keySet();
-
+
// make a list of core DSPs
// ensure that the core DSPs are at the top and in a fixed order
coreDSPTypes.add(ImageDSProcessor.getType());
coreDSPTypes.add(LocalDiskDSProcessor.getType());
coreDSPTypes.add(LocalFilesDSProcessor.getType());
-
- for(String dspType:coreDSPTypes){
+
+ for (String dspType : coreDSPTypes) {
typeComboBox.addItem(dspType);
}
-
+
// now add any addtional DSPs that haven't already been added
- for(String dspType:dspTypes){
+ for (String dspType : dspTypes) {
if (!coreDSPTypes.contains(dspType)) {
typeComboBox.addItem(dspType);
}
}
-
- // set a custom renderer that draws a separator at the end of the core DSPs in the combobox
- typeComboBox.setRenderer(new ComboboxSeparatorRenderer(typeComboBox.getRenderer()){
+
+ typeComboBox.setRenderer(new ComboboxSeparatorRenderer(typeComboBox.getRenderer()) {
@Override
- protected boolean addSeparatorAfter(JList list, Object value, int index){
- return (index == coreDSPTypes.size() - 1);
- }
- });
-
+ protected boolean addSeparatorAfter(JList list, Object value, int index) {
+ return (index == coreDSPTypes.size() - 1);
+ }
+ });
+
//add actionlistner to listen for change
ActionListener cbActionListener = new ActionListener() {
@Override
@@ -117,24 +112,23 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel {
}
private void discoverDataSourceProcessors() {
-
- for (DataSourceProcessor dsProcessor: Lookup.getDefault().lookupAll(DataSourceProcessor.class)) {
-
- if (!datasourceProcessorsMap.containsKey(dsProcessor.getDataSourceType()) ) {
- datasourceProcessorsMap.put(dsProcessor.getDataSourceType(), dsProcessor);
- }
- else {
- logger.log(Level.SEVERE, "discoverDataSourceProcessors(): A DataSourceProcessor already exists for type = " + dsProcessor.getDataSourceType() );
- }
- }
- }
- private void dspSelectionChanged() {
- // update the current panel to selection
- currentPanel = getCurrentDSProcessor().getPanel();
- updateCurrentPanel(currentPanel);
+ for (DataSourceProcessor dsProcessor : Lookup.getDefault().lookupAll(DataSourceProcessor.class)) {
+
+ if (!datasourceProcessorsMap.containsKey(dsProcessor.getDataSourceType())) {
+ datasourceProcessorsMap.put(dsProcessor.getDataSourceType(), dsProcessor);
+ } else {
+ logger.log(Level.SEVERE, "discoverDataSourceProcessors(): A DataSourceProcessor already exists for type = {0}", dsProcessor.getDataSourceType());
+ }
+ }
}
-
+
+ private void dspSelectionChanged() {
+ // update the current panel to selection
+ currentPanel = getCurrentDSProcessor().getPanel();
+ updateCurrentPanel(currentPanel);
+ }
+
/**
* Changes the current panel to the given panel.
*
@@ -143,7 +137,7 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel {
private void updateCurrentPanel(JPanel panel) {
currentPanel = panel;
typePanel.removeAll();
- typePanel.add((JPanel) currentPanel, BorderLayout.CENTER);
+ typePanel.add(currentPanel, BorderLayout.CENTER);
typePanel.validate();
typePanel.repaint();
currentPanel.addPropertyChangeListener(new PropertyChangeListener() {
@@ -157,24 +151,26 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel {
}
}
});
-
+
updateUI(null);
}
- /**
+ /**
* Returns the currently selected DS Processor
- * @return DataSourceProcessor the DataSourceProcessor corresponding to the data source type selected in the combobox
+ *
+ * @return DataSourceProcessor the DataSourceProcessor corresponding to the
+ * data source type selected in the combobox
*/
protected DataSourceProcessor getCurrentDSProcessor() {
// get the type of the currently selected panel and then look up
// the correspodning DS Handler in the map
String dsType = (String) typeComboBox.getSelectedItem();
DataSourceProcessor dsProcessor = datasourceProcessorsMap.get(dsType);
-
+
return dsProcessor;
-
+
}
-
+
/**
* Returns the name of the this panel. This name will be shown on the left
* panel of the "Add Image" wizard panel.
@@ -183,10 +179,9 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel {
*/
@Override
public String getName() {
- return "Enter Data Source Information";
+ return NbBundle.getMessage(this.getClass(), "AddImageWizardChooseDataSourceVisual.getName.text");
}
-
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
@@ -309,25 +304,27 @@ final class AddImageWizardChooseDataSourceVisual extends JPanel {
this.wizPanel.enableNextButton(getCurrentDSProcessor().isPanelValid());
}
-
- public abstract class ComboboxSeparatorRenderer implements ListCellRenderer{
+ public abstract class ComboboxSeparatorRenderer implements ListCellRenderer {
+
private ListCellRenderer delegate;
private JPanel separatorPanel = new JPanel(new BorderLayout());
private JSeparator separator = new JSeparator();
- public ComboboxSeparatorRenderer(ListCellRenderer delegate){
- this.delegate = delegate;
+ public ComboboxSeparatorRenderer(ListCellRenderer delegate) {
+ this.delegate = delegate;
}
- public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus){
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component comp = delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
- if(index!=-1 && addSeparatorAfter(list, value, index)){
+ if (index != -1 && addSeparatorAfter(list, value, index)) {
separatorPanel.removeAll();
separatorPanel.add(comp, BorderLayout.CENTER);
separatorPanel.add(separator, BorderLayout.SOUTH);
return separatorPanel;
- }else
+ } else {
return comp;
+ }
}
protected abstract boolean addSeparatorAfter(JList list, Object value, int index);
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java
index c4c2f6d4dd..0e0726480b 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java
@@ -19,6 +19,7 @@
package org.sleuthkit.autopsy.casemodule;
+import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.ingest.IngestConfigurator;
import java.awt.Color;
import java.awt.Component;
@@ -275,9 +276,11 @@ class AddImageWizardIngestConfigPanel implements WizardDescriptor.PanelIngest is ongoing on another data source. Adding a new source now might slow down the current ingest.
Do you want to proceed and add a new data source now?