From 3ad3e64952d9eb27d618af7a9afb2330e7b11f17 Mon Sep 17 00:00:00 2001 From: adam-m Date: Tue, 28 Aug 2012 17:25:35 -0400 Subject: [PATCH] Hash DB ingest config: fix setting syncing in widgets, simplify NSRL widget --- .../autopsy/hashdatabase/Bundle.properties | 3 +- .../hashdatabase/HashDbSimplePanel.form | 58 ++++----- .../hashdatabase/HashDbSimplePanel.java | 118 ++++++++---------- 3 files changed, 78 insertions(+), 101 deletions(-) diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties index b58bc8cc3f..65bb2d8c31 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/Bundle.properties @@ -8,7 +8,6 @@ HashDbSimplePanel.notableValLabel.text=- HashDbMgmtPanel.addNotableButton.text=Add Known Bad Database HashDbMgmtPanel.removeNotableButton.text=Remove Selected HashDbSimplePanel.jLabel1.text=Select known bad databases to use during ingest: -HashDbSimplePanel.jLabel2.text=NSRL Database: HashDbMgmtPanel.nsrlNameLabel.text=Not Configured HashDbMgmtPanel.setNSRLButton.text=Change HashDbMgmtPanel.jLabel1.text=Known Bad Database(s): @@ -55,3 +54,5 @@ HashDbSearchPanel.errorField.text=Error: Not all files have been hashed. HashDbSearchPanel.saveBox.text=Remember Hashes HashDbSearchPanel.cancelButton.text=Cancel HashDbSimplePanel.calcHashesButton.text=Calculate hashes even if no hash database is selected +HashDbSimplePanel.nsrlDbLabel.text=NSRL Database: +HashDbSimplePanel.nsrlDbLabelVal.text=- diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.form b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.form index cd395c7588..ee139dc063 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.form +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.form @@ -17,13 +17,18 @@ - - - + + + + + + + + @@ -32,14 +37,15 @@ - - - + + + + - - + + @@ -79,38 +85,13 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - @@ -118,5 +99,12 @@ + + + + + + + diff --git a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.java b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.java index 400c2dbb9f..9a64667bd0 100644 --- a/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.java +++ b/HashDatabase/src/org/sleuthkit/autopsy/hashdatabase/HashDbSimplePanel.java @@ -26,6 +26,7 @@ package org.sleuthkit.autopsy.hashdatabase; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.List; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.table.AbstractTableModel; @@ -39,14 +40,12 @@ public class HashDbSimplePanel extends javax.swing.JPanel { private static final Logger logger = Logger.getLogger(HashDbSimplePanel.class.getName()); private HashTableModel knownBadTableModel; - private NSRLTableModel nsrlTableModel; private HashDb nsrl; private static boolean ingestRunning = false; /** Creates new form HashDbSimplePanel */ public HashDbSimplePanel() { knownBadTableModel = new HashTableModel(); - nsrlTableModel = new NSRLTableModel(); initComponents(); customizeComponents(); } @@ -55,9 +54,24 @@ public class HashDbSimplePanel extends javax.swing.JPanel { ingestRunning = running; } - private void customizeComponents() { + private void reloadCalc() { final HashDbXML xmlHandle = HashDbXML.getCurrent(); - if(xmlHandle.getNSRLSet()==null && xmlHandle.getKnownBadSets().isEmpty()) { + + final boolean nsrlUsed = xmlHandle.getNSRLSet()!=null && xmlHandle.getNSRLSet().getUseForIngest()== true; + final List knowns = xmlHandle.getKnownBadSets(); + final boolean knownExists = !knowns.isEmpty(); + boolean knownUsed = false; + if (knownExists) { + for (HashDb known : knowns) { + if (known.getUseForIngest() == true) { + knownUsed = true; + break; + } + } + } + + if(! nsrlUsed + && ! knownUsed ) { calcHashesButton.setEnabled(true); calcHashesButton.setSelected(true); xmlHandle.setCalculate(true); @@ -66,6 +80,10 @@ public class HashDbSimplePanel extends javax.swing.JPanel { calcHashesButton.setSelected(false); xmlHandle.setCalculate(false); } + } + + private void customizeComponents() { + final HashDbXML xmlHandle = HashDbXML.getCurrent(); calcHashesButton.addActionListener( new ActionListener() { @Override @@ -80,26 +98,18 @@ public class HashDbSimplePanel extends javax.swing.JPanel { }); notableHashTable.setModel(knownBadTableModel); - jTable1.setModel(nsrlTableModel); notableHashTable.setTableHeader(null); - jTable1.setTableHeader(null); notableHashTable.setRowSelectionAllowed(false); - jTable1.setRowSelectionAllowed(false); //customize column witdhs final int width1 = jScrollPane1.getPreferredSize().width; - final int width2 = jScrollPane2.getPreferredSize().width; TableColumn column1 = null; - TableColumn column2 = null; for (int i = 0; i < notableHashTable.getColumnCount(); i++) { column1 = notableHashTable.getColumnModel().getColumn(i); - column2 = jTable1.getColumnModel().getColumn(i); if (i == 0) { column1.setPreferredWidth(((int) (width1 * 0.15))); - column2.setPreferredWidth(((int) (width2 * 0.15))); } else { column1.setPreferredWidth(((int) (width1 * 0.84))); - column2.setPreferredWidth(((int) (width2 * 0.84))); } } @@ -118,10 +128,9 @@ public class HashDbSimplePanel extends javax.swing.JPanel { jScrollPane1 = new javax.swing.JScrollPane(); notableHashTable = new javax.swing.JTable(); jLabel1 = new javax.swing.JLabel(); - jLabel2 = new javax.swing.JLabel(); - jScrollPane2 = new javax.swing.JScrollPane(); - jTable1 = new javax.swing.JTable(); + nsrlDbLabel = new javax.swing.JLabel(); calcHashesButton = new javax.swing.JCheckBox(); + nsrlDbLabelVal = new javax.swing.JLabel(); jScrollPane1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); @@ -132,42 +141,40 @@ public class HashDbSimplePanel extends javax.swing.JPanel { jLabel1.setText(org.openide.util.NbBundle.getMessage(HashDbSimplePanel.class, "HashDbSimplePanel.jLabel1.text")); // NOI18N - jLabel2.setText(org.openide.util.NbBundle.getMessage(HashDbSimplePanel.class, "HashDbSimplePanel.jLabel2.text")); // NOI18N - - jScrollPane2.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); - - jTable1.setBackground(new java.awt.Color(240, 240, 240)); - jTable1.setShowHorizontalLines(false); - jTable1.setShowVerticalLines(false); - jScrollPane2.setViewportView(jTable1); + nsrlDbLabel.setText(org.openide.util.NbBundle.getMessage(HashDbSimplePanel.class, "HashDbSimplePanel.nsrlDbLabel.text")); // NOI18N calcHashesButton.setText(org.openide.util.NbBundle.getMessage(HashDbSimplePanel.class, "HashDbSimplePanel.calcHashesButton.text")); // NOI18N + nsrlDbLabelVal.setText(org.openide.util.NbBundle.getMessage(HashDbSimplePanel.class, "HashDbSimplePanel.nsrlDbLabelVal.text")); // NOI18N + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) - .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel2) - .addComponent(jLabel1) - .addComponent(calcHashesButton)) + .addComponent(calcHashesButton) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(nsrlDbLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(nsrlDbLabelVal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel2) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(nsrlDbLabel) + .addComponent(nsrlDbLabelVal)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(calcHashesButton) .addContainerGap()) ); @@ -176,48 +183,28 @@ public class HashDbSimplePanel extends javax.swing.JPanel { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox calcHashesButton; private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel2; private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JScrollPane jScrollPane2; - private javax.swing.JTable jTable1; private javax.swing.JTable notableHashTable; + private javax.swing.JLabel nsrlDbLabel; + private javax.swing.JLabel nsrlDbLabelVal; // End of variables declaration//GEN-END:variables private void reloadSets() { nsrl = HashDbXML.getCurrent().getNSRLSet(); - nsrlTableModel.resync(); + + if (nsrl == null || nsrl.getUseForIngest() == false) { + nsrlDbLabelVal.setText("Not Configured"); + } + else { + nsrlDbLabelVal.setText("Configured"); + } + + reloadCalc(); + knownBadTableModel.resync(); } - private class NSRLTableModel extends AbstractTableModel { - - private void resync() { - fireTableDataChanged(); - } - - @Override - public int getRowCount() { - return 1; - } - - @Override - public int getColumnCount() { - return 2; - } - - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - if (columnIndex == 0) { - return ""; - } else { - if(nsrl == null) { - return "Not Configured"; - } else { - return nsrl.getName(); - } - } - } - } + private class HashTableModel extends AbstractTableModel { @@ -270,6 +257,7 @@ public class HashDbSimplePanel extends javax.swing.JPanel { } else { JOptionPane.showMessageDialog(HashDbSimplePanel.this, "Databases must be indexed before they can be used for ingest"); } + reloadSets(); } }