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]