cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-12-16 Thread psmith
psmith  2003/12/16 22:12:48

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Jalopy keeps wrapping Log statements with an if.
  
  Revision  ChangesPath
  1.22  +1 -10 
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- LoggerNameTreePanel.java  17 Dec 2003 04:28:04 -  1.21
  +++ LoggerNameTreePanel.java  17 Dec 2003 06:12:48 -  1.22
  @@ -498,10 +498,7 @@
 return;
   }
   
  -if (LogLog.isDebugEnabled())
  -{
 LogLog.debug("Collapsing all children of selected node");
  -}
   
   for (int i = 0; i < paths.length; i++)
   {
  @@ -753,10 +750,7 @@
   
 private void ensureRootExpanded()
 {
  -if (LogLog.isDebugEnabled())
  -{
 LogLog.debug("Ensuring Root node is expanded.");
  -}
   
   final DefaultMutableTreeNode root =
 (DefaultMutableTreeNode) logTreeModel.getRoot();
  @@ -783,10 +777,7 @@
 return;
   }
   
  -if (LogLog.isDebugEnabled())
  -{
 LogLog.debug("Expanding all children of selected node");
  -}
   
   for (int i = 0; i < paths.length; i++)
   {
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java LogPanel.java

2003-12-16 Thread psmith
psmith  2003/12/16 20:28:05

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
LogPanel.java
  Log:
  A LogPanel's Logger name ignore list is now saved and loaded with the
  preferences.
  
  Revision  ChangesPath
  1.21  +868 -606  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- LoggerNameTreePanel.java  16 Dec 2003 00:45:26 -  1.20
  +++ LoggerNameTreePanel.java  17 Dec 2003 04:28:04 -  1.21
  @@ -46,11 +46,17 @@
* Apache Software Foundation, please see .
*
*/
  -
   /*
*/
   package org.apache.log4j.chainsaw;
   
  +import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  +import org.apache.log4j.chainsaw.icons.LineIconFactory;
  +import org.apache.log4j.helpers.LogLog;
  +import org.apache.log4j.rule.AbstractRule;
  +import org.apache.log4j.rule.Rule;
  +import org.apache.log4j.spi.LoggingEvent;
  +
   import java.awt.BorderLayout;
   import java.awt.Component;
   import java.awt.Cursor;
  @@ -64,9 +70,12 @@
   import java.awt.event.MouseEvent;
   import java.awt.event.MouseMotionAdapter;
   import java.awt.event.MouseMotionListener;
  +
   import java.beans.PropertyChangeEvent;
   import java.beans.PropertyChangeListener;
  +
   import java.util.ArrayList;
  +import java.util.Collection;
   import java.util.Collections;
   import java.util.Enumeration;
   import java.util.HashSet;
  @@ -107,13 +116,6 @@
   import javax.swing.tree.TreePath;
   import javax.swing.tree.TreeSelectionModel;
   
  -import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  -import org.apache.log4j.chainsaw.icons.LineIconFactory;
  -import org.apache.log4j.helpers.LogLog;
  -import org.apache.log4j.rule.AbstractRule;
  -import org.apache.log4j.rule.Rule;
  -import org.apache.log4j.spi.LoggingEvent;
  -
   
   /**
* A panel that encapsulates the Logger Name tree, with associated actions
  @@ -122,118 +124,62 @@
*
* @author Paul Smith <[EMAIL PROTECTED]>
*/
  -final class LoggerNameTreePanel extends JPanel implements Rule {
  -  private final class MouseKeyIconListener
  -extends MouseMotionAdapter
  -implements MouseMotionListener {
  -Cursor focusOnCursor = 
Toolkit.getDefaultToolkit().createCustomCursor(ChainsawIcons.FOCUS_ON_ICON.getImage(), 
new Point(10,10), "");
  -Cursor ignoreCursor = 
Toolkit.getDefaultToolkit().createCustomCursor(ChainsawIcons.IGNORE_ICON.getImage(), 
new Point(10,10), "");
  -  /* (non-Javadoc)
  - * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
  - */
  -public void mouseMoved(MouseEvent e) {
  -//  LogLog.debug(e.toString());
  -  if((e.getModifiers() & InputEvent.CTRL_MASK)>0 && (e.getModifiers() & 
InputEvent.SHIFT_MASK)>0) {
  -logTree.setCursor(ignoreCursor);
  -  }else if((e.getModifiers() & InputEvent.CTRL_MASK)>0) {
  -logTree.setCursor(focusOnCursor);
  -  }else {
  -logTree.setCursor(Cursor.getDefaultCursor());
  -  }
  -}
  -}
  -  private final class MouseFocusOnListener extends MouseAdapter {
  -
  -/* (non-Javadoc)
  - * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
  - */
  -public void mouseClicked(MouseEvent e) {
  -  if(e.getClickCount()>1 && (e.getModifiers() & InputEvent.CTRL_MASK)>0 && 
(e.getModifiers() & InputEvent.SHIFT_MASK)>0) {
  -ignoreLoggerAtPoint(e.getPoint());
  -e.consume();
  -fireChangeEvent();
  -  }else if(e.getClickCount()>1 &&(e.getModifiers() & InputEvent.CTRL_MASK)>0) {
  -focusAnLoggerAtPoint(e.getPoint());
  -e.consume();
  -fireChangeEvent();
  -  }
  -}
  +final class LoggerNameTreePanel extends JPanel implements Rule
  +{
  +  //~ Static fields/initializers ==
   
  -/**
  - * @param point
  - */
  -private void focusAnLoggerAtPoint(Point point) {
  -  String logger = getLoggerAtPoint(point);
  -  if(logger!=null) {
  -toggleFocusOnState();
  -  }
  -}
  +  private static final int WARN_DEPTH = 4;
   
  -/**
  - * @param point
  - * @return
  - */
  -private String getLoggerAtPoint(Point point) {
  -  TreePath path = logTree.getPathForLocation(point.x, point.y);
  -  if(path!=null) {
  -return getLoggerName(path);
  -  }
  -  return null;
  -}
  +  //~ Instance fields =
   
  -/**
  - * @param point
  - */
  -private void ignoreLoggerAtPoint(Point point) {
  -  String logger = getLoggerA

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-12-12 Thread psmith
psmith  2003/12/12 13:44:58

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  beginnings of some work to improve usability of the focus on, ignore logger.
  within the Logger name tree panel.
  
  If you hold down CTRL the mouse icon changes to a Focus On icon.  
  This will eventually be hooked up so that while holding down CTRL
  and double clicking you can focus on a logger.
  
  Holding down CTRL+SHIFT will be the ignore action.
  
  This mimics the way Photoshop's zoom works.
  
  Revision  ChangesPath
  1.17  +27 -0 
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- LoggerNameTreePanel.java  12 Dec 2003 10:28:20 -  1.16
  +++ LoggerNameTreePanel.java  12 Dec 2003 21:44:58 -  1.17
  @@ -53,12 +53,17 @@
   
   import java.awt.BorderLayout;
   import java.awt.Component;
  +import java.awt.Cursor;
   import java.awt.Dimension;
   import java.awt.Font;
  +import java.awt.Point;
  +import java.awt.Toolkit;
   import java.awt.event.ActionEvent;
   import java.awt.event.InputEvent;
   import java.awt.event.MouseAdapter;
   import java.awt.event.MouseEvent;
  +import java.awt.event.MouseMotionAdapter;
  +import java.awt.event.MouseMotionListener;
   import java.beans.PropertyChangeEvent;
   import java.beans.PropertyChangeListener;
   import java.util.ArrayList;
  @@ -118,6 +123,26 @@
* @author Paul Smith <[EMAIL PROTECTED]>
*/
   final class LoggerNameTreePanel extends JPanel implements Rule {
  +  private final class MouseKeyIconListener
  +extends MouseMotionAdapter
  +implements MouseMotionListener {
  +Cursor focusOnCursor = 
Toolkit.getDefaultToolkit().createCustomCursor(ChainsawIcons.FOCUS_ON_ICON.getImage(), 
new Point(0,0), "");
  +Cursor ignoreCursor = 
Toolkit.getDefaultToolkit().createCustomCursor(ChainsawIcons.IGNORE_ICON.getImage(), 
new Point(0,0), "");
  +  /* (non-Javadoc)
  + * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
  + */
  +public void mouseMoved(MouseEvent e) {
  +//  LogLog.debug(e.toString());
  +  if((e.getModifiers() & InputEvent.CTRL_MASK)>0 && (e.getModifiers() & 
InputEvent.SHIFT_MASK)>0) {
  +logTree.setCursor(ignoreCursor);
  +  }else if((e.getModifiers() & InputEvent.CTRL_MASK)>0) {
  +logTree.setCursor(focusOnCursor);
  +  }else {
  +logTree.setCursor(Cursor.getDefaultCursor());
  +  }
  +}
  +
  +}
 private static final int WARN_DEPTH = 4;
 private final JTree logTree;
 private final JScrollPane scrollTree;
  @@ -490,6 +515,8 @@
   * this Class.
   */
 private void setupListeners() {
  +
  +logTree.addMouseMotionListener(new MouseKeyIconListener());
   /**
  * Enable the actions depending on state of the tree selection
  */
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-10-09 Thread psmith
psmith  2003/10/09 20:13:20

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Fixed Collapse action, was a little too collapsy for it's own good
  and was collapsing everything rather than stopping at
  the currently selected node.
  
  Also removed the limition on expanding all nodes under the
  root.  The original rationale was that the tree could be huge
  and so ignored root expansion, but this seems less of a worry.
  
  Revision  ChangesPath
  1.15  +14 -17
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- LoggerNameTreePanel.java  9 Oct 2003 22:07:12 -   1.14
  +++ LoggerNameTreePanel.java  10 Oct 2003 03:13:20 -  1.15
  @@ -693,18 +693,12 @@
   DefaultMutableTreeNode child =
 (DefaultMutableTreeNode) enumeration.nextElement();
   
  -if (child.getParent() != null) {
  +if (child.getParent() != null && child!=node) {
 TreeNode[] nodes =
   ((DefaultMutableTreeNode) child.getParent()).getPath();
   
 TreePath treePath = new TreePath(nodes);
  -
  -  while ((treePath != null) && (treePath.getPathCount() > 0)) {
  -DefaultMutableTreeNode potentialRoot =
  -  (DefaultMutableTreeNode) treePath.getPathComponent(0);
  -logTree.collapsePath(treePath);
  -treePath = treePath.getParentPath();
  -  }
  +  logTree.collapsePath(treePath);
   }
 }
   }
  @@ -729,15 +723,18 @@
   for (int i = 0; i < paths.length; i++) {
 TreePath path = paths[i];
   
  -  /**
  -   * Handle an expansion of the Root node by only doing the first level.
  -   * Safe...
  -   */
  -  if (path.getPathCount() == 1) {
  -logTree.expandPath(path);
  -
  -return;
  -  }
  +/**
  + * TODO this is commented out, right now it expands all nodes including the root, 
so if there is a large tree. look out.
  + */
  +//  /**
  +//   * Handle an expansion of the Root node by only doing the first level.
  +//   * Safe...
  +//   */
  +//  if (path.getPathCount() == 1) {
  +//logTree.expandPath(path);
  +//
  +//return;
  +//  }
   
 DefaultMutableTreeNode treeNode =
   (DefaultMutableTreeNode) path.getLastPathComponent();
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-10-09 Thread psmith
psmith  2003/10/09 15:07:13

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Made this visual and model component class be a Rule and
  notify parties of change.
  
  Revision  ChangesPath
  1.14  +88 -35
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- LoggerNameTreePanel.java  23 Sep 2003 23:11:32 -  1.13
  +++ LoggerNameTreePanel.java  9 Oct 2003 22:07:12 -   1.14
  @@ -53,7 +53,10 @@
   
   import org.apache.log4j.chainsaw.icons.ChainsawIcons;
   import org.apache.log4j.chainsaw.icons.LineIconFactory;
  +import org.apache.log4j.chainsaw.rule.AbstractRule;
  +import org.apache.log4j.chainsaw.rule.Rule;
   import org.apache.log4j.helpers.LogLog;
  +import org.apache.log4j.spi.LoggingEvent;
   
   import java.awt.BorderLayout;
   import java.awt.Component;
  @@ -108,10 +111,12 @@
   
   /**
* A panel that encapsulates the Logger Name tree, with associated actions
  + * and implements the Rule interface so that it can filter in/out events
  + * that do not match the users request for refining the view based on Loggers.
*
* @author Paul Smith <[EMAIL PROTECTED]>
*/
  -final class LoggerNameTreePanel extends JPanel {
  +final class LoggerNameTreePanel extends JPanel implements Rule {
 private static final int WARN_DEPTH = 4;
 private final JTree logTree;
 private final JScrollPane scrollTree;
  @@ -140,6 +145,12 @@
 private final PopupListener popupListener;
 private final Set hiddenSet = new HashSet();
 private final EventListenerList listenerList = new EventListenerList();
  +  private Rule ruleDelegate =
  +new AbstractRule() {
  +  public boolean evaluate(LoggingEvent e) {
  +return true;
  +  }
  +};
   
 /**
  * @param logTreeModel
  @@ -459,12 +470,12 @@
   (path != null) && (node != null) && (node.getParent() != null)
   && !hiddenSet.contains(logger));
 hideAction.setEnabled(
  -(path != null) && (node != null) && (node.getParent() != null) && 
!isFocusOnSelected());
  +(path != null) && (node != null) && (node.getParent() != null)
  +&& !isFocusOnSelected());
   
 if (!focusOnAction.isEnabled()) {
   setFocusOnSelected(false);
  -  }else{
  -  
  +  } else {
 }
   
 expandAction.setEnabled(path != null);
  @@ -502,18 +513,18 @@
 fireChangeEvent();
   }
 });
  -  
  -  hideAction.addPropertyChangeListener(new PropertyChangeListener(){
   
  - public void propertyChange(PropertyChangeEvent evt) {
  -if (logTree.getSelectionPath() != null) {
  -  logTreeModel.nodeChanged(
  -(TreeNode) logTree.getSelectionPath().getLastPathComponent());
  -}
  +hideAction.addPropertyChangeListener(
  +  new PropertyChangeListener() {
  +public void propertyChange(PropertyChangeEvent evt) {
  +  if (logTree.getSelectionPath() != null) {
  +logTreeModel.nodeChanged(
  +  (TreeNode) logTree.getSelectionPath().getLastPathComponent());
  +  }
   
  -fireChangeEvent();
  - 
  - }});
  +  fireChangeEvent();
  +}
  +  });
   
   /**
* Now add a MouseListener that fires the expansion
  @@ -534,6 +545,37 @@
 }
   }
 });
  +
  +/**
  + * We listen for when the FocusOn action changes, and then  translate
  + * that to a RuleChange
  + */
  +addChangeListener(
  +  new ChangeListener() {
  +public void stateChanged(ChangeEvent evt) {
  +  final String currentlySelectedLoggerName =
  +getCurrentlySelectedLoggerName();
  +
  +  ruleDelegate =
  +new AbstractRule() {
  +public boolean evaluate(LoggingEvent e) {
  +  boolean isHidden =
  +getHiddenSet().contains(e.getLoggerName());
  +  boolean result = !isHidden;
  +
  +  if (result && isFocusOnSelected()) {
  +result =
  +  result
  +  && e.getLoggerName().startsWith(
  +currentlySelectedLoggerName);
  +  }
  +
  +  return result;
  +}
  +  };
  +  firePropertyChange("rule", null, null);
  +}
  +  });
 }
   
 private void reconfigureMenuText() {
  @@ -786,18 +828,27 @@
  */
 public void setFocusOn(Strin

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-23 Thread psmith
psmith  2003/09/23 16:11:32

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Fixed a couple of bugs in the Logger name tree panel.
  
  * Hidden loggers were not being displayed correctly in the tree
  * You shouldn't be able to hide a logger when you are currently
  focusing on a logger
  
  Revision  ChangesPath
  1.13  +29 -10
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- LoggerNameTreePanel.java  17 Sep 2003 01:15:13 -  1.12
  +++ LoggerNameTreePanel.java  23 Sep 2003 23:11:32 -  1.13
  @@ -335,6 +335,7 @@
   
 private void toggleFocusOnState() {
   setFocusOnSelected(!isFocusOnSelected());
  +hideAction.setEnabled(!isFocusOnSelected());
 }
   
 /**
  @@ -458,10 +459,12 @@
   (path != null) && (node != null) && (node.getParent() != null)
   && !hiddenSet.contains(logger));
 hideAction.setEnabled(
  -(path != null) && (node != null) && (node.getParent() != null));
  +(path != null) && (node != null) && (node.getParent() != null) && 
!isFocusOnSelected());
   
 if (!focusOnAction.isEnabled()) {
   setFocusOnSelected(false);
  +  }else{
  +  
 }
   
 expandAction.setEnabled(path != null);
  @@ -499,6 +502,18 @@
 fireChangeEvent();
   }
 });
  +  
  +  hideAction.addPropertyChangeListener(new PropertyChangeListener(){
  +
  + public void propertyChange(PropertyChangeEvent evt) {
  +if (logTree.getSelectionPath() != null) {
  +  logTreeModel.nodeChanged(
  +(TreeNode) logTree.getSelectionPath().getLastPathComponent());
  +}
  +
  +fireChangeEvent();
  + 
  + }});
   
   /**
* Now add a MouseListener that fires the expansion
  @@ -815,22 +830,26 @@
   
 Font originalFont = component.getFont();
   
  + int style = Font.PLAIN;
 if (sel && focusOnLoggerButton.isSelected()) {
  -component.setFont(originalFont.deriveFont(Font.BOLD));
  -  } else {
  -component.setFont(originalFont.deriveFont(Font.PLAIN));
  -  }
  +  style = style | Font.BOLD;
  +  } 
   
  -  originalFont = component.getFont();
   
  -  String logger =
  -((DefaultMutableTreeNode) value).getUserObject().toString();
  +  
  +  String logger = getLoggerName(new TreePath(((DefaultMutableTreeNode) 
value).getPath()));
   
 if (hiddenSet.contains(logger)) {
  -component.setEnabled(false);
  +//component.setEnabled(false);
  +//component.setIcon(leaf?null:getDefaultOpenIcon());
  +style = style | Font.ITALIC;
  +//LogLog.debug("TreeRenderer: '" + logger + "' is in hiddenSet, 
italicizing");
 } else {
  -component.setEnabled(true);
  +//  LogLog.debug("TreeRenderer: '" + logger + "' is NOT in hiddenSet, 
leaving plain");
  +//component.setEnabled(true);
 }
  +  component.setFont(originalFont.deriveFont(style));
  +  
   
 return component;
   }
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-16 Thread psmith
psmith  2003/09/16 18:15:13

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  allow an external entity to inform this panel what the
  current Logger focus should be.
  
  Revision  ChangesPath
  1.12  +29 -7 
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- LoggerNameTreePanel.java  15 Sep 2003 22:20:58 -  1.11
  +++ LoggerNameTreePanel.java  17 Sep 2003 01:15:13 -  1.12
  @@ -51,6 +51,10 @@
*/
   package org.apache.log4j.chainsaw;
   
  +import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  +import org.apache.log4j.chainsaw.icons.LineIconFactory;
  +import org.apache.log4j.helpers.LogLog;
  +
   import java.awt.BorderLayout;
   import java.awt.Component;
   import java.awt.Dimension;
  @@ -59,8 +63,10 @@
   import java.awt.event.InputEvent;
   import java.awt.event.MouseAdapter;
   import java.awt.event.MouseEvent;
  +
   import java.beans.PropertyChangeEvent;
   import java.beans.PropertyChangeListener;
  +
   import java.util.ArrayList;
   import java.util.Collections;
   import java.util.Enumeration;
  @@ -99,10 +105,6 @@
   import javax.swing.tree.TreePath;
   import javax.swing.tree.TreeSelectionModel;
   
  -import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  -import org.apache.log4j.chainsaw.icons.LineIconFactory;
  -import org.apache.log4j.helpers.LogLog;
  -
   
   /**
* A panel that encapsulates the Logger Name tree, with associated actions
  @@ -275,6 +277,7 @@
   focusOnAction.setEnabled(!hiddenSet.contains(logger));
   popupMenu.hideCheck.setSelected(hiddenSet.contains(logger));
 }
  +
 fireChangeEvent();
   }
 };
  @@ -452,7 +455,8 @@
 //  editLoggerAction.setEnabled(path != null);
 String logger = getCurrentlySelectedLoggerName();
 focusOnAction.setEnabled(
  -(path != null) && (node != null) && (node.getParent() != null) && 
!hiddenSet.contains(logger));
  +(path != null) && (node != null) && (node.getParent() != null)
  +&& !hiddenSet.contains(logger));
 hideAction.setEnabled(
   (path != null) && (node != null) && (node.getParent() != null));
   
  @@ -460,7 +464,6 @@
   setFocusOnSelected(false);
 }
   
  -
 expandAction.setEnabled(path != null);
   
 if (logger != null) {
  @@ -492,6 +495,7 @@
   logTreeModel.nodeChanged(
 (TreeNode) logTree.getSelectionPath().getLastPathComponent());
 }
  +
 fireChangeEvent();
   }
 });
  @@ -522,7 +526,7 @@
   
   if ((logger == null) || (logger.length() == 0)) {
 focusOnAction.putValue(Action.NAME, "Focus On...");
  -   hideAction.putValue(Action.NAME, "Ignore ...");
  +  hideAction.putValue(Action.NAME, "Ignore ...");
   } else {
 focusOnAction.putValue(Action.NAME, "Focus On '" + logger + "'");
 hideAction.putValue(Action.NAME, "Ignore '" + logger + "'");
  @@ -759,6 +763,24 @@
   toolbar.add(Box.createHorizontalGlue());
   toolbar.add(closeButton);
   toolbar.add(Box.createHorizontalStrut(5));
  +  }
  +
  +  /**
  +   * Ensures the Focus is set to a specific logger name
  +   * @param string
  +   */
  +  public void setFocusOn(String logger) {
  +DefaultMutableTreeNode node = logTreeModel.lookupLogger(logger);
  +if(node!=null){
  + TreeNode[] nodes = node.getPath();
  + TreePath treePath = new TreePath(nodes);
  + logTree.setSelectionPath(treePath);
  + if(!focusOnLoggerButton.isSelected()){
  + focusOnLoggerButton.doClick();
  + }
  +}else{
  + LogLog.error("failed to lookup logger " + logger);
  +}
 }
   
 /**
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-15 Thread psmith
psmith  2003/09/15 15:20:58

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Made the Ignore menu/action names more consistent
  with the way Focus on works, by changing the display
  name as the user selects different loggers in the tree.
  
  Revision  ChangesPath
  1.11  +5 -2  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- LoggerNameTreePanel.java  15 Sep 2003 22:13:26 -  1.10
  +++ LoggerNameTreePanel.java  15 Sep 2003 22:20:58 -  1.11
  @@ -471,7 +471,7 @@
   
 collapseAction.setEnabled(path != null);
   
  -  reconfigureFocusOnText();
  +  reconfigureMenuText();
   }
 });
   
  @@ -517,17 +517,20 @@
 });
 }
   
  -  private void reconfigureFocusOnText() {
  +  private void reconfigureMenuText() {
   String logger = getCurrentlySelectedLoggerName();
   
   if ((logger == null) || (logger.length() == 0)) {
 focusOnAction.putValue(Action.NAME, "Focus On...");
  +   hideAction.putValue(Action.NAME, "Ignore ...");
   } else {
 focusOnAction.putValue(Action.NAME, "Focus On '" + logger + "'");
  +  hideAction.putValue(Action.NAME, "Ignore '" + logger + "'");
   }
   
   // need to ensure the button doens't update itself with the text, looks stupid 
otherwise
   focusOnLoggerButton.setText(null);
  +ignoreLoggerButton.setText(null);
 }
   
 /**
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java LogUI.java LogPanel.java

2003-09-15 Thread psmith
psmith  2003/09/15 15:13:27

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
LogUI.java LogPanel.java
  Log:
  Added the concept of "hidding" a logger by being able
  to add it to an Ignore list.
  
  Only Loggers that are not on the Ignored list are shown.
  
  Revision  ChangesPath
  1.10  +216 -64   
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- LoggerNameTreePanel.java  11 Sep 2003 10:34:22 -  1.9
  +++ LoggerNameTreePanel.java  15 Sep 2003 22:13:26 -  1.10
  @@ -64,7 +64,9 @@
   import java.util.ArrayList;
   import java.util.Collections;
   import java.util.Enumeration;
  +import java.util.HashSet;
   import java.util.List;
  +import java.util.Set;
   
   import javax.swing.AbstractAction;
   import javax.swing.Action;
  @@ -83,6 +85,9 @@
   import javax.swing.JTree;
   import javax.swing.SwingUtilities;
   import javax.swing.ToolTipManager;
  +import javax.swing.event.ChangeEvent;
  +import javax.swing.event.ChangeListener;
  +import javax.swing.event.EventListenerList;
   import javax.swing.event.TreeModelEvent;
   import javax.swing.event.TreeModelListener;
   import javax.swing.event.TreeSelectionEvent;
  @@ -114,12 +119,15 @@
 private final JButton closeButton = new SmallButton();
 private final SmallToggleButton focusOnLoggerButton =
   new SmallToggleButton();
  +  private final SmallToggleButton ignoreLoggerButton = new SmallToggleButton();
 private final JButton editLoggerButton = new SmallButton();
 private final Action expandAction;
 private final Action collapseAction;
 private final Action closeAction;
 private final Action editLoggerAction;
 private final Action focusOnAction;
  +  private final Action hideAction;
  +  private final Action clearIgnoreListAction;
   
 //  private final EventListenerList focusOnActionListeners =
 //new EventListenerList();
  @@ -128,6 +136,8 @@
   new LoggerNameTreeCellRenderer();
 private final LoggerTreePopupMenu popupMenu;
 private final PopupListener popupListener;
  +  private final Set hiddenSet = new HashSet();
  +  private final EventListenerList listenerList = new EventListenerList();
   
 /**
  * @param logTreeModel
  @@ -148,7 +158,13 @@
   
   TreePath path = logTree.getPathForLocation(ev.getX(), ev.getY());
   
  -return getLoggerName(path);
  +String loggerName = getLoggerName(path);
  +
  +if (hiddenSet.contains(loggerName)) {
  +  loggerName += " (you are ignoring this logger)";
  +}
  +
  +return loggerName;
 }
   };
   
  @@ -158,16 +174,16 @@
   //   
   logTreeModel.addTreeModelListener(
 new TreeModelListener() {
  - private boolean latched = false;
  +private boolean latched = false;
  +
   public void treeNodesChanged(TreeModelEvent e) {
  -  
   }
   
   public void treeNodesInserted(TreeModelEvent e) {
 if (!latched) {
  - ensureRootExpanded();
  - latched = true;
  - }
  +ensureRootExpanded();
  +latched = true;
  +  }
   }
   
   public void treeNodesRemoved(TreeModelEvent e) {
  @@ -194,6 +210,8 @@
   closeAction = createCloseAction();
   collapseAction = createCollapseAction();
   focusOnAction = createFocusOnAction();
  +hideAction = createIgnoreAction();
  +clearIgnoreListAction = createClearIgnoreListAction();
   
   popupMenu = new LoggerTreePopupMenu();
   popupListener = new PopupListener(popupMenu);
  @@ -206,6 +224,90 @@
 }
   
 /**
  +   * Adds a change Listener to this LoggerNameTreePanel to be notfied
  +   * when the State of the Focus or Hidden details have changed.
  +   *
  +   * @param l
  +   */
  +  public void addChangeListener(ChangeListener l) {
  +listenerList.add(ChangeListener.class, l);
  +  }
  +
  +  public void removeChangeListener(ChangeListener l) {
  +listenerList.remove(ChangeListener.class, l);
  +  }
  +
  +  /**
  +  * @return
  +  */
  +  private Action createClearIgnoreListAction() {
  +Action action =
  +  new AbstractAction("Clear Ignore list", null) {
  +public void actionPerformed(ActionEvent e) {
  +  ignoreLoggerButton.setSelected(false);
  +  logTreeModel.reload();
  +  hiddenSet.clear();
  +}
  +  };
  +
  +action.putValue(
  +  Action.SHORT_DESCRIPTION,
  +  "Removes all entries from the Ignore l

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-11 Thread psmith
psmith  2003/09/11 03:34:22

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Fixed a weird bug where the 2nd child node of the Root logger just
  wouldn't display it's selected status.  Bizarre.
  
  Also ensured that if the Root Logger is selected, the FocusOn action
  is deselected.
  
  Expand All/Collapse All actions arenow available from any node in the tree
  but for the Root node it simply expands a single level for safety (a
  logger tree could be huge).
  
  Revision  ChangesPath
  1.9   +51 -53
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- LoggerNameTreePanel.java  3 Sep 2003 23:24:18 -   1.8
  +++ LoggerNameTreePanel.java  11 Sep 2003 10:34:22 -  1.9
  @@ -51,10 +51,6 @@
*/
   package org.apache.log4j.chainsaw;
   
  -import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  -import org.apache.log4j.chainsaw.icons.LineIconFactory;
  -import org.apache.log4j.helpers.LogLog;
  -
   import java.awt.BorderLayout;
   import java.awt.Component;
   import java.awt.Dimension;
  @@ -63,10 +59,8 @@
   import java.awt.event.InputEvent;
   import java.awt.event.MouseAdapter;
   import java.awt.event.MouseEvent;
  -
   import java.beans.PropertyChangeEvent;
   import java.beans.PropertyChangeListener;
  -
   import java.util.ArrayList;
   import java.util.Collections;
   import java.util.Enumeration;
  @@ -87,6 +81,7 @@
   import javax.swing.JScrollPane;
   import javax.swing.JToolBar;
   import javax.swing.JTree;
  +import javax.swing.SwingUtilities;
   import javax.swing.ToolTipManager;
   import javax.swing.event.TreeModelEvent;
   import javax.swing.event.TreeModelListener;
  @@ -99,6 +94,10 @@
   import javax.swing.tree.TreePath;
   import javax.swing.tree.TreeSelectionModel;
   
  +import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  +import org.apache.log4j.chainsaw.icons.LineIconFactory;
  +import org.apache.log4j.helpers.LogLog;
  +
   
   /**
* A panel that encapsulates the Logger Name tree, with associated actions
  @@ -159,20 +158,22 @@
   //   
   logTreeModel.addTreeModelListener(
 new TreeModelListener() {
  + private boolean latched = false;
   public void treeNodesChanged(TreeModelEvent e) {
  -  ensureRootExpanded();
  +  
   }
   
   public void treeNodesInserted(TreeModelEvent e) {
  -  ensureRootExpanded();
  +  if (!latched) {
  + ensureRootExpanded();
  + latched = true;
  + }
   }
   
   public void treeNodesRemoved(TreeModelEvent e) {
  -  ensureRootExpanded();
   }
   
   public void treeStructureChanged(TreeModelEvent e) {
  -  ensureRootExpanded();
   }
 });
   
  @@ -228,37 +229,9 @@
 }
   
 private void toggleFocusOnState() {
  -Object checked = focusOnAction.getValue("checked");
  -
  -if (checked == null) {
  -  focusOnAction.putValue("checked", Boolean.TRUE);
  -} else {
  -  focusOnAction.putValue("checked", null);
  -}
  + setFocusOnSelected(!isFocusOnSelected());
 }
   
  -  //  /**
  -  //   * @param e
  -  //   */
  -  //  private void fireFocusOnEvent(ActionEvent e) {
  -  //ActionListener[] listeners =
  -  //  (ActionListener[]) focusOnActionListeners.getListeners(
  -  //ActionListener.class);
  -  //
  -  //for (int i = 0; i < listeners.length; i++) {
  -  //  ActionListener listener = listeners[i];
  -  //  listener.actionPerformed(e);
  -  //}
  -  //  }
  -  //  /**
  -  //   * Interested parties register themselves here to be notified when the 
FocusOn action
  -  //   * has been invoked.
  -  //   * @param l
  -  //   */
  -  //  void addFocusOnActionListener(ActionListener l) {
  -  //focusOnActionListeners.add(ActionListener.class, l);
  -  //  }
  -
 /**
  * Returns the full name of the Logger that is represented by
  * the currently selected Logger node in the tree.
  @@ -303,15 +276,15 @@
   return null;
 }
   
  -  //  /**
  -  //   * Can remove a listener from being notified of FocusOn events
  -  //   * @param l
  -  //   */
  -  //  void removeFocusOnActionListener(ActionListener l) {
  -  //focusOnActionListeners.remove(ActionListener.class, l);
  -  //  }
 private void ensureRootExpanded() {
  -logTree.expandRow(0);
  + LogLog.debug("Ensuring Root node is expanded.");
  +final DefaultMutableTreeNode root = (DefaultMutableTreeNode) 
logTreeModel.getRoot();
  +SwingUtilities.invokeLater(new Runnable(){
  +
 

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-03 Thread psmith
psmith  2003/09/03 16:24:18

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Changed Expand/Collapse action from text to Line icon based.
  
  Changed the way a few listening/action related things worked.
  
  Added right click popup menu to Logger Tree.
  
  Added FocusOn action concept which highlights the currently
  selected Node in the tree.  It is envisaged that LogUI
  will listen for this action and configure/remove filters accordingly.
  
  Revision  ChangesPath
  1.8   +247 -44   
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- LoggerNameTreePanel.java  3 Sep 2003 05:37:39 -   1.7
  +++ LoggerNameTreePanel.java  3 Sep 2003 23:24:18 -   1.8
  @@ -51,15 +51,22 @@
*/
   package org.apache.log4j.chainsaw;
   
  +import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  +import org.apache.log4j.chainsaw.icons.LineIconFactory;
  +import org.apache.log4j.helpers.LogLog;
  +
   import java.awt.BorderLayout;
   import java.awt.Component;
   import java.awt.Dimension;
  -import java.awt.FlowLayout;
   import java.awt.Font;
   import java.awt.event.ActionEvent;
   import java.awt.event.InputEvent;
   import java.awt.event.MouseAdapter;
   import java.awt.event.MouseEvent;
  +
  +import java.beans.PropertyChangeEvent;
  +import java.beans.PropertyChangeListener;
  +
   import java.util.ArrayList;
   import java.util.Collections;
   import java.util.Enumeration;
  @@ -73,12 +80,14 @@
   import javax.swing.Icon;
   import javax.swing.ImageIcon;
   import javax.swing.JButton;
  +import javax.swing.JCheckBoxMenuItem;
  +import javax.swing.JLabel;
   import javax.swing.JPanel;
  +import javax.swing.JPopupMenu;
   import javax.swing.JScrollPane;
   import javax.swing.JToolBar;
   import javax.swing.JTree;
   import javax.swing.ToolTipManager;
  -import javax.swing.UIManager;
   import javax.swing.event.TreeModelEvent;
   import javax.swing.event.TreeModelListener;
   import javax.swing.event.TreeSelectionEvent;
  @@ -90,9 +99,6 @@
   import javax.swing.tree.TreePath;
   import javax.swing.tree.TreeSelectionModel;
   
  -import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  -import org.apache.log4j.helpers.LogLog;
  -
   
   /**
* A panel that encapsulates the Logger Name tree, with associated actions
  @@ -107,17 +113,30 @@
 private final JButton expandButton = new SmallButton();
 private final JButton collapseButton = new SmallButton();
 private final JButton closeButton = new SmallButton();
  +  private final SmallToggleButton focusOnLoggerButton =
  +new SmallToggleButton();
 private final JButton editLoggerButton = new SmallButton();
 private final Action expandAction;
 private final Action collapseAction;
 private final Action closeAction;
 private final Action editLoggerAction;
  +  private final Action focusOnAction;
  +
  +  //  private final EventListenerList focusOnActionListeners =
  +  //new EventListenerList();
  +  private final LogPanelLoggerTreeModel logTreeModel;
  +  private LoggerNameTreeCellRenderer cellRenderer =
  +new LoggerNameTreeCellRenderer();
  +  private final LoggerTreePopupMenu popupMenu;
  +  private final PopupListener popupListener;
   
 /**
  * @param logTreeModel
  */
 LoggerNameTreePanel(LogPanelLoggerTreeModel logTreeModel) {
   super();
  +this.logTreeModel = logTreeModel;
  +
   setLayout(new BorderLayout());
   setBorder(BorderFactory.createEtchedBorder());
   
  @@ -130,28 +149,12 @@
   
   TreePath path = logTree.getPathForLocation(ev.getX(), ev.getY());
   
  -if (path != null) {
  -  Object[] objects = path.getPath();
  -  StringBuffer buf = new StringBuffer();
  -
  -  for (int i = 1; i < objects.length; i++) {
  -buf.append(objects[i].toString());
  -
  -if (i < (objects.length - 1)) {
  -  buf.append(".");
  -}
  -  }
  -
  -  // TODO output the Level filter details
  -  return buf.toString();
  -}
  -
  -return null;
  +return getLoggerName(path);
 }
   };
   
   ToolTipManager.sharedInstance().registerComponent(logTree);
  -logTree.setCellRenderer(new LoggerNameTreeCellRenderer());
  +logTree.setCellRenderer(cellRenderer);
   
   //   
   logTreeModel.addTreeModelListener(
  @@ -189,6 +192,11 @@
   editLoggerAction = createEditLoggerAction();
   closeAction = createCloseAction();
   collapseActio

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-02 Thread psmith
psmith  2003/09/02 22:37:39

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  fixed a small annoyance, when the logger tree panel
  was hidden and then made visible, the preferred size
  of the panel didn't seem to get honoured.
  
  Revision  ChangesPath
  1.7   +6 -7  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- LoggerNameTreePanel.java  3 Sep 2003 00:31:17 -   1.6
  +++ LoggerNameTreePanel.java  3 Sep 2003 05:37:39 -   1.7
  @@ -51,9 +51,6 @@
*/
   package org.apache.log4j.chainsaw;
   
  -import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  -import org.apache.log4j.helpers.LogLog;
  -
   import java.awt.BorderLayout;
   import java.awt.Component;
   import java.awt.Dimension;
  @@ -63,7 +60,6 @@
   import java.awt.event.InputEvent;
   import java.awt.event.MouseAdapter;
   import java.awt.event.MouseEvent;
  -
   import java.util.ArrayList;
   import java.util.Collections;
   import java.util.Enumeration;
  @@ -94,6 +90,9 @@
   import javax.swing.tree.TreePath;
   import javax.swing.tree.TreeSelectionModel;
   
  +import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  +import org.apache.log4j.helpers.LogLog;
  +
   
   /**
* A panel that encapsulates the Logger Name tree, with associated actions
  @@ -118,7 +117,8 @@
  * @param logTreeModel
  */
 LoggerNameTreePanel(LogPanelLoggerTreeModel logTreeModel) {
  -super(new BorderLayout());
  +super();
  +setLayout(new BorderLayout());
   setBorder(BorderFactory.createEtchedBorder());
   
   logTree =
  @@ -151,7 +151,6 @@
   };
   
   ToolTipManager.sharedInstance().registerComponent(logTree);
  -logTree.setPreferredSize(new Dimension(400, 400));
   logTree.setCellRenderer(new LoggerNameTreeCellRenderer());
   
   //   
  @@ -183,7 +182,7 @@
   
   logTree.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
   scrollTree = new JScrollPane(logTree);
  -
  +scrollTree.setMinimumSize(new Dimension(150, 400));
   toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.X_AXIS));
   
   expandAction = createExpandAction();
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-02 Thread psmith
psmith  2003/09/02 17:31:17

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  disable the Edit Logger action while it does nothing.
  
  Revision  ChangesPath
  1.6   +4 -1  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LoggerNameTreePanel.java  2 Sep 2003 22:24:08 -   1.5
  +++ LoggerNameTreePanel.java  3 Sep 2003 00:31:17 -   1.6
  @@ -253,7 +253,7 @@
   public void valueChanged(TreeSelectionEvent e) {
 TreePath path = e.getNewLeadSelectionPath();
 expandAction.setEnabled(path != null);
  -  editLoggerAction.setEnabled(path != null);
  +//  editLoggerAction.setEnabled(path != null);
 collapseAction.setEnabled(path != null);
   }
 });
  @@ -287,6 +287,9 @@
   }
 };
   
  +//TODO enable this when it's ready.
  +action.putValue("enabled", Boolean.FALSE);
  +
   action.putValue(Action.NAME, "Edit filters/colors");
   action.putValue(
 Action.SHORT_DESCRIPTION,
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java ChainsawToolBarAndMenus.java WelcomePanel.html

2003-09-02 Thread psmith
psmith  2003/09/02 15:24:08

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
ChainsawToolBarAndMenus.java WelcomePanel.html
  Log:
  Added accelerator to the toggle of the Logger tree (ALT-T), plus updated
  the Welcome html to reflect that.
  
  Modified the Expand/Collapse icons to be just +/- characters
  rather than the magnify icon, as this is more intuitive.
  
  Will use the Magnify etc icons for a "Focus On.." concept
  similar to Eclipse's Hierarchy view, which effectively places a simple
  logger filter on the model.
  
  Revision  ChangesPath
  1.5   +7 -6  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- LoggerNameTreePanel.java  2 Sep 2003 08:19:59 -   1.4
  +++ LoggerNameTreePanel.java  2 Sep 2003 22:24:08 -   1.5
  @@ -58,6 +58,7 @@
   import java.awt.Component;
   import java.awt.Dimension;
   import java.awt.FlowLayout;
  +import java.awt.Font;
   import java.awt.event.ActionEvent;
   import java.awt.event.InputEvent;
   import java.awt.event.MouseAdapter;
  @@ -215,8 +216,6 @@
   action.putValue(
 Action.SHORT_DESCRIPTION,
 "Collapses all the children of the currently selected node");
  -action.putValue(
  -  Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_COLLAPSE));
   action.setEnabled(false);
   
   return action;
  @@ -316,8 +315,6 @@
   action.putValue(
 Action.SHORT_DESCRIPTION,
 "Expands all the child nodes of the currently selected node, recursively");
  -action.putValue(
  -  Action.SMALL_ICON, new ImageIcon(ChainsawIcons.UNDOCKED_ICON));
   action.setEnabled(false);
   
   return action;
  @@ -434,11 +431,15 @@
 private void configureToolbarPanel() {
   toolbar.setFloatable(false);
   
  +
   expandButton.setAction(expandAction);
  -expandButton.setText(null);
  +expandButton.setText("+");
   collapseButton.setAction(collapseAction);
  -collapseButton.setText(null);
  +collapseButton.setText("-");
   
  +expandButton.setFont(expandButton.getFont().deriveFont(Font.BOLD));
  +collapseButton.setFont(collapseButton.getFont().deriveFont(Font.BOLD));
  +
   editLoggerButton.setAction(editLoggerAction);
   editLoggerButton.setText(null);
   closeButton.setAction(closeAction);
  
  
  
  1.4   +11 -2 
jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
  
  Index: ChainsawToolBarAndMenus.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ChainsawToolBarAndMenus.java  2 Sep 2003 03:39:16 -   1.3
  +++ ChainsawToolBarAndMenus.java  2 Sep 2003 22:24:08 -   1.4
  @@ -245,6 +245,11 @@
   
   action.putValue(Action.NAME, "Logger Tree");
   action.putValue(Action.SHORT_DESCRIPTION, "Toggles the Log Tree panel");
  +action.putValue("enabled", Boolean.TRUE);
  +action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_T));
  +action.putValue(
  +  Action.ACCELERATOR_KEY,
  +  KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.ALT_MASK));
   
   //   TODO find an icon
   return action;
  @@ -1015,9 +1020,13 @@
 toggleDetailPaneAction.getValue(Action.NAME));
   
   logTreePaneButton.setAction(toggleLogTreeAction);
  -
   //   logTreePaneButton.setText(null);
  -//   TODO add accelerator to this action
  +logTreePaneButton.getActionMap().put(
  +toggleLogTreeAction.getValue(Action.NAME), toggleLogTreeAction);
  +  logTreePaneButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
  +  KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.ALT_MASK),
  +  toggleDetailPaneAction.getValue(Action.NAME));
  +
   SmallButton prefsButton = new SmallButton(showPreferencesAction);
   SmallButton undockButton = new SmallButton(undockAction);
   undockButton.setText("");
  
  
  
  1.3   +5 -2  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/WelcomePanel.html
  
  Index: WelcomePanel.html
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/WelcomePanel.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- WelcomePanel.html 26 Jun 2003 23:01:00 -  1.2
  +++ WelcomePanel.html 2 Sep 2003 22:24:08 -   1.3
  @@ -58,12 +58,15 @@
   
ALT-P
-
  - Pause display
  +  

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-02 Thread psmith
psmith  2003/09/01 20:38:38

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Changed the minitoolbar for this component to be a JToolbar
  just like the Receiver panel does.  This gives us nicer
  L&F on some l&f's. more consistent anyway.
  
  Exposed an Edit button, plus added a Close button with
  associated action functionality to hide the Logger Name tree.
  
  Revision  ChangesPath
  1.3   +155 -9
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LoggerNameTreePanel.java  1 Sep 2003 22:33:32 -   1.2
  +++ LoggerNameTreePanel.java  2 Sep 2003 03:38:38 -   1.3
  @@ -55,6 +55,9 @@
   import org.apache.log4j.helpers.LogLog;
   
   import java.awt.BorderLayout;
  +import java.awt.Component;
  +import java.awt.Dimension;
  +import java.awt.FlowLayout;
   import java.awt.event.ActionEvent;
   import java.awt.event.InputEvent;
   import java.awt.event.MouseAdapter;
  @@ -68,16 +71,23 @@
   import javax.swing.AbstractAction;
   import javax.swing.Action;
   import javax.swing.BorderFactory;
  +import javax.swing.Box;
   import javax.swing.BoxLayout;
  +import javax.swing.Icon;
   import javax.swing.ImageIcon;
   import javax.swing.JButton;
   import javax.swing.JPanel;
   import javax.swing.JScrollPane;
  +import javax.swing.JToolBar;
   import javax.swing.JTree;
   import javax.swing.ToolTipManager;
  +import javax.swing.UIManager;
  +import javax.swing.event.TreeModelEvent;
  +import javax.swing.event.TreeModelListener;
   import javax.swing.event.TreeSelectionEvent;
   import javax.swing.event.TreeSelectionListener;
   import javax.swing.tree.DefaultMutableTreeNode;
  +import javax.swing.tree.DefaultTreeCellRenderer;
   import javax.swing.tree.DefaultTreeSelectionModel;
   import javax.swing.tree.TreeNode;
   import javax.swing.tree.TreePath;
  @@ -93,9 +103,13 @@
 private static final int WARN_DEPTH = 4;
 private final JTree logTree;
 private final JScrollPane scrollTree;
  -  private final JPanel toolbarPanel = new JPanel();
  +  private final JToolBar toolbar = new JToolBar();
 private final JButton expandButton = new SmallButton();
  +  private final JButton closeButton = new SmallButton();
  +  private final JButton editLoggerButton = new SmallButton();
 private final Action expandAction;
  +  private final Action closeAction;
  +  private final Action editLoggerAction;
   
 /**
  * @param logTreeModel
  @@ -105,7 +119,7 @@
   setBorder(BorderFactory.createEtchedBorder());
   
   logTree =
  -  new LoggerNameTree(logTreeModel) {
  +  new JTree(logTreeModel) {
 public String getToolTipText(MouseEvent ev) {
   if (ev == null) {
 return null;
  @@ -134,6 +148,34 @@
   };
   
   ToolTipManager.sharedInstance().registerComponent(logTree);
  +logTree.setPreferredSize(new Dimension(400, 400));
  +logTree.setCellRenderer(new LoggerNameTreeCellRenderer());
  +
  +//   
  +logTreeModel.addTreeModelListener(
  +  new TreeModelListener() {
  +public void treeNodesChanged(TreeModelEvent e) {
  +  ensureRootExpanded();
  +}
  +
  +public void treeNodesInserted(TreeModelEvent e) {
  +  ensureRootExpanded();
  +}
  +
  +public void treeNodesRemoved(TreeModelEvent e) {
  +  ensureRootExpanded();
  +}
  +
  +private void ensureRootExpanded() {
  +  logTree.expandRow(0);
  +}
  +
  +public void treeStructureChanged(TreeModelEvent e) {
  +  ensureRootExpanded();
  +}
  +  });
  +
  +logTree.setEditable(false);
   
   //   TODO decide if Multi-selection is useful, and how it would work 
   TreeSelectionModel selectionModel = new DefaultTreeSelectionModel();
  @@ -143,21 +185,42 @@
   logTree.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
   scrollTree = new JScrollPane(logTree);
   
  -toolbarPanel.setLayout(new BoxLayout(toolbarPanel, BoxLayout.X_AXIS));
  +toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.X_AXIS));
   
   expandAction = createExpandAction();
  +editLoggerAction = createEditLoggerAction();
  +closeAction = createCloseAction();
   
   setupListeners();
   configureToolbarPanel();
   
  -add(toolbarPanel, BorderLayout.NORTH);
  +add(toolbar, BorderLayout.NORTH);
   add(scrollTree, BorderLayout.CENTER);
 }
   
 /**
  -  * Configures varoius listeners etc for the components within
  -  * this Class.
  +   * An action that closes (hides) this panel
  +  * @return
 */
  + 

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-02 Thread psmith
psmith  2003/09/02 01:19:59

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Added collapse current node's children action, button, and icon.
  
  Revision  ChangesPath
  1.4   +78 -6 
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LoggerNameTreePanel.java  2 Sep 2003 03:38:38 -   1.3
  +++ LoggerNameTreePanel.java  2 Sep 2003 08:19:59 -   1.4
  @@ -105,9 +105,11 @@
 private final JScrollPane scrollTree;
 private final JToolBar toolbar = new JToolBar();
 private final JButton expandButton = new SmallButton();
  +  private final JButton collapseButton = new SmallButton();
 private final JButton closeButton = new SmallButton();
 private final JButton editLoggerButton = new SmallButton();
 private final Action expandAction;
  +  private final Action collapseAction;
 private final Action closeAction;
 private final Action editLoggerAction;
   
  @@ -166,10 +168,6 @@
 ensureRootExpanded();
   }
   
  -private void ensureRootExpanded() {
  -  logTree.expandRow(0);
  -}
  -
   public void treeStructureChanged(TreeModelEvent e) {
 ensureRootExpanded();
   }
  @@ -190,7 +188,7 @@
   expandAction = createExpandAction();
   editLoggerAction = createEditLoggerAction();
   closeAction = createCloseAction();
  -
  +collapseAction = createCollapseAction();
   setupListeners();
   configureToolbarPanel();
   
  @@ -198,10 +196,36 @@
   add(scrollTree, BorderLayout.CENTER);
 }
   
  +  private void ensureRootExpanded() {
  +logTree.expandRow(0);
  +  }
  +
 /**
  -   * An action that closes (hides) this panel
 * @return
 */
  +  private Action createCollapseAction() {
  +Action action =
  +  new AbstractAction() {
  +public void actionPerformed(ActionEvent e) {
  +  collapseCurrentlySelectedNode();
  +}
  +  };
  +
  +action.putValue(Action.NAME, "Collapse");
  +action.putValue(
  +  Action.SHORT_DESCRIPTION,
  +  "Collapses all the children of the currently selected node");
  +action.putValue(
  +  Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_COLLAPSE));
  +action.setEnabled(false);
  +
  +return action;
  +  }
  +
  +  /**
  + * An action that closes (hides) this panel
  +* @return
  +*/
 private Action createCloseAction() {
   Action action =
 new AbstractAction() {
  @@ -231,6 +255,7 @@
 TreePath path = e.getNewLeadSelectionPath();
 expandAction.setEnabled(path != null);
 editLoggerAction.setEnabled(path != null);
  +  collapseAction.setEnabled(path != null);
   }
 });
   
  @@ -299,6 +324,49 @@
 }
   
 /**
  +   * Given the currently selected nodes
  +   * collapses all the children of those nodes.
  +   *
  +   */
  +  private void collapseCurrentlySelectedNode() {
  +TreePath[] paths = logTree.getSelectionPaths();
  +
  +if (paths == null) {
  +  return;
  +}
  +
  +LogLog.debug("Collapsing all children of selected node");
  +
  +for (int i = 0; i < paths.length; i++) {
  +  TreePath path = paths[i];
  +  DefaultMutableTreeNode node =
  +(DefaultMutableTreeNode) path.getLastPathComponent();
  +  Enumeration enumeration = node.depthFirstEnumeration();
  +
  +  while (enumeration.hasMoreElements()) {
  +DefaultMutableTreeNode child =
  +  (DefaultMutableTreeNode) enumeration.nextElement();
  +
  +if (child.getParent() != null) {
  +  TreeNode[] nodes =
  +((DefaultMutableTreeNode) child.getParent()).getPath();
  +
  +  TreePath treePath = new TreePath(nodes);
  +
  +  while ((treePath != null) && (treePath.getPathCount() > 0)) {
  +DefaultMutableTreeNode potentialRoot =
  +  (DefaultMutableTreeNode) treePath.getPathComponent(0);
  +logTree.collapsePath(treePath);
  +treePath = treePath.getParentPath();
  +  }
  +}
  +  }
  +}
  +
  +ensureRootExpanded();
  +  }
  +
  +  /**
  * Expands the currently selected node (if any)
  * including all the children.
  *
  @@ -368,12 +436,16 @@
   
   expandButton.setAction(expandAction);
   expandButton.setText(null);
  +collapseButton.setAction(collapseAction);
  +collapseButton.setText(null);
  +
   editLoggerButton.setAction(editLoggerAction);
   editLoggerButton.setText(null);
   closeButton.setAction(closeAction);
   closeButton.setText(null);
   
   toolbar

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-01 Thread psmith
psmith  2003/09/01 15:33:32

  Modified:src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  added mini-toolbar to the LoggerName tree panel, with expansion
  button.
  
  added support for CTRL+Dbl Click to auto-expand all child nodes.
  
  Tooltip for each node in the tree is the complete dotted package name
  
  Revision  ChangesPath
  1.2   +205 -6
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LoggerNameTreePanel.java  1 Sep 2003 03:56:51 -   1.1
  +++ LoggerNameTreePanel.java  1 Sep 2003 22:33:32 -   1.2
  @@ -51,30 +51,229 @@
*/
   package org.apache.log4j.chainsaw;
   
  +import org.apache.log4j.chainsaw.icons.ChainsawIcons;
  +import org.apache.log4j.helpers.LogLog;
  +
   import java.awt.BorderLayout;
  +import java.awt.event.ActionEvent;
  +import java.awt.event.InputEvent;
  +import java.awt.event.MouseAdapter;
  +import java.awt.event.MouseEvent;
  +
  +import java.util.ArrayList;
  +import java.util.Collections;
  +import java.util.Enumeration;
  +import java.util.List;
   
  +import javax.swing.AbstractAction;
  +import javax.swing.Action;
  +import javax.swing.BorderFactory;
  +import javax.swing.BoxLayout;
  +import javax.swing.ImageIcon;
  +import javax.swing.JButton;
   import javax.swing.JPanel;
   import javax.swing.JScrollPane;
   import javax.swing.JTree;
  +import javax.swing.ToolTipManager;
  +import javax.swing.event.TreeSelectionEvent;
  +import javax.swing.event.TreeSelectionListener;
  +import javax.swing.tree.DefaultMutableTreeNode;
  +import javax.swing.tree.DefaultTreeSelectionModel;
  +import javax.swing.tree.TreeNode;
  +import javax.swing.tree.TreePath;
  +import javax.swing.tree.TreeSelectionModel;
   
   
   /**
  + * A panel that encapsulates the Logger Name tree, with associated actions
*
* @author Paul Smith <[EMAIL PROTECTED]>
*/
   final class LoggerNameTreePanel extends JPanel {
  +  private static final int WARN_DEPTH = 4;
  +  private final JTree logTree;
  +  private final JScrollPane scrollTree;
  +  private final JPanel toolbarPanel = new JPanel();
  +  private final JButton expandButton = new SmallButton();
  +  private final Action expandAction;
   
  -  final JTree logTree ;
  -  final JScrollPane scrollTree;
 /**
  * @param logTreeModel
  */
  -  LoggerNameTreePanel(LogPanelLoggerTreeModel logTreeModel)
  -  {
  +  LoggerNameTreePanel(LogPanelLoggerTreeModel logTreeModel) {
   super(new BorderLayout());
  -logTree = new LoggerNameTree(logTreeModel);
  -
  +setBorder(BorderFactory.createEtchedBorder());
  +
  +logTree =
  +  new LoggerNameTree(logTreeModel) {
  +  public String getToolTipText(MouseEvent ev) {
  +if (ev == null) {
  +  return null;
  +}
  +
  +TreePath path = logTree.getPathForLocation(ev.getX(), ev.getY());
  +
  +if (path != null) {
  +  Object[] objects = path.getPath();
  +  StringBuffer buf = new StringBuffer();
  +
  +  for (int i = 1; i < objects.length; i++) {
  +buf.append(objects[i].toString());
  +
  +if (i < (objects.length - 1)) {
  +  buf.append(".");
  +}
  +  }
  +
  +  // TODO output the Level filter details
  +  return buf.toString();
  +}
  +
  +return null;
  +  }
  +};
  +
  +ToolTipManager.sharedInstance().registerComponent(logTree);
  +
  +//   TODO decide if Multi-selection is useful, and how it would work 
  +TreeSelectionModel selectionModel = new DefaultTreeSelectionModel();
  +selectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
  +logTree.setSelectionModel(selectionModel);
  +
  +logTree.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
   scrollTree = new JScrollPane(logTree);
  +
  +toolbarPanel.setLayout(new BoxLayout(toolbarPanel, BoxLayout.X_AXIS));
  +
  +expandAction = createExpandAction();
  +
  +setupListeners();
  +configureToolbarPanel();
  +
  +add(toolbarPanel, BorderLayout.NORTH);
   add(scrollTree, BorderLayout.CENTER);
  +  }
  +
  +  /**
  +  * Configures varoius listeners etc for the components within
  +  * this Class.
  +  */
  +  private void setupListeners() {
  +/**
  +   * Enable the actions depending on state of the tree selection
  +   */
  +logTree.addTreeSelectionListener(
  +  new TreeSelectionListener() {
  +public void valueChanged(TreeSelectionEvent e) {
  +  TreePath path = e.getNewLead

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java

2003-09-01 Thread psmith
psmith  2003/08/31 20:56:51

  Added:   src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Log:
  Rather than encapsulate the Logger name tree in just
  a tree component, encapsulate it in a Panel so
  we can add some other functionality similar
  to the way the Receiver panel works (a mini-toolbar etc).
  
  Revision  ChangesPath
  1.1  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
  
  Index: LoggerNameTreePanel.java
  ===
  /*
   * 
   *   The Apache Software License, Version 1.1
   * 
   *
   *Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of  source code must  retain the above copyright  notice,
   *this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *this list of conditions and the following disclaimer in the documentation
   *and/or other materials provided with the distribution.
   *
   * 3. The end-user documentation included with the redistribution, if any, must
   *include  the following  acknowledgment:  "This product includes  software
   *developed  by the  Apache Software Foundation  (http://www.apache.org/)."
   *Alternately, this  acknowledgment may  appear in the software itself,  if
   *and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "log4j" and  "Apache Software Foundation"  must not be used to
   *endorse  or promote  products derived  from this  software without  prior
   *written permission. For written permission, please contact
   *[EMAIL PROTECTED]
   *
   * 5. Products  derived from this software may not  be called "Apache", nor may
   *"Apache" appear  in their name,  without prior written permission  of the
   *Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   *
   * This software  consists of voluntary contributions made  by many individuals
   * on  behalf of the Apache Software  Foundation.  For more  information on the
   * Apache Software Foundation, please see .
   *
   */
  
  /*
   */
  package org.apache.log4j.chainsaw;
  
  import java.awt.BorderLayout;
  
  import javax.swing.JPanel;
  import javax.swing.JScrollPane;
  import javax.swing.JTree;
  
  
  /**
   *
   * @author Paul Smith <[EMAIL PROTECTED]>
   */
  final class LoggerNameTreePanel extends JPanel {
  
final JTree logTree ;
final JScrollPane scrollTree;
/**
 * @param logTreeModel
 */
LoggerNameTreePanel(LogPanelLoggerTreeModel logTreeModel)
{
  super(new BorderLayout());
  logTree = new LoggerNameTree(logTreeModel);
  
  scrollTree = new JScrollPane(logTree);
  add(scrollTree, BorderLayout.CENTER);
}
  }
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]