updates to make IngestMessagePanel table model thread-safe

This commit is contained in:
Samuel H. Kenyon 2014-04-09 17:35:18 -04:00
parent e2d66535ab
commit 7e7f7b43bb

View File

@ -713,26 +713,26 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
messages.add(message); messages.add(message);
} }
List<IngestMessage> getMessages() { synchronized List<IngestMessage> getMessages() {
return messages; return messages;
} }
void add(IngestMessage message) { synchronized void add(IngestMessage message) {
messages.add(message); messages.add(message);
} }
//add all messages from another group //add all messages from another group
void addAll(IngestMessageGroup group) { synchronized void addAll(IngestMessageGroup group) {
for (IngestMessage m : group.getMessages()) { for (IngestMessage m : group.getMessages()) {
messages.add(m); messages.add(m);
} }
} }
int getCount() { synchronized int getCount() {
return messages.size(); return messages.size();
} }
String getDetails() { synchronized String getDetails() {
StringBuilder b = new StringBuilder(""); StringBuilder b = new StringBuilder("");
for (IngestMessage m : messages) { for (IngestMessage m : messages) {
String details = m.getDetails(); String details = m.getDetails();
@ -751,7 +751,7 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
* return color corresp to priority * return color corresp to priority
* @return * @return
*/ */
Color getColor() { synchronized Color getColor() {
int count = messages.size(); int count = messages.size();
if (count == 1) { if (count == 1) {
return VERY_HIGH_PRI_COLOR; return VERY_HIGH_PRI_COLOR;
@ -769,7 +769,7 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
* used for chrono sort * used for chrono sort
* @return * @return
*/ */
Date getDatePosted() { synchronized Date getDatePosted() {
return messages.get(messages.size() - 1).getDatePosted(); return messages.get(messages.size() - 1).getDatePosted();
} }
@ -777,35 +777,35 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
* get subject of the first message * get subject of the first message
* @return * @return
*/ */
String getSubject() { synchronized String getSubject() {
return messages.get(0).getSubject(); return messages.get(0).getSubject();
} }
/* /*
* return unique key, should be the same for all msgs * return unique key, should be the same for all msgs
*/ */
String getUniqueKey() { synchronized String getUniqueKey() {
return messages.get(0).getUniqueKey(); return messages.get(0).getUniqueKey();
} }
/* /*
* return source module, should be the same for all msgs * return source module, should be the same for all msgs
*/ */
String getSource() { synchronized String getSource() {
return messages.get(0).getSource(); return messages.get(0).getSource();
} }
/* /*
* return data of the first message * return data of the first message
*/ */
BlackboardArtifact getData() { synchronized BlackboardArtifact getData() {
return messages.get(0).getData(); return messages.get(0).getData();
} }
/* /*
* return message type, should be the same for all msgs * return message type, should be the same for all msgs
*/ */
IngestMessage.MessageType getMessageType() { synchronized IngestMessage.MessageType getMessageType() {
return messages.get(0).getMessageType(); return messages.get(0).getMessageType();
} }
} }
@ -870,16 +870,17 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
cell.setFont(new Font("", Font.PLAIN, 16)); cell.setFont(new Font("", Font.PLAIN, 16));
final IngestMessageGroup messageGroup = tableModel.getMessageGroup(row); final IngestMessageGroup messageGroup = tableModel.getMessageGroup(row);
MessageType mt = messageGroup.getMessageType(); if (messageGroup != null) {
if (mt == MessageType.ERROR) { MessageType mt = messageGroup.getMessageType();
cell.setBackground(ERROR_COLOR); if (mt == MessageType.ERROR) {
} else if (mt == MessageType.WARNING) { cell.setBackground(ERROR_COLOR);
cell.setBackground(Color.orange); } else if (mt == MessageType.WARNING) {
} else { cell.setBackground(Color.orange);
//cell.setBackground(table.getBackground()); } else {
cell.setBackground(messageGroup.getColor()); //cell.setBackground(table.getBackground());
cell.setBackground(messageGroup.getColor());
}
} }
return cell; return cell;
} }
} }
@ -910,16 +911,17 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
} }
final IngestMessageGroup messageGroup = tableModel.getMessageGroup(row); final IngestMessageGroup messageGroup = tableModel.getMessageGroup(row);
MessageType mt = messageGroup.getMessageType(); if (messageGroup != null) {
if (mt == MessageType.ERROR) { MessageType mt = messageGroup.getMessageType();
cell.setBackground(ERROR_COLOR); if (mt == MessageType.ERROR) {
} else if (mt == MessageType.WARNING) { cell.setBackground(ERROR_COLOR);
cell.setBackground(Color.orange); } else if (mt == MessageType.WARNING) {
} else { cell.setBackground(Color.orange);
//cell.setBackground(table.getBackground()); } else {
cell.setBackground(messageGroup.getColor()); //cell.setBackground(table.getBackground());
cell.setBackground(messageGroup.getColor());
}
} }
return cell; return cell;
} }
} }
@ -945,14 +947,16 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
Component cell = super.getTableCellRendererComponent(table, aValue, isSelected, hasFocus, row, column); Component cell = super.getTableCellRendererComponent(table, aValue, isSelected, hasFocus, row, column);
final IngestMessageGroup messageGroup = tableModel.getMessageGroup(row); final IngestMessageGroup messageGroup = tableModel.getMessageGroup(row);
MessageType mt = messageGroup.getMessageType(); if (messageGroup != null) {
if (mt == MessageType.ERROR) { MessageType mt = messageGroup.getMessageType();
cell.setBackground(ERROR_COLOR); if (mt == MessageType.ERROR) {
} else if (mt == MessageType.WARNING) { cell.setBackground(ERROR_COLOR);
cell.setBackground(Color.orange); } else if (mt == MessageType.WARNING) {
} else { cell.setBackground(Color.orange);
//cell.setBackground(table.getBackground()); } else {
cell.setBackground(messageGroup.getColor()); //cell.setBackground(table.getBackground());
cell.setBackground(messageGroup.getColor());
}
} }
return cell; return cell;
@ -986,9 +990,11 @@ class IngestMessagePanel extends JPanel implements TableModelListener {
messageTable.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); messageTable.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
//check if has details //check if has details
IngestMessageGroup m = getMessageGroup(selected); IngestMessageGroup m = getMessageGroup(selected);
String details = m.getDetails(); if (m != null) {
if (details != null && !details.equals("")) { String details = m.getDetails();
mainPanel.showDetails(selected); if (details != null && !details.equals("")) {
mainPanel.showDetails(selected);
}
} }
messageTable.setCursor(null); messageTable.setCursor(null);
} }