Ingest message inbox: add right click action for copy, select all

Keyword search: single regex search fix for simplified api
This commit is contained in:
adam-m 2012-04-04 21:34:07 -04:00
parent 3d965084f0
commit abb2b513c2
4 changed files with 60 additions and 4 deletions

View File

@ -28,3 +28,5 @@ IngestDialogPanel.advancedButton.text=Advanced
IngestMessageDetailsPanel.messageDetailsPane.contentType=text/html IngestMessageDetailsPanel.messageDetailsPane.contentType=text/html
IngestMessageDetailsPanel.messageDetailsPane.toolTipText= IngestMessageDetailsPanel.messageDetailsPane.toolTipText=
IngestMessagesToolbar.toolTipText= IngestMessagesToolbar.toolTipText=
IngestMessageDetailsPanel.copyMenuItem.text=Copy
IngestMessageDetailsPanel.selectAllMenuItem.text=Select All

View File

@ -1,6 +1,30 @@
<?xml version="1.1" encoding="UTF-8" ?> <?xml version="1.1" encoding="UTF-8" ?>
<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"> <Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<NonVisualComponents>
<Container class="javax.swing.JPopupMenu" name="rightClickMenu">
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
<Property name="useNullLayout" type="boolean" value="true"/>
</Layout>
<SubComponents>
<MenuItem class="javax.swing.JMenuItem" name="copyMenuItem">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/ingest/Bundle.properties" key="IngestMessageDetailsPanel.copyMenuItem.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</MenuItem>
<MenuItem class="javax.swing.JMenuItem" name="selectAllMenuItem">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/ingest/Bundle.properties" key="IngestMessageDetailsPanel.selectAllMenuItem.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</MenuItem>
</SubComponents>
</Container>
</NonVisualComponents>
<AuxValues> <AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>

View File

@ -19,8 +19,11 @@
package org.sleuthkit.autopsy.ingest; package org.sleuthkit.autopsy.ingest;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import javax.swing.JMenuItem;
import org.openide.util.Lookup; import org.openide.util.Lookup;
import org.sleuthkit.autopsy.corecomponentinterfaces.BlackboardResultViewer; import org.sleuthkit.autopsy.corecomponentinterfaces.BlackboardResultViewer;
import org.sleuthkit.autopsy.ingest.IngestMessagePanel.IngestMessageGroup; import org.sleuthkit.autopsy.ingest.IngestMessagePanel.IngestMessageGroup;
@ -62,6 +65,22 @@ class IngestMessageDetailsPanel extends javax.swing.JPanel {
} }
}); });
//right click
messageDetailsPane.setComponentPopupMenu(rightClickMenu);
ActionListener actList = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
JMenuItem jmi = (JMenuItem) e.getSource();
if(jmi.equals(copyMenuItem))
messageDetailsPane.copy();
else if(jmi.equals(selectAllMenuItem))
messageDetailsPane.selectAll();
}
};
copyMenuItem.addActionListener(actList);
selectAllMenuItem.addActionListener(actList);
} }
/** This method is called from within the constructor to /** This method is called from within the constructor to
@ -73,12 +92,21 @@ class IngestMessageDetailsPanel extends javax.swing.JPanel {
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() { private void initComponents() {
rightClickMenu = new javax.swing.JPopupMenu();
copyMenuItem = new javax.swing.JMenuItem();
selectAllMenuItem = new javax.swing.JMenuItem();
backButton = new javax.swing.JButton(); backButton = new javax.swing.JButton();
viewContentButton = new javax.swing.JButton(); viewContentButton = new javax.swing.JButton();
viewArtifactButton = new javax.swing.JButton(); viewArtifactButton = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane(); jScrollPane1 = new javax.swing.JScrollPane();
messageDetailsPane = new javax.swing.JTextPane(); messageDetailsPane = new javax.swing.JTextPane();
copyMenuItem.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.copyMenuItem.text")); // NOI18N
rightClickMenu.add(copyMenuItem);
selectAllMenuItem.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.selectAllMenuItem.text")); // NOI18N
rightClickMenu.add(selectAllMenuItem);
backButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/ingest/arrow_left.gif"))); // NOI18N backButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/ingest/arrow_left.gif"))); // NOI18N
backButton.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.backButton.text")); // NOI18N backButton.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.backButton.text")); // NOI18N
backButton.setAlignmentY(0.0F); backButton.setAlignmentY(0.0F);
@ -156,8 +184,11 @@ class IngestMessageDetailsPanel extends javax.swing.JPanel {
}//GEN-LAST:event_backButtonActionPerformed }//GEN-LAST:event_backButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables // Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton backButton; private javax.swing.JButton backButton;
private javax.swing.JMenuItem copyMenuItem;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextPane messageDetailsPane; private javax.swing.JTextPane messageDetailsPane;
private javax.swing.JPopupMenu rightClickMenu;
private javax.swing.JMenuItem selectAllMenuItem;
private javax.swing.JButton viewArtifactButton; private javax.swing.JButton viewArtifactButton;
private javax.swing.JButton viewContentButton; private javax.swing.JButton viewContentButton;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables

View File

@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.keywordsearch;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
@ -28,8 +29,6 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.TermsResponse.Term; import org.apache.solr.client.solrj.response.TermsResponse.Term;
@ -224,7 +223,7 @@ public class KeywordSearchResultFactory extends ChildFactory<KeyValueQuery> {
//execute the query and get fscontents matching //execute the query and get fscontents matching
Map<String, List<FsContent>> tcqRes = tcq.performQuery(); Map<String, List<FsContent>> tcqRes = tcq.performQuery();
List<FsContent> fsContents = new ArrayList<FsContent>(); Set<FsContent> fsContents = new HashSet<FsContent>();
for (String key : tcqRes.keySet()) { for (String key : tcqRes.keySet()) {
fsContents.addAll(tcqRes.get(key)); fsContents.addAll(tcqRes.get(key));
} }
@ -372,7 +371,7 @@ public class KeywordSearchResultFactory extends ChildFactory<KeyValueQuery> {
filesQuery.escape(); filesQuery.escape();
Map<String, List<FsContent>> matchesRes = filesQuery.performQuery(); Map<String, List<FsContent>> matchesRes = filesQuery.performQuery();
List<FsContent> matches = new ArrayList<FsContent>(); Set<FsContent> matches = new HashSet<FsContent>();
for (String key : matchesRes.keySet()) { for (String key : matchesRes.keySet()) {
matches.addAll(matchesRes.get(key)); matches.addAll(matchesRes.get(key));
} }