svn commit: r1023184 - in /logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw: ChainsawCyclicBufferTableModel.java LogPanel.java ReceiverConfigurationPanel.java

[email protected]
Newsgroups gmane.comp.apache.logging
Message-ID <[email protected]>
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.