diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties
index c95696b4ab..c48d4da6cd 100755
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties
@@ -1,9 +1,9 @@
CTL_KeywordSearchHistoryAction=Keyword Search History
CTL_KeywordSearchHistoryTopComponent=Keyword Search History Window
-CTL_KeywordSearchListAction=List
-CTL_KeywordSearchListImportExportAction=Keyword Search List Import Export
-CTL_KeywordSearchListImportExportTopComponent=Keyword Search List Import Export Window
-CTL_KeywordSearchListTopComponent=List
+CTL_KeywordSearchListAction=Keyword List
+CTL_KeywordSearchListImportExportAction=Keyword Lists
+CTL_KeywordSearchListImportExportTopComponent=Keyword Lists Window
+CTL_KeywordSearchListTopComponent=Keyword List
CTL_KeywordSearchTabsTopComponentAction=Keyword Search
CTL_KeywordSearchTabsTopComponentTopComponent=Keyword Search
HINT_KeywordSearchHistoryTopComponent=This is a Keyword Search History window
@@ -37,12 +37,9 @@ KeywordSearchListTopComponent.deleteWordButton.text=Remove
KeywordSearchListTopComponent.deleteAllWordsButton.text=Remove All
KeywordSearchSimpleTopComponent.chRegex.text=Regular Expression
KeywordSearchListImportExportTopComponent.topLabel.text=Manage (import, export, delete) lists of keywords
-KeywordSearchListImportExportTopComponent.curKeywordsLabel.text=Current lists:
KeywordSearchListImportExportTopComponent.importButton.text=Import
KeywordSearchListImportExportTopComponent.exportButton.text=Export
KeywordSearchListImportExportTopComponent.deleteButton.text=Delete
-KeywordSearchListImportExportTopComponent.filesIndexedNameLabel.text=Files indexed:
-KeywordSearchListImportExportTopComponent.filesIndexedValLabel.text=-
KeywordSearchListTopComponent.curListNameLabel.text=Loaded list:
KeywordSearchListTopComponent.curListValLabel.text=-
KeywordSearchListTopComponent.importButton.text=Import List
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchDataExplorer.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchDataExplorer.java
index 21d53077be..7082e80cfc 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchDataExplorer.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchDataExplorer.java
@@ -37,15 +37,20 @@ public class KeywordSearchDataExplorer implements DataExplorer {
private static KeywordSearchDataExplorer theInstance;
private KeywordSearchTabsTopComponent tc;
+ private int filesIndexed;
public KeywordSearchDataExplorer() {
this.setTheInstance();
+ this.filesIndexed = 0;
this.tc = new KeywordSearchTabsTopComponent();
this.tc.addSearchButtonListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
+ if (filesIndexed == 0)
+ return;
+
tc.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
try {
@@ -124,6 +129,7 @@ public class KeywordSearchDataExplorer implements DataExplorer {
if (newValue != null) {
if (changed.equals(KeywordSearch.NUM_FILES_CHANGE_EVT)) {
int newFilesIndexed = ((Integer) newValue).intValue();
+ filesIndexed = newFilesIndexed;
tc.setFilesIndexed(newFilesIndexed);
} else {
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchHistoryTopComponent.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchHistoryTopComponent.java
index 13a52915b9..39d15d980a 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchHistoryTopComponent.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchHistoryTopComponent.java
@@ -28,8 +28,6 @@ import javax.swing.table.TableColumn;
import org.openide.util.NbBundle;
import org.openide.windows.TopComponent;
import org.netbeans.api.settings.ConvertAsProperties;
-import org.openide.awt.ActionID;
-import org.openide.awt.ActionReference;
/**
* Top component with saved searches viewer
@@ -40,10 +38,10 @@ autostore = false)
//iconBase="SET/PATH/TO/ICON/HERE",
persistenceType = TopComponent.PERSISTENCE_NEVER)
@TopComponent.Registration(mode = "explorer", openAtStartup = false)
-@ActionID(category = "Window", id = "org.sleuthkit.autopsy.keywordsearch.KeywordSearchHistoryTopComponent")
-@ActionReference(path = "Menu/Window" /*, position = 333 */)
-@TopComponent.OpenActionRegistration(displayName = "#CTL_KeywordSearchHistoryAction",
-preferredID = "KeywordSearchHistoryTopComponent")
+//@ActionID(category = "Window", id = "org.sleuthkit.autopsy.keywordsearch.KeywordSearchHistoryTopComponent")
+//@ActionReference(path = "Menu/Window" /*, position = 333 */)
+//@TopComponent.OpenActionRegistration(displayName = "#CTL_KeywordSearchHistoryAction",
+//preferredID = "KeywordSearchHistoryTopComponent")
public final class KeywordSearchHistoryTopComponent extends TopComponent implements KeywordSearchTopComponentInterface {
private Logger logger = Logger.getLogger(KeywordSearchHistoryTopComponent.class.getName());
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.form b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.form
index 5cfbd3b6f3..6acc9967ec 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.form
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.form
@@ -16,133 +16,137 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.java
index df5263abca..c4f6d59419 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListImportExportTopComponent.java
@@ -19,7 +19,6 @@
package org.sleuthkit.autopsy.keywordsearch;
import java.awt.Component;
-import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -28,7 +27,6 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.logging.Logger;
@@ -58,7 +56,7 @@ persistenceType = TopComponent.PERSISTENCE_NEVER)
@ActionReference(path = "Menu/Window" /*, position = 333 */)
@TopComponent.OpenActionRegistration(displayName = "#CTL_KeywordSearchListImportExportAction",
preferredID = "KeywordSearchListImportExportTopComponent")
-public final class KeywordSearchListImportExportTopComponent extends TopComponent implements KeywordSearchTopComponentInterface {
+public final class KeywordSearchListImportExportTopComponent extends TopComponent {
private Logger logger = Logger.getLogger(KeywordSearchListImportExportTopComponent.class.getName());
private KeywordListTableModel tableModel;
@@ -160,25 +158,18 @@ public final class KeywordSearchListImportExportTopComponent extends TopComponen
// //GEN-BEGIN:initComponents
private void initComponents() {
- jScrollPane1 = new javax.swing.JScrollPane();
- listsTable = new javax.swing.JTable();
- topLabel = new javax.swing.JLabel();
- curKeywordsLabel = new javax.swing.JLabel();
+ mainScrollPane = new javax.swing.JScrollPane();
+ mainPanel = new javax.swing.JPanel();
importButton = new javax.swing.JButton();
exportButton = new javax.swing.JButton();
deleteButton = new javax.swing.JButton();
- filesIndexedNameLabel = new javax.swing.JLabel();
- filesIndexedValLabel = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ listsTable = new javax.swing.JTable();
+ topLabel = new javax.swing.JLabel();
- listsTable.setModel(tableModel);
- listsTable.setShowHorizontalLines(false);
- listsTable.setShowVerticalLines(false);
- listsTable.getTableHeader().setReorderingAllowed(false);
- jScrollPane1.setViewportView(listsTable);
+ mainScrollPane.setPreferredSize(new java.awt.Dimension(349, 433));
- org.openide.awt.Mnemonics.setLocalizedText(topLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListImportExportTopComponent.class, "KeywordSearchListImportExportTopComponent.topLabel.text")); // NOI18N
-
- org.openide.awt.Mnemonics.setLocalizedText(curKeywordsLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListImportExportTopComponent.class, "KeywordSearchListImportExportTopComponent.curKeywordsLabel.text")); // NOI18N
+ mainPanel.setPreferredSize(new java.awt.Dimension(349, 433));
org.openide.awt.Mnemonics.setLocalizedText(importButton, org.openide.util.NbBundle.getMessage(KeywordSearchListImportExportTopComponent.class, "KeywordSearchListImportExportTopComponent.importButton.text")); // NOI18N
importButton.addActionListener(new java.awt.event.ActionListener() {
@@ -201,51 +192,59 @@ public final class KeywordSearchListImportExportTopComponent extends TopComponen
}
});
- org.openide.awt.Mnemonics.setLocalizedText(filesIndexedNameLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListImportExportTopComponent.class, "KeywordSearchListImportExportTopComponent.filesIndexedNameLabel.text")); // NOI18N
+ listsTable.setModel(tableModel);
+ listsTable.setShowHorizontalLines(false);
+ listsTable.setShowVerticalLines(false);
+ listsTable.getTableHeader().setReorderingAllowed(false);
+ jScrollPane1.setViewportView(listsTable);
- org.openide.awt.Mnemonics.setLocalizedText(filesIndexedValLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListImportExportTopComponent.class, "KeywordSearchListImportExportTopComponent.filesIndexedValLabel.text")); // NOI18N
+ topLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
+ org.openide.awt.Mnemonics.setLocalizedText(topLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListImportExportTopComponent.class, "KeywordSearchListImportExportTopComponent.topLabel.text")); // NOI18N
+
+ javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
+ mainPanel.setLayout(mainPanelLayout);
+ mainPanelLayout.setHorizontalGroup(
+ mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(topLabel)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING, mainPanelLayout.createSequentialGroup()
+ .addComponent(importButton)
+ .addGap(33, 33, 33)
+ .addComponent(exportButton)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(deleteButton))
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 266, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addContainerGap())
+ );
+ mainPanelLayout.setVerticalGroup(
+ mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(topLabel)
+ .addGap(34, 34, 34)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(importButton)
+ .addComponent(exportButton)
+ .addComponent(deleteButton))
+ .addContainerGap(113, Short.MAX_VALUE))
+ );
+
+ mainScrollPane.setViewportView(mainPanel);
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)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 266, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(topLabel)
- .addComponent(curKeywordsLabel)
- .addGroup(layout.createSequentialGroup()
- .addComponent(importButton)
- .addGap(22, 22, 22)
- .addComponent(exportButton)
- .addGap(18, 18, 18)
- .addComponent(deleteButton))
- .addGroup(layout.createSequentialGroup()
- .addComponent(filesIndexedNameLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(filesIndexedValLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addContainerGap(20, Short.MAX_VALUE))
+ .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 368, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(topLabel)
- .addGap(35, 35, 35)
- .addComponent(curKeywordsLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 227, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(29, 29, 29)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(importButton)
- .addComponent(deleteButton)
- .addComponent(exportButton))
- .addGap(37, 37, 37)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(filesIndexedNameLabel)
- .addComponent(filesIndexedValLabel))
- .addContainerGap(62, Short.MAX_VALUE))
+ .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 455, Short.MAX_VALUE)
);
}// //GEN-END:initComponents
@@ -383,14 +382,13 @@ public final class KeywordSearchListImportExportTopComponent extends TopComponen
initButtons();
}//GEN-LAST:event_deleteButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JLabel curKeywordsLabel;
private javax.swing.JButton deleteButton;
private javax.swing.JButton exportButton;
- private javax.swing.JLabel filesIndexedNameLabel;
- private javax.swing.JLabel filesIndexedValLabel;
private javax.swing.JButton importButton;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable listsTable;
+ private javax.swing.JPanel mainPanel;
+ private javax.swing.JScrollPane mainScrollPane;
private javax.swing.JLabel topLabel;
// End of variables declaration//GEN-END:variables
@@ -411,39 +409,6 @@ public final class KeywordSearchListImportExportTopComponent extends TopComponen
void readProperties(java.util.Properties p) {
}
- @Override
- public void addSearchButtonListener(ActionListener l) {
- }
-
- @Override
- public List getQueryList() {
- return null;
- }
-
- @Override
- public String getQueryText() {
- return null;
- }
-
- @Override
- public boolean isLuceneQuerySelected() {
- return false;
- }
-
- @Override
- public boolean isMultiwordQuery() {
- return false;
- }
-
- @Override
- public boolean isRegexQuerySelected() {
- return false;
- }
-
- @Override
- public void setFilesIndexed(int filesIndexed) {
- filesIndexedValLabel.setText(Integer.toString(filesIndexed));
- }
private class KeywordListTableModel extends AbstractTableModel {
//data
@@ -523,10 +488,11 @@ public final class KeywordSearchListImportExportTopComponent extends TopComponen
TableEntry entry = null;
//iterate until row
Iterator it = listData.iterator();
- for (int i = 0; i <= rowIndex; ++i) {
+ for (int i = 0; i <= rowIndex && it.hasNext(); ++i) {
entry = it.next();
}
- entry.isActive = (Boolean) aValue;
+ if (entry != null)
+ entry.isActive = (Boolean) aValue;
initButtons();
}
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.form b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.form
index cfaa04ed18..98588cd827 100755
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.form
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.form
@@ -41,7 +41,7 @@
-
+
@@ -59,290 +59,324 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.java
index 29a17e9770..ce2a21fa2a 100755
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListTopComponent.java
@@ -29,9 +29,7 @@ import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Iterator;
-import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.logging.Level;
@@ -52,12 +50,10 @@ import javax.swing.table.TableColumn;
import org.openide.util.NbBundle;
import org.openide.windows.TopComponent;
import org.netbeans.api.settings.ConvertAsProperties;
-import org.openide.awt.ActionID;
-import org.openide.awt.ActionReference;
import org.sleuthkit.autopsy.keywordsearch.KeywordSearchTabsTopComponent.TABS;
/**
- * Top component which displays something.
+ * Top component for Keyword List search
*/
@ConvertAsProperties(dtd = "-//org.sleuthkit.autopsy.keywordsearch//KeywordSearchList//EN",
autostore = false)
@@ -65,10 +61,10 @@ autostore = false)
//iconBase="SET/PATH/TO/ICON/HERE",
persistenceType = TopComponent.PERSISTENCE_NEVER)
@TopComponent.Registration(mode = "explorer", openAtStartup = false)
-@ActionID(category = "Window", id = "org.sleuthkit.autopsy.keywordsearch.KeywordSearchListTopComponent")
-@ActionReference(path = "Menu/Window" /*, position = 333 */)
-@TopComponent.OpenActionRegistration(displayName = "#CTL_KeywordSearchListAction",
-preferredID = "KeywordSearchListTopComponent")
+//@ActionID(category = "Window", id = "org.sleuthkit.autopsy.keywordsearch.KeywordSearchListTopComponent")
+//@ActionReference(path = "Menu/Window" /*, position = 333 */)
+//@TopComponent.OpenActionRegistration(displayName = "#CTL_KeywordSearchListAction",
+//preferredID = "KeywordSearchListTopComponent")
public final class KeywordSearchListTopComponent extends TopComponent implements KeywordSearchTopComponentInterface {
private static Logger logger = Logger.getLogger(KeywordSearchListTopComponent.class.getName());
@@ -95,6 +91,8 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
searchButton.setToolTipText("Execute the keyword list search using the current list");
deleteWordButton.setToolTipText("Remove selected keyword(s) from the list");
deleteAllWordsButton.setToolTipText("Remove all keywords from the list (clear it)");
+
+ searchButton.setEnabled(false);
//keywordTable.setAutoscrolls(true);
//keywordTable.setTableHeader(null);
@@ -212,6 +210,8 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
// //GEN-BEGIN:initComponents
private void initComponents() {
+ mainScrollPane = new javax.swing.JScrollPane();
+ mainPanel = new javax.swing.JPanel();
rightClickMenu = new javax.swing.JPopupMenu();
cutMenuItem = new javax.swing.JMenuItem();
copyMenuItem = new javax.swing.JMenuItem();
@@ -220,11 +220,9 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
filesIndexedNameLabel = new javax.swing.JLabel();
filesIndexedValLabel = new javax.swing.JLabel();
titleLabel = new javax.swing.JLabel();
- loadListButton = new javax.swing.JButton();
curListNameLabel = new javax.swing.JLabel();
- curListValLabel = new javax.swing.JLabel();
- importButton = new javax.swing.JButton();
- jPanel1 = new javax.swing.JPanel();
+ loadListButton = new javax.swing.JButton();
+ tablePanel = new javax.swing.JPanel();
saveListButton = new javax.swing.JButton();
deleteWordButton = new javax.swing.JButton();
deleteAllWordsButton = new javax.swing.JButton();
@@ -234,7 +232,10 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
jScrollPane1 = new javax.swing.JScrollPane();
keywordTable = new javax.swing.JTable();
searchButton = new javax.swing.JButton();
+ curListValLabel = new javax.swing.JLabel();
+ importButton = new javax.swing.JButton();
+ setPreferredSize(new java.awt.Dimension(345, 534));
org.openide.awt.Mnemonics.setLocalizedText(cutMenuItem, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.cutMenuItem.text")); // NOI18N
rightClickMenu.add(cutMenuItem);
@@ -249,6 +250,10 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
setPreferredSize(new java.awt.Dimension(400, 612));
+ mainScrollPane.setPreferredSize(new java.awt.Dimension(345, 534));
+
+ mainPanel.setPreferredSize(new java.awt.Dimension(345, 534));
+
org.openide.awt.Mnemonics.setLocalizedText(filesIndexedNameLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.filesIndexedNameLabel.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(filesIndexedValLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.filesIndexedValLabel.text")); // NOI18N
@@ -256,6 +261,8 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
titleLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
org.openide.awt.Mnemonics.setLocalizedText(titleLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.titleLabel.text")); // NOI18N
+ org.openide.awt.Mnemonics.setLocalizedText(curListNameLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.curListNameLabel.text")); // NOI18N
+
org.openide.awt.Mnemonics.setLocalizedText(loadListButton, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.loadListButton.text")); // NOI18N
loadListButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -263,18 +270,7 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
}
});
- org.openide.awt.Mnemonics.setLocalizedText(curListNameLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.curListNameLabel.text")); // NOI18N
-
- org.openide.awt.Mnemonics.setLocalizedText(curListValLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.curListValLabel.text")); // NOI18N
-
- org.openide.awt.Mnemonics.setLocalizedText(importButton, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.importButton.text")); // NOI18N
- importButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- importButtonActionPerformed(evt);
- }
- });
-
- jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
+ tablePanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
org.openide.awt.Mnemonics.setLocalizedText(saveListButton, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.saveListButton.text")); // NOI18N
saveListButton.addActionListener(new java.awt.event.ActionListener() {
@@ -312,6 +308,11 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
});
addWordField.setText(org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.addWordField.text")); // NOI18N
+ addWordField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addWordFieldActionPerformed(evt);
+ }
+ });
keywordTable.setModel(tableModel);
keywordTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
@@ -327,51 +328,51 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
}
});
- javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
- jPanel1.setLayout(jPanel1Layout);
- jPanel1Layout.setHorizontalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ javax.swing.GroupLayout tablePanelLayout = new javax.swing.GroupLayout(tablePanel);
+ tablePanel.setLayout(tablePanelLayout);
+ tablePanelLayout.setHorizontalGroup(
+ tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(tablePanelLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGroup(tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(tablePanelLayout.createSequentialGroup()
.addComponent(deleteWordButton)
.addGap(18, 18, 18)
.addComponent(deleteAllWordsButton)
.addGap(18, 18, 18)
.addComponent(saveListButton))
- .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGroup(tablePanelLayout.createSequentialGroup()
.addGap(35, 35, 35)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(addWordField, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGroup(tablePanelLayout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(chRegex)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(addWordButton))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 272, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(searchButton))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap(21, Short.MAX_VALUE))
);
- jPanel1Layout.setVerticalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ tablePanelLayout.setVerticalGroup(
+ tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(tablePanelLayout.createSequentialGroup()
+ .addGroup(tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(tablePanelLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(addWordButton)
.addComponent(addWordField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(34, 34, 34))
- .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGroup(tablePanelLayout.createSequentialGroup()
.addContainerGap(31, Short.MAX_VALUE)
.addComponent(chRegex)
.addGap(14, 14, 14)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(tablePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(deleteWordButton)
.addComponent(deleteAllWordsButton))
.addComponent(saveListButton))
@@ -380,54 +381,75 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
.addContainerGap())
);
+ org.openide.awt.Mnemonics.setLocalizedText(curListValLabel, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.curListValLabel.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(importButton, org.openide.util.NbBundle.getMessage(KeywordSearchListTopComponent.class, "KeywordSearchListTopComponent.importButton.text")); // NOI18N
+ importButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ importButtonActionPerformed(evt);
+ }
+ });
+
+ javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
+ mainPanel.setLayout(mainPanelLayout);
+ mainPanelLayout.setHorizontalGroup(
+ mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addGap(16, 16, 16)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(titleLabel)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addGap(58, 58, 58)
+ .addComponent(loadListButton)
+ .addGap(27, 27, 27)
+ .addComponent(importButton))
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addGap(11, 11, 11)
+ .addComponent(curListNameLabel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(curListValLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE))
+ .addComponent(tablePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addComponent(filesIndexedNameLabel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(filesIndexedValLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGap(54, 54, 54))
+ );
+ mainPanelLayout.setVerticalGroup(
+ mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addGap(21, 21, 21)
+ .addComponent(titleLabel)
+ .addGap(18, 18, 18)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(importButton)
+ .addComponent(loadListButton))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(tablePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(18, 18, 18)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(curListNameLabel)
+ .addComponent(curListValLabel))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(filesIndexedNameLabel)
+ .addComponent(filesIndexedValLabel))
+ .addContainerGap(60, Short.MAX_VALUE))
+ );
+
+ mainScrollPane.setViewportView(mainPanel);
+
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)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(titleLabel)
- .addGroup(layout.createSequentialGroup()
- .addGap(58, 58, 58)
- .addComponent(loadListButton)
- .addGap(27, 27, 27)
- .addComponent(importButton))
- .addGroup(layout.createSequentialGroup()
- .addGap(11, 11, 11)
- .addComponent(curListNameLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(curListValLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)))
- .addGap(22, 22, 22))
- .addGroup(layout.createSequentialGroup()
- .addComponent(filesIndexedNameLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(filesIndexedValLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap())))
+ .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 386, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(titleLabel)
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(importButton)
- .addComponent(loadListButton))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(curListNameLabel)
- .addComponent(curListValLabel))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(filesIndexedNameLabel)
- .addComponent(filesIndexedValLabel))
- .addGap(40, 40, 40))
+ .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 568, Short.MAX_VALUE)
);
}// //GEN-END:initComponents
@@ -573,14 +595,17 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
private void importButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_importButtonActionPerformed
//delegate to lists component
- JTabbedPane tabs = (JTabbedPane) this.getParent();
- KeywordSearchListImportExportTopComponent lists = (KeywordSearchListImportExportTopComponent) tabs.getComponentAt(TABS.Lists.ordinal());
+ KeywordSearchListImportExportTopComponent lists = new KeywordSearchListImportExportTopComponent();
if (lists != null) {
lists.importButtonAction(evt);
}
}//GEN-LAST:event_importButtonActionPerformed
+ private void addWordFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addWordFieldActionPerformed
+ addWordButtonActionPerformed(evt);
+ }//GEN-LAST:event_addWordFieldActionPerformed
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton addWordButton;
private javax.swing.JTextField addWordField;
@@ -594,15 +619,17 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
private javax.swing.JLabel filesIndexedNameLabel;
private javax.swing.JLabel filesIndexedValLabel;
private javax.swing.JButton importButton;
- private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable keywordTable;
private javax.swing.JButton loadListButton;
+ private javax.swing.JPanel mainPanel;
+ private javax.swing.JScrollPane mainScrollPane;
private javax.swing.JMenuItem pasteMenuItem;
private javax.swing.JPopupMenu rightClickMenu;
private javax.swing.JButton saveListButton;
private javax.swing.JButton searchButton;
private javax.swing.JMenuItem selectAllMenuItem;
+ private javax.swing.JPanel tablePanel;
private javax.swing.JLabel titleLabel;
// End of variables declaration//GEN-END:variables
private JComboBox loadListCombo;
@@ -871,10 +898,11 @@ public final class KeywordSearchListTopComponent extends TopComponent implements
TableEntry entry = null;
//iterate until row
Iterator it = keywordData.iterator();
- for (int i = 0; i <= rowIndex; ++i) {
+ for (int i = 0; i <= rowIndex && it.hasNext(); ++i) {
entry = it.next();
}
- entry.isActive = (Boolean) aValue;
+ if (entry != null)
+ entry.isActive = (Boolean) aValue;
if (getSelectedKeywords().isEmpty()) {
deleteWordButton.setEnabled(false);
} else {
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsXML.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsXML.java
index 60b099d683..2209884c31 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsXML.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchListsXML.java
@@ -274,8 +274,8 @@ public class KeywordSearchListsXML {
for (Keyword keyword : keywords) {
Element keywordEl = doc.createElement(KEYWORD_EL);
- String regex = keyword.isLiteral()==false?"true":"false";
- keywordEl.setAttribute(KEYWORD_LITERAL_ATTR, regex);
+ String literal = keyword.isLiteral()?"true":"false";
+ keywordEl.setAttribute(KEYWORD_LITERAL_ATTR, literal);
keywordEl.setTextContent(keyword.getQuery());
listEl.appendChild(keywordEl);
}
@@ -321,9 +321,9 @@ public class KeywordSearchListsXML {
final int numKeywords = wordsNList.getLength();
for (int j = 0; j < numKeywords; ++j) {
Element wordEl = (Element) wordsNList.item(j);
- String regex = wordEl.getAttribute(KEYWORD_LITERAL_ATTR);
- boolean isRegex = regex.equals("true");
- words.add(new Keyword(wordEl.getTextContent(), isRegex));
+ String literal = wordEl.getAttribute(KEYWORD_LITERAL_ATTR);
+ boolean isLiteral = literal.equals("true");
+ words.add(new Keyword(wordEl.getTextContent(), isLiteral));
}
theLists.put(name, list);
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.form b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.form
index 62662e5a8b..4b192dd6ac 100755
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.form
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.form
@@ -57,7 +57,34 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -68,135 +95,137 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.java
index 126e9e822b..6f4296f179 100755
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSimpleTopComponent.java
@@ -25,6 +25,10 @@ import java.util.logging.Logger;
import javax.swing.JMenuItem;
import org.openide.windows.TopComponent;
+/**
+ * Top component for Simple keyword search
+ *
+ */
public class KeywordSearchSimpleTopComponent extends TopComponent implements KeywordSearchTopComponentInterface {
private Logger logger = Logger.getLogger(KeywordSearchSimpleTopComponent.class.getName());
@@ -77,18 +81,20 @@ public class KeywordSearchSimpleTopComponent extends TopComponent implements Key
// //GEN-BEGIN:initComponents
private void initComponents() {
+ mainScrollPane = new javax.swing.JScrollPane();
+ mainPanel = new javax.swing.JPanel();
+ filesIndexedValLabel = new javax.swing.JLabel();
rightClickMenu = new javax.swing.JPopupMenu();
cutMenuItem = new javax.swing.JMenuItem();
copyMenuItem = new javax.swing.JMenuItem();
pasteMenuItem = new javax.swing.JMenuItem();
selectAllMenuItem = new javax.swing.JMenuItem();
filesIndexedNameLabel = new javax.swing.JLabel();
- filesIndexedValLabel = new javax.swing.JLabel();
- titleLabel = new javax.swing.JLabel();
searchPanel = new javax.swing.JPanel();
queryTextField = new javax.swing.JTextField();
chRegex = new javax.swing.JCheckBox();
searchButton = new javax.swing.JButton();
+ titleLabel = new javax.swing.JLabel();
cutMenuItem.setText(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchSimpleTopComponent.cutMenuItem.text")); // NOI18N
rightClickMenu.add(cutMenuItem);
@@ -104,12 +110,13 @@ public class KeywordSearchSimpleTopComponent extends TopComponent implements Key
setAutoscrolls(true);
- filesIndexedNameLabel.setText(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchSimpleTopComponent.filesIndexedNameLabel.text")); // NOI18N
+ mainScrollPane.setPreferredSize(new java.awt.Dimension(351, 249));
+
+ mainPanel.setPreferredSize(new java.awt.Dimension(351, 249));
filesIndexedValLabel.setText(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchSimpleTopComponent.filesIndexedValLabel.text")); // NOI18N
- titleLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
- titleLabel.setText(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchSimpleTopComponent.titleLabel.text")); // NOI18N
+ filesIndexedNameLabel.setText(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchSimpleTopComponent.filesIndexedNameLabel.text")); // NOI18N
searchPanel.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
@@ -154,41 +161,55 @@ public class KeywordSearchSimpleTopComponent extends TopComponent implements Key
.addContainerGap())
);
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
- this.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(filesIndexedNameLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(filesIndexedValLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(titleLabel)))
- .addGroup(layout.createSequentialGroup()
- .addGap(20, 20, 20)
+ titleLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
+ titleLabel.setText(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchSimpleTopComponent.titleLabel.text")); // NOI18N
+
+ javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
+ mainPanel.setLayout(mainPanelLayout);
+ mainPanelLayout.setHorizontalGroup(
+ mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addComponent(filesIndexedNameLabel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(filesIndexedValLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(titleLabel)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addGap(10, 10, 10)
.addComponent(searchPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addContainerGap(93, Short.MAX_VALUE))
+ .addGap(84, 84, 84))
);
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(12, 12, 12)
+ mainPanelLayout.setVerticalGroup(
+ mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(mainPanelLayout.createSequentialGroup()
+ .addContainerGap()
.addComponent(titleLabel)
.addGap(18, 18, 18)
.addComponent(searchPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(23, 23, 23)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(filesIndexedNameLabel)
.addComponent(filesIndexedValLabel))
- .addContainerGap(92, Short.MAX_VALUE))
+ .addContainerGap(94, Short.MAX_VALUE))
);
- filesIndexedNameLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchTopComponent.filesIndexedNameLabel.AccessibleContext.accessibleName")); // NOI18N
filesIndexedValLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchTopComponent.filesIndexedValLabel.AccessibleContext.accessibleName")); // NOI18N
+ filesIndexedNameLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(KeywordSearchSimpleTopComponent.class, "KeywordSearchTopComponent.filesIndexedNameLabel.AccessibleContext.accessibleName")); // NOI18N
+
+ mainScrollPane.setViewportView(mainPanel);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)
+ );
}// //GEN-END:initComponents
private void chRegexActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chRegexActionPerformed
@@ -205,6 +226,8 @@ public class KeywordSearchSimpleTopComponent extends TopComponent implements Key
private javax.swing.JMenuItem cutMenuItem;
private javax.swing.JLabel filesIndexedNameLabel;
private javax.swing.JLabel filesIndexedValLabel;
+ private javax.swing.JPanel mainPanel;
+ private javax.swing.JScrollPane mainScrollPane;
private javax.swing.JMenuItem pasteMenuItem;
private javax.swing.JTextField queryTextField;
private javax.swing.JPopupMenu rightClickMenu;
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchTabsTopComponent.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchTabsTopComponent.java
index bf14763c70..75831edb1c 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchTabsTopComponent.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchTabsTopComponent.java
@@ -49,7 +49,7 @@ public final class KeywordSearchTabsTopComponent extends TopComponent implements
private Logger logger = Logger.getLogger(KeywordSearchTabsTopComponent.class.getName());
private PropertyChangeListener serverChangeListener;
- public enum TABS{Simple, List, Lists, History};
+ public enum TABS{Simple, List, History};
public KeywordSearchTabsTopComponent() {
initComponents();
@@ -93,7 +93,7 @@ public final class KeywordSearchTabsTopComponent extends TopComponent implements
private void initTabs() {
tabs.addTab(TABS.Simple.name(), null, new KeywordSearchSimpleTopComponent(), "Single keyword or regex search");
tabs.addTab(TABS.List.name(), null, new KeywordSearchListTopComponent(), "Search for or load a saved list of keywords.");
- tabs.addTab(TABS.Lists.name(), null, new KeywordSearchListImportExportTopComponent(), "Manage (import, export, delete) lists of keywords.");
+ //tabs.addTab(TABS.Lists.name(), null, new KeywordSearchListImportExportTopComponent(), "Manage (import, export, delete) lists of keywords.");
//tabs.addTab(TABS.History.name(), null, new KeywordSearchHistoryTopComponent(), "Review keyword search history and saved search results."); //TODO
}