psmith      2003/12/12 02:28:21

  Modified:    src/java/org/apache/log4j/chainsaw LoggerNameTreePanel.java
  Added:       src/java/org/apache/log4j/chainsaw ModifiableListModel.java
  Log:
  Moved some inner classes to Top level classes
  
  Revision  Changes    Path
  1.16      +64 -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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- LoggerNameTreePanel.java  10 Oct 2003 03:13:20 -0000      1.15
  +++ LoggerNameTreePanel.java  12 Dec 2003 10:28:20 -0000      1.16
  @@ -51,13 +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.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;
   import java.awt.Dimension;
  @@ -66,14 +59,13 @@
   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;
   import java.util.HashSet;
  +import java.util.Iterator;
   import java.util.List;
   import java.util.Set;
   
  @@ -82,11 +74,13 @@
   import javax.swing.BorderFactory;
   import javax.swing.Box;
   import javax.swing.BoxLayout;
  +import javax.swing.DefaultListModel;
   import javax.swing.Icon;
   import javax.swing.ImageIcon;
   import javax.swing.JButton;
   import javax.swing.JCheckBoxMenuItem;
   import javax.swing.JLabel;
  +import javax.swing.JList;
   import javax.swing.JPanel;
   import javax.swing.JPopupMenu;
   import javax.swing.JScrollPane;
  @@ -108,6 +102,13 @@
   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.chainsaw.rule.AbstractRule;
  +import org.apache.log4j.chainsaw.rule.Rule;
  +import org.apache.log4j.helpers.LogLog;
  +import org.apache.log4j.spi.LoggingEvent;
  +
   
   /**
    * A panel that encapsulates the Logger Name tree, with associated actions
  @@ -135,6 +136,9 @@
     private final Action focusOnAction;
     private final Action hideAction;
     private final Action clearIgnoreListAction;
  +  
  +  private final JList ignoreList = new JList();
  +  private final JScrollPane ignoreListScroll = new JScrollPane(ignoreList);
   
     //  private final EventListenerList focusOnActionListeners =
     //    new EventListenerList();
  @@ -234,6 +238,40 @@
   
       add(toolbar, BorderLayout.NORTH);
       add(scrollTree, BorderLayout.CENTER);
  +    
  +    add(ignoreListScroll, BorderLayout.SOUTH);
  +    
  +    CheckListCellRenderer cellRenderer = new CheckListCellRenderer(){
  +
  +      protected boolean isSelected(Object value) {
  +        return true;
  +      }
  +    
  +    };
  +    
  +    ignoreList.setCellRenderer(cellRenderer);
  +    
  +    ignoreList.addMouseListener(new MouseAdapter(){
  +      
  +      public void mouseClicked(MouseEvent e) {
  +        if (e.getClickCount()>1 && (e.getModifiers() & InputEvent.BUTTON1_MASK)>0) {
  +          int index = ignoreList.locationToIndex(e.getPoint());
  +
  +          if (index>=0) {
  +            String string =
  +              ignoreList.getModel().getElementAt(index).toString();
  +            toggleHiddenLogger(string);
  +            fireChangeEvent();
  +            /**
  +             * TODO this needs to get the node that has this logger and fire a 
visual update
  +             */
  +            LoggerNameTreePanel.this.logTreeModel.nodeStructureChanged((TreeNode) 
LoggerNameTreePanel.this.logTreeModel.getRoot());
  +          }
  +        }
  +      
  +      }
  +      
  +    });
     }
   
     /**
  @@ -260,6 +298,7 @@
             ignoreLoggerButton.setSelected(false);
             logTreeModel.reload();
             hiddenSet.clear();
  +          fireChangeEvent();
           }
         };
   
  @@ -576,6 +615,22 @@
                 firePropertyChange("rule", null, null);
           }
         });
  +      
  +      addPropertyChangeListener("hiddenSet",new PropertyChangeListener(){
  +
  +        public void propertyChange(PropertyChangeEvent arg0) {
  +
  +            DefaultListModel model = new DefaultListModel();
  +            
  +            List sortedIgnoreList = new ArrayList(getHiddenSet());
  +            Collections.sort(sortedIgnoreList);
  +            for (Iterator iter = sortedIgnoreList.iterator(); iter.hasNext();) {
  +              String string = (String) iter.next();
  +              model.addElement(string);
  +            }            
  +            ignoreList.setModel(model);          
  +        }});
  +
     }
   
     private void reconfigureMenuText() {
  
  
  
  1.1                  
jakarta-log4j/src/java/org/apache/log4j/chainsaw/ModifiableListModel.java
  
  Index: ModifiableListModel.java
  ===================================================================
  /*
   * Created on Dec 12, 2003
   *
   * To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.log4j.chainsaw;
  
  import javax.swing.DefaultListModel;
  
  /**
   * @author Paul Smith <[EMAIL PROTECTED]>
   *
   */
  public class ModifiableListModel extends DefaultListModel {
    public void fireContentsChanged(){
      fireContentsChanged(this,0, this.size());
    }
  
  }
  
  
  

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

Reply via email to