ingest message filtering tweaks

This commit is contained in:
adam-m 2012-02-24 19:05:12 -05:00
parent 8d65dadf4e
commit 7a581bf487
3 changed files with 27 additions and 18 deletions

View File

@ -45,12 +45,15 @@ public class IngestMessage {
private Date datePosted;
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private IngestMessage(long ID, MessageType messageType, IngestServiceAbstract source, String subject, String detailsHtml) {
private IngestMessage(long ID, MessageType messageType, IngestServiceAbstract source, String subject, String detailsHtml, String uniqueKey) {
this.ID = ID;
this.source = source;
this.messageType = messageType;
this.subject = subject;
this.detailsHtml = detailsHtml;
if (uniqueKey == null)
this.uniqueKey = "";
else this.uniqueKey = uniqueKey;
datePosted = new Date();
}
@ -167,7 +170,7 @@ public class IngestMessage {
if (messageType == null || source == null || subject == null) {
throw new IllegalArgumentException("message type, source and subject cannot be null");
}
return new IngestMessage(ID, messageType, source, subject, detailsHtml);
return new IngestMessage(ID, messageType, source, subject, detailsHtml, null);
}
/**
@ -193,7 +196,7 @@ public class IngestMessage {
if (source == null || subject == null) {
throw new IllegalArgumentException("source and subject cannot be null");
}
return new IngestMessage(ID, MessageType.ERROR, source, subject, null);
return new IngestMessage(ID, MessageType.ERROR, source, subject, null, null);
}
/**
@ -207,7 +210,7 @@ public class IngestMessage {
if (source == null || subject == null) {
throw new IllegalArgumentException("source and subject cannot be null");
}
return new IngestMessage(ID, MessageType.WARNING, source, subject, null);
return new IngestMessage(ID, MessageType.WARNING, source, subject, null, null);
}
/**
@ -225,13 +228,12 @@ public class IngestMessage {
throw new IllegalArgumentException("source, subject, details and data cannot be null");
}
IngestMessage im = new IngestMessage(ID, MessageType.DATA, source, subject, detailsHtml);
im.uniqueKey = uniqueKey;
IngestMessage im = new IngestMessage(ID, MessageType.DATA, source, subject, detailsHtml, uniqueKey);
im.data = data;
return im;
}
static IngestMessage createManagerMessage(String subject) {
return new IngestMessage(0, MessageType.INFO, null, subject, null);
return new IngestMessage(0, MessageType.INFO, null, subject, null, null);
}
}

View File

@ -281,8 +281,8 @@ class IngestMessagePanel extends javax.swing.JPanel {
//and add to existing group or create a new group
IngestServiceAbstract service = m.getSource();
IngestMessageGroup messageGroup = null;
if (service != null) {
//not a manager message, then group
if (service != null && m.getMessageType() == IngestMessage.MessageType.DATA) {
//not a manager message, a data message, then group
final Map<String, List<IngestMessageGroup>> groups = groupings.get(service);
//groups for this uniqueness
final String uniqueness = m.getUniqueKey();
@ -315,9 +315,10 @@ class IngestMessagePanel extends javax.swing.JPanel {
IngestMessageGroup first = uniqGroups.get(0);
//one group with multiple messages
if (first.getCount() > 1) {
//had already been merged
first.add(m);
messageGroup = first;
//TODO move to bottom of table
//move to bottom of table
//remove from existing position
int toRemove = getTableEntryIndex(messageGroup);
messageData.remove(toRemove);
@ -325,12 +326,14 @@ class IngestMessagePanel extends javax.swing.JPanel {
this.fireTableRowsDeleted(toRemove, toRemove); //TODO check
} else {
//one group with one message
//create another group
messageGroup = new IngestMessageGroup(m);
uniqGroups.add(messageGroup);
}
} else {
//multiple groups with 1 msg each
//create another group, until need to merge
messageGroup = new IngestMessageGroup(m);
uniqGroups.add(messageGroup);
//add to bottom
@ -338,7 +341,7 @@ class IngestMessagePanel extends javax.swing.JPanel {
}
} else {
//manager message
//manager or non-data message
messageGroup = new IngestMessageGroup(m);
}
@ -457,7 +460,10 @@ class IngestMessagePanel extends javax.swing.JPanel {
String getDetails() {
StringBuilder b = new StringBuilder();
for (IngestMessage m : messages) {
b.append(m.getDetails());
String details = m.getDetails();
if (details == null)
details = "";
b.append(details);
b.append("<hr />");
}

View File

@ -18,8 +18,6 @@
*/
package org.sleuthkit.autopsy.keywordsearch;
import java.io.File;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@ -30,7 +28,6 @@ import java.util.logging.Logger;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.TermsResponse.Term;
import org.netbeans.api.progress.ProgressHandle;
import org.netbeans.api.progress.ProgressHandleFactory;
import org.openide.util.Cancellable;
@ -46,7 +43,6 @@ import org.sleuthkit.autopsy.keywordsearch.Ingester.IngesterException;
import org.sleuthkit.datamodel.BlackboardArtifact;
import org.sleuthkit.datamodel.BlackboardArtifact.ARTIFACT_TYPE;
import org.sleuthkit.datamodel.BlackboardAttribute;
import org.sleuthkit.datamodel.BlackboardAttribute.ATTRIBUTE_TYPE;
import org.sleuthkit.datamodel.FsContent;
import org.sleuthkit.datamodel.SleuthkitCase;
import org.sleuthkit.datamodel.TskException;
@ -524,12 +520,16 @@ public final class KeywordSearchIngestService implements IngestServiceFsContent
//final int hitFiles = newResults.size();
subjectSb.append("Keyword hit: ").append("<");
String uniqueKey = null;
BlackboardAttribute attr = res.getAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD.getTypeID());
if (attr != null) {
subjectSb.append(attr.getValueString());
final String keyword = attr.getValueString();
subjectSb.append(keyword);
uniqueKey = keyword;
}
subjectSb.append(">");
String uniqueKey = queryStr;
//String uniqueKey = queryStr;
//details
//hit
@ -545,6 +545,7 @@ public final class KeywordSearchIngestService implements IngestServiceFsContent
detailsSb.append("<br />");
}
}
//file
detailsSb.append("File: ");
detailsSb.append(hitFile.getParentPath()).append(hitFile.getName());