You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ps...@apache.org on 2003/06/25 10:25:26 UTC

cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw Details_SocketReceiver.properties ReceiversPanel.java

psmith      2003/06/25 01:25:25

  Modified:    src/java/org/apache/log4j/chainsaw ReceiversPanel.java
  Added:       src/java/org/apache/log4j/chainsaw
                        Details_SocketReceiver.properties
  Log:
  WIP for the Receiver creating panel.
  
  Uses a Resouce bundle for the text describing what the Receiver does.
  
  Revision  Changes    Path
  1.2       +168 -11   jakarta-log4j/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java
  
  Index: ReceiversPanel.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ReceiversPanel.java	25 Jun 2003 04:05:22 -0000	1.1
  +++ ReceiversPanel.java	25 Jun 2003 08:25:24 -0000	1.2
  @@ -66,13 +66,20 @@
   import java.awt.Dimension;
   import java.awt.Graphics;
   import java.awt.Graphics2D;
  +import java.awt.GridBagConstraints;
  +import java.awt.GridBagLayout;
  +import java.awt.Insets;
   import java.awt.RenderingHints;
   import java.awt.event.ActionEvent;
  +import java.awt.event.ActionListener;
   import java.awt.event.KeyEvent;
   
   import java.util.Collection;
  +import java.util.HashMap;
   import java.util.Iterator;
   import java.util.List;
  +import java.util.Map;
  +import java.util.ResourceBundle;
   
   import javax.swing.AbstractAction;
   import javax.swing.Action;
  @@ -80,15 +87,19 @@
   import javax.swing.Box;
   import javax.swing.Icon;
   import javax.swing.ImageIcon;
  +import javax.swing.JButton;
   import javax.swing.JComponent;
   import javax.swing.JDialog;
  +import javax.swing.JLabel;
   import javax.swing.JMenuItem;
   import javax.swing.JOptionPane;
   import javax.swing.JPanel;
   import javax.swing.JPopupMenu;
   import javax.swing.JScrollPane;
  +import javax.swing.JTextField;
   import javax.swing.JToolBar;
   import javax.swing.JTree;
  +import javax.swing.KeyStroke;
   import javax.swing.SwingUtilities;
   import javax.swing.event.TreeSelectionEvent;
   import javax.swing.event.TreeSelectionListener;
  @@ -570,6 +581,9 @@
         Class[] receivers =
           new Class[] { SocketReceiver.class, UDPReceiver.class };
   
  +      final Map dialogMap = new HashMap();
  +      dialogMap.put(SocketReceiver.class, new ReceiverPanel(SocketReceiver.class, "Socket Receiver", "SocketReceiver"));
  +
         for (int i = 0; i < receivers.length; i++) {
           final Class toCreate = receivers[i];
           Package thePackage = toCreate.getPackage();
  @@ -578,10 +592,17 @@
           add(
             new AbstractAction("New " + name + "...") {
               public void actionPerformed(ActionEvent e) {
  -              JOptionPane.showMessageDialog(
  -                logui,
  -                "You wanted a " + name
  -                + " but this is not finished yet, sorry.");
  +              if (dialogMap.containsKey(toCreate)) {
  +                JDialog dialog = (JDialog) dialogMap.get(toCreate);
  +                dialog.pack();
  +                dialog.setLocationRelativeTo(logui);
  +                dialog.show();
  +              } else {
  +                JOptionPane.showMessageDialog(
  +                  logui,
  +                  "You wanted a " + name
  +                  + " but this is not finished yet, sorry.");
  +              }
               }
             });
         }
  @@ -678,15 +699,15 @@
         container.add(new ThresholdSlider());
         dialog.setResizable(false);
         dialog.pack();
  -      
   
  -      Action setThresholdAction = new AbstractAction("Set Threshold..."){
  +      Action setThresholdAction =
  +        new AbstractAction("Set Threshold...") {
  +          public void actionPerformed(ActionEvent e) {
  +            dialog.setLocationRelativeTo(receiversTree);
  +            dialog.show();
  +          }
  +        };
   
  -        public void actionPerformed(ActionEvent e) {
  -          dialog.setLocationRelativeTo(receiversTree);
  -          dialog.show();    
  -        }};
  -      
         add(setThresholdAction);
       }
     }
  @@ -726,6 +747,142 @@
           x + xOffSet, y + yOffSet, x + size + xOffSet, y + size + yOffSet);
         g2D.drawLine(
           x + xOffSet, y + size + yOffSet, x + size + xOffSet, y + yOffSet);
  +    }
  +  }
  +
  +  private class ReceiverPanel extends JDialog {
  +    final OkCancelPanel okCancelPanel = new OkCancelPanel();
  +
  +    private ReceiverPanel(Class receiver, String bundleName, String name) {
  +      super(logui, "Create new " + name, true);
  +
  +      getContentPane().setLayout(new GridBagLayout());
  +
  +      GridBagConstraints c = new GridBagConstraints();
  +
  +      Container container = getContentPane();
  +      ResourceBundle resourceBundle = ResourceBundle.getBundle("org/apache/log4j/chainsaw/Details_" + name);
  +      
  +//      TODO put the text about Socket Receiver in a Resource Bundle
  +      JLabel infoLabel = new JLabel(resourceBundle.getString("Details"));
  +
  +      infoLabel.setOpaque(true);
  +      infoLabel.setForeground(Color.black);
  +      infoLabel.setBackground(Color.white);
  +      infoLabel.setVerticalTextPosition(JLabel.TOP);
  +      infoLabel.setVerticalAlignment(JLabel.TOP);
  +      infoLabel.setPreferredSize(new Dimension(320, 240));
  +
  +      c.fill = GridBagConstraints.BOTH;
  +      c.anchor = GridBagConstraints.NORTHWEST;
  +      c.weighty = 0.7;
  +      c.gridx = 0;
  +      c.gridy = 0;
  +      c.weightx = 1.0;
  +      c.gridwidth = 2;
  +
  +      Box lineBox = Box.createHorizontalBox();
  +      lineBox.setBorder(BorderFactory.createLineBorder(Color.gray));
  +
  +      container.add(infoLabel, c);
  +
  +      c.gridy++;
  +      c.weighty = 0.3;
  +      c.fill = GridBagConstraints.HORIZONTAL;
  +      container.add(lineBox, c);
  +
  +      JLabel portNumber = new JLabel("Port Number:");
  +
  +      JTextField portNumberEntry = new JTextField(5);
  +      portNumber.setLabelFor(portNumberEntry);
  +
  +      c.gridwidth = 1;
  +      c.gridx = 0;
  +      c.weightx = 0.25;
  +      c.gridy++;
  +      c.insets = new Insets(10, 5, 10, 5);
  +      c.anchor = GridBagConstraints.WEST;
  +
  +      container.add(portNumber, c);
  +      c.gridx++;
  +      c.weightx = 0.65;
  +      container.add(portNumberEntry, c);
  +
  +      Box lineBox3 = Box.createHorizontalBox();
  +      lineBox3.setBorder(BorderFactory.createLineBorder(Color.gray));
  +
  +      c.gridx = 0;
  +      c.gridwidth = 2;
  +      c.weighty = 0;
  +      c.gridy++;
  +      c.insets = new Insets(0, 0, 0, 0);
  +      container.add(lineBox3, c);
  +
  +      c.gridwidth = 2;
  +      c.gridx = 0;
  +      c.weighty = 0.0;
  +      c.gridy++;
  +      c.anchor = GridBagConstraints.SOUTH;
  +      c.fill = GridBagConstraints.BOTH;
  +      container.add(okCancelPanel, c);
  +
  +      Action closeAction =
  +        new AbstractAction("Cancel") {
  +          public void actionPerformed(ActionEvent e) {
  +            hide();
  +          }
  +        };
  +
  +      okCancelPanel.setCancelAction(closeAction);
  +
  +      Action okAction =
  +        new AbstractAction("Ok") {
  +          public void actionPerformed(ActionEvent e) {
  +            hide();
  +          }
  +        };
  +
  +      okAction.setEnabled(false);
  +      okCancelPanel.setOkAction(okAction);
  +
  +      getRootPane().registerKeyboardAction(
  +        closeAction, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
  +        JComponent.WHEN_IN_FOCUSED_WINDOW);
  +    }
  +  }
  +
  +  private static class OkCancelPanel extends JPanel {
  +    final JButton okButton = new JButton("Ok");
  +    final JButton cancelButton = new JButton("Cancel");
  +
  +    OkCancelPanel() {
  +      setLayout(new GridBagLayout());
  +
  +      cancelButton.setDefaultCapable(true);
  +      
  +      GridBagConstraints c = new GridBagConstraints();
  +
  +      c.fill = GridBagConstraints.HORIZONTAL;
  +      c.weightx = 1.0;
  +
  +      add(Box.createHorizontalGlue(), c);
  +
  +      c.insets = new Insets(5, 5, 5, 5);
  +      c.weightx = 0.0;
  +      c.fill = GridBagConstraints.NONE;
  +      c.anchor = GridBagConstraints.SOUTHEAST;
  +
  +      add(okButton, c);
  +      add(cancelButton, c);
  +      add(Box.createHorizontalStrut(6));
  +    }
  +
  +    void setCancelAction(Action a) {
  +      cancelButton.setAction(a);
  +    }
  +
  +    void setOkAction(Action a) {
  +      okButton.setAction(a);
       }
     }
   }
  
  
  
  1.1                  jakarta-log4j/src/java/org/apache/log4j/chainsaw/Details_SocketReceiver.properties
  
  Index: Details_SocketReceiver.properties
  ===================================================================
  Details=This is where we will put text describing a Socket Receiver
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-dev-help@jakarta.apache.org