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 }