Do not show details if they are not set,

html tags handled in create message(), rather than client
Index message add details.
This commit is contained in:
adam-m 2012-02-23 16:55:53 -05:00
parent 0ea28b766a
commit 0c3578f1ba
3 changed files with 77 additions and 69 deletions

View File

@ -35,7 +35,6 @@ public class IngestMessage {
DATA, INFO, WARNING, ERROR
};
private long ID;
private MessageType messageType;
private IngestServiceAbstract source;
@ -94,13 +93,17 @@ public class IngestMessage {
sb.append(Long.toString(ID)).append(": ");
sb.append("type: ").append(messageType.name());
if (source != null) //can be null for manager messages
{
sb.append(" source: ").append(source.getName());
}
sb.append(" date: ").append(dateFormat.format(datePosted));
sb.append(" subject: ").append(subject);
if (detailsHtml != null)
if (detailsHtml != null) {
sb.append(" details: ").append(detailsHtml);
if (data != null)
}
if (data != null) {
sb.append(" data: ").append(data.toString()).append(' ');
}
return sb.toString();
}
@ -150,10 +153,6 @@ public class IngestMessage {
return hash;
}
//factory methods
/**
* Create a simple message with a subject only
@ -161,12 +160,18 @@ public class IngestMessage {
* @param messageType message type
* @param source originating service
* @param subject message subject to be displayed
* @param details message details to be displayed
* @param details message details to be displayed, or null
* @return
*/
public static IngestMessage createMessage(long ID, MessageType messageType, IngestServiceAbstract source, String subject, String detailsHtml) {
if (messageType == null || source == null || subject == null) {
throw new IllegalArgumentException("message type, source and subject cannot be null");
}
//add html tags
if (detailsHtml != null) {
StringBuilder htmlB = new StringBuilder();
htmlB.append("<html>").append(detailsHtml).append("</html>");
detailsHtml = htmlB.toString();
}
return new IngestMessage(ID, messageType, source, subject, detailsHtml);
}
@ -202,7 +207,7 @@ public class IngestMessage {
* @param ID ID of the message, unique in the context of module that generated it
* @param source originating service
* @param subject message subject to be displayed
* @param detailsHtml html formatted detailed message, for instance, a human-readable representation of the data.
* @param detailsHtml html formatted detailed message (without leading and closing <html> tags), for instance, a human-readable representation of the data.
* @param uniqueKey unique key determining uniqueness of the message, or null. Helps grouping similar messages and determine their importance. Subsequent messages with the same uniqueKey will be treated with lower priority.
* @param data data blackboard artifact associated with the message, the same as fired in ServiceDataEvent by the service
* @return
@ -211,6 +216,11 @@ public class IngestMessage {
if (source == null || subject == null || detailsHtml == null || data == null) {
throw new IllegalArgumentException("source, subject, details and data cannot be null");
}
//add html tags
StringBuilder htmlB = new StringBuilder();
htmlB.append("<html>").append(detailsHtml).append("</html>");
detailsHtml = htmlB.toString();
IngestMessage im = new IngestMessage(ID, MessageType.DATA, source, subject, detailsHtml);
im.uniqueKey = uniqueKey;
im.data = data;
@ -220,5 +230,4 @@ public class IngestMessage {
static IngestMessage createManagerMessage(String subject) {
return new IngestMessage(0, MessageType.INFO, null, subject, null);
}
}

View File

@ -60,8 +60,9 @@ class IngestMessagePanel extends javax.swing.JPanel {
}
IngestMessage getSelectedMessage() {
if (lastRowSelected < 0)
if (lastRowSelected < 0) {
return null;
}
return tableModel.getMessage(lastRowSelected);
}
@ -112,7 +113,6 @@ class IngestMessagePanel extends javax.swing.JPanel {
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable messageTable;
@ -159,7 +159,6 @@ class IngestMessagePanel extends javax.swing.JPanel {
messageTable.setSize(d);
}
public void addMessage(IngestMessage m) {
tableModel.addMessage(m);
//autoscroll
@ -175,7 +174,6 @@ class IngestMessagePanel extends javax.swing.JPanel {
lastRowSelected = rowNumber;
}
private class MessageTableModel extends AbstractTableModel {
//data
@ -383,12 +381,16 @@ class IngestMessagePanel extends javax.swing.JPanel {
}
if (selected != -1) {
setVisited(selected);
mainPanel.showDetails(selected);
//check if has details
IngestMessage m = getMessage(selected);
String details = m.getDetails();
if (details != null && !details.equals("")) {
mainPanel.showDetails(selected);
}
}
}
}
}
}

View File

@ -266,11 +266,10 @@ public final class KeywordSearchIngestService implements IngestServiceFsContent
}
StringBuilder msg = new StringBuilder();
msg.append("Keyword Indexing Completed, ");
msg.append("indexed files: ").append(indexed).append(", indexed strings: ").append(indexed_extr);
msg.append(", skipped files: ").append(skipped);
msg.append("Indexed files: ").append(indexed).append("<br />Indexed strings: ").append(indexed_extr);
msg.append("<br />Skipped files: ").append(skipped).append("<br />");
managerProxy.postMessage(IngestMessage.createMessage(++messageID, MessageType.INFO, this, msg.toString()));
managerProxy.postMessage(IngestMessage.createMessage(++messageID, MessageType.INFO, this, "Keyword Indexing Completed", msg.toString()));
}
@ -534,7 +533,6 @@ public final class KeywordSearchIngestService implements IngestServiceFsContent
//details
//hit
detailsSb.append("<html>");
detailsSb.append("Keyword hit: ");
detailsSb.append(attr.getValueString());
detailsSb.append("<br />");
@ -559,7 +557,6 @@ public final class KeywordSearchIngestService implements IngestServiceFsContent
detailsSb.append("<br />");
}
detailsSb.append("</html>");
managerProxy.postMessage(IngestMessage.createDataMessage(++messageID, instance, subjectSb.toString(), detailsSb.toString(), uniqueKey, res.getArtifact()));
}
} //for each file hit