psmith      2003/08/31 19:02:32

  Modified:    src/java/org/apache/log4j/chainsaw
                        LogPanelLoggerTreeModel.java
  Log:
  more effecient notification of the addition of nodes.
  
  The original method sent a nodeStructureChanged msg
  but this is pretty expensive, and tends to have the side
  effect of the Tree gui's constantly collapsing the icons.
  
  This model now notifies in the Swing event dispatching
  thread, and notifies each additional logger name node.
  
  Revision  Changes    Path
  1.2       +13 -8     
jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java
  
  Index: LogPanelLoggerTreeModel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogPanelLoggerTreeModel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LogPanelLoggerTreeModel.java      29 Aug 2003 05:53:36 -0000      1.1
  +++ LogPanelLoggerTreeModel.java      1 Sep 2003 02:02:32 -0000       1.2
  @@ -73,14 +73,8 @@
    */
   class LogPanelLoggerTreeModel extends DefaultTreeModel
     implements LoggerNameListener {
  -  private LogUI.LogPanel logPanel;
   
  -  LogPanelLoggerTreeModel(LogUI.LogPanel logPanel) {
  -    this();
  -    this.logPanel = logPanel;
  -  }
  -
  -  private LogPanelLoggerTreeModel() {
  +  LogPanelLoggerTreeModel() {
       super(new DefaultMutableTreeNode("Root"));
     }
   
  @@ -133,10 +127,21 @@
         DefaultMutableTreeNode newChild =
           new DefaultMutableTreeNode(packageName);
         current.add(newChild);
  +      
  +      final TreeNode changedNode = current;
  +      final int[] changedIndices = new int[]{current.getIndex(newChild)};
  +      SwingUtilities.invokeLater(new Runnable(){
  +
  +        public void run()
  +        {
  +          nodesWereInserted(changedNode, changedIndices);
  +          
  +        }});
         current = newChild;
       }
       
  -    nodeStructureChanged((TreeNode) getRoot());
  +    
  +//    nodeStructureChanged((TreeNode) getRoot());
       
     }
   
  
  
  

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

Reply via email to