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]