Author: sdeboy
Date: Sat Oct 16 07:06:20 2010
New Revision: 1023198
URL: http://svn.apache.org/viewvc?rev=1023198&view=rev
Log:
Ensure colors in both search table and primary table are updated based on color
rules
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
URL:
http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java?rev=1023198&r1=1023197&r2=1023198&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
(original)
+++
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
Sat Oct 16 07:06:20 2010
@@ -260,7 +260,7 @@ public class LogPanel extends DockablePa
private Rule clearTableExpressionRule;
private int lowerPanelDividerLocation;
private EventContainer searchModel;
- private JSortTable searchTable;
+ private final JSortTable searchTable;
private TableColorizingRenderer searchRenderer;
private ToggleToolTips mainToggleToolTips;
private ToggleToolTips searchToggleToolTips;
@@ -270,6 +270,7 @@ public class LogPanel extends DockablePa
private TableCellEditor markerCellEditor;
private JToolBar detailToolbar;
private boolean searchResultsDisplayed;
+ private ColorizedEventAndSearchMatchThumbnail
colorizedEventAndSearchMatchThumbnail;
/**
* Creates a new LogPanel object. If a LogPanel with this identifier has
@@ -841,12 +842,23 @@ public class LogPanel extends DockablePa
"colorrule",
new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
- if (table != null) {
- table.repaint();
- }
- if (searchTable != null) {
- searchTable.repaint();
+ for (Iterator iter =
tableModel.getAllEvents().iterator();iter.hasNext();) {
+ LoggingEventWrapper loggingEventWrapper =
(LoggingEventWrapper)iter.next();
+
loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()),
colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));
}
+
+ for (Iterator iter =
searchModel.getAllEvents().iterator();iter.hasNext();) {
+ LoggingEventWrapper loggingEventWrapper =
(LoggingEventWrapper)iter.next();
+
loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()),
colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));
+ }
+ colorizedEventAndSearchMatchThumbnail.configureColors();
+ lowerPanel.invalidate();
+ lowerPanel.revalidate();
+ lowerPanel.repaint();
+
+ searchTable.invalidate();
+ searchTable.revalidate();
+ searchTable.repaint();
}
});
@@ -1222,7 +1234,8 @@ public class LogPanel extends DockablePa
JPanel rightThumbNailPanel = new JPanel();
rightThumbNailPanel.setLayout(new BoxLayout(rightThumbNailPanel,
BoxLayout.Y_AXIS));
rightThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
- rightThumbNailPanel.add(new ColorizedEventAndSearchMatchThumbnail());
+ colorizedEventAndSearchMatchThumbnail = new
ColorizedEventAndSearchMatchThumbnail();
+ rightThumbNailPanel.add(colorizedEventAndSearchMatchThumbnail);
rightThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
rightPanel.add(rightThumbNailPanel);
//set thumbnail width to be a bit narrower than scrollbar width
@@ -3775,15 +3788,11 @@ public class LogPanel extends DockablePa
}
}
+ //a listener receiving color updates needs to call configureColors on this
class
private class ColorizedEventAndSearchMatchThumbnail extends
AbstractEventMatchThumbnail {
public ColorizedEventAndSearchMatchThumbnail() {
super();
configureColors();
- colorizer.addPropertyChangeListener(new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
- configureColors();
- }
- });
}
boolean primaryMatches(ThumbnailLoggingEventWrapper wrapper) {
@@ -3801,7 +3810,6 @@ public class LogPanel extends DockablePa
int i=0;
for (Iterator iter =
tableModel.getFilteredEvents().iterator();iter.hasNext();) {
LoggingEventWrapper loggingEventWrapper =
(LoggingEventWrapper) iter.next();
-
loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()),
colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));
ThumbnailLoggingEventWrapper wrapper = new
ThumbnailLoggingEventWrapper(i, loggingEventWrapper);
if (secondaryMatches(wrapper)) {
secondaryList.add(wrapper);