psmith      2003/06/23 00:48:09

  Modified:    src/java/org/apache/log4j/chainsaw ReceiversPanel.java
  Log:
  added a New Receiver popup menu highlighting the new Receiver
  you can create.  Currently this still doesn't do anything just yet.
  
  Still working on a Receiver configuration dialog, but this menu will
  be the entry point to it.
  
  Revision  Changes    Path
  1.14      +37 -9     
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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ReceiversPanel.java       23 Jun 2003 03:50:33 -0000      1.13
  +++ ReceiversPanel.java       23 Jun 2003 07:48:09 -0000      1.14
  @@ -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.net.UDPReceiver;
   import org.apache.log4j.plugins.Pauseable;
   import org.apache.log4j.plugins.PluginRegistry;
   import org.apache.log4j.plugins.Receiver;
  @@ -79,7 +80,6 @@
   import javax.swing.Icon;
   import javax.swing.ImageIcon;
   import javax.swing.JComponent;
  -import javax.swing.JMenu;
   import javax.swing.JMenuItem;
   import javax.swing.JOptionPane;
   import javax.swing.JPanel;
  @@ -91,8 +91,6 @@
   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;
   
   
   /**
  @@ -103,10 +101,13 @@
    * @author Scott Debogy <[EMAIL PROTECTED]>
    */
   class ReceiversPanel extends JPanel {
  +  private final ReceiverToolbar buttonPanel;
     private final JTree receiversTree = new JTree();
     private final LogUI logui;
     private final Runnable updateReceiverTree;
     private final JPopupMenu popupMenu = new ReceiverPopupMenu();
  +  private final NewReceiverPopupMenu newReceiverPopup =
  +    new NewReceiverPopupMenu();
     private final Action startAllAction;
     final Action playReceiverButtonAction;
     final Action shutdownReceiverButtonAction;
  @@ -129,7 +130,9 @@
       newReceiverButtonAction =
         new AbstractAction() {
             public void actionPerformed(ActionEvent e) {
  -            JOptionPane.showMessageDialog(logui, "Not Implemented yet, sorry");
  +            newReceiverPopup.show(
  +              buttonPanel.newReceiverButton, 0,
  +              buttonPanel.newReceiverButton.getHeight());
             }
           };
       newReceiverButtonAction.putValue(
  @@ -260,7 +263,7 @@
             public void run() {
               ReceiversTreeModel model =
                 (ReceiversTreeModel) receiversTree.getModel();
  -              
  +
               model.refresh();
             }
           };
  @@ -269,7 +272,7 @@
   
       receiversTree.setCellRenderer(new ReceiverTreeCellRenderer());
   
  -    ReceiverToolbar buttonPanel = new ReceiverToolbar();
  +    buttonPanel = new ReceiverToolbar();
       receiversTree.addTreeSelectionListener(buttonPanel);
   
       PopupListener popupListener = new PopupListener(popupMenu);
  @@ -495,6 +498,8 @@
      */
     private class ReceiverToolbar extends JToolBar
       implements TreeSelectionListener {
  +    final SmallButton newReceiverButton;
  +
       private ReceiverToolbar() {
         setFloatable(false);
   
  @@ -513,8 +518,9 @@
         SmallButton restartAllButton = new SmallButton(startAllAction);
         restartAllButton.setText(null);
   
  -      SmallButton newReceiverButton = new SmallButton(newReceiverButtonAction);
  +      newReceiverButton = new SmallButton(newReceiverButtonAction);
         newReceiverButton.setText(null);
  +      newReceiverButton.addMouseListener(new PopupListener(newReceiverPopup));
   
         SmallButton editReceiverButton =
           new SmallButton(editReceiverButtonAction);
  @@ -557,6 +563,29 @@
       }
     }
   
  +  class NewReceiverPopupMenu extends JPopupMenu {
  +    NewReceiverPopupMenu() {
  +      Class[] receivers =
  +        new Class[] { SocketReceiver.class, UDPReceiver.class };
  +
  +      for (int i = 0; i < receivers.length; i++) {
  +        final Class toCreate = receivers[i];
  +        Package thePackage = toCreate.getPackage();
  +        final String name =
  +          toCreate.getName().substring(thePackage.getName().length() + 1);
  +        add(
  +          new AbstractAction("New " + name + "...") {
  +            public void actionPerformed(ActionEvent e) {
  +              JOptionPane.showMessageDialog(
  +                logui,
  +                "You wanted a " + name
  +                + " but this is not finished yet, sorry.");
  +            }
  +          });
  +      }
  +    }
  +  }
  +
     /**
      * A popup menu class for when the user uses the popup trigger action
      * on a node in the Receiver tree.
  @@ -602,11 +631,10 @@
       }
   
       /**
  -     * 
  +     *
        */
       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