diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
index 28d381ebd3..3645ac5b9e 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties
@@ -32,13 +32,5 @@ IngestMessagePanel.totalMessagesNameLabel.text=Total:
IngestMessagePanel.totalMessagesNameVal.text=-
IngestMessagePanel.totalUniqueMessagesNameLabel.text=Unique:
IngestMessagePanel.totalUniqueMessagesNameVal.text=-
-IngestDialogPanel.timeRadioButton3.text=5 minutes (longest ingest)
-IngestDialogPanel.timeLabel.toolTipText=Choose the maximum time between updates from background tasks
-IngestDialogPanel.timeLabel.text=Update Frequency
-IngestDialogPanel.timeRadioButton1.toolTipText=20 mins. (fastest ingest time)
-IngestDialogPanel.timeRadioButton1.text=20 minutes (fastest ingest)
-IngestDialogPanel.timeRadioButton2.toolTipText=10 minutes (default ingest time)
-IngestDialogPanel.timeRadioButton2.text=10 minutes (default)
-IngestDialogPanel.timeRadioButton3.toolTipText=5 minutes (overall ingest time will be longest)
IngestDialogPanel.processUnallocCheckbox.text=Process Unallocated Space
IngestDialogPanel.processUnallocCheckbox.toolTipText=Processes unallocated space, such as deleted files. Produces more complete results, but it may take longer to process on large images.
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.form
index 3336399a64..be92f86f70 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.form
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.form
@@ -29,7 +29,6 @@
-
@@ -43,13 +42,11 @@
-
+
-
+
-
-
-
+
@@ -117,7 +114,7 @@
-
+
@@ -163,94 +160,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -268,15 +177,16 @@
-
+
-
+
+
-
+
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.java
index 9552c5b378..a5a37ca619 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.java
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestDialogPanel.java
@@ -40,7 +40,6 @@ import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
import org.sleuthkit.autopsy.casemodule.IngestConfigurator;
import org.sleuthkit.autopsy.corecomponents.AdvancedConfigurationDialog;
-import org.sleuthkit.autopsy.ingest.IngestManager.UpdateFrequency;
import org.sleuthkit.datamodel.Image;
/**
@@ -86,33 +85,6 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
addModule(module);
}
- //time setting
- timeGroup.add(timeRadioButton1);
- timeGroup.add(timeRadioButton2);
- timeGroup.add(timeRadioButton3);
-
- if (manager.isIngestRunning()) {
- setTimeSettingEnabled(false);
- } else {
- setTimeSettingEnabled(true);
- }
-
- //set default
- final UpdateFrequency curFreq = manager.getUpdateFrequency();
- switch (curFreq) {
- case FAST:
- timeRadioButton1.setSelected(true);
- break;
- case AVG:
- timeRadioButton2.setSelected(true);
- break;
- case SLOW:
- timeRadioButton3.setSelected(true);
- break;
- default:
- //
- }
-
modulesTable.setTableHeader(null);
modulesTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -153,11 +125,7 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
}
- private void setTimeSettingEnabled(boolean enabled) {
- timeRadioButton1.setEnabled(enabled);
- timeRadioButton2.setEnabled(enabled);
- timeRadioButton3.setEnabled(enabled);
- }
+
private void setProcessUnallocSpaceEnabled(boolean enabled) {
processUnallocCheckbox.setEnabled(enabled);
@@ -167,11 +135,9 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
public void paint(Graphics g) {
super.paint(g);
if (manager.isIngestRunning()) {
- setTimeSettingEnabled(false);
setProcessUnallocSpaceEnabled(false);
} else {
- setTimeSettingEnabled(true);
setProcessUnallocSpaceEnabled(true);
}
}
@@ -199,11 +165,6 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
jSeparator2 = new javax.swing.JSeparator();
jScrollPane1 = new javax.swing.JScrollPane();
simplePanel = new javax.swing.JPanel();
- timePanel = new javax.swing.JPanel();
- timeRadioButton3 = new javax.swing.JRadioButton();
- timeRadioButton2 = new javax.swing.JRadioButton();
- timeLabel = new javax.swing.JLabel();
- timeRadioButton1 = new javax.swing.JRadioButton();
processUnallocPanel = new javax.swing.JPanel();
processUnallocCheckbox = new javax.swing.JCheckBox();
@@ -256,7 +217,7 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 183, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 192, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
@@ -264,52 +225,6 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
.addContainerGap())
);
- timePanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(160, 160, 160)));
-
- timeRadioButton3.setText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeRadioButton3.text")); // NOI18N
- timeRadioButton3.setToolTipText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeRadioButton3.toolTipText")); // NOI18N
-
- timeRadioButton2.setText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeRadioButton2.text")); // NOI18N
- timeRadioButton2.setToolTipText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeRadioButton2.toolTipText")); // NOI18N
-
- timeLabel.setText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeLabel.text")); // NOI18N
- timeLabel.setToolTipText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeLabel.toolTipText")); // NOI18N
-
- timeRadioButton1.setText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeRadioButton1.text")); // NOI18N
- timeRadioButton1.setToolTipText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.timeRadioButton1.toolTipText")); // NOI18N
- timeRadioButton1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- timeRadioButton1ActionPerformed(evt);
- }
- });
-
- javax.swing.GroupLayout timePanelLayout = new javax.swing.GroupLayout(timePanel);
- timePanel.setLayout(timePanelLayout);
- timePanelLayout.setHorizontalGroup(
- timePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(timePanelLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(timePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(timeRadioButton1)
- .addComponent(timeLabel)
- .addComponent(timeRadioButton2)
- .addComponent(timeRadioButton3))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- );
- timePanelLayout.setVerticalGroup(
- timePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(timePanelLayout.createSequentialGroup()
- .addGap(0, 4, Short.MAX_VALUE)
- .addComponent(timeLabel)
- .addGap(0, 0, 0)
- .addComponent(timeRadioButton1)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(timeRadioButton2)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(timeRadioButton3)
- .addGap(2, 2, 2))
- );
-
processUnallocPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(160, 160, 160)));
processUnallocCheckbox.setText(org.openide.util.NbBundle.getMessage(IngestDialogPanel.class, "IngestDialogPanel.processUnallocCheckbox.text")); // NOI18N
@@ -327,13 +242,14 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
.addGroup(processUnallocPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(processUnallocCheckbox)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap(12, Short.MAX_VALUE))
);
processUnallocPanelLayout.setVerticalGroup(
processUnallocPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(processUnallocPanelLayout.createSequentialGroup()
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, processUnallocPanelLayout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(processUnallocCheckbox)
- .addGap(0, 2, Short.MAX_VALUE))
+ .addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
@@ -344,7 +260,6 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(modulesScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(timePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(processUnallocPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 328, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -355,13 +270,11 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 244, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
- .addComponent(modulesScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+ .addComponent(modulesScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(processUnallocPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(timePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addComponent(processUnallocPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
}// //GEN-END:initComponents
@@ -389,10 +302,6 @@ public class IngestDialogPanel extends javax.swing.JPanel implements IngestConfi
dialog.display(currentModule.getAdvancedConfiguration());
}//GEN-LAST:event_advancedButtonActionPerformed
-private void timeRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_timeRadioButton1ActionPerformed
-// TODO add your handling code here:
-}//GEN-LAST:event_timeRadioButton1ActionPerformed
-
private void processUnallocCheckboxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_processUnallocCheckboxActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_processUnallocCheckboxActionPerformed
@@ -408,11 +317,6 @@ private void timeRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {//
private javax.swing.JPanel processUnallocPanel;
private javax.swing.JPanel simplePanel;
private javax.swing.ButtonGroup timeGroup;
- private javax.swing.JLabel timeLabel;
- private javax.swing.JPanel timePanel;
- private javax.swing.JRadioButton timeRadioButton1;
- private javax.swing.JRadioButton timeRadioButton2;
- private javax.swing.JRadioButton timeRadioButton3;
// End of variables declaration//GEN-END:variables
private class ModulesTableModel extends AbstractTableModel {
@@ -467,23 +371,13 @@ private void timeRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {//
return modulesToStart;
}
- private boolean timeSelectionEnabled() {
- return timeRadioButton1.isEnabled() && timeRadioButton2.isEnabled() && timeRadioButton3.isEnabled();
- }
+
private boolean processUnallocSpaceEnabled() {
return processUnallocCheckbox.isEnabled();
}
- private UpdateFrequency getSelectedTimeValue() {
- if (timeRadioButton1.isSelected()) {
- return UpdateFrequency.FAST;
- } else if (timeRadioButton2.isSelected()) {
- return UpdateFrequency.AVG;
- } else {
- return UpdateFrequency.SLOW;
- }
- }
+
/**
* To be called whenever the next, close, or start buttons are pressed.
@@ -531,10 +425,7 @@ private void timeRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {//
manager.execute(modulesToStart, image);
}
- //update ingest freq. refresh
- if (timeSelectionEnabled()) {
- manager.setUpdateFrequency(getSelectedTimeValue());
- }
+
//update ingest proc. unalloc space
if (processUnallocSpaceEnabled() ) {
manager.setProcessUnallocSpace(processUnallocCheckbox.isSelected());
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java
index 7223e68dda..0e4e47dfcb 100755
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java
@@ -59,33 +59,8 @@ import org.sleuthkit.datamodel.TskData;
*/
public class IngestManager {
- /**
- * @Deprecated individual modules are be responsible for maintaining such settings
- */
- enum UpdateFrequency {
-
- FAST(20),
- AVG(10),
- SLOW(5);
- private final int time;
-
- /**
- * @Deprecated individual modules are be responsible for maintaining such settings
- */
- UpdateFrequency(int time) {
- this.time = time;
- }
-
- /**
- * @Deprecated individual modules are be responsible for maintaining such settings
- */
- int getTime() {
- return time;
- }
- };
private static final Logger logger = Logger.getLogger(IngestManager.class.getName());
private IngestManagerStats stats;
- private volatile UpdateFrequency updateFrequency = UpdateFrequency.AVG;
private boolean processUnallocSpace = true;
//queues
private final ImageQueue imageQueue = new ImageQueue(); // list of modules and images to analyze
@@ -531,23 +506,6 @@ public class IngestManager {
}
- /**
- * returns the current minimal update frequency setting in minutes Modules
- * should call this at init() to get current setting and use the setting to
- * change notification and data refresh intervals
- */
- UpdateFrequency getUpdateFrequency() {
- return updateFrequency;
- }
-
- /**
- * set new minimal update frequency modules should use
- *
- * @param frequency to use in minutes
- */
- void setUpdateFrequency(UpdateFrequency frequency) {
- this.updateFrequency = frequency;
- }
/**
* returns if manager is currently configured to process unalloc space
diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestServices.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestServices.java
index 4e5c4d01b1..39bac94015 100644
--- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestServices.java
+++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestServices.java
@@ -87,18 +87,6 @@ public class IngestServices {
}
- /**
- * Facility for the module to query the currently set recommended data update frequency in minutes
- * Modules that post data in controlled time intervals, should obey this setting
- *
- * @return max. number of minutes before module posts new data, if data is available
- *
- * @Deprecated individual modules are be responsible for maintaining such settings
- */
- public int getUpdateFrequency() {
- return manager.getUpdateFrequency().getTime();
- }
-
/**
* Facility for a file ingest module to check a return value from another file ingest module
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties
index 786c989674..372c091ccf 100755
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties
@@ -70,3 +70,10 @@ KeywordSearchConfigurationPanel2.settingsLabel.text=Settings
KeywordSearchConfigurationPanel2.informationLabel.text=Information
KeywordSearchListsManagementPanel.keywordListsLabel.text=Keyword Lists:
KeywordSearchEditListPanel.keywordsLabel.text=Keywords:
+KeywordSearchConfigurationPanel2.jLabel1.text=Results update frequency during ingest:
+KeywordSearchConfigurationPanel2.timeRadioButton1.toolTipText=20 mins. (fastest ingest time)
+KeywordSearchConfigurationPanel2.timeRadioButton1.text=20 minutes (fastest ingest)
+KeywordSearchConfigurationPanel2.timeRadioButton2.toolTipText=10 minutes (default ingest time)
+KeywordSearchConfigurationPanel2.timeRadioButton2.text=10 minutes (default)
+KeywordSearchConfigurationPanel2.timeRadioButton3.toolTipText=5 minutes (overall ingest time will be longest)
+KeywordSearchConfigurationPanel2.timeRadioButton3.text=5 minutes (longest ingest)
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.form b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.form
index 9ac2883b82..9d49c209e8 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.form
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.form
@@ -2,7 +2,7 @@
@@ -95,9 +111,6 @@
-
-
-
@@ -148,5 +161,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.java
index 8f4f521972..6bd240006a 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchConfigurationPanel2.java
@@ -18,15 +18,14 @@
*/
package org.sleuthkit.autopsy.keywordsearch;
-import java.awt.Graphics;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.logging.Level;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.apache.solr.client.solrj.SolrServerException;
-import org.openide.util.Exceptions;
import org.sleuthkit.autopsy.corecomponents.OptionsPanel;
import org.sleuthkit.autopsy.ingest.IngestManager;
+import org.sleuthkit.autopsy.keywordsearch.KeywordSearchIngestModule.UpdateFrequency;
/**
* General, not per list, keyword search configuration and status display widget
@@ -47,8 +46,25 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel impleme
final KeywordSearchIngestModule service = KeywordSearchIngestModule.getDefault();
skipNSRLCheckBox.setSelected(service.getSkipKnown());
boolean enable = !IngestManager.getDefault().isIngestRunning()
- && ! IngestManager.getDefault().isModuleRunning(KeywordSearchIngestModule.getDefault());
+ && !IngestManager.getDefault().isModuleRunning(KeywordSearchIngestModule.getDefault());
skipNSRLCheckBox.setEnabled(enable);
+ setTimeSettingEnabled(enable);
+
+ final UpdateFrequency curFreq = service.getUpdateFrequency();
+ switch (curFreq) {
+ case FAST:
+ timeRadioButton1.setSelected(true);
+ break;
+ case AVG:
+ timeRadioButton2.setSelected(true);
+ break;
+ case SLOW:
+ timeRadioButton3.setSelected(true);
+ break;
+ default:
+ //
+ }
+
}
/**
@@ -60,7 +76,7 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel impleme
// //GEN-BEGIN:initComponents
private void initComponents() {
- langButtonGroup = new javax.swing.ButtonGroup();
+ timeGroup = new javax.swing.ButtonGroup();
skipNSRLCheckBox = new javax.swing.JCheckBox();
filesIndexedLabel = new javax.swing.JLabel();
filesIndexedValue = new javax.swing.JLabel();
@@ -70,14 +86,13 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel impleme
informationLabel = new javax.swing.JLabel();
settingsSeparator = new javax.swing.JSeparator();
informationSeparator = new javax.swing.JSeparator();
+ jLabel1 = new javax.swing.JLabel();
+ timeRadioButton1 = new javax.swing.JRadioButton();
+ timeRadioButton2 = new javax.swing.JRadioButton();
+ timeRadioButton3 = new javax.swing.JRadioButton();
skipNSRLCheckBox.setText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.skipNSRLCheckBox.text")); // NOI18N
skipNSRLCheckBox.setToolTipText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.skipNSRLCheckBox.toolTipText")); // NOI18N
- skipNSRLCheckBox.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- skipNSRLCheckBoxActionPerformed(evt);
- }
- });
filesIndexedLabel.setText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.filesIndexedLabel.text")); // NOI18N
@@ -92,13 +107,24 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel impleme
informationLabel.setText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.informationLabel.text")); // NOI18N
+ jLabel1.setText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.jLabel1.text")); // NOI18N
+
+ timeRadioButton1.setText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.timeRadioButton1.text")); // NOI18N
+ timeRadioButton1.setToolTipText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.timeRadioButton1.toolTipText")); // NOI18N
+
+ timeRadioButton2.setText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.timeRadioButton2.text")); // NOI18N
+ timeRadioButton2.setToolTipText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.timeRadioButton2.toolTipText")); // NOI18N
+
+ timeRadioButton3.setText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.timeRadioButton3.text")); // NOI18N
+ timeRadioButton3.setToolTipText(org.openide.util.NbBundle.getMessage(KeywordSearchConfigurationPanel2.class, "KeywordSearchConfigurationPanel2.timeRadioButton3.toolTipText")); // 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, false)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(settingsLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -106,20 +132,27 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel impleme
.addGroup(layout.createSequentialGroup()
.addComponent(informationLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(informationSeparator))
+ .addComponent(informationSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 309, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(filesIndexedLabel)
.addGroup(layout.createSequentialGroup()
+ .addGap(141, 141, 141)
+ .addComponent(filesIndexedValue, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(skipNSRLCheckBox)
+ .addComponent(jLabel1)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(10, 10, 10)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(chunksLabel)
- .addComponent(filesIndexedLabel))
+ .addComponent(timeRadioButton2)
+ .addComponent(timeRadioButton1)
+ .addComponent(timeRadioButton3)))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(chunksLabel)
.addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(filesIndexedValue, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(chunksValLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addComponent(skipNSRLCheckBox))))
- .addContainerGap(67, Short.MAX_VALUE))
+ .addComponent(chunksValLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)))))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -130,6 +163,14 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel impleme
.addComponent(settingsSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 6, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(skipNSRLCheckBox)
+ .addGap(13, 13, 13)
+ .addComponent(jLabel1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(timeRadioButton1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(timeRadioButton2)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(timeRadioButton3)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(informationLabel)
@@ -142,14 +183,10 @@ public class KeywordSearchConfigurationPanel2 extends javax.swing.JPanel impleme
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(chunksLabel)
.addComponent(chunksValLabel))
- .addContainerGap(107, Short.MAX_VALUE))
+ .addContainerGap(37, Short.MAX_VALUE))
);
}// //GEN-END:initComponents
-private void skipNSRLCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_skipNSRLCheckBoxActionPerformed
- //KeywordSearchIngestModule.getDefault().setSkipKnown(skipNSRLCheckBox.isSelected());
- // Do nothing
-}//GEN-LAST:event_skipNSRLCheckBoxActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel chunksLabel;
private javax.swing.JLabel chunksValLabel;
@@ -157,23 +194,53 @@ private void skipNSRLCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//
private javax.swing.JLabel filesIndexedValue;
private javax.swing.JLabel informationLabel;
private javax.swing.JSeparator informationSeparator;
- private javax.swing.ButtonGroup langButtonGroup;
+ private javax.swing.JLabel jLabel1;
private javax.swing.JLabel settingsLabel;
private javax.swing.JSeparator settingsSeparator;
private javax.swing.JCheckBox skipNSRLCheckBox;
+ private javax.swing.ButtonGroup timeGroup;
+ private javax.swing.JRadioButton timeRadioButton1;
+ private javax.swing.JRadioButton timeRadioButton2;
+ private javax.swing.JRadioButton timeRadioButton3;
// End of variables declaration//GEN-END:variables
@Override
public void store() {
- KeywordSearchIngestModule.getDefault().setSkipKnown(skipNSRLCheckBox.isSelected());
+ final KeywordSearchIngestModule km =
+ KeywordSearchIngestModule.getDefault();
+
+ km.setSkipKnown(skipNSRLCheckBox.isSelected());
+ km.setUpdateFrequency(getSelectedTimeValue());
}
-
+
@Override
public void load() {
activateWidgets();
}
-
+
+ private void setTimeSettingEnabled(boolean enabled) {
+ timeRadioButton1.setEnabled(enabled);
+ timeRadioButton2.setEnabled(enabled);
+ timeRadioButton3.setEnabled(enabled);
+ }
+
+
+ private UpdateFrequency getSelectedTimeValue() {
+ if (timeRadioButton1.isSelected()) {
+ return UpdateFrequency.FAST;
+ } else if (timeRadioButton2.isSelected()) {
+ return UpdateFrequency.AVG;
+ } else {
+ return UpdateFrequency.SLOW;
+ }
+ }
+
private void customizeComponents() {
+
+ timeGroup.add(timeRadioButton1);
+ timeGroup.add(timeRadioButton2);
+ timeGroup.add(timeRadioButton3);
+
this.skipNSRLCheckBox.setSelected(KeywordSearchIngestModule.getDefault().getSkipKnown());
try {
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java
index 0228c517fe..8828dc55a3 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java
@@ -72,6 +72,23 @@ import org.sleuthkit.datamodel.TskData.FileKnown;
*/
public final class KeywordSearchIngestModule implements IngestModuleAbstractFile {
+ enum UpdateFrequency {
+
+ FAST(20),
+ AVG(10),
+ SLOW(5);
+ private final int time;
+
+ UpdateFrequency(int time) {
+ this.time = time;
+ }
+
+ int getTime() {
+ return time;
+ }
+ };
+ private volatile UpdateFrequency updateFrequency = UpdateFrequency.AVG;
+
private static final Logger logger = Logger.getLogger(KeywordSearchIngestModule.class.getName());
public static final String MODULE_NAME = "Keyword Search";
public static final String MODULE_DESCRIPTION = "Performs file indexing and periodic search using keywords and regular expressions in lists.";
@@ -85,7 +102,6 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
private Map keywordToList; //keyword to list name mapping
private Timer commitTimer;
private Timer searchTimer;
- //private static final int COMMIT_INTERVAL_MS = 10 * 60 * 1000;
private Indexer indexer;
private Searcher currentSearcher;
private Searcher finalSearcher;
@@ -134,6 +150,22 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
}
return instance;
}
+
+ /**
+ * returns the current minimal update frequency setting in minutes
+ */
+ UpdateFrequency getUpdateFrequency() {
+ return updateFrequency;
+ }
+
+ /**
+ * set new minimal update frequency module should use
+ *
+ * @param frequency to use in minutes
+ */
+ void setUpdateFrequency(UpdateFrequency frequency) {
+ this.updateFrequency = frequency;
+ }
/**
* Starts processing of every file provided by IngestManager. Checks if it
@@ -349,7 +381,7 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
indexer = new Indexer();
- final int updateIntervalMs = services.getUpdateFrequency() * 60 * 1000;
+ final int updateIntervalMs = updateFrequency.getTime() * 60 * 1000;
logger.log(Level.INFO, "Using commit interval (ms): " + updateIntervalMs);
logger.log(Level.INFO, "Using searcher interval (ms): " + updateIntervalMs);