diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties index a413abd846..def5fb5a16 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties @@ -239,3 +239,5 @@ ImageFilePanel.sha256HashTextField.text= ImageFilePanel.sha1HashTextField.text= ImageFilePanel.md5HashTextField.text= ImageFilePanel.errorLabel.text=Error Label +ImageFilePanel.hashValuesNoteLabel.text=NOTE: These values will not be validated when the data source is added. +ImageFilePanel.hashValuesLabel.text=Hash Values (optional): diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.form b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.form index 8e17a6a606..113e7172c7 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.form +++ b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.form @@ -32,29 +32,49 @@ - - - - - + + - - - - - - - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -79,6 +99,10 @@ + + + + @@ -96,7 +120,7 @@ - + @@ -223,5 +247,19 @@ + + + + + + + + + + + + + + diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java index d9b68ece9d..cf2454d076 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java @@ -156,6 +156,8 @@ public class ImageFilePanel extends JPanel implements DocumentListener { md5HashTextField = new javax.swing.JTextField(); sha1HashLabel = new javax.swing.JLabel(); md5HashLabel = new javax.swing.JLabel(); + hashValuesLabel = new javax.swing.JLabel(); + hashValuesNoteLabel = new javax.swing.JLabel(); setMinimumSize(new java.awt.Dimension(0, 65)); setPreferredSize(new java.awt.Dimension(403, 65)); @@ -195,6 +197,10 @@ public class ImageFilePanel extends JPanel implements DocumentListener { org.openide.awt.Mnemonics.setLocalizedText(md5HashLabel, org.openide.util.NbBundle.getMessage(ImageFilePanel.class, "ImageFilePanel.md5HashLabel.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(hashValuesLabel, org.openide.util.NbBundle.getMessage(ImageFilePanel.class, "ImageFilePanel.hashValuesLabel.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(hashValuesNoteLabel, org.openide.util.NbBundle.getMessage(ImageFilePanel.class, "ImageFilePanel.hashValuesNoteLabel.text")); // NOI18N + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -206,25 +212,37 @@ public class ImageFilePanel extends JPanel implements DocumentListener { .addGap(2, 2, 2)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(sha256HashLabel) - .addComponent(sha1HashLabel) - .addComponent(md5HashLabel) - .addComponent(sectorSizeLabel) - .addComponent(timeZoneLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(sha256HashTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 455, Short.MAX_VALUE) - .addComponent(sha1HashTextField) - .addComponent(md5HashTextField) - .addComponent(sectorSizeComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(timeZoneComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pathLabel) + .addComponent(noFatOrphansCheckbox, javax.swing.GroupLayout.PREFERRED_SIZE, 262, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 330, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(pathLabel) - .addComponent(errorLabel) - .addComponent(noFatOrphansCheckbox, javax.swing.GroupLayout.PREFERRED_SIZE, 262, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(0, 325, Short.MAX_VALUE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(sha256HashLabel) + .addComponent(sha1HashLabel) + .addComponent(md5HashLabel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(sha256HashTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 455, Short.MAX_VALUE) + .addComponent(sha1HashTextField) + .addComponent(md5HashTextField))) + .addGroup(layout.createSequentialGroup() + .addComponent(errorLabel) + .addGap(275, 275, 275))) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(sectorSizeLabel) + .addComponent(timeZoneLabel)) + .addGap(26, 26, 26) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(sectorSizeComboBox, 0, 455, Short.MAX_VALUE) + .addComponent(timeZoneComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + .addComponent(hashValuesLabel) + .addComponent(hashValuesNoteLabel)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -244,6 +262,10 @@ public class ImageFilePanel extends JPanel implements DocumentListener { .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(sectorSizeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(sectorSizeLabel)) + .addGap(40, 40, 40) + .addComponent(hashValuesLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(hashValuesNoteLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(md5HashTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -258,7 +280,7 @@ public class ImageFilePanel extends JPanel implements DocumentListener { .addComponent(sha256HashLabel)) .addGap(18, 18, 18) .addComponent(errorLabel) - .addContainerGap(23, Short.MAX_VALUE)) + .addGap(58, 58, 58)) ); }// //GEN-END:initComponents @@ -286,6 +308,7 @@ public class ImageFilePanel extends JPanel implements DocumentListener { } } } + setContentPath(path); } @@ -295,6 +318,8 @@ public class ImageFilePanel extends JPanel implements DocumentListener { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton browseButton; private javax.swing.JLabel errorLabel; + private javax.swing.JLabel hashValuesLabel; + private javax.swing.JLabel hashValuesNoteLabel; private javax.swing.JLabel md5HashLabel; private javax.swing.JTextField md5HashTextField; private javax.swing.JCheckBox noFatOrphansCheckbox; @@ -310,6 +335,25 @@ public class ImageFilePanel extends JPanel implements DocumentListener { private javax.swing.JLabel timeZoneLabel; // End of variables declaration//GEN-END:variables + /** + * Enable or disable all of the hash values components. + * + * @param enabled Enable components if true; otherwise disable. + */ + private void setHashValuesComponentsEnabled(boolean enabled) { + hashValuesLabel.setEnabled(enabled); + hashValuesNoteLabel.setEnabled(enabled); + + md5HashLabel.setEnabled(enabled); + md5HashTextField.setEnabled(enabled); + + sha1HashLabel.setEnabled(enabled); + sha1HashTextField.setEnabled(enabled); + + sha256HashLabel.setEnabled(enabled); + sha256HashTextField.setEnabled(enabled); + } + /** * Get the path of the user selected image. * @@ -453,6 +497,8 @@ public class ImageFilePanel extends JPanel implements DocumentListener { "ImageFilePanel.moduleErr.msg=A module caused an error listening to ImageFilePanel updates." + " See log to determine which module. Some data could be incomplete.\n"}) private void updateHelper() { + setHashValuesComponentsEnabled(pathTextField.getText().toLowerCase().endsWith(".e01") == false); + firePropertyChange(DataSourceProcessor.DSP_PANEL_EVENT.UPDATE_UI.toString(), false, true); }