mirror of
https://github.com/elisspace/autopsy.git
synced 2026-10-05 16:56:16 +00:00
GUI tweaks for Hash and Keyword configuration
This commit is contained in:
@@ -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, "{key}")"/>
|
||||
</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, "{key}")"/>
|
||||
</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, "{key}")"/>
|
||||
</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, "{key}")"/>
|
||||
</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, "{key}")"/>
|
||||
</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:
|
||||
|
||||
+11
-11
@@ -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>
|
||||
|
||||
+7
-8
@@ -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)
|
||||
|
||||
+2
-2
@@ -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>
|
||||
|
||||
+3
-3
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user