You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by ps...@apache.org on 2007/07/11 08:49:23 UTC

svn commit: r555187 - in /logging/chainsaw/trunk/src: changes/changes.xml main/java/org/apache/log4j/chainsaw/LogPanel.java main/java/org/apache/log4j/chainsaw/LogUI.java

Author: psmith
Date: Tue Jul 10 23:49:22 2007
New Revision: 555187

URL: http://svn.apache.org/viewvc?view=rev&rev=555187
Log:
Bug 42851 Applied patch by Isuru Suriarachchi 
which adds a Goto Line feature.


Modified:
    logging/chainsaw/trunk/src/changes/changes.xml
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java

Modified: logging/chainsaw/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/changes/changes.xml?view=diff&rev=555187&r1=555186&r2=555187
==============================================================================
--- logging/chainsaw/trunk/src/changes/changes.xml (original)
+++ logging/chainsaw/trunk/src/changes/changes.xml Tue Jul 10 23:49:22 2007
@@ -24,6 +24,9 @@
       <action dev="psmith" issue="42789" type="add" due-to=" Isuru Suriarachchi  " due-to-email="">
 		Added support for remembering filter expressions for each LogPanel
       </action>
+      <action dev="psmith" issue="42851" type="add" due-to=" Isuru Suriarachchi  " due-to-email="">
+		Added 'Go To Line' feature to navigate to a particular event #
+      </action>
     </release>
   </body>
 </document>

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?view=diff&rev=555187&r1=555186&r2=555187
==============================================================================
--- 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 Tue Jul 10 23:49:22 2007
@@ -1712,6 +1712,15 @@
   }
 
   /**
+   * Change the selected event on the log panel
+   *
+   * @param eventNumber
+   */
+  void setSelectedEvent(int eventNumber){
+      table.scrollToRow(eventNumber - 1, 0);
+  }
+
+  /**
    * Add a preference propertyChangeListener
    *
    * @param listener

Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java?view=diff&rev=555187&r1=555186&r2=555187
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java Tue Jul 10 23:49:22 2007
@@ -678,11 +678,15 @@
       KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, Event.CTRL_MASK);
     KeyStroke ksLeft =
       KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, Event.CTRL_MASK);
+    KeyStroke ksGotoLine =
+      KeyStroke.getKeyStroke(KeyEvent.VK_G,  Event.CTRL_MASK);
 
     getTabbedPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
       ksRight, "MoveRight");
     getTabbedPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
       ksLeft, "MoveLeft");
+    getTabbedPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
+      ksGotoLine, "GotoLine");
 
     Action moveRight =
       new AbstractAction() {
@@ -708,8 +712,25 @@
         }
       };
 
+    Action gotoLine =
+      new AbstractAction() {
+        public void actionPerformed(ActionEvent e) {
+          String inputLine = JOptionPane.showInputDialog(LogUI.this, "Enter the line number to go:", "Goto Line", -1);
+          int lineNumber = Integer.parseInt(inputLine);
+          List eventList = getCurrentLogPanel().getFilteredEvents();
+
+          if (lineNumber > 0 && lineNumber <= eventList.size()) {
+              getCurrentLogPanel().setSelectedEvent(lineNumber);
+          } else {
+              JOptionPane.showMessageDialog(LogUI.this, "You have entered an invalid line number", "Error", 0);
+          }
+        }
+      };
+
+
     getTabbedPane().getActionMap().put("MoveRight", moveRight);
     getTabbedPane().getActionMap().put("MoveLeft", moveLeft);
+    getTabbedPane().getActionMap().put("GotoLine", gotoLine);
 
     /**
          * We listen for double clicks, and auto-undock currently selected Tab if