GUI tweaks for Hash and Keyword configuration

This commit is contained in:
Dick Fickling
2012-06-26 13:34:39 -04:00
parent 42ce257cb9
commit 0f4d01e238
12 changed files with 238 additions and 134 deletions
@@ -74,7 +74,7 @@
<Component id="optionsLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="noFatOrphansCheckbox" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="32767" attributes="0"/>
<EmptySpace type="separate" pref="117" max="32767" attributes="0"/>
<Component id="jLabel2" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="20" max="-2" attributes="0"/>
</Group>
@@ -43,8 +43,8 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener {
static final List<String> rawExt = Arrays.asList(new String[]{".img", ".dd", ".001", ".aa"});
static final String rawDesc = "Raw Images (*.img, *.dd, *.001, *.aa)";
static GeneralFilter rawFilter = new GeneralFilter(rawExt, rawDesc);
static final List<String> encaseExt = Arrays.asList(new String[]{".e01", ".eaa"});
static final String encaseDesc = "Encase Images (*.e01, *.eAA)";
static final List<String> encaseExt = Arrays.asList(new String[]{".e01"});
static final String encaseDesc = "Encase Images (*.e01)";
static GeneralFilter encaseFilter = new GeneralFilter(encaseExt, encaseDesc);
static final List<String> allExt = new ArrayList<String>();
{
@@ -22,8 +22,11 @@ HashDbManagementPanel.hashDbNameLabel.text=No database selected
HashDbManagementPanel.locationLabel.text=Location:
HashDbManagementPanel.hashDbLocationLabel.text=No database selected
HashDbManagementPanel.deleteButton.text=Delete
HashDbManagementPanel.useForIngestCheckbox.text=Use for ingest
HashDbManagementPanel.showInboxMessagesCheckBox.text=Send messages during ingest
HashDbManagementPanel.useForIngestCheckbox.text=Use during ingest
HashDbManagementPanel.showInboxMessagesCheckBox.text=Send messages to inbox during ingest
HashDbManagementPanel.indexLabel.text=Index Status:
HashDbManagementPanel.indexButton.text=Index
HashDbManagementPanel.ingestRunningLabel.text=
HashDbManagementPanel.hashDbIndexStatusLabel.text=No database selected
HashDbManagementPanel.typeLabel.text=Type:
HashDbManagementPanel.hashDbTypeLabel.text=No database selected
@@ -40,7 +40,17 @@ import org.sleuthkit.datamodel.TskException;
public class HashDb implements Comparable<HashDb> {
public enum DBType{
NSRL, KNOWN_BAD;
NSRL("NSRL"), KNOWN_BAD("Known Bad");
private String displayName;
private DBType(String displayName) {
this.displayName = displayName;
}
public String getDisplayName() {
return this.displayName;
}
}
// Suffix added to the end of a database name to get its index file
@@ -51,12 +61,14 @@ public class HashDb implements Comparable<HashDb> {
private boolean useForIngest;
private boolean showInboxMessages;
private boolean indexing;
private DBType type;
public HashDb(String name, List<String> databasePaths, boolean useForIngest, boolean showInboxMessages) {
public HashDb(String name, List<String> databasePaths, boolean useForIngest, boolean showInboxMessages, DBType type) {
this.name = name;
this.databasePaths = databasePaths;
this.useForIngest = useForIngest;
this.showInboxMessages = showInboxMessages;
this.type = type;
this.indexing = false;
}
@@ -68,6 +80,10 @@ public class HashDb implements Comparable<HashDb> {
return showInboxMessages;
}
DBType getDbType() {
return type;
}
String getName() {
return name;
}
@@ -92,6 +108,10 @@ public class HashDb implements Comparable<HashDb> {
this.databasePaths = databasePaths;
}
void setDbType(DBType type) {
this.type = type;
}
/**
* Checks if the database exists.
* @return true if a file exists at the database path, else false
@@ -1,4 +1,4 @@
<?xml version="1.1" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<AuxValues>
@@ -16,12 +16,12 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jSplitPane1" alignment="0" pref="494" max="32767" attributes="0"/>
<Component id="jSplitPane1" alignment="0" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jSplitPane1" alignment="0" pref="338" max="32767" attributes="0"/>
<Component id="jSplitPane1" alignment="0" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
</Layout>
@@ -41,12 +41,10 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jScrollPane1" alignment="0" pref="176" max="32767" attributes="1"/>
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="importButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="deleteButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="32" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -55,10 +53,7 @@
<Group type="102" alignment="1" attributes="0">
<Component id="jScrollPane1" pref="313" max="32767" attributes="0"/>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="importButton" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="deleteButton" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="importButton" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
</Group>
</Group>
@@ -107,17 +102,6 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="importButtonActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="deleteButton">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/hashdatabase/Bundle.properties" key="HashDbManagementPanel.deleteButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteButtonActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="rightPanel">
@@ -132,33 +116,54 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="showInboxMessagesCheckBox" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="useForIngestCheckbox" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="nameLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="hashDbNameLabel" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="nameLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="hashDbNameLabel" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="locationLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="hashDbLocationLabel" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="ingestRunningLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="useForIngestCheckbox" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="typeLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="hashDbTypeLabel" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<EmptySpace min="10" pref="10" max="-2" attributes="0"/>
<Component id="indexButton" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="indexLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="hashDbIndexStatusLabel" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="locationLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="hashDbLocationLabel" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
<Component id="showInboxMessagesCheckBox" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="21" max="32767" attributes="0"/>
<Component id="deleteButton" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="indexLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="indexButton" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="ingestRunningLabel" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="117" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="nameLabel" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -171,16 +176,25 @@
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="indexLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="indexButton" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="typeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="hashDbTypeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="7" max="-2" attributes="0"/>
<Component id="useForIngestCheckbox" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="showInboxMessagesCheckBox" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="175" max="32767" attributes="0"/>
<Component id="ingestRunningLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="indexLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="hashDbIndexStatusLabel" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="indexButton" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="138" max="32767" attributes="0"/>
<Component id="ingestRunningLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="36" max="32767" attributes="0"/>
<Component id="useForIngestCheckbox" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="deleteButton" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="showInboxMessagesCheckBox" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</Group>
</DimensionLayout>
@@ -261,6 +275,38 @@
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="hashDbIndexStatusLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/hashdatabase/Bundle.properties" key="HashDbManagementPanel.hashDbIndexStatusLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="typeLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/hashdatabase/Bundle.properties" key="HashDbManagementPanel.typeLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="hashDbTypeLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/hashdatabase/Bundle.properties" key="HashDbManagementPanel.hashDbTypeLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="deleteButton">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/hashdatabase/Bundle.properties" key="HashDbManagementPanel.deleteButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteButtonActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
</SubComponents>
@@ -33,6 +33,7 @@ import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
@@ -40,6 +41,7 @@ import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.AbstractTableModel;
import org.sleuthkit.autopsy.hashdatabase.HashDb.DBType;
import org.sleuthkit.datamodel.SleuthkitJNI;
import org.sleuthkit.datamodel.TskException;
@@ -104,16 +106,18 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
private void initUI(HashDb db) {
boolean useForIngestEnabled = db != null && !ingestRunning;
boolean useForIngestSelected = db != null && db.getUseForIngest();
boolean showInboxMessagesEnabled = db != null && !ingestRunning && useForIngestSelected;
boolean showInboxMessagesEnabled = db != null && !ingestRunning && useForIngestSelected && db.getDbType().equals(DBType.KNOWN_BAD);
boolean showInboxMessagesSelected = db != null && db.getShowInboxMessages();
boolean deleteButtonEnabled = db != null && !ingestRunning;
boolean importButtonEnabled = !ingestRunning;
if (db == null) {
setButtonFromIndexStatus(this.indexButton, IndexStatus.NONE);
setButtonFromIndexStatus(this.indexButton, this.hashDbIndexStatusLabel, IndexStatus.NONE);
this.hashDbLocationLabel.setText("No database selected");
this.hashDbNameLabel.setText("No database selected");
this.hashDbIndexStatusLabel.setText("No database selected");
this.hashDbTypeLabel.setText("No database selected");
} else {
setButtonFromIndexStatus(this.indexButton, db.status());
setButtonFromIndexStatus(this.indexButton, this.hashDbIndexStatusLabel, db.status());
String shortenPath = db.getDatabasePaths().get(0);
this.hashDbLocationLabel.setToolTipText(shortenPath);
if(shortenPath.length() > 50){
@@ -122,6 +126,7 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
}
this.hashDbLocationLabel.setText(shortenPath);
this.hashDbNameLabel.setText(db.getName());
this.hashDbTypeLabel.setText(db.getDbType().getDisplayName());
}
this.useForIngestCheckbox.setSelected(useForIngestSelected);
this.useForIngestCheckbox.setEnabled(useForIngestEnabled);
@@ -162,7 +167,6 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
jScrollPane1 = new javax.swing.JScrollPane();
hashSetTable = new javax.swing.JTable();
importButton = new javax.swing.JButton();
deleteButton = new javax.swing.JButton();
rightPanel = new javax.swing.JPanel();
nameLabel = new javax.swing.JLabel();
hashDbNameLabel = new javax.swing.JLabel();
@@ -173,6 +177,10 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
indexLabel = new javax.swing.JLabel();
indexButton = new javax.swing.JButton();
ingestRunningLabel = new javax.swing.JLabel();
hashDbIndexStatusLabel = new javax.swing.JLabel();
typeLabel = new javax.swing.JLabel();
hashDbTypeLabel = new javax.swing.JLabel();
deleteButton = new javax.swing.JButton();
jScrollPane1.setBackground(new java.awt.Color(255, 255, 255));
@@ -200,34 +208,22 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
}
});
deleteButton.setText(org.openide.util.NbBundle.getMessage(HashDbManagementPanel.class, "HashDbManagementPanel.deleteButton.text")); // NOI18N
deleteButton.setEnabled(false);
deleteButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout leftPanelLayout = new javax.swing.GroupLayout(leftPanel);
leftPanel.setLayout(leftPanelLayout);
leftPanelLayout.setHorizontalGroup(
leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 176, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, leftPanelLayout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(leftPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(importButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deleteButton)
.addGap(32, 32, 32))
.addContainerGap())
);
leftPanelLayout.setVerticalGroup(
leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, leftPanelLayout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 313, Short.MAX_VALUE)
.addGap(0, 0, 0)
.addGroup(leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(importButton)
.addComponent(deleteButton))
.addComponent(importButton)
.addGap(0, 0, 0))
);
@@ -269,29 +265,58 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
ingestRunningLabel.setText(org.openide.util.NbBundle.getMessage(HashDbManagementPanel.class, "HashDbManagementPanel.ingestRunningLabel.text")); // NOI18N
hashDbIndexStatusLabel.setText(org.openide.util.NbBundle.getMessage(HashDbManagementPanel.class, "HashDbManagementPanel.hashDbIndexStatusLabel.text")); // NOI18N
typeLabel.setText(org.openide.util.NbBundle.getMessage(HashDbManagementPanel.class, "HashDbManagementPanel.typeLabel.text")); // NOI18N
hashDbTypeLabel.setText(org.openide.util.NbBundle.getMessage(HashDbManagementPanel.class, "HashDbManagementPanel.hashDbTypeLabel.text")); // NOI18N
deleteButton.setText(org.openide.util.NbBundle.getMessage(HashDbManagementPanel.class, "HashDbManagementPanel.deleteButton.text")); // NOI18N
deleteButton.setEnabled(false);
deleteButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout rightPanelLayout = new javax.swing.GroupLayout(rightPanel);
rightPanel.setLayout(rightPanelLayout);
rightPanelLayout.setHorizontalGroup(
rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(rightPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(showInboxMessagesCheckBox)
.addComponent(useForIngestCheckbox)
.addGroup(rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(nameLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(hashDbNameLabel))
.addGroup(rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(nameLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(hashDbNameLabel))
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(locationLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(hashDbLocationLabel))
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(ingestRunningLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(useForIngestCheckbox))
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(typeLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(hashDbTypeLabel))
.addGroup(rightPanelLayout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(indexButton))
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(indexLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(hashDbIndexStatusLabel)))
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(locationLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(hashDbLocationLabel))
.addGroup(rightPanelLayout.createSequentialGroup()
.addComponent(indexLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(indexButton))
.addComponent(ingestRunningLabel))
.addContainerGap(117, Short.MAX_VALUE))
.addComponent(showInboxMessagesCheckBox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
.addComponent(deleteButton)))
.addContainerGap())
);
rightPanelLayout.setVerticalGroup(
rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -305,16 +330,23 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
.addComponent(locationLabel)
.addComponent(hashDbLocationLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(typeLabel)
.addComponent(hashDbTypeLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(indexLabel)
.addComponent(indexButton))
.addGap(7, 7, 7)
.addComponent(useForIngestCheckbox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(showInboxMessagesCheckBox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 175, Short.MAX_VALUE)
.addComponent(hashDbIndexStatusLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(indexButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 138, Short.MAX_VALUE)
.addComponent(ingestRunningLabel)
.addContainerGap())
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 36, Short.MAX_VALUE)
.addComponent(useForIngestCheckbox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(deleteButton)
.addComponent(showInboxMessagesCheckBox)))
);
jSplitPane1.setRightComponent(rightPanel);
@@ -323,11 +355,11 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 494, Short.MAX_VALUE)
.addComponent(jSplitPane1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 338, Short.MAX_VALUE)
.addComponent(jSplitPane1)
);
}// </editor-fold>//GEN-END:initComponents
@@ -357,7 +389,8 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
JOptionPane.showMessageDialog(this, new Object[]{"New Hash Set name:", nameTextField, nsrlCheckBox}, "New Hash Set", JOptionPane.PLAIN_MESSAGE);
String setName = nameTextField.getText();
if (setName != null && !setName.equals("")) {
HashDb newDb = new HashDb(setName, Arrays.asList(new String[]{filePath}), true, !nsrlCheckBox.isSelected());
nsrl = nsrlCheckBox.isSelected();
HashDb newDb = new HashDb(setName, Arrays.asList(new String[]{filePath}), true, !nsrl, nsrl ? DBType.NSRL : DBType.KNOWN_BAD);
int toIndex = JOptionPane.NO_OPTION;
if (IndexStatus.isIngestible(newDb.status())) {
newDb.setUseForIngest(true);
@@ -371,8 +404,7 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
logger.log(Level.WARNING, "Error creating index", ex);
}
}
if(nsrlCheckBox.isSelected()) {
nsrl = true;
if(nsrl) {
HashDbXML.getCurrent().setNSRLSet(newDb);
} else {
HashDbXML.getCurrent().addKnownBadSet(newDb);
@@ -445,13 +477,15 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
} catch (TskException ex) {
logger.log(Level.WARNING, "Error creating index", ex);
}
setButtonFromIndexStatus(indexButton, current.status());
setButtonFromIndexStatus(indexButton, this.hashDbIndexStatusLabel, current.status());
}//GEN-LAST:event_indexButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton deleteButton;
private javax.swing.JLabel hashDbIndexStatusLabel;
private javax.swing.JLabel hashDbLocationLabel;
private javax.swing.JLabel hashDbNameLabel;
private javax.swing.JLabel hashDbTypeLabel;
private javax.swing.JTable hashSetTable;
private javax.swing.JButton importButton;
private javax.swing.JButton indexButton;
@@ -464,6 +498,7 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
private javax.swing.JLabel nameLabel;
private javax.swing.JPanel rightPanel;
private javax.swing.JCheckBox showInboxMessagesCheckBox;
private javax.swing.JLabel typeLabel;
private javax.swing.JCheckBox useForIngestCheckbox;
// End of variables declaration//GEN-END:variables
@@ -515,7 +550,8 @@ public class HashDbManagementPanel extends javax.swing.JPanel {
}
}
static void setButtonFromIndexStatus(JButton theButton, IndexStatus status) {
static void setButtonFromIndexStatus(JButton theButton, JLabel theLabel, IndexStatus status) {
theLabel.setText(status.message());
switch (status) {
case INDEX_OUTDATED:
theButton.setText("Re-index");
@@ -280,7 +280,7 @@ public class HashDbXML {
paths.add(path);
}
HashDb set = new HashDb(name, paths, useForIngestBool, showInboxMessagesBool);
HashDb set = new HashDb(name, paths, useForIngestBool, showInboxMessagesBool, typeDBType);
if(typeDBType == DBType.KNOWN_BAD) {
knownBadSets.add(set);
@@ -48,9 +48,9 @@ ExtractedContentPanel.pageOfLabel.text=of
ExtractedContentPanel.pageCurLabel.text=-
ExtractedContentPanel.pageTotalLabel.text=-
ExtractedContentPanel.hitLabel.toolTipText=
KeywordSearchEditListPanel.ingestMessagesCheckbox.text=Send messages during ingest
KeywordSearchEditListPanel.ingestMessagesCheckbox.text=Send messages to inbox during ingest
KeywordSearchEditListPanel.ingestMessagesCheckbox.toolTipText=Send messages during triage / ingest when hits on keyword from this list occur
KeywordSearchConfigurationPanel2.skipNSRLCheckBox.text=Skip files in NSRL
KeywordSearchConfigurationPanel2.skipNSRLCheckBox.text=Do not add files in NSRL to keyword index
KeywordSearchConfigurationPanel2.skipNSRLCheckBox.toolTipText=Please make sure you have either selected to run or have previously run the Hash DB Ingest Service.
KeywordSearchConfigurationPanel2.filesIndexedValue.text=-
KeywordSearchConfigurationPanel2.filesIndexedLabel.text=Files indexed:
KeywordSearchConfigurationPanel2.filesIndexedLabel.text=Files in keyword index:
@@ -1,4 +1,4 @@
<?xml version="1.1" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<AuxValues>
@@ -17,17 +17,17 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jSeparator1" alignment="1" pref="400" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="filesIndexedLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="filesIndexedValue" min="-2" pref="26" max="-2" attributes="0"/>
<EmptySpace pref="285" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="skipNSRLCheckBox" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="289" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="filesIndexedLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="filesIndexedValue" min="-2" pref="26" max="-2" attributes="0"/>
</Group>
<Component id="skipNSRLCheckBox" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -79,14 +79,13 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel {
.addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(filesIndexedLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(filesIndexedValue, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(285, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(skipNSRLCheckBox)
.addContainerGap(289, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(filesIndexedLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(filesIndexedValue, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(skipNSRLCheckBox))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -111,13 +111,13 @@
<Component id="useForIngestCheckbox" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="deleteWordButton" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="ingestMessagesCheckbox" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -422,11 +422,11 @@ class KeywordSearchEditListPanel extends javax.swing.JPanel implements ListSelec
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, listEditorPanelLayout.createSequentialGroup()
.addComponent(useForIngestCheckbox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(deleteWordButton)
.addContainerGap())
.addComponent(deleteWordButton))
.addGroup(listEditorPanelLayout.createSequentialGroup()
.addComponent(ingestMessagesCheckbox)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
listEditorPanelLayout.setVerticalGroup(
listEditorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)