psmith      2003/06/22 20:50:33

  Modified:    src/java/org/apache/log4j/chainsaw ReceiversPanel.java
  Log:
  Changes because of TreeModel moving from static factory, to refresh
  methodology.
  
  Revision  Changes    Path
  1.13      +50 -16    
jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java
  
  Index: ReceiversPanel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ReceiversPanel.java       23 Jun 2003 02:56:16 -0000      1.12
  +++ ReceiversPanel.java       23 Jun 2003 03:50:33 -0000      1.13
  @@ -91,6 +91,8 @@
   import javax.swing.event.TreeSelectionEvent;
   import javax.swing.event.TreeSelectionListener;
   import javax.swing.tree.DefaultMutableTreeNode;
  +import javax.swing.tree.DefaultTreeModel;
  +import javax.swing.tree.TreeModel;
   
   
   /**
  @@ -121,7 +123,7 @@
       setMinimumSize(getPreferredSize());
       setMaximumSize(getPreferredSize());
   
  -    receiversTree.setModel(ReceiversTreeModel.create());
  +    receiversTree.setModel(new ReceiversTreeModel());
   
       receiversTree.setToolTipText("Allows you to manage Log4j Receivers");
       newReceiverButtonAction =
  @@ -256,7 +258,10 @@
       updateReceiverTree =
         new Runnable() {
             public void run() {
  -            receiversTree.setModel(ReceiversTreeModel.create());
  +            ReceiversTreeModel model =
  +              (ReceiversTreeModel) receiversTree.getModel();
  +              
  +            model.refresh();
             }
           };
   
  @@ -347,7 +352,7 @@
      * not user Object
      * @return Object representing currently seleted Node's User Object
      */
  -  private Object getCurrentlySeletedUserObject() {
  +  private Object getCurrentlySelectedUserObject() {
       DefaultMutableTreeNode node =
         (DefaultMutableTreeNode) receiversTree.getLastSelectedPathComponent();
   
  @@ -367,11 +372,12 @@
       new Thread(
         new Runnable() {
           public void run() {
  -          Receiver receiver = getCurrentlySelectedReceiver();
  +          Object obj = getCurrentlySelectedUserObject();
   
  -          if ((receiver != null) && receiver instanceof Pauseable) {
  -            ((Pauseable) receiver).setPaused(false);
  -            updateReceiverTreeInDispatchThread();
  +          if ((obj != null) && obj instanceof Pauseable) {
  +            ((Pauseable) obj).setPaused(false);
  +
  +            updateCurrentlySelectedNodeInDispatchThread();
             }
           }
         }).start();
  @@ -389,17 +395,38 @@
       new Thread(
         new Runnable() {
           public void run() {
  -          Receiver receiver = getCurrentlySelectedReceiver();
  +          Object obj = getCurrentlySelectedUserObject();
   
  -          if ((receiver != null) && receiver instanceof Pauseable) {
  -            ((Pauseable) receiver).setPaused(true);
  -            updateReceiverTreeInDispatchThread();
  +          if ((obj != null) && obj instanceof Pauseable) {
  +            ((Pauseable) obj).setPaused(true);
  +            updateCurrentlySelectedNodeInDispatchThread();
             }
           }
         }).start();
     }
   
     /**
  +   *
  +   */
  +  protected void updateCurrentlySelectedNodeInDispatchThread() {
  +    SwingUtilities.invokeLater(
  +      new Runnable() {
  +        public void run() {
  +          DefaultMutableTreeNode node =
  +            (DefaultMutableTreeNode) receiversTree
  +            .getLastSelectedPathComponent();
  +
  +          if (node == null) {
  +            return;
  +          }
  +
  +          ((ReceiversTreeModel) receiversTree.getModel()).reload(node);
  +          updateActions();
  +        }
  +      });
  +  }
  +
  +  /**
      * Takes the currently selected Receiver and stops it, which effectively
      * removes it from the PluginRegistry.
      *
  @@ -431,22 +458,19 @@
      *
      */
     private void updateActions() {
  -    Object object = getCurrentlySeletedUserObject();
  +    Object object = getCurrentlySelectedUserObject();
   
       if ((object != null) && object instanceof Pauseable) {
         Pauseable pauseable = (Pauseable) object;
   
         if (!pauseable.isPaused()) {
  -        shutdownReceiverButtonAction.setEnabled(true);
           pauseReceiverButtonAction.setEnabled(true);
           playReceiverButtonAction.setEnabled(false);
         } else {
  -        shutdownReceiverButtonAction.setEnabled(true);
           pauseReceiverButtonAction.setEnabled(false);
           playReceiverButtonAction.setEnabled(true);
         }
       } else {
  -      shutdownReceiverButtonAction.setEnabled(false);
         pauseReceiverButtonAction.setEnabled(false);
         playReceiverButtonAction.setEnabled(false);
       }
  @@ -454,8 +478,10 @@
       if (object instanceof Receiver) {
         editReceiverButtonAction.setEnabled(true);
         newReceiverButtonAction.setEnabled(true);
  +      shutdownReceiverButtonAction.setEnabled(true);
       } else {
         editReceiverButtonAction.setEnabled(false);
  +      shutdownReceiverButtonAction.setEnabled(false);
         newReceiverButtonAction.setEnabled(true);
       }
     }
  @@ -563,7 +589,7 @@
         Object userObject = node.getUserObject();
         removeAll();
   
  -      if (userObject == ReceiversTreeModel.RootNode.getUserObject()) {
  +      if (userObject == getRootOfTree().getUserObject()) {
           buildForReceiversRoot();
         } else {
           buildForReceiverNode();
  @@ -573,6 +599,14 @@
         this.validate();
   
         super.show(invoker, x, y);
  +    }
  +
  +    /**
  +     * 
  +     */
  +    private DefaultMutableTreeNode getRootOfTree() {
  +      return (DefaultMutableTreeNode) receiversTree.getModel().getRoot();
  +      
       }
   
       /**
  
  
  

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

Reply via email to