psmith      2003/06/22 19:56:16

  Modified:    src/java/org/apache/log4j/chainsaw ReceiversPanel.java
  Log:
  Now uses the Pauseable interface to 
  activate the Pausing/resuming actions.
  
  also allowed edit of Current receiver from popup menu (not that
  the action does anything just yet).
  
  Revision  Changes    Path
  1.12      +79 -67    
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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ReceiversPanel.java       20 Jun 2003 06:32:31 -0000      1.11
  +++ ReceiversPanel.java       23 Jun 2003 02:56:16 -0000      1.12
  @@ -53,6 +53,7 @@
   import org.apache.log4j.chainsaw.icons.ChainsawIcons;
   import org.apache.log4j.net.SocketNodeEventListener;
   import org.apache.log4j.net.SocketReceiver;
  +import org.apache.log4j.plugins.Pauseable;
   import org.apache.log4j.plugins.PluginRegistry;
   import org.apache.log4j.plugins.Receiver;
   
  @@ -108,7 +109,6 @@
     final Action playReceiverButtonAction;
     final Action shutdownReceiverButtonAction;
     final Action pauseReceiverButtonAction;
  -    
     final Action newReceiverButtonAction;
     final Action editReceiverButtonAction;
   
  @@ -130,22 +130,27 @@
               JOptionPane.showMessageDialog(logui, "Not Implemented yet, sorry");
             }
           };
  -    newReceiverButtonAction.putValue(Action.SMALL_ICON, new 
ImageIcon(ChainsawIcons.ICON_NEW_RECEIVER));
  -    newReceiverButtonAction.putValue(Action.SHORT_DESCRIPTION, "Creates and 
configures a new Receiver");
  +    newReceiverButtonAction.putValue(
  +      Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_NEW_RECEIVER));
  +    newReceiverButtonAction.putValue(
  +      Action.SHORT_DESCRIPTION, "Creates and configures a new Receiver");
       newReceiverButtonAction.putValue(Action.NAME, "New Receiver");
       newReceiverButtonAction.putValue(
         Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_N));
   
       newReceiverButtonAction.setEnabled(true);
  -      
  +
       editReceiverButtonAction =
         new AbstractAction() {
             public void actionPerformed(ActionEvent e) {
               JOptionPane.showMessageDialog(logui, "Not Implemented yet, sorry");
             }
           };
  -    editReceiverButtonAction.putValue(Action.SMALL_ICON, new 
ImageIcon(ChainsawIcons.ICON_EDIT_RECEIVER));
  -    editReceiverButtonAction.putValue(Action.SHORT_DESCRIPTION, "Edits the 
configuration of the selected Receiver");
  +    editReceiverButtonAction.putValue(
  +      Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_EDIT_RECEIVER));
  +    editReceiverButtonAction.putValue(
  +      Action.SHORT_DESCRIPTION,
  +      "Edits the configuration of the selected Receiver");
       editReceiverButtonAction.putValue(Action.NAME, "Edit Receiver");
       editReceiverButtonAction.setEnabled(false);
       editReceiverButtonAction.putValue(
  @@ -160,15 +165,13 @@
   
       playReceiverButtonAction.putValue(
         Action.SHORT_DESCRIPTION, "Resumes the selected Node");
  -    playReceiverButtonAction.putValue(
  -      Action.NAME, "Resume");
  +    playReceiverButtonAction.putValue(Action.NAME, "Resume");
       playReceiverButtonAction.putValue(
         Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_RESUME_RECEIVER));
       playReceiverButtonAction.setEnabled(false);
       playReceiverButtonAction.putValue(
         Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_R));
   
  -
       pauseReceiverButtonAction =
         new AbstractAction() {
             public void actionPerformed(ActionEvent e) {
  @@ -179,12 +182,10 @@
       pauseReceiverButtonAction.putValue(
         Action.SHORT_DESCRIPTION,
         "Pause the selected Receiver.  All events received will be discarded.");
  -    pauseReceiverButtonAction.putValue(
  -      Action.NAME, "Pause");
  +    pauseReceiverButtonAction.putValue(Action.NAME, "Pause");
   
       pauseReceiverButtonAction.putValue(
         Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
  -      
   
       pauseReceiverButtonAction.putValue(
         Action.SMALL_ICON, new ImageIcon(ChainsawIcons.PAUSE));
  @@ -200,8 +201,7 @@
       shutdownReceiverButtonAction.putValue(
         Action.SHORT_DESCRIPTION,
         "Shuts down the selected Receiver, and removes it from the Plugin registry");
  -    shutdownReceiverButtonAction.putValue(
  -      Action.NAME, "Shutdown");
  +    shutdownReceiverButtonAction.putValue(Action.NAME, "Shutdown");
   
       shutdownReceiverButtonAction.putValue(
         Action.SMALL_ICON, new ImageIcon(ChainsawIcons.ICON_STOP_RECEIVER));
  @@ -342,6 +342,23 @@
     }
   
     /**
  +   * Returns the currently seleted node's User Object, or null
  +   * if there is no selected node, or if the currently selected node has
  +   * not user Object
  +   * @return Object representing currently seleted Node's User Object
  +   */
  +  private Object getCurrentlySeletedUserObject() {
  +    DefaultMutableTreeNode node =
  +      (DefaultMutableTreeNode) receiversTree.getLastSelectedPathComponent();
  +
  +    if (node == null) {
  +      return null;
  +    }
  +
  +    return node.getUserObject();
  +  }
  +
  +  /**
      * Ensures that the currently selected receiver active property is set to
      * true
      *
  @@ -352,11 +369,8 @@
           public void run() {
             Receiver receiver = getCurrentlySelectedReceiver();
   
  -          if (receiver != null) {
  -            if (!receiver.isActive()) {
  -              receiver.setActive(true);
  -            }
  -
  +          if ((receiver != null) && receiver instanceof Pauseable) {
  +            ((Pauseable) receiver).setPaused(false);
               updateReceiverTreeInDispatchThread();
             }
           }
  @@ -377,8 +391,8 @@
           public void run() {
             Receiver receiver = getCurrentlySelectedReceiver();
   
  -          if (receiver != null) {
  -            receiver.setActive(false);
  +          if ((receiver != null) && receiver instanceof Pauseable) {
  +            ((Pauseable) receiver).setPaused(true);
               updateReceiverTreeInDispatchThread();
             }
           }
  @@ -414,6 +428,39 @@
     }
   
     /**
  +   *
  +   */
  +  private void updateActions() {
  +    Object object = getCurrentlySeletedUserObject();
  +
  +    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);
  +    }
  +
  +    if (object instanceof Receiver) {
  +      editReceiverButtonAction.setEnabled(true);
  +      newReceiverButtonAction.setEnabled(true);
  +    } else {
  +      editReceiverButtonAction.setEnabled(false);
  +      newReceiverButtonAction.setEnabled(true);
  +    }
  +  }
  +
  +  /**
      * A simple Panel that has toolbar buttons for restarting,
      * playing, pausing, and stoping receivers
      *
  @@ -422,11 +469,9 @@
      */
     private class ReceiverToolbar extends JToolBar
       implements TreeSelectionListener {
  -
       private ReceiverToolbar() {
         setFloatable(false);
   
  -
         SmallButton playReceiverButton =
           new SmallButton(playReceiverButtonAction);
         playReceiverButton.setText(null);
  @@ -434,25 +479,25 @@
         SmallButton pauseReceiverButton =
           new SmallButton(pauseReceiverButtonAction);
         pauseReceiverButton.setText(null);
  -      
  +
         SmallButton shutdownReceiverButton =
           new SmallButton(shutdownReceiverButtonAction);
         shutdownReceiverButton.setText(null);
  -      
  +
         SmallButton restartAllButton = new SmallButton(startAllAction);
         restartAllButton.setText(null);
   
         SmallButton newReceiverButton = new SmallButton(newReceiverButtonAction);
         newReceiverButton.setText(null);
   
  -      SmallButton editReceiverButton = new SmallButton(editReceiverButtonAction);
  +      SmallButton editReceiverButton =
  +        new SmallButton(editReceiverButtonAction);
         editReceiverButton.setText(null);
   
  -
         add(newReceiverButton);
         add(editReceiverButton);
         addSeparator();
  -      
  +
         add(playReceiverButton);
         add(pauseReceiverButton);
         add(shutdownReceiverButton);
  @@ -482,30 +527,7 @@
        * according to the currently selected node in the tree
        */
       public void valueChanged(TreeSelectionEvent e) {
  -      Receiver receiver = getCurrentlySelectedReceiver();
  -
  -      if (receiver != null) {
  -        if (receiver.isActive()) {
  -          shutdownReceiverButtonAction.setEnabled(true);
  -          pauseReceiverButtonAction.setEnabled(true);
  -          playReceiverButtonAction.setEnabled(false);
  -          editReceiverButtonAction.setEnabled(true);
  -          newReceiverButtonAction.setEnabled(false);
  -          
  -        } else {
  -          shutdownReceiverButtonAction.setEnabled(true);
  -          pauseReceiverButtonAction.setEnabled(false);
  -          playReceiverButtonAction.setEnabled(true);
  -          editReceiverButtonAction.setEnabled(true);
  -          newReceiverButtonAction.setEnabled(false);
  -        }
  -      } else {
  -        shutdownReceiverButtonAction.setEnabled(false);
  -        pauseReceiverButtonAction.setEnabled(false);
  -        playReceiverButtonAction.setEnabled(false);
  -        editReceiverButtonAction.setEnabled(false);
  -        newReceiverButtonAction.setEnabled(true);
  -      }
  +      updateActions();
       }
     }
   
  @@ -517,7 +539,6 @@
      *
      */
     class ReceiverPopupMenu extends JPopupMenu {
  -
       ReceiverPopupMenu() {
       }
   
  @@ -563,23 +584,15 @@
           new AbstractAction(
             "Pause this Receiver", new ImageIcon(ChainsawIcons.PAUSE)) {
             public void actionPerformed(ActionEvent e) {
  -            Receiver receiver = getCurrentlySelectedReceiver();
  -
  -            if (receiver != null) {
  -              if (receiver instanceof SocketReceiver) {
  -                SocketReceiver socketReceiver = (SocketReceiver) receiver;
  -                socketReceiver.setActive(false);
  -                logui.getStatusBar().setMessage(
  -                  socketReceiver.getName() + " has been paused");
  -                updateReceiverTreeInDispatchThread();
  -              }
  -            }
  +            pauseCurrentlySelectedReceiver();
             }
           };
   
         add(playReceiverButtonAction);
         add(pauseReceiverButtonAction);
         add(shutdownReceiverButtonAction);
  +      addSeparator();
  +      add(editReceiverButtonAction);
       }
   
       /**
  @@ -589,13 +602,12 @@
        */
       private void buildForReceiversRoot() {
         JMenuItem startAll = new JMenuItem(startAllAction);
  -      
  +
         add(newReceiverButtonAction);
         add(editReceiverButtonAction);
  -      
  +
         addSeparator();
         add(startAll);
  -      
       }
     }
   
  
  
  

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

Reply via email to