diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties index 482cf60000..3c858798ba 100644 --- a/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties +++ b/Ingest/src/org/sleuthkit/autopsy/ingest/Bundle.properties @@ -28,3 +28,5 @@ IngestDialogPanel.advancedButton.text=Advanced IngestMessageDetailsPanel.messageDetailsPane.contentType=text/html IngestMessageDetailsPanel.messageDetailsPane.toolTipText= IngestMessagesToolbar.toolTipText= +IngestMessageDetailsPanel.copyMenuItem.text=Copy +IngestMessageDetailsPanel.selectAllMenuItem.text=Select All diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.form b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.form index 2d893feff1..be1bc1e202 100644 --- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.form +++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.form @@ -1,6 +1,30 @@
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java index 8afb537e55..6dcfdea207 100644 --- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java +++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java @@ -19,8 +19,11 @@ package org.sleuthkit.autopsy.ingest; import java.awt.Cursor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import javax.swing.JMenuItem; import org.openide.util.Lookup; import org.sleuthkit.autopsy.corecomponentinterfaces.BlackboardResultViewer; 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 @@ -73,12 +92,21 @@ class IngestMessageDetailsPanel extends javax.swing.JPanel { // //GEN-BEGIN:initComponents private void initComponents() { + rightClickMenu = new javax.swing.JPopupMenu(); + copyMenuItem = new javax.swing.JMenuItem(); + selectAllMenuItem = new javax.swing.JMenuItem(); backButton = new javax.swing.JButton(); viewContentButton = new javax.swing.JButton(); viewArtifactButton = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); 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.setText(org.openide.util.NbBundle.getMessage(IngestMessageDetailsPanel.class, "IngestMessageDetailsPanel.backButton.text")); // NOI18N backButton.setAlignmentY(0.0F); @@ -156,8 +184,11 @@ class IngestMessageDetailsPanel extends javax.swing.JPanel { }//GEN-LAST:event_backButtonActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton backButton; + private javax.swing.JMenuItem copyMenuItem; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextPane messageDetailsPane; + private javax.swing.JPopupMenu rightClickMenu; + private javax.swing.JMenuItem selectAllMenuItem; private javax.swing.JButton viewArtifactButton; private javax.swing.JButton viewContentButton; // End of variables declaration//GEN-END:variables diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java index e114943314..40e68641d8 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java @@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.keywordsearch; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -28,8 +29,6 @@ import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import javax.swing.SwingUtilities; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.response.TermsResponse.Term; @@ -224,7 +223,7 @@ public class KeywordSearchResultFactory extends ChildFactory { //execute the query and get fscontents matching Map> tcqRes = tcq.performQuery(); - List fsContents = new ArrayList(); + Set fsContents = new HashSet(); for (String key : tcqRes.keySet()) { fsContents.addAll(tcqRes.get(key)); } @@ -372,7 +371,7 @@ public class KeywordSearchResultFactory extends ChildFactory { filesQuery.escape(); Map> matchesRes = filesQuery.performQuery(); - List matches = new ArrayList(); + Set matches = new HashSet(); for (String key : matchesRes.keySet()) { matches.addAll(matchesRes.get(key)); }