diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageDonePanel.form b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageDonePanel.form
deleted file mode 100644
index 204b5a3c02..0000000000
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageDonePanel.form
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageDonePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageDonePanel.java
deleted file mode 100644
index 45a511e6b6..0000000000
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageDonePanel.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Autopsy Forensic Browser
- *
- * Copyright 2012 Basis Technology Corp.
- * Contact: carrier sleuthkit 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.casemodule;
-
-public class AddImageDonePanel extends javax.swing.JPanel {
-
- /**
- * Creates new form AddImageDonePanel
- */
- public AddImageDonePanel() {
- initComponents();
- }
-
- /**
- * 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
- * regenerated by the Form Editor.
- */
- @SuppressWarnings("unchecked")
- // //GEN-BEGIN:initComponents
- private void initComponents() {
-
- statusLabel = new javax.swing.JLabel();
- crDbLabel = new javax.swing.JLabel();
-
- org.openide.awt.Mnemonics.setLocalizedText(statusLabel, org.openide.util.NbBundle.getMessage(AddImageDonePanel.class, "AddImageDonePanel.statusLabel.text")); // NOI18N
-
- crDbLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
- org.openide.awt.Mnemonics.setLocalizedText(crDbLabel, org.openide.util.NbBundle.getMessage(AddImageDonePanel.class, "AddImageDonePanel.crDbLabel.text")); // NOI18N
-
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
- this.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(10, 10, 10)
- .addComponent(statusLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE))
- .addGroup(layout.createSequentialGroup()
- .addComponent(crDbLabel)
- .addGap(0, 0, Short.MAX_VALUE)))
- .addContainerGap())
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(crDbLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(statusLabel)
- .addContainerGap(67, Short.MAX_VALUE))
- );
- }// //GEN-END:initComponents
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JLabel crDbLabel;
- private javax.swing.JLabel statusLabel;
- // End of variables declaration//GEN-END:variables
-}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.form b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.form
index 3af0b7554c..b0cd0483aa 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.form
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.form
@@ -15,6 +15,7 @@
+
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.java
index cf6d30f504..2898f502d4 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageErrorsDialog.java
@@ -107,7 +107,7 @@ public class AddImageErrorsDialog extends javax.swing.JDialog {
}//GEN-LAST:event_closeButtonActionPerformed
- void setErrors(String errors) {
+ public void setErrors(String errors) {
errorsText.setText(errors);
}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageLoadingPanel.form b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageLoadingPanel.form
deleted file mode 100644
index 806323e9e8..0000000000
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageLoadingPanel.form
+++ /dev/null
@@ -1,144 +0,0 @@
-
-
-
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageLoadingPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageLoadingPanel.java
deleted file mode 100644
index 0ba466f7bd..0000000000
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageLoadingPanel.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Autopsy Forensic Browser
- *
- * Copyright 2012 Basis Technology Corp.
- * Contact: carrier sleuthkit 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.casemodule;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JProgressBar;
-
-public class AddImageLoadingPanel extends javax.swing.JPanel {
- private JLabel progressLabel = null;
- private JButton errorButton = null;
-
- /**
- * Creates new form AddImageLoadingPanel
- */
- public AddImageLoadingPanel() {
- initComponents();
- customizeComponents();
- }
-
- private void customizeComponents() {
- progressLabel = new JLabel();
- infoPanel.setLayout(new BoxLayout(infoPanel, BoxLayout.PAGE_AXIS));
- infoPanel.add(progressLabel);
- infoPanel.add(Box.createRigidArea(new Dimension(10, 10))); //spacer
- this.jScrollPane1.setBorder(null);
- this.TextArea_CurrentDirectory.setBackground(this.getBackground());
- }
-
- void resetInfoPanel() {
- if (errorButton != null) {
- infoPanel.remove(errorButton);
- errorButton = null;
- }
- progressLabel.setText("");
- }
-
- public JProgressBar getCrDbProgressBar() {
- return this.crDbProgressBar;
- }
-
- public JLabel getProgressLabel() {
- return this.progressLabel;
- }
-
- /**
- * Changes the progress bar text and color.
- *
- * @param text the text to be shown
- * @param value the current value of the progress bar
- * @param color the color of the progress bar text
- */
- public void changeProgressBarTextAndColor(String text, int value, Color color) {
- progressLabel.setText(text);
- progressLabel.setForeground(color);
- crDbProgressBar.setValue(value);
- }
-
- /**
- * append progress text to progress label
- * @param text
- */
- public void appendProgressText(String text) {
- progressLabel.setText(progressLabel.getText() + " " + text);
- }
-
- /**
- * Updates the currently processing directory
- * @param dir the text to update with
- */
- public void changeCurrentDir(String dir){
- this.TextArea_CurrentDirectory.setText(dir);
- }
-
-
- /**
- * Sets the CurrentlyProcessing tag and text area to be invisible
- */
- public void setProcessInvis(){
- this.Label_CurrentDirectory_Static.setVisible(false);
- this.TextArea_CurrentDirectory.setText("");
- this.TextArea_CurrentDirectory.setVisible(false);
- }
-
- void setErrors(final String errors, boolean critical) {
- crDbProgressBar.setValue(100); //always invoked when process completed
- if (critical) {
- progressLabel.setText("*Failed to add image (critical errors encountered). Click below to view the log.");
- }
- else {
- progressLabel.setText("*Data Source added (non-critical errors encountered). Click below to view the log.");
- }
- errorButton = new JButton();
- errorButton.setText("View Log");
- infoPanel.add(errorButton);
- errorButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- //JOptionPane.showMessageDialog(null, errors, "Add image non-critical errors", JOptionPane.WARNING_MESSAGE);
- AddImageErrorsDialog dialog = new AddImageErrorsDialog(null, true);
- dialog.setErrors(errors);
- dialog.setVisible(true);
- }
- });
-
- }
-
- /**
- * 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
- * regenerated by the Form Editor.
- */
- @SuppressWarnings("unchecked")
- // //GEN-BEGIN:initComponents
- private void initComponents() {
-
- crDbLabel = new javax.swing.JLabel();
- jLabel1 = new javax.swing.JLabel();
- jLabel5 = new javax.swing.JLabel();
- crDbProgressBar = new javax.swing.JProgressBar();
- infoPanel = new javax.swing.JPanel();
- Label_CurrentDirectory_Static = new javax.swing.JLabel();
- jScrollPane1 = new javax.swing.JScrollPane();
- TextArea_CurrentDirectory = new javax.swing.JTextArea();
-
- crDbLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
- org.openide.awt.Mnemonics.setLocalizedText(crDbLabel, org.openide.util.NbBundle.getMessage(AddImageLoadingPanel.class, "AddImageLoadingPanel.crDbLabel.text")); // NOI18N
-
- org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(AddImageLoadingPanel.class, "AddImageLoadingPanel.jLabel1.text")); // NOI18N
-
- org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(AddImageLoadingPanel.class, "AddImageLoadingPanel.jLabel5.text")); // NOI18N
-
- javax.swing.GroupLayout infoPanelLayout = new javax.swing.GroupLayout(infoPanel);
- infoPanel.setLayout(infoPanelLayout);
- infoPanelLayout.setHorizontalGroup(
- infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 707, Short.MAX_VALUE)
- );
- infoPanelLayout.setVerticalGroup(
- infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 15, Short.MAX_VALUE)
- );
-
- org.openide.awt.Mnemonics.setLocalizedText(Label_CurrentDirectory_Static, org.openide.util.NbBundle.getMessage(AddImageLoadingPanel.class, "AddImageLoadingPanel.Label_CurrentDirectory_Static.text")); // NOI18N
-
- jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
- jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
-
- TextArea_CurrentDirectory.setEditable(false);
- TextArea_CurrentDirectory.setBackground(new java.awt.Color(240, 240, 240));
- TextArea_CurrentDirectory.setColumns(20);
- TextArea_CurrentDirectory.setLineWrap(true);
- TextArea_CurrentDirectory.setRows(5);
- TextArea_CurrentDirectory.setWrapStyleWord(true);
- TextArea_CurrentDirectory.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
- TextArea_CurrentDirectory.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
- jScrollPane1.setViewportView(TextArea_CurrentDirectory);
-
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
- this.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(crDbProgressBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jScrollPane1)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(crDbLabel)
- .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 552, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel5)
- .addComponent(Label_CurrentDirectory_Static))
- .addGap(0, 0, Short.MAX_VALUE))
- .addComponent(infoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addContainerGap())
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(crDbLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jLabel1)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(crDbProgressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(infoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(Label_CurrentDirectory_Static)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- );
- }// //GEN-END:initComponents
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JLabel Label_CurrentDirectory_Static;
- private javax.swing.JTextArea TextArea_CurrentDirectory;
- private javax.swing.JLabel crDbLabel;
- private javax.swing.JProgressBar crDbProgressBar;
- private javax.swing.JPanel infoPanel;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel5;
- private javax.swing.JScrollPane jScrollPane1;
- // End of variables declaration//GEN-END:variables
-}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel2.form b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel2.form
deleted file mode 100644
index c088959c9e..0000000000
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel2.form
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel2.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel2.java
deleted file mode 100644
index 3460f7bb39..0000000000
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel2.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Autopsy Forensic Browser
- *
- * Copyright 2011 Basis Technology Corp.
- * Contact: carrier sleuthkit 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.casemodule;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JProgressBar;
-
-/**
- * The "Add Image" wizard panel 2. Provides checkbox to enable indexing, button
- * to start process, and progress bar.
- */
-final class AddImageVisualPanel2 extends JPanel {
-
- private AddImageLoadingPanel loadingPanel;
- private AddImageDonePanel donePanel;
-
- /**
- * Creates new form AddImageVisualPanel2
- */
- AddImageVisualPanel2() {
- loadingPanel = new AddImageLoadingPanel();
- donePanel = new AddImageDonePanel();
- initComponents();
- customizeComponents();
- }
-
- private void customizeComponents() {
- mainPanel.setLayout(new BorderLayout());
- mainPanel.removeAll();
- mainPanel.add(loadingPanel, BorderLayout.CENTER);
- mainPanel.validate();
- mainPanel.repaint();
- }
-
- AddImageLoadingPanel getLoadingPanel() {
- return loadingPanel;
- }
-
- AddImageDonePanel getDonePanel() {
- return donePanel;
- }
-
- void done() {
- mainPanel.removeAll();
- mainPanel.add(donePanel, BorderLayout.CENTER);
- mainPanel.validate();
- mainPanel.repaint();
- }
-
- void resetInfoPanel() {
- loadingPanel.resetInfoPanel();
- }
-
- /**
- * Returns the name of the this panel. This name will be shown on the left
- * panel of the "Add Image" wizard panel.
- *
- * @return name the name of this panel
- */
- @Override
- public String getName() {
- return "Add Data Source";
- }
-
- public JProgressBar getCrDbProgressBar() {
- return loadingPanel.getCrDbProgressBar();
- }
-
- public JLabel getProgressLabel() {
- return loadingPanel.getProgressLabel();
- }
-
- /**
- * Changes the progress bar text and color.
- *
- * @param text the text to be shown
- * @param value the current value of the progress bar
- * @param color the color of the progress bar text
- */
- public void changeProgressBarTextAndColor(String text, int value, Color color) {
- loadingPanel.changeProgressBarTextAndColor(text, value, color);
- }
-
- /**
- * append progress text to progress label
- * @param text
- */
- public void appendProgressText(String text) {
- loadingPanel.appendProgressText(text);
- }
-
- /**
- * Updates the currently processing directory
- * @param dir the text to update with
- */
- public void changeCurrentDir(String dir){
- loadingPanel.changeCurrentDir(dir);
- }
-
- /**
- * Sets the CurrentlyProcessing tag and text area to be invisible
- */
- public void setProcessInvis(){
- loadingPanel.setProcessInvis();
- }
-
- void setErrors(final String errors, boolean critical) {
- loadingPanel.setErrors(errors, critical);
-
- }
-
- /**
- * 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
- * regenerated by the Form Editor.
- */
- // //GEN-BEGIN:initComponents
- private void initComponents() {
-
- mainPanel = new javax.swing.JPanel();
-
- javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
- mainPanel.setLayout(mainPanelLayout);
- mainPanelLayout.setHorizontalGroup(
- mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 334, Short.MAX_VALUE)
- );
- mainPanelLayout.setVerticalGroup(
- mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 277, Short.MAX_VALUE)
- );
-
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
- this.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(mainPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(mainPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- );
- }// //GEN-END:initComponents
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JPanel mainPanel;
- // End of variables declaration//GEN-END:variables
-}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel2.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
similarity index 70%
rename from Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel2.java
rename to Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
index dcd58dd201..78380082b7 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel2.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
@@ -29,17 +29,26 @@ import org.openide.util.HelpCtx;
import org.openide.util.Lookup;
/**
- * The "Add Data Source" wizard panel2. Handles processing the image in a worker
- * thread, and any errors that may occur during the add process.
+ * The final panel of the add image wizard. It displays a progress bar and
+ * status updates.
+ *
+ * All the real work is kicked off in the previous panel:
+ * {@link AddImageWizardIngestConfigPanel} (which is a bit weird if you ask m
+ * -jm)
*/
-class AddImageWizardPanel2 implements WizardDescriptor.Panel {
+class AddImageWizardAddingProgressPanel implements WizardDescriptor.Panel {
+
+ /**
+ * flag to indicate that the image adding process is finished and this panel
+ * is completed(valid)
+ */
private boolean imgAdded = false;
-
/**
* The visual component that displays this panel. If you need to access the
* component from this class, just use getComponent().
*/
- private AddImageVisualPanel2 component;
+ private AddImageWizardAddingProgressVisual component;
+ private final Set listeners = new HashSet<>(1); // or can use ChangeSupport in NB 6.0
/**
* Get the visual component for the panel. In this template, the component
@@ -47,12 +56,14 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel {
* but never displayed, or not all panels are displayed, it is better to
* create only those which really need to be visible.
*
+ * It also separates the view from the control - jm
+ *
* @return component the UI component of this wizard panel
*/
@Override
- public AddImageVisualPanel2 getComponent() {
+ public AddImageWizardAddingProgressVisual getComponent() {
if (component == null) {
- component = new AddImageVisualPanel2();
+ component = new AddImageWizardAddingProgressVisual();
}
return component;
}
@@ -89,8 +100,8 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel {
* Updates the UI to display the add image process has begun.
*/
void setStateStarted() {
- component.getCrDbProgressBar().setIndeterminate(true);
- component.changeProgressBarTextAndColor("*This process take some time for large data sources.", 0, Color.black);
+ component.getProgressBar().setIndeterminate(true);
+ component.setProgressBarTextAndColor("*This process take some time for large data sources.", 0, Color.black);
}
/**
@@ -98,9 +109,9 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel {
*/
void setStateFinished() {
imgAdded = true;
+ getComponent().setStateFinished();
fireChangeEvent();
}
- private final Set listeners = new HashSet(1); // or can use ChangeSupport in NB 6.0
/**
* Adds a listener to changes of the panel's validity.
@@ -149,22 +160,34 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel {
*/
@Override
public void readSettings(WizardDescriptor settings) {
- settings.setOptions(new Object[] {WizardDescriptor.PREVIOUS_OPTION, WizardDescriptor.NEXT_OPTION, WizardDescriptor.FINISH_OPTION, WizardDescriptor.CANCEL_OPTION});
- if(imgAdded) {
- getComponent().done();
+ settings.setOptions(new Object[]{WizardDescriptor.PREVIOUS_OPTION, WizardDescriptor.NEXT_OPTION, WizardDescriptor.FINISH_OPTION, WizardDescriptor.CANCEL_OPTION});
+ if (imgAdded) {
+ getComponent().setStateFinished();
}
}
/**
+ * this doesn't appear to store anything? plus, there are no settings in
+ * this panel -jm
*
* @param settings the setting to be stored to
*/
@Override
public void storeSettings(WizardDescriptor settings) {
+ //why do we do this?
getComponent().resetInfoPanel();
}
-
-
-
+ /**
+ * forward errors to visual component
+ *
+ * should this be modified to handle a list of errors? -jm
+ *
+ *
+ * @param errorString the error string to be displayed
+ * @param critical true if this is a critical error
+ */
+ void setErrors(String errorString, boolean critical) {
+ getComponent().showErrors(errorString, critical);
+ }
}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.form b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.form
new file mode 100644
index 0000000000..10bba8b3f7
--- /dev/null
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.form
@@ -0,0 +1,240 @@
+
+
+
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java
new file mode 100644
index 0000000000..62e74693a5
--- /dev/null
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressVisual.java
@@ -0,0 +1,302 @@
+/*
+ * Autopsy Forensic Browser
+ *
+ * Copyright 2012 Basis Technology Corp.
+ * Contact: carrier sleuthkit 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.casemodule;
+
+import java.awt.Color;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JProgressBar;
+
+/**
+ * visual component to display progress bar and status updates while adding an
+ * image in the wizard
+ */
+public class AddImageWizardAddingProgressVisual extends javax.swing.JPanel {
+
+ /**
+ * Returns the name of the this panel. This name will be shown on the left
+ * panel of the "Add Image" wizard panel.
+ *
+ * @return name the name of this panel
+ */
+ @Override
+ public String getName() {
+ return "Add Data Source";
+ }
+
+ /**
+ * hide the progress components and show the "done" components
+ */
+ void setStateFinished() {
+ loadingPanel.setVisible(false);
+ donePanel.setVisible(true);
+ //force repaint just in case
+ validate();
+ repaint();
+ }
+
+ /**
+ * Creates new form AddImageLoadingPanel
+ */
+ public AddImageWizardAddingProgressVisual() {
+ initComponents();
+ customizeComponents();
+ }
+
+ private void customizeComponents() {
+ //done and log button are both hidden to start
+ donePanel.setVisible(false);
+ viewLogButton.setVisible(false);
+ //match visual background of panel
+ this.TextArea_CurrentDirectory.setBackground(this.getBackground());
+
+ }
+
+ /**
+ * reset some of the visual components.
+ *
+ * is this ever invoked?
+ */
+ void resetInfoPanel() {
+ viewLogButton.setVisible(false);
+ progressLabel.setText("");
+ }
+
+ public JProgressBar getProgressBar() {
+ return this.progressBar;
+ }
+
+ /**
+ * update the progress bar and label text and color.
+ *
+ * @param text the text to be shown
+ * @param value the current value of the progress bar
+ * @param color the color of the progress bar text
+ */
+ public void setProgressBarTextAndColor(String text, int value, Color color) {
+ progressLabel.setText(text);
+ progressLabel.setForeground(color);
+ progressBar.setValue(value);
+ }
+
+ /**
+ * Updates the currently processing directory
+ *
+ * @param dir the text to update with
+ */
+ public void setCurrentDirText(String dir) {
+ this.TextArea_CurrentDirectory.setText(dir);
+ }
+
+ /**
+ * reconfigure the components to indicate error(s) and show "view log
+ * button"
+ *
+ *
+ * @param errors a string containing a description of the error(s)
+ * @param critical true to indicate the error(s) are critical
+ */
+ void showErrors(final String errors, boolean critical) {
+ progressBar.setValue(100); //always invoked when process completed
+ if (critical) {
+ statusLabel.setText("*Failed to add image (critical errors encountered). Click below to view the log.");
+ } else {
+ statusLabel.setText("*Data Source added (non-critical errors encountered). Click below to view the log.");
+ }
+
+ viewLogButton.setVisible(true);
+
+ viewLogButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ //show error dialog
+ AddImageErrorsDialog dialog = new AddImageErrorsDialog(null, true);
+ dialog.setErrors(errors);
+ dialog.setVisible(true);
+ }
+ });
+
+ }
+
+ /**
+ * 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
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ donePanel = new javax.swing.JPanel();
+ statusLabel = new javax.swing.JLabel();
+ crDbLabel = new javax.swing.JLabel();
+ viewLogButton = new javax.swing.JButton();
+ loadingPanel = new javax.swing.JPanel();
+ addingDataSourceLabel = new javax.swing.JLabel();
+ progressLabel = new javax.swing.JLabel();
+ jLabel1 = new javax.swing.JLabel();
+ jLabel5 = new javax.swing.JLabel();
+ progressBar = new javax.swing.JProgressBar();
+ infoPanel = new javax.swing.JPanel();
+ TextArea_CurrentDirectory = new javax.swing.JTextArea();
+
+ org.openide.awt.Mnemonics.setLocalizedText(statusLabel, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.statusLabel.text")); // NOI18N
+
+ crDbLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(crDbLabel, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.crDbLabel.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(viewLogButton, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.viewLogButton.text")); // NOI18N
+
+ javax.swing.GroupLayout donePanelLayout = new javax.swing.GroupLayout(donePanel);
+ donePanel.setLayout(donePanelLayout);
+ donePanelLayout.setHorizontalGroup(
+ donePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(donePanelLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(donePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(donePanelLayout.createSequentialGroup()
+ .addGap(0, 0, 0)
+ .addComponent(viewLogButton))
+ .addComponent(crDbLabel)
+ .addComponent(statusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 463, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+ donePanelLayout.setVerticalGroup(
+ donePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(donePanelLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(crDbLabel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(statusLabel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(viewLogButton)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ addingDataSourceLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(addingDataSourceLabel, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.addingDataSourceLabel.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(progressLabel, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.progressLabel.text")); // NOI18N
+ progressLabel.setPreferredSize(null);
+
+ org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.jLabel1.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.jLabel5.text")); // NOI18N
+
+ javax.swing.GroupLayout infoPanelLayout = new javax.swing.GroupLayout(infoPanel);
+ infoPanel.setLayout(infoPanelLayout);
+ infoPanelLayout.setHorizontalGroup(
+ infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 73, Short.MAX_VALUE)
+ );
+ infoPanelLayout.setVerticalGroup(
+ infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 25, Short.MAX_VALUE)
+ );
+
+ TextArea_CurrentDirectory.setEditable(false);
+ TextArea_CurrentDirectory.setBackground(new java.awt.Color(240, 240, 240));
+ TextArea_CurrentDirectory.setLineWrap(true);
+ TextArea_CurrentDirectory.setRows(5);
+ TextArea_CurrentDirectory.setWrapStyleWord(true);
+ TextArea_CurrentDirectory.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.TextArea_CurrentDirectory.border.title"))); // NOI18N
+ TextArea_CurrentDirectory.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
+ TextArea_CurrentDirectory.setFocusable(false);
+
+ javax.swing.GroupLayout loadingPanelLayout = new javax.swing.GroupLayout(loadingPanel);
+ loadingPanel.setLayout(loadingPanelLayout);
+ loadingPanelLayout.setHorizontalGroup(
+ loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(loadingPanelLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, loadingPanelLayout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addGroup(loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(addingDataSourceLabel)
+ .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 552, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel5)
+ .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 489, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGroup(loadingPanelLayout.createSequentialGroup()
+ .addGroup(loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(loadingPanelLayout.createSequentialGroup()
+ .addComponent(progressLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(infoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(TextArea_CurrentDirectory, javax.swing.GroupLayout.PREFERRED_SIZE, 487, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(0, 0, Short.MAX_VALUE))))
+ );
+ loadingPanelLayout.setVerticalGroup(
+ loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(loadingPanelLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(addingDataSourceLabel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(jLabel1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(TextArea_CurrentDirectory, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(loadingPanelLayout.createSequentialGroup()
+ .addComponent(infoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addComponent(progressLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap())
+ );
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(0, 0, 0)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(loadingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(donePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(0, 0, Short.MAX_VALUE))
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(0, 0, 0)
+ .addComponent(loadingPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(donePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+ }// //GEN-END:initComponents
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JTextArea TextArea_CurrentDirectory;
+ private javax.swing.JLabel addingDataSourceLabel;
+ private javax.swing.JLabel crDbLabel;
+ private javax.swing.JPanel donePanel;
+ private javax.swing.JPanel infoPanel;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JPanel loadingPanel;
+ private javax.swing.JProgressBar progressBar;
+ private javax.swing.JLabel progressLabel;
+ private javax.swing.JLabel statusLabel;
+ private javax.swing.JButton viewLogButton;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel1.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java
similarity index 96%
rename from Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel1.java
rename to Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java
index f84861f650..39a00baacc 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel1.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourcePanel.java
@@ -37,13 +37,13 @@ import org.sleuthkit.autopsy.coreutils.ModuleSettings;
* The "Add Image" wizard panel1 handling the logic of selecting image file(s)
* to add to Case, and pick the time zone.
*/
-class AddImageWizardPanel1 implements WizardDescriptor.Panel, PropertyChangeListener {
+class AddImageWizardChooseDataSourcePanel implements WizardDescriptor.Panel, PropertyChangeListener {
/**
* The visual component that displays this panel. If you need to access the
* component from this class, just use getComponent().
*/
- private AddImageVisualPanel1 component;
+ private AddImageWizardChooseDataSourceVisual component;
private boolean isNextEnable = false;
private static final String PROP_LASTDATASOURCE_PATH = "LBL_LastDataSource_PATH";
private static final String PROP_LASTDATASOURCE_TYPE = "LBL_LastDataSource_TYPE";
@@ -59,9 +59,9 @@ class AddImageWizardPanel1 implements WizardDescriptor.Panel,
* @return component the UI component of this wizard panel
*/
@Override
- public AddImageVisualPanel1 getComponent() {
+ public AddImageWizardChooseDataSourceVisual getComponent() {
if (component == null) {
- component = new AddImageVisualPanel1(this);
+ component = new AddImageWizardChooseDataSourceVisual(this);
}
component.addPropertyChangeListener(this);
return component;
@@ -194,7 +194,7 @@ class AddImageWizardPanel1 implements WizardDescriptor.Panel,
try {
cleanupTask.cleanup();
} catch (Exception ex) {
- Logger logger = Logger.getLogger(AddImageWizardPanel1.class.getName());
+ Logger logger = Logger.getLogger(AddImageWizardChooseDataSourcePanel.class.getName());
logger.log(Level.WARNING, "Error cleaning up image task", ex);
} finally {
cleanupTask.disable();
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.form b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.form
similarity index 88%
rename from Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.form
rename to Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.form
index 1042b934b3..04ada814bf 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.form
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.form
@@ -7,7 +7,7 @@
-
+
@@ -85,14 +85,14 @@
-
+
-
+
@@ -110,17 +110,17 @@
-
+
-
+
-
+
@@ -170,7 +170,7 @@
-
+
@@ -215,7 +215,7 @@
-
+
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java
similarity index 86%
rename from Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.java
rename to Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java
index 498b6b9771..40323635da 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardChooseDataSourceVisual.java
@@ -34,13 +34,16 @@ import javax.swing.event.ListDataListener;
import org.sleuthkit.autopsy.casemodule.ContentTypePanel.ContentType;
/**
- * The "Add Image" wizard panel 1. This class is used to design the "form" of
- * the panel 1 for "Add Image" wizard panel.
+ * visual component for the first panel of add image wizard. Allows user to pick
+ * data source and timezone.
*
*/
-final class AddImageVisualPanel1 extends JPanel {
-
- enum EVENT {UPDATE_UI, FOCUS_NEXT};
+final class AddImageWizardChooseDataSourceVisual extends JPanel {
+
+ enum EVENT {
+
+ UPDATE_UI, FOCUS_NEXT
+ };
static final List rawExt = Arrays.asList(new String[]{".img", ".dd", ".001", ".aa", ".raw"});
static final String rawDesc = "Raw Images (*.img, *.dd, *.001, *.aa, *.raw)";
static GeneralFilter rawFilter = new GeneralFilter(rawExt, rawDesc);
@@ -48,28 +51,29 @@ final class AddImageVisualPanel1 extends JPanel {
static final String encaseDesc = "Encase Images (*.e01)";
static GeneralFilter encaseFilter = new GeneralFilter(encaseExt, encaseDesc);
static final List allExt = new ArrayList();
+
static {
allExt.addAll(rawExt);
allExt.addAll(encaseExt);
}
static final String allDesc = "All Supported Types";
static GeneralFilter allFilter = new GeneralFilter(allExt, allDesc);
- private AddImageWizardPanel1 wizPanel;
+ private AddImageWizardChooseDataSourcePanel wizPanel;
private ContentTypeModel model;
-
private ContentTypePanel currentPanel;
/**
* Creates new form AddImageVisualPanel1
+ *
* @param wizPanel corresponding WizardPanel to handle logic of wizard step
*/
- AddImageVisualPanel1(AddImageWizardPanel1 wizPanel) {
+ AddImageWizardChooseDataSourceVisual(AddImageWizardChooseDataSourcePanel wizPanel) {
initComponents();
this.wizPanel = wizPanel;
createTimeZoneList();
customInit();
}
-
+
private void customInit() {
model = new ContentTypeModel();
typeComboBox.setModel(model);
@@ -77,9 +81,10 @@ final class AddImageVisualPanel1 extends JPanel {
typePanel.setLayout(new BorderLayout());
updateCurrentPanel(ImageFilePanel.getDefault());
}
-
+
/**
* Changes the current panel to the given panel.
+ *
* @param panel instance of ImageTypePanel to change to
*/
private void updateCurrentPanel(ContentTypePanel panel) {
@@ -89,17 +94,15 @@ final class AddImageVisualPanel1 extends JPanel {
typePanel.validate();
typePanel.repaint();
currentPanel.addPropertyChangeListener(new PropertyChangeListener() {
-
@Override
public void propertyChange(PropertyChangeEvent evt) {
- if(evt.getPropertyName().equals(AddImageVisualPanel1.EVENT.UPDATE_UI.toString())) {
+ if (evt.getPropertyName().equals(AddImageWizardChooseDataSourceVisual.EVENT.UPDATE_UI.toString())) {
updateUI(null);
}
- if(evt.getPropertyName().equals(AddImageVisualPanel1.EVENT.FOCUS_NEXT.toString())) {
+ if (evt.getPropertyName().equals(AddImageWizardChooseDataSourceVisual.EVENT.FOCUS_NEXT.toString())) {
wizPanel.moveFocusToNext();
}
}
-
});
currentPanel.select();
if (currentPanel.getContentType().equals(ContentType.LOCAL)) {
@@ -107,8 +110,7 @@ final class AddImageVisualPanel1 extends JPanel {
noFatOrphansCheckbox.setEnabled(false);
descLabel.setEnabled(false);
timeZoneComboBox.setEnabled(false);
- }
- else {
+ } else {
noFatOrphansCheckbox.setEnabled(true);
descLabel.setEnabled(true);
timeZoneComboBox.setEnabled(true);
@@ -120,7 +122,7 @@ final class AddImageVisualPanel1 extends JPanel {
* Returns the name of the this panel. This name will be shown on the left
* panel of the "Add Image" wizard panel.
*
- * @return name the name of this panel
+ * @return name the name of this panel
*/
@Override
public String getName() {
@@ -135,8 +137,8 @@ final class AddImageVisualPanel1 extends JPanel {
public String getContentPaths() {
return currentPanel.getContentPaths();
}
-
- /**
+
+ /**
* Gets the data sources type selected
*
* @return data source selected
@@ -144,24 +146,25 @@ final class AddImageVisualPanel1 extends JPanel {
public ContentType getContentType() {
return currentPanel.getContentType();
}
-
+
/**
* Reset the data sources panel selected
*/
public void reset() {
currentPanel.reset();
}
-
+
/**
* Sets the image path of the current panel.
+ *
* @param s the image path to set
*/
public void setContentPath(String s) {
currentPanel.setContentPath(s);
}
-
+
/**
- *
+ *
* @return true if no fat orphans processing is selected
*/
boolean getNoFatOrphans() {
@@ -171,7 +174,7 @@ final class AddImageVisualPanel1 extends JPanel {
/**
* Gets the time zone that selected on the drop down list.
*
- * @return timeZone the time zone that selected
+ * @return timeZone the time zone that selected
*/
public String getSelectedTimezone() {
String tz = timeZoneComboBox.getSelectedItem().toString();
@@ -194,17 +197,13 @@ final class AddImageVisualPanel1 extends JPanel {
String item = String.format("(GMT%+d:%02d) %s", hour, minutes, id);
/*
- DateFormat dfm = new SimpleDateFormat("z");
- dfm.setTimeZone(zone);
- boolean hasDaylight = zone.useDaylightTime();
- String first = dfm.format(new Date(2010, 1, 1));
- String second = dfm.format(new Date(2011, 6, 6));
- int mid = hour * -1;
- String result = first + Integer.toString(mid);
- if(hasDaylight){
- result = result + second;
- }
- timeZoneComboBox.addItem(item + " (" + result + ")");
+ * DateFormat dfm = new SimpleDateFormat("z");
+ * dfm.setTimeZone(zone); boolean hasDaylight =
+ * zone.useDaylightTime(); String first = dfm.format(new Date(2010,
+ * 1, 1)); String second = dfm.format(new Date(2011, 6, 6)); int mid
+ * = hour * -1; String result = first + Integer.toString(mid);
+ * if(hasDaylight){ result = result + second; }
+ * timeZoneComboBox.addItem(item + " (" + result + ")");
*/
timeZoneComboBox.addItem(item);
}
@@ -219,7 +218,7 @@ final class AddImageVisualPanel1 extends JPanel {
timeZoneComboBox.setSelectedItem(formatted);
}
- /**
+ /**
* 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
* regenerated by the Form Editor.
@@ -240,24 +239,24 @@ final class AddImageVisualPanel1 extends JPanel {
typeComboBox = new javax.swing.JComboBox();
imgInfoLabel = new javax.swing.JLabel();
- org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.jLabel2.text")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.jLabel2.text")); // NOI18N
setPreferredSize(new java.awt.Dimension(588, 328));
- org.openide.awt.Mnemonics.setLocalizedText(nextLabel, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.nextLabel.text")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(nextLabel, org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.nextLabel.text")); // NOI18N
- org.openide.awt.Mnemonics.setLocalizedText(timeZoneLabel, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.timeZoneLabel.text")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(timeZoneLabel, org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.timeZoneLabel.text")); // NOI18N
timeZoneComboBox.setMaximumRowCount(30);
- org.openide.awt.Mnemonics.setLocalizedText(noFatOrphansCheckbox, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.noFatOrphansCheckbox.text")); // NOI18N
- noFatOrphansCheckbox.setToolTipText(org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.noFatOrphansCheckbox.toolTipText")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(noFatOrphansCheckbox, org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.text")); // NOI18N
+ noFatOrphansCheckbox.setToolTipText(org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.toolTipText")); // NOI18N
- org.openide.awt.Mnemonics.setLocalizedText(descLabel, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.descLabel.text")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(descLabel, org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.descLabel.text")); // NOI18N
inputPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- org.openide.awt.Mnemonics.setLocalizedText(typeTabel, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.typeTabel.text")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(typeTabel, org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.typeTabel.text")); // NOI18N
typePanel.setMinimumSize(new java.awt.Dimension(0, 65));
typePanel.setPreferredSize(new java.awt.Dimension(521, 65));
@@ -301,7 +300,7 @@ final class AddImageVisualPanel1 extends JPanel {
);
imgInfoLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
- org.openide.awt.Mnemonics.setLocalizedText(imgInfoLabel, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.imgInfoLabel.text")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(imgInfoLabel, org.openide.util.NbBundle.getMessage(AddImageWizardChooseDataSourceVisual.class, "AddImageWizardChooseDataSourceVisual.imgInfoLabel.text")); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
@@ -346,7 +345,6 @@ final class AddImageVisualPanel1 extends JPanel {
.addGap(0, 0, 0))
);
}// //GEN-END:initComponents
-
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JLabel descLabel;
@@ -367,21 +365,21 @@ final class AddImageVisualPanel1 extends JPanel {
* fields on this panel. This is also the method to check whether all the
* fields on this panel are correctly filled and decides whether to enable
* the "Next" button or not.
- *
- * @param e the document event
+ *
+ * @param e the document event
*/
public void updateUI(DocumentEvent e) {
this.wizPanel.enableNextButton(currentPanel.enableNext());
}
-
+
/**
* ComboBoxModel to control typeComboBox and supply ImageTypePanels.
*/
private class ContentTypeModel implements ComboBoxModel {
+
private ContentTypePanel selected;
private ContentTypePanel[] types = ContentTypePanel.getPanels();
-
-
+
@Override
public void setSelectedItem(Object anItem) {
selected = (ContentTypePanel) anItem;
@@ -410,6 +408,5 @@ final class AddImageVisualPanel1 extends JPanel {
@Override
public void removeListDataListener(ListDataListener l) {
}
-
}
}
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel3.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java
similarity index 87%
rename from Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel3.java
rename to Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java
index f8d2529fbf..4c7b0a8923 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel3.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigPanel.java
@@ -41,7 +41,6 @@ import org.sleuthkit.autopsy.casemodule.ContentTypePanel.ContentType;
import org.sleuthkit.autopsy.casemodule.services.FileManager;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
-import org.sleuthkit.autopsy.ingest.IngestDialog;
import org.sleuthkit.datamodel.AbstractFile;
import org.sleuthkit.datamodel.Content;
import org.sleuthkit.datamodel.Image;
@@ -52,12 +51,14 @@ import org.sleuthkit.datamodel.TskDataException;
import org.sleuthkit.datamodel.TskException;
/**
- * The "Add Image" wizard panel3. Presents the options to finish/cancel
- * image-add and run ingest.
+ * second panel of add image wizard, allows user to configure ingest modules.
+ *
+ * TODO: review this for dead code. think about moving logic of adding image to
+ * 3rd panel( {@link AddImageWizardAddingProgressPanel}) separate class -jm
*/
-class AddImageWizardPanel3 implements WizardDescriptor.Panel {
+class AddImageWizardIngestConfigPanel implements WizardDescriptor.Panel {
- private static final Logger logger = Logger.getLogger(AddImageWizardPanel3.class.getName());
+ private static final Logger logger = Logger.getLogger(AddImageWizardIngestConfigPanel.class.getName());
private IngestConfigurator ingestConfig;
/**
* The visual component that displays this panel. If you need to access the
@@ -76,27 +77,25 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
private boolean noFatOrphans;
// task that will clean up the created database file if the wizard is cancelled before it finishes
private AddImageAction.CleanupTask cleanupImage; // initialized to null in readSettings()
- // flag to control the availiablity of next action
- private boolean imgAdded; // initalized to false in readSettings()
private CurrentDirectoryFetcher fetcher;
private AddImageProcess process;
private AddImageAction action;
private AddImageTask addImageTask;
private AddLocalFilesTask addLocalFilesTask;
- private AddImageWizardPanel2 wizPanel;
+ private AddImageWizardAddingProgressPanel progressPanel;
- AddImageWizardPanel3(AddImageAction action, AddImageWizardPanel2 wizPanel) {
+ AddImageWizardIngestConfigPanel(AddImageAction action, AddImageWizardAddingProgressPanel proPanel) {
this.action = action;
- this.wizPanel = wizPanel;
+ this.progressPanel = proPanel;
ingestConfig = Lookup.getDefault().lookup(IngestConfigurator.class);
- List messages = ingestConfig.setContext(AddImageWizardPanel3.class.getCanonicalName());
+ List messages = ingestConfig.setContext(AddImageWizardIngestConfigPanel.class.getCanonicalName());
if (messages.isEmpty() == false) {
StringBuilder warning = new StringBuilder();
for (String message : messages) {
warning.append(message).append("\n");
}
JOptionPane.showMessageDialog(null, warning.toString());
- }
+ }
}
/**
@@ -110,7 +109,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
@Override
public Component getComponent() {
if (component == null) {
- component = new AddImageVisualPanel3(ingestConfig.getIngestConfigPanel());
+ component = new AddImageWizardIngestConfigVisual(ingestConfig.getIngestConfigPanel());
}
return component;
}
@@ -183,7 +182,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
settings.setOptions(new Object[]{WizardDescriptor.PREVIOUS_OPTION, WizardDescriptor.NEXT_OPTION, WizardDescriptor.FINISH_OPTION, cancel});
cleanupImage = null;
readyToIngest = false;
- imgAdded = false;
+
newContents.clear();
dataSourcePath = (String) settings.getProperty(AddImageAction.DATASOURCEPATH_PROP);
dataSourceType = (ContentType) settings.getProperty(AddImageAction.DATASOURCETYPE_PROP);
@@ -228,7 +227,8 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
ingested = true;
ingestConfig.setContent(newContents);
ingestConfig.start();
- wizPanel.getComponent().appendProgressText(" Ingest started.");
+ progressPanel.setStateFinished();
+
}
}
@@ -240,10 +240,10 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
AddImageTask task;
JProgressBar prog;
- AddImageVisualPanel2 wiz;
+ AddImageWizardAddingProgressVisual wiz;
AddImageProcess proc;
- CurrentDirectoryFetcher(JProgressBar prog, AddImageVisualPanel2 wiz, AddImageProcess proc) {
+ CurrentDirectoryFetcher(JProgressBar prog, AddImageWizardAddingProgressVisual wiz, AddImageProcess proc) {
this.wiz = wiz;
this.proc = proc;
this.prog = prog;
@@ -260,7 +260,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
- wiz.changeCurrentDir(proc.currentDirectory());
+ wiz.setCurrentDirText(proc.currentDirectory());
}
});
@@ -271,14 +271,6 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
return -1;
}
}
-
- /**
- * When done, set the Wizards processing tags to be invisible
- */
- @Override
- protected void done() {
- wiz.setProcessInvis();
- }
}
/**
@@ -301,7 +293,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
private Logger logger = Logger.getLogger(AddLocalFilesTask.class.getName());
protected AddLocalFilesTask(WizardDescriptor settings) {
- this.progressBar = wizPanel.getComponent().getCrDbProgressBar();
+ this.progressBar = progressPanel.getComponent().getProgressBar();
currentCase = Case.getCurrentCase();
this.settings = settings;
}
@@ -310,6 +302,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
* Starts the addImage process, but does not commit the results.
*
* @return
+ *
* @throws Exception
*/
@Override
@@ -326,10 +319,10 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
};
cancelledWhileRunning.enable();
- final LocalFilesAddProgressUpdater progUpdater = new LocalFilesAddProgressUpdater(this.progressBar, wizPanel.getComponent());
+ final LocalFilesAddProgressUpdater progUpdater = new LocalFilesAddProgressUpdater(this.progressBar, progressPanel.getComponent());
try {
final FileManager fileManager = currentCase.getServices().getFileManager();
- wizPanel.setStateStarted();
+ progressPanel.setStateStarted();
String[] paths = dataSourcePath.split(LocalFilesPanel.FILES_SEP);
List absLocalPaths = new ArrayList();
for (String path : paths) {
@@ -361,31 +354,33 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
protected void postProcess() {
progressBar.setIndeterminate(false);
setProgress(100);
-
+
//clear updates
- wizPanel.getComponent().setProcessInvis();
+ // progressPanel.getComponent().setProcessInvis();
if (interrupted || hasCritError) {
logger.log(Level.INFO, "Handling errors or interruption that occured in logical files process");
if (hasCritError) {
//core error
- wizPanel.getComponent().setErrors(errorString, true);
+ progressPanel.getComponent().showErrors(errorString, true);
}
return;
- } else if (errorString != null) {
- //data error (non-critical)
- logger.log(Level.INFO, "Handling non-critical errors that occured in logical files process");
- wizPanel.getComponent().setErrors(errorString, false);
+ } else {
+ if (errorString != null) {
+ //data error (non-critical)
+ logger.log(Level.INFO, "Handling non-critical errors that occured in logical files process");
+ progressPanel.getComponent().showErrors(errorString, false);
+ }
}
try {
// When everything happens without an error:
if (errorString == null) { // complete progress bar
- wizPanel.getComponent().changeProgressBarTextAndColor("*Logical Files added.", 100, Color.black);
+ progressPanel.getComponent().setProgressBarTextAndColor("*Logical Files added.", 100, Color.black);
}
// Get attention for the process finish
java.awt.Toolkit.getDefaultToolkit().beep(); //BEEP!
- AddImageVisualPanel2 panel = wizPanel.getComponent();
+ AddImageWizardAddingProgressVisual panel = progressPanel.getComponent();
if (panel != null) {
Window w = SwingUtilities.getWindowAncestor(panel);
if (w != null) {
@@ -393,7 +388,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
}
}
- wizPanel.setStateFinished();
+ progressPanel.setStateFinished();
//notify the case
if (!newContents.isEmpty()) {
@@ -406,7 +401,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
} catch (Exception ex) {
//handle unchecked exceptions
logger.log(Level.WARNING, "Unexpected errors occurred while running post add image cleanup. ", ex);
- wizPanel.getComponent().changeProgressBarTextAndColor("*Failed to add image.", 0, Color.black); // set error message
+ progressPanel.getComponent().setProgressBarTextAndColor("*Failed to add image.", 0, Color.black); // set error message
logger.log(Level.SEVERE, "Error adding image to case", ex);
}
}
@@ -418,9 +413,9 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
private int count = 0;
private JProgressBar prog;
- private AddImageVisualPanel2 wiz;
+ private AddImageWizardAddingProgressVisual wiz;
- LocalFilesAddProgressUpdater(JProgressBar prog, AddImageVisualPanel2 wiz) {
+ LocalFilesAddProgressUpdater(JProgressBar prog, AddImageWizardAddingProgressVisual wiz) {
this.wiz = wiz;
this.prog = prog;
}
@@ -431,7 +426,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
- wiz.changeCurrentDir(newFile.getParentPath() + "/" + newFile.getName());
+ wiz.setCurrentDirText(newFile.getParentPath() + "/" + newFile.getName());
}
});
@@ -452,25 +447,25 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
private boolean interrupted = false;
private boolean hasCritError = false;
private String errorString = null;
- private long start;
- private WizardDescriptor settings;
+ private WizardDescriptor wizDescriptor;
private Logger logger = Logger.getLogger(AddImageTask.class.getName());
protected AddImageTask(WizardDescriptor settings) {
- this.progressBar = wizPanel.getComponent().getCrDbProgressBar();
+ this.progressBar = progressPanel.getComponent().getProgressBar();
currentCase = Case.getCurrentCase();
- this.settings = settings;
+ this.wizDescriptor = settings;
}
/**
* Starts the addImage process, but does not commit the results.
*
* @return
+ *
* @throws Exception
*/
@Override
protected Integer doInBackground() {
- start = System.currentTimeMillis();
+
this.setProgress(0);
@@ -504,10 +499,10 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
}
process = currentCase.makeAddImageProcess(timeZone, true, noFatOrphans);
- fetcher = new CurrentDirectoryFetcher(this.progressBar, wizPanel.getComponent(), process);
+ fetcher = new CurrentDirectoryFetcher(this.progressBar, progressPanel.getComponent(), process);
cancelledWhileRunning.enable();
try {
- wizPanel.setStateStarted();
+ progressPanel.setStateStarted();
fetcher.execute();
process.run(new String[]{dataSourcePath});
} catch (TskCoreException ex) {
@@ -540,7 +535,8 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
* would have reverted it.
*
* @param settings property set to get AddImageProcess and CleanupTask
- * from
+ * from
+ *
* @throws Exception if commit or adding the image to the case failed
*/
private void commitImage(WizardDescriptor settings) throws Exception {
@@ -591,13 +587,15 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
revert();
if (hasCritError) {
//core error
- wizPanel.getComponent().setErrors(errorString, true);
+ progressPanel.getComponent().showErrors(errorString, true);
}
return;
- } else if (errorString != null) {
- //data error (non-critical)
- logger.log(Level.INFO, "Handling non-critical errors that occured in add image process");
- wizPanel.getComponent().setErrors(errorString, false);
+ } else {
+ if (errorString != null) {
+ //data error (non-critical)
+ logger.log(Level.INFO, "Handling non-critical errors that occured in add image process");
+ progressPanel.setErrors(errorString, false);
+ }
}
@@ -617,12 +615,12 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
cleanupImage.enable();
if (errorString == null) { // complete progress bar
- wizPanel.getComponent().changeProgressBarTextAndColor("*Data Source added.", 100, Color.black);
+ progressPanel.getComponent().setProgressBarTextAndColor("*Data Source added.", 100, Color.black);
}
// Get attention for the process finish
java.awt.Toolkit.getDefaultToolkit().beep(); //BEEP!
- AddImageVisualPanel2 panel = wizPanel.getComponent();
+ AddImageWizardAddingProgressVisual panel = progressPanel.getComponent();
if (panel != null) {
Window w = SwingUtilities.getWindowAncestor(panel);
if (w != null) {
@@ -631,7 +629,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
}
// Tell the panel we're done
- wizPanel.setStateFinished();
+ progressPanel.setStateFinished();
// Commit the image
if (!newContents.isEmpty()) //already commited
@@ -643,7 +641,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
if (process != null) { // and if we're done configuring ingest
// commit anything
try {
- commitImage(settings);
+ commitImage(wizDescriptor);
} catch (Exception ex) {
// Log error/display warning
logger.log(Level.SEVERE, "Error adding image to case.", ex);
@@ -660,7 +658,7 @@ class AddImageWizardPanel3 implements WizardDescriptor.Panel {
logger.log(Level.WARNING, "Unexpected errors occurred while running post add image cleanup. ", ex);
- wizPanel.getComponent().changeProgressBarTextAndColor("*Failed to add image.", 0, Color.black); // set error message
+ progressPanel.getComponent().setProgressBarTextAndColor("*Failed to add image.", 0, Color.black); // set error message
// Log error/display warning
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel3.form b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigVisual.form
similarity index 92%
rename from Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel3.form
rename to Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigVisual.form
index 2353d10f44..2ba2f5fbb7 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel3.form
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigVisual.form
@@ -53,14 +53,14 @@
-
+
-
+
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel3.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigVisual.java
similarity index 83%
rename from Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel3.java
rename to Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigVisual.java
index 678b1700d3..d112b6e24f 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel3.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIngestConfigVisual.java
@@ -16,46 +16,52 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.sleuthkit.autopsy.casemodule;
import java.awt.BorderLayout;
import javax.swing.JPanel;
/**
- * Data Source added, ingest configure wizard visual panel 3
+ * visual component of 2nd panle in add image wizard. allows the user to
+ * configure ingest modules. delegates most details to ingestPanel attribute.
+ *
+ *
*/
-public class AddImageVisualPanel3 extends javax.swing.JPanel {
+public class AddImageWizardIngestConfigVisual extends javax.swing.JPanel {
+
+ //could this be something more specific than JPanel? - jm
private JPanel ingestPanel = null;
- /** Creates new form AddImageVisualPanel3 */
- public AddImageVisualPanel3(JPanel ingestPanel) {
+ /**
+ * Creates new form AddImageVisualPanel3
+ */
+ public AddImageWizardIngestConfigVisual(JPanel ingestPanel) {
this.ingestPanel = ingestPanel;
initComponents();
customizeComponents();
}
-
+
private void customizeComponents() {
configPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
configPanel.setLayout(new BorderLayout());
configPanel.add(ingestPanel, BorderLayout.CENTER);
}
-
- /**
+
+ /**
* Returns the name of the this panel. This name will be shown on the left
* panel of the "Add Image" wizard panel.
*
- * @return name the name of this panel
+ * @return name the name of this panel
*/
@Override
public String getName() {
return "Configure Ingest Modules";
}
- /** 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 regenerated by the Form Editor.
+ /**
+ * 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
+ * regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
@@ -68,9 +74,9 @@ public class AddImageVisualPanel3 extends javax.swing.JPanel {
setPreferredSize(new java.awt.Dimension(569, 300));
titleLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
- titleLabel.setText(org.openide.util.NbBundle.getMessage(AddImageVisualPanel3.class, "AddImageVisualPanel3.titleLabel.text")); // NOI18N
+ titleLabel.setText(org.openide.util.NbBundle.getMessage(AddImageWizardIngestConfigVisual.class, "AddImageWizardIngestConfigVisual.titleLabel.text")); // NOI18N
- subtitleLabel.setText(org.openide.util.NbBundle.getMessage(AddImageVisualPanel3.class, "AddImageVisualPanel3.subtitleLabel.text")); // NOI18N
+ subtitleLabel.setText(org.openide.util.NbBundle.getMessage(AddImageWizardIngestConfigVisual.class, "AddImageWizardIngestConfigVisual.subtitleLabel.text")); // NOI18N
configPanel.setPreferredSize(new java.awt.Dimension(569, 255));
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIterator.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIterator.java
index c2d5b6f73a..2528f0b582 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIterator.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardIterator.java
@@ -47,10 +47,10 @@ class AddImageWizardIterator implements WizardDescriptor.Iterator> getPanels() {
if (panels == null) {
- AddImageWizardPanel2 wizPanel = new AddImageWizardPanel2();
+ AddImageWizardAddingProgressPanel wizPanel = new AddImageWizardAddingProgressPanel();
panels = new ArrayList>();
- panels.add(new AddImageWizardPanel1());
- panels.add(new AddImageWizardPanel3(action, wizPanel));
+ panels.add(new AddImageWizardChooseDataSourcePanel());
+ panels.add(new AddImageWizardIngestConfigPanel(action, wizPanel));
panels.add(wizPanel);
String[] steps = new String[panels.size()];
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties
index 86d21c0baf..0fa81ada14 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties
@@ -94,8 +94,6 @@ NewJPanel.jFormattedTextField1.text=jFormattedTextField1
NewJPanel.jButton1.text=Rename
NewJPanel.jLabel4.text=Database:
AddImageVisualPanel2.indexImageCheckBox.text=Index image for keyword search
-AddImageVisualPanel3.titleLabel.text=Configure Ingest Modules
-AddImageVisualPanel3.subtitleLabel.text=Configure the ingest modules you would like to run on this data source.
CasePropertiesForm.caseNumberLabel.text=Case Number:
CasePropertiesForm.examinerLabel.text=Examiner:
CasePropertiesForm.caseNumberTextField.text=
@@ -116,23 +114,11 @@ ImageFilePanel.pathLabel.text=Browse for an image file:
ImageFilePanel.browseButton.text=Browse
ImageFilePanel.pathTextField.text=
LocalDiskPanel.diskLabel.text=Select a local disk:
-AddImageVisualPanel1.nextLabel.text= Press 'Next' to analyze the input data, extract volume and file system data, and populate a local database.
MissingImageDialog.selectButton.text=Select Image
MissingImageDialog.typeTabel.text=Select input type to add:
MissingImageDialog.titleLabel.text=Search for missing image
-AddImageVisualPanel1.jLabel2.text=jLabel2
-AddImageVisualPanel1.descLabel.text=(faster results, although some data will not be searched)
-AddImageVisualPanel1.timeZoneLabel.text=Please select the input timezone:
-AddImageVisualPanel1.noFatOrphansCheckbox.toolTipText=
-AddImageVisualPanel1.noFatOrphansCheckbox.text=Ignore orphan files in FAT file systems
MissingImageDialog.cancelButton.text=Cancel
LocalDiskPanel.errorLabel.text=Error Label
-AddImageVisualPanel1.typeTabel.text=Select source type to add:
-AddImageVisualPanel1.imgInfoLabel.text=Enter Data Source Information:
-AddImageLoadingPanel.crDbLabel.text=Adding Data Source
-AddImageLoadingPanel.Label_CurrentDirectory_Static.text=Currently Adding:
-AddImageLoadingPanel.jLabel5.text=Processing Data Source and Adding to Database
-AddImageLoadingPanel.jLabel1.text=File system information is being added to a local database. File analysis will start when this finishes.
AddImageDonePanel.statusLabel.text=File system has been added to the local database. Files are being analyzed.
AddImageDonePanel.crDbLabel.text=Adding Data Source - Complete
LocalFilesPanel.infoLabel.text=Add local files and folders:
@@ -145,3 +131,21 @@ LocalFilesPanel.selectedPaths.toolTipText=
LocalFilesPanel.localFileChooser.approveButtonText=Select
LocalFilesPanel.localFileChooser.approveButtonToolTipText=
LocalFilesPanel.selectButton.actionCommand=Add
+AddImageWizardIngestConfigVisual.subtitleLabel.text=Configure the ingest modules you would like to run on this data source.
+AddImageWizardIngestConfigVisual.titleLabel.text=Configure Ingest Modules
+AddImageWizardAddingProgressVisual.statusLabel.text=File system has been added to the local database. Files are being analyzed.
+AddImageWizardAddingProgressVisual.crDbLabel.text=Adding Data Source - Complete
+AddImageWizardAddingProgressVisual.addingDataSourceLabel.text=Adding Data Source
+AddImageWizardAddingProgressVisual.jLabel1.text=File system information is being added to a local database. File analysis will start when this finishes.
+AddImageWizardAddingProgressVisual.jLabel5.text=Processing Data Source and Adding to Database
+AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.toolTipText=
+AddImageWizardChooseDataSourceVisual.noFatOrphansCheckbox.text=Ignore orphan files in FAT file systems
+AddImageWizardChooseDataSourceVisual.descLabel.text=(faster results, although some data will not be searched)
+AddImageWizardChooseDataSourceVisual.typeTabel.text=Select source type to add:
+AddImageWizardChooseDataSourceVisual.jLabel2.text=jLabel2
+AddImageWizardChooseDataSourceVisual.timeZoneLabel.text=Please select the input timezone:
+AddImageWizardChooseDataSourceVisual.nextLabel.text= Press 'Next' to analyze the input data, extract volume and file system data, and populate a local database.
+AddImageWizardChooseDataSourceVisual.imgInfoLabel.text=Enter Data Source Information:
+AddImageWizardAddingProgressVisual.progressLabel.text=