logging-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sde...@apache.org
Subject svn commit: r951816 - /logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
Date Sun, 06 Jun 2010 04:56:38 GMT
Author: sdeboy
Date: Sun Jun  6 04:56:37 2010
New Revision: 951816

URL: http://svn.apache.org/viewvc?rev=951816&view=rev
Log:
Adding new 'ignore all loggers' context menut to logger tree - will add all top level loggers
to the 'ignore' list (helpful if users want to quickly view events for specific loggers without
building expressions)

Modified:
    logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java

Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java?rev=951816&r1=951815&r2=951816&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
(original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
Sun Jun  6 04:56:37 2010
@@ -127,6 +127,7 @@ final class LoggerNameTreePanel extends 
     new SmallToggleButton();
   private final Set hiddenSet = new HashSet();
   private final Action hideAction;
+  private final Action hideAllAction;
   private final LogPanelPreferenceModel preferenceModel;
 
   private final JList ignoreList = new JList();
@@ -279,6 +280,7 @@ final class LoggerNameTreePanel extends 
     collapseAction = createCollapseAction();
     focusOnAction = createFocusOnAction();
     hideAction = createIgnoreAction();
+    hideAllAction = createIgnoreAllAction();
     clearIgnoreListAction = createClearIgnoreListAction();
 
     popupMenu = new LoggerTreePopupMenu();
@@ -944,6 +946,50 @@ final class LoggerNameTreePanel extends 
     return action;
   }
 
+    /**
+     * DOCUMENT ME!
+     *
+     * @return
+      */
+    private Action createIgnoreAllAction()
+    {
+      Action action =
+        new AbstractAction(
+          "Ignore all loggers", new ImageIcon(ChainsawIcons.ICON_COLLAPSE))
+        {
+          public void actionPerformed(ActionEvent e)
+          {
+            //add all top level loggers as hidden loggers
+              final DefaultMutableTreeNode root =
+                (DefaultMutableTreeNode) logTreeModel.getRoot();
+              Enumeration topLevelLoggersEnumeration = root.breadthFirstEnumeration();
+              //first element is root node - don't add it to set
+              topLevelLoggersEnumeration.nextElement();
+              Set topLevelLoggersSet = new HashSet();
+              while (topLevelLoggersEnumeration.hasMoreElements()) {
+                  String thisLogger = topLevelLoggersEnumeration.nextElement().toString();
+                  System.out.println("logger: " + thisLogger);
+                  topLevelLoggersSet.add(thisLogger);
+              }
+              if (topLevelLoggersSet.size() > 0) {
+                  ignore(topLevelLoggersSet);
+              }
+
+              logTreeModel.nodeChanged(root);
+              ignoreLoggerButton.setSelected(false);
+              focusOnAction.setEnabled(false);
+              popupMenu.hideCheck.setSelected(false);
+            fireChangeEvent();
+          }
+        };
+
+      action.putValue(
+        Action.SHORT_DESCRIPTION,
+        "Adds all loggers to your Ignore list (unhide loggers you want to see in the view)");
+
+      return action;
+    }
+
   /**
    * DOCUMENT ME!
    *
@@ -1142,6 +1188,7 @@ final class LoggerNameTreePanel extends 
     }
 
     // need to ensure the button doens't update itself with the text, looks stupid otherwise
+    hideAllAction.putValue(Action.NAME, "Ignore all loggers");
     focusOnLoggerButton.setText(null);
     ignoreLoggerButton.setText(null);
   }
@@ -1177,6 +1224,8 @@ final class LoggerNameTreePanel extends 
           hideAction.setEnabled(
             (path != null) && (node != null) && (node.getParent() != null)
             && !isFocusOnSelected());
+          //only enable on root node
+          hideAllAction.setEnabled(node != null && (node.getParent() == null));
 
           if (!focusOnAction.isEnabled())
           {
@@ -1486,6 +1535,8 @@ final class LoggerNameTreePanel extends 
       addSeparator();
 
       add(clearIgnoreListAction);
+      addSeparator();
+      add(hideAllAction);
     }
   }
 



Mime
View raw message