You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by sd...@apache.org on 2010/03/01 08:05:33 UTC

svn commit: r917404 - in /logging/chainsaw/trunk/src/main: java/org/apache/log4j/chainsaw/ resources/org/apache/log4j/chainsaw/help/

Author: sdeboy
Date: Mon Mar  1 07:05:32 2010
New Revision: 917404

URL: http://svn.apache.org/viewvc?rev=917404&view=rev
Log:
New feature: LogPanel context menu now provides 'Show times relative to this row' and 'Hide relative times' menu items
 - 'Show times relative to this row' will use the timestamp for the current row as time zero, with other row timestamps displayed in milliseconds relative to this row's time (positive or negative)
 - 'Hide relative times' will reset the display of timestamps back to their normal non-relative values
 - also updated release notes

Modified:
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/EventContainer.java
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
    logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html

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=917404&r1=917403&r2=917404&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 Mon Mar  1 07:05:32 2010
@@ -121,7 +121,7 @@
     return list;
   }
 
-  private void reFilter() {
+  public void reFilter() {
     synchronized (unfilteredList) {
       final int previousSize = filteredList.size();
       try {

Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/EventContainer.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/EventContainer.java?rev=917404&r1=917403&r2=917404&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/EventContainer.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/EventContainer.java Mon Mar  1 07:05:32 2010
@@ -153,6 +153,10 @@
   void notifyCountListeners();
 
   /**
+   * Force a re-processing of the table layout
+   */
+  void reFilter();
+  /**
    * Sets the DisplayFilter in operation
    * @param displayRule
    */

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=917404&r1=917403&r2=917404&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 Mon Mar  1 07:05:32 2010
@@ -1407,6 +1407,41 @@
 
     p.add(new JSeparator());
 
+    final JMenuItem menuItemDisplayNormalTimes =
+      new JMenuItem("Hide relative times");
+    menuItemDisplayNormalTimes.addActionListener(
+      new ActionListener() {
+        public void actionPerformed(ActionEvent e) {
+          if (currentPoint != null) {
+            int row = table.rowAtPoint(currentPoint);
+            LoggingEvent event = tableModel.getRow(row);
+            renderer.setUseNormalTimes();
+            tableModel.reFilter();
+            menuItemDisplayNormalTimes.setEnabled(false);
+          }
+        }
+    });
+
+    final JMenuItem menuItemDisplayRelativeTimesToRowUnderCursor =
+      new JMenuItem("Show times relative to this row");
+    menuItemDisplayRelativeTimesToRowUnderCursor.addActionListener(
+      new ActionListener() {
+        public void actionPerformed(ActionEvent e) {
+            if (currentPoint != null) {
+              int row = table.rowAtPoint(currentPoint);
+              LoggingEvent event = tableModel.getRow(row);
+              renderer.setUseRelativeTimes(event.getTimeStamp());
+              tableModel.reFilter();
+              menuItemDisplayNormalTimes.setEnabled(true);
+            }
+        }
+      });
+
+    menuItemDisplayNormalTimes.setEnabled(false);
+    p.add(menuItemDisplayRelativeTimesToRowUnderCursor);
+    p.add(menuItemDisplayNormalTimes);
+    p.add(new JSeparator());
+
     p.add(menuItemToggleDetails);
     p.add(menuItemLoggerTree);
     p.add(menuItemToggleToolTips);

Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java?rev=917404&r1=917403&r2=917404&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java Mon Mar  1 07:05:32 2010
@@ -66,8 +66,10 @@
   private boolean toolTipsVisible;
   private String dateFormatTZ;
   private final Icon markerIcon = new ImageIcon(ChainsawIcons.MARKER);
+  private boolean useRelativeTimes = false;
+  private long relativeTimestampBase;
 
-  /**
+    /**
    * Creates a new TableColorizingRenderer object.
    */
   public TableColorizingRenderer(Colorizer colorizer) {
@@ -277,7 +279,13 @@
     if (!(o instanceof Date)) {
       return (o == null ? "" : o);
     }
-    
+
+    //handle date field
+    if (useRelativeTimes)
+    {
+        return "" + (((Date)o).getTime() - relativeTimestampBase);
+    }
+
     return dateFormatInUse.format((Date) o);
   }
 
@@ -306,4 +314,13 @@
       dateFormatInUse.setTimeZone(TimeZone.getDefault());
     }
   }
+
+  public void setUseRelativeTimes(long timeStamp) {
+    useRelativeTimes = true;
+    relativeTimestampBase = timeStamp;
+  }
+
+  public void setUseNormalTimes() {
+    useRelativeTimes = false;
+  }
 }

Modified: logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html?rev=917404&r1=917403&r2=917404&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html (original)
+++ logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html Mon Mar  1 07:05:32 2010
@@ -9,7 +9,15 @@
 <br>
 <b>NOTE:</b> The mechanism and format used to persist settings in Chainsaw is subject to change.  If you are experiencing problems displaying events in Chainsaw, please delete everything in the $user.dir/.chainsaw directory and restart Chainsaw.
 <br>
-<h1>1.99.99</h2>
+<h1>1.99.99</h1>
+<h2>28 Feb 2010</h2>
+<ul>
+<li>
+LogPanel context menu now provides 'Show times relative to this row' and 'Hide relative times' menu items
+ - 'Show times relative to this row' will use the timestamp for the current row as time zero, with other row timestamps displayed in milliseconds relative to this row's time (positive or negative)
+ - 'Hide relative times' will reset the display of timestamps back to their normal non-relative values
+</li>
+</ul>
 <h2>22 Feb 2010</h2>
 <ul>
 <li>Implemented marker support (ability to add notes to rows).  Double click a row to toggle on or off a default note, or click in a row to define a custom note.  Navigate between markers with F2/Shift F2.