psmith 2003/06/26 20:24:01
Modified: src/java/org/apache/log4j/chainsaw ReceiversPanel.java
Log:
subtle refactor and jalopolization.
Revision Changes Path
1.5 +100 -62
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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ReceiversPanel.java 26 Jun 2003 23:04:27 -0000 1.4
+++ ReceiversPanel.java 27 Jun 2003 03:24:01 -0000 1.5
@@ -49,6 +49,7 @@
package org.apache.log4j.chainsaw;
+import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.chainsaw.icons.ChainsawIcons;
import org.apache.log4j.helpers.LogLog;
@@ -73,9 +74,7 @@
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.RenderingHints;
-import java.awt.Toolkit;
import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
@@ -83,14 +82,16 @@
import java.beans.PropertyChangeListener;
import java.io.IOException;
+
import java.lang.reflect.Method;
+
import java.net.URL;
+
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;
@@ -114,6 +115,8 @@
import javax.swing.JTree;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.event.TreeSelectionEvent;
@@ -340,6 +343,10 @@
}
}
+ protected ReceiversTreeModel getReceiverTreeModel() {
+ return ((ReceiversTreeModel) receiversTree.getModel());
+ }
+
/**
*
*/
@@ -355,7 +362,7 @@
return;
}
- ((ReceiversTreeModel) receiversTree.getModel()).reload(node);
+ getReceiverTreeModel().nodeChanged(node);
updateActions();
}
});
@@ -573,46 +580,49 @@
dialogMap.put(
SocketReceiver.class,
new CreateReceiverDialog(
- SocketReceiver.class,
- "SocketReceiver",
- "Socket Receiver",
- new SimplePortBasedReceiverDialogPanel(SocketReceiver.class,
"SocketReceiver", SocketAppender.DEFAULT_PORT)));
-
- dialogMap.put(
- UDPReceiver.class,
- new CreateReceiverDialog(
- UDPReceiver.class, "UDPReceiver", "UDP Receiver",
- new SimplePortBasedReceiverDialogPanel(UDPReceiver.class,
"UDPReceiver", UDPAppender.DEFAULT_PORT)));
+ SocketReceiver.class, "SocketReceiver", "Socket Receiver",
+ new SimplePortBasedReceiverDialogPanel(
+ SocketReceiver.class, "SocketReceiver",
+ SocketAppender.DEFAULT_PORT)));
+
+ dialogMap.put(
+ UDPReceiver.class,
+ new CreateReceiverDialog(
+ UDPReceiver.class, "UDPReceiver", "UDP Receiver",
+ new SimplePortBasedReceiverDialogPanel(
+ UDPReceiver.class, "UDPReceiver", UDPAppender.DEFAULT_PORT)));
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) {
- 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
+ add(
+ new AbstractAction("New " + name + "...") {
+ public void actionPerformed(ActionEvent e) {
+ 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.");
+ }
}
- }
- });
+ });
}
+
addSeparator();
- Action note = new AbstractAction("More coming in future....") {
- public void actionPerformed(ActionEvent e) {
+ Action note =
+ new AbstractAction("More coming in future....") {
+ public void actionPerformed(ActionEvent e) {
+ }
+ };
- }
- };
note.setEnabled(false);
add(note);
@@ -703,13 +713,31 @@
final JDialog dialog = new JDialog(logui, "Set Threshold", true);
Container container = dialog.getContentPane();
- container.add(new ThresholdSlider());
+ final ThresholdSlider thresholdSlider = new ThresholdSlider();
+ thresholdSlider.getModel().addChangeListener(
+ new ChangeListener() {
+ public void stateChanged(ChangeEvent e) {
+ if (thresholdSlider.getValueIsAdjusting()) {
+ return;
+ }
+
+ Level level = thresholdSlider.getSelectedLevel();
+ LogManager.getLoggerRepository().setThreshold(level);
+ logui.getStatusBar().setMessage(
+ "Adjusted Log4j repository threshold to " + level);
+ getReceiverTreeModel().updateRootDisplay();
+ }
+ });
+
+ container.add(thresholdSlider);
dialog.setResizable(false);
dialog.pack();
Action setThresholdAction =
new AbstractAction("Set Threshold...") {
public void actionPerformed(ActionEvent e) {
+ thresholdSlider.setChosenLevel(
+ LogManager.getLoggerRepository().getThreshold());
dialog.setLocationRelativeTo(receiversTree);
dialog.show();
}
@@ -809,7 +837,7 @@
private CreateReceiverDialog(
Class receiver, String bundleName, String name,
- final AbstractReceiverDialogPanel entryPanel) throws IOException {
+ final AbstractReceiverDialogPanel entryPanel) throws IOException {
super(logui, "Create new Receiver", true);
setResizable(false);
getContentPane().setLayout(new GridBagLayout());
@@ -818,21 +846,20 @@
Container container = getContentPane();
URL descriptionResource =
-
this.getClass().getClassLoader().getResource("org/apache/log4j/chainsaw/Details_" +
bundleName + ".html");
+ this.getClass().getClassLoader().getResource(
+ "org/apache/log4j/chainsaw/Details_" + bundleName + ".html");
JEditorPane infoArea = new JEditorPane(descriptionResource);
- infoArea.addHyperlinkListener(new HyperlinkListener(){
-
- public void hyperlinkUpdate(HyperlinkEvent e) {
- if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED){
- logui.showHelp(e.getURL());
+ infoArea.addHyperlinkListener(
+ new HyperlinkListener() {
+ public void hyperlinkUpdate(HyperlinkEvent e) {
+ if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
+ logui.showHelp(e.getURL());
+ }
}
-
- }
- });
-
-// infoArea.setBorder(BorderFactory.createTitledBorder("Description"));
-
+ });
+
+ // infoArea.setBorder(BorderFactory.createTitledBorder("Description"));
infoArea.setOpaque(true);
infoArea.setEditable(false);
infoArea.setForeground(Color.black);
@@ -848,9 +875,12 @@
c.gridwidth = 2;
Box lineBox = Box.createHorizontalBox();
-// lineBox.setBorder(BorderFactory.createLineBorder(Color.gray));
- container.add(infoArea, c);
+ // lineBox.setBorder(BorderFactory.createLineBorder(Color.gray));
+ container.add(
+ new JScrollPane(
+ infoArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_NEVER), c);
c.gridy++;
c.weighty = 0.3;
@@ -867,8 +897,8 @@
container.add(entryPanel, c);
Box lineBox3 = Box.createHorizontalBox();
-// lineBox3.setBorder(BorderFactory.createLineBorder(Color.gray));
+ // lineBox3.setBorder(BorderFactory.createLineBorder(Color.gray));
c.gridx = 0;
c.gridwidth = 2;
c.weighty = 0;
@@ -1033,21 +1063,20 @@
private class SimplePortBasedReceiverDialogPanel
extends AbstractReceiverDialogPanel {
private String receiverName;
-
private Class receiverClass;
-
final JTextField portNumberEntry = new JTextField(8);
- SimplePortBasedReceiverDialogPanel(Class receiverClass, String receiverName,
int defaultPort) {
+ SimplePortBasedReceiverDialogPanel(
+ Class receiverClass, String receiverName, int defaultPort) {
this.receiverClass = receiverClass;
this.receiverName = receiverName;
+
JLabel portNumber = new JLabel("Port Number:");
portNumberEntry.setInputVerifier(new PortNumberVerifier());
portNumberEntry.setText(defaultPort + "");
portNumberEntry.selectAll();
-
-
+
portNumberEntry.addKeyListener(
new KeyListener() {
public void keyTyped(KeyEvent e) {
@@ -1082,26 +1111,35 @@
void createReceiver() {
int port = Integer.parseInt(portNumberEntry.getText());
Receiver receiver = null;
+
try {
receiver = (Receiver) receiverClass.newInstance();
- Method method = receiver.getClass().getMethod("setPort", new
Class[]{int.class});
- if(method!=null){
- method.invoke(receiver, new Object[]{new Integer(port)});
- }else {
+
+ Method method =
+ receiver.getClass().getMethod("setPort", new Class[] { int.class });
+
+ if (method != null) {
+ method.invoke(receiver, new Object[] { new Integer(port) });
+ } else {
throw new Exception("The Receiver class has no setPort method");
}
} catch (Exception e) {
LogLog.error("Error occurred creating the Receiver", e);
- logui.getStatusBar().setMessage("Error occurred creating the Receiver ::" +
e.getMessage());
+ logui.getStatusBar().setMessage(
+ "Error occurred creating the Receiver ::" + e.getMessage());
+
return;
- }
+ }
+
String name = receiverName;
String suffix = "";
int index = 1;
- while(PluginRegistry.pluginNameExists(name + suffix)){
- suffix = index+"";
+
+ while (PluginRegistry.pluginNameExists(name + suffix)) {
+ suffix = index + "";
index++;
}
+
receiver.setName(name + suffix);
PluginRegistry.startPlugin(receiver);
updateReceiverTreeInDispatchThread();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]