Author: sdeboy
Date: Sat Oct 16 05:29:57 2010
New Revision: 1023184
URL: http://svn.apache.org/viewvc?rev=1023184&view=rev
Log:
Minor layout fixes
- Added space around search table so it is the same width as the primary table
- added 'MESSAGE' entry to receiver config default format drop down (a defaul that can be used no matter what the file format is)
- Updated the left and right thumbnail drawing logic so that it stays within the bounds of the table
- Fixed a bug where the color rules were being evaluated before the log4jid property was set (was preventing color rules that used prop.log4jid from taking effect)
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java?rev=1023184&r1=1023183&r2=1023184&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java Sat Oct 16 05:29:57 2010
@@ -606,14 +606,6 @@ class ChainsawCyclicBufferTableModel ext
}
public boolean isAddRow(LoggingEventWrapper loggingEventWrapper) {
- loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()), colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));
- Rule findRule = colorizer.getFindRule();
- if (findRule != null) {
- loggingEventWrapper.evaluateSearchRule(colorizer.getFindRule());
- }
-
- boolean rowAdded = false;
-
Object id = loggingEventWrapper.getLoggingEvent().getProperty(Constants.LOG4J_ID_KEY);
//only set the property if it doesn't already exist
@@ -622,6 +614,14 @@ class ChainsawCyclicBufferTableModel ext
loggingEventWrapper.setProperty(Constants.LOG4J_ID_KEY, id.toString());
}
+ loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()), colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));
+ Rule findRule = colorizer.getFindRule();
+ if (findRule != null) {
+ loggingEventWrapper.evaluateSearchRule(colorizer.getFindRule());
+ }
+
+ boolean rowAdded = false;
+
/**
* If we're in cyclic mode and over budget on the size, the addition of a new event will
* cause the oldest event to fall off the cliff. We need to remove that events ID from the
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=1023184&r1=1023183&r2=1023184&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 05:29:57 2010
@@ -1216,7 +1216,12 @@ public class LogPanel extends DockablePa
JPanel rightPanel = new JPanel();
rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.Y_AXIS));
- JPanel rightThumbNailPanel = new ColorizedEventAndSearchMatchThumbnail();
+
+ JPanel rightThumbNailPanel = new JPanel();
+ rightThumbNailPanel.setLayout(new BoxLayout(rightThumbNailPanel, BoxLayout.Y_AXIS));
+ rightThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
+ rightThumbNailPanel.add(new ColorizedEventAndSearchMatchThumbnail());
+ rightThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
rightPanel.add(rightThumbNailPanel);
//set thumbnail width to be a bit narrower than scrollbar width
if (scrollBarWidth != null) {
@@ -1226,8 +1231,14 @@ public class LogPanel extends DockablePa
JPanel leftPanel = new JPanel();
leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.Y_AXIS));
- JPanel leftThumbNailPanel = new EventTimeDeltaMatchThumbnail();
+
+ JPanel leftThumbNailPanel = new JPanel();
+ leftThumbNailPanel.setLayout(new BoxLayout(leftThumbNailPanel, BoxLayout.Y_AXIS));
+ leftThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
+ leftThumbNailPanel.add(new EventTimeDeltaMatchThumbnail());
+ leftThumbNailPanel.add(Box.createVerticalStrut(scrollBarWidth.intValue()));
leftPanel.add(leftThumbNailPanel);
+
//set thumbnail width to be a bit narrower than scrollbar width
if (scrollBarWidth != null) {
leftThumbNailPanel.setPreferredSize(new Dimension(scrollBarWidth.intValue() -4, -1));
@@ -2486,6 +2497,13 @@ public class LogPanel extends DockablePa
//if pref is set, always update detail panel to contain search results
detailPanel.removeAll();
detailPanel.add(searchPane, BorderLayout.CENTER);
+ Integer scrollBarWidth = (Integer) UIManager.get("ScrollBar.width");
+ JPanel leftSpacePanel = new JPanel();
+ leftSpacePanel.setPreferredSize(new Dimension(scrollBarWidth.intValue() -4, -1));
+ JPanel rightSpacePanel = new JPanel();
+ rightSpacePanel.setPreferredSize(new Dimension(scrollBarWidth.intValue() -4, -1));
+ detailPanel.add(leftSpacePanel, BorderLayout.WEST);
+ detailPanel.add(rightSpacePanel, BorderLayout.EAST);
detailPanel.invalidate();
detailPanel.revalidate();
detailPanel.repaint();
@@ -3701,17 +3719,13 @@ public class LogPanel extends DockablePa
public void paintComponent(Graphics g) {
super.paintComponent(g);
- Point topAndBottomOffset = getScrollBarOffsets();
- int topOffset = topAndBottomOffset.x;
- int bottomOffset = topAndBottomOffset.y;
-
int rowCount = table.getRowCount();
if (rowCount == 0) {
return;
}
//use event pane height as reference height - max component height will be extended by event height if
// last row is rendered, so subtract here
- int height = eventsPane.getHeight() - topOffset - bottomOffset;
+ int height = eventsPane.getHeight();
int maxHeight = Math.min(maxEventHeight, (height / rowCount));
int minHeight = Math.max(1, maxHeight);
int componentHeight = height - minHeight;
@@ -3723,7 +3737,7 @@ public class LogPanel extends DockablePa
if (primaryMatches(wrapper)) {
float ratio = (wrapper.rowNum / (float)rowCount);
// System.out.println("error - ratio: " + ratio + ", component height: " + componentHeight);
- int verticalLocation = (int) (componentHeight * ratio) + topOffset;
+ int verticalLocation = (int) (componentHeight * ratio);
int startX = 1;
int width = getWidth() - (startX * 2);
@@ -3786,17 +3800,13 @@ public class LogPanel extends DockablePa
public void paintComponent(Graphics g) {
super.paintComponent(g);
- Point topAndBottomOffset = getScrollBarOffsets();
- int topOffset = topAndBottomOffset.x;
- int bottomOffset = topAndBottomOffset.y;
-
int rowCount = table.getRowCount();
if (rowCount == 0) {
return;
}
//use event pane height as reference height - max component height will be extended by event height if
// last row is rendered, so subtract here
- int height = eventsPane.getHeight() - topOffset - bottomOffset;
+ int height = eventsPane.getHeight();
int maxHeight = Math.min(maxEventHeight, (height / rowCount));
int minHeight = Math.max(1, maxHeight);
int componentHeight = height - minHeight;
@@ -3809,7 +3819,7 @@ public class LogPanel extends DockablePa
if (wrapper.loggingEventWrapper.getLoggingEvent().getLevel().toInt() < Level.WARN.toInt() && wrapper.loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE) == null) {
float ratio = (wrapper.rowNum / (float)rowCount);
// System.out.println("error - ratio: " + ratio + ", component height: " + componentHeight);
- int verticalLocation = (int) (componentHeight * ratio) + topOffset;
+ int verticalLocation = (int) (componentHeight * ratio);
int startX = 1;
int width = getWidth() - (startX * 2);
@@ -3827,7 +3837,7 @@ public class LogPanel extends DockablePa
if (wrapper.loggingEventWrapper.getLoggingEvent().getLevel().toInt() >= Level.WARN.toInt() || wrapper.loggingEventWrapper.getLoggingEvent().getProperty(ChainsawConstants.LOG4J_MARKER_COL_NAME_LOWERCASE) != null) {
float ratio = (wrapper.rowNum / (float)rowCount);
// System.out.println("error - ratio: " + ratio + ", component height: " + componentHeight);
- int verticalLocation = (int) (componentHeight * ratio) + topOffset;
+ int verticalLocation = (int) (componentHeight * ratio);
int startX = 1;
int width = getWidth() - (startX * 2);
@@ -3847,7 +3857,7 @@ public class LogPanel extends DockablePa
ThumbnailLoggingEventWrapper wrapper = (ThumbnailLoggingEventWrapper)iter.next();
float ratio = (wrapper.rowNum / (float)rowCount);
// System.out.println("warning - ratio: " + ratio + ", component height: " + componentHeight);
- int verticalLocation = (int) (componentHeight * ratio) + topOffset;
+ int verticalLocation = (int) (componentHeight * ratio);
int startX = 1;
int width = getWidth() - (startX * 2);
@@ -4007,15 +4017,10 @@ public class LogPanel extends DockablePa
protected ThumbnailLoggingEventWrapper getEventWrapperAtPosition(int yPosition) {
int rowCount = table.getRowCount();
- Point offsets = getScrollBarOffsets();
- int topOffset = offsets.x;
- int bottomOffset = offsets.y;
-
- //'effective' height of this component is scrollpane height - top/bottom offsets
- int height = eventsPane.getHeight() - topOffset - bottomOffset;
+ //'effective' height of this component is scrollpane height
+ int height = eventsPane.getHeight();
- //remove top offset from click location but avoid going negative
- yPosition = Math.max(yPosition - topOffset, 0);
+ yPosition = Math.max(yPosition, 0);
//don't let clicklocation exceed height
if (yPosition >= height) {
@@ -4052,29 +4057,6 @@ public class LogPanel extends DockablePa
return closestRow;
}
- /**
- * Return a point representing top and bottom offsets
- * Top offset is held by Point.x, bottom offset is held by Point.y
- *
- * @return point representing top and bottom offsets (x and y values of Point)
- */
- public Point getScrollBarOffsets() {
- Integer scrollBarWidth = (Integer) UIManager.get("ScrollBar.width");
- int scrollBarOffset = scrollBarWidth == null ? 0 : scrollBarWidth.intValue();
- //calculate topOffset and bottomOffset (topOffset is tableheader size + optional vertical scrollbar thumb height
- //bottom offset is optional vertical scrollbar thumb height + optional horizontal scrollbar thumb height
- int topOffset = table.getTableHeader().getMinimumSize().height;
- int bottomOffset = 0;
- if (eventsPane.getVerticalScrollBar().isVisible()) {
- topOffset += scrollBarOffset;
- bottomOffset += scrollBarOffset;
- }
- if (eventsPane.getHorizontalScrollBar().isVisible()) {
- bottomOffset += scrollBarOffset;
- }
- return new Point(topOffset, bottomOffset);
- }
-
public Point getToolTipLocation(MouseEvent event) {
//shift tooltip down so the the pointer doesn't cover up events below the current mouse location
return new Point(event.getX(), event.getY() + 30);
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java?rev=1023184&r1=1023183&r2=1023184&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java Sat Oct 16 05:29:57 2010
@@ -424,6 +424,7 @@ class ReceiverConfigurationPanel extends
private void seedLogFileFormatComboBoxModel()
{
+ logFileFormatComboBoxModel.addElement("MESSAGE");
logFileFormatComboBoxModel.addElement("%p %t %c - %m%n");
logFileFormatComboBoxModel.addElement("LEVEL THREAD LOGGER - MESSAGE");
logFileFormatComboBoxModel.addElement("%d{ABSOLUTE} %-5p [%c{1}] %m%n");
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.