psmith 2003/09/18 20:56:56
Modified: src/java/org/apache/log4j/chainsaw LogUI.java
Log:
Small change to Plugin Listener notification within Chainsaw.
Revision Changes Path
1.32 +47 -21 jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java
Index: LogUI.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/LogUI.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- LogUI.java 18 Sep 2003 04:03:38 -0000 1.31
+++ LogUI.java 19 Sep 2003 03:56:56 -0000 1.32
@@ -49,6 +49,24 @@
package org.apache.log4j.chainsaw;
+import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Priority;
+import org.apache.log4j.UtilLoggingLevel;
+import org.apache.log4j.chainsaw.icons.ChainsawIcons;
+import org.apache.log4j.chainsaw.prefs.LoadSettingsEvent;
+import org.apache.log4j.chainsaw.prefs.SaveSettingsEvent;
+import org.apache.log4j.chainsaw.prefs.SettingsListener;
+import org.apache.log4j.chainsaw.prefs.SettingsManager;
+import org.apache.log4j.helpers.LogLog;
+import org.apache.log4j.helpers.OptionConverter;
+import org.apache.log4j.net.SocketNodeEventListener;
+import org.apache.log4j.plugins.Plugin;
+import org.apache.log4j.plugins.PluginEvent;
+import org.apache.log4j.plugins.PluginListener;
+import org.apache.log4j.plugins.PluginRegistry;
+import org.apache.log4j.plugins.Receiver;
+
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
@@ -63,15 +81,20 @@
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
+
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
+
import java.lang.reflect.Method;
+
import java.net.URL;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -97,24 +120,6 @@
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
-import org.apache.log4j.Level;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Priority;
-import org.apache.log4j.UtilLoggingLevel;
-import org.apache.log4j.chainsaw.icons.ChainsawIcons;
-import org.apache.log4j.chainsaw.prefs.LoadSettingsEvent;
-import org.apache.log4j.chainsaw.prefs.SaveSettingsEvent;
-import org.apache.log4j.chainsaw.prefs.SettingsListener;
-import org.apache.log4j.chainsaw.prefs.SettingsManager;
-import org.apache.log4j.helpers.LogLog;
-import org.apache.log4j.helpers.OptionConverter;
-import org.apache.log4j.net.SocketNodeEventListener;
-import org.apache.log4j.plugins.Plugin;
-import org.apache.log4j.plugins.PluginEvent;
-import org.apache.log4j.plugins.PluginListener;
-import org.apache.log4j.plugins.PluginRegistry;
-import org.apache.log4j.plugins.Receiver;
-
/**
* The main entry point for Chainsaw, this class represents the first frame
@@ -357,9 +362,19 @@
new PluginListener() {
public void pluginStarted(PluginEvent e) {
statusBar.setMessage(e.getPlugin().getName() + " started!");
+
+ Method method = getAddListenerMethod(e.getPlugin());
+
+ if (method != null) {
+ try {
+ method.invoke(e.getPlugin(), new Object[] { socketListener });
+ } catch (Exception ex) {
+ LogLog.error("Failed to add a SocketNodeEventListener", ex);
+ }
+ }
}
- Method getSocketNodeEventListenerMethod(Plugin p) {
+ Method getRemoveListenerMethod(Plugin p) {
try {
return p.getClass().getMethod(
"removeSocketNodeEventListener",
@@ -369,8 +384,18 @@
}
}
+ Method getAddListenerMethod(Plugin p) {
+ try {
+ return p.getClass().getMethod(
+ "addSocketNodeEventListener",
+ new Class[] { SocketNodeEventListener.class });
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
public void pluginStopped(PluginEvent e) {
- Method method = getSocketNodeEventListenerMethod(e.getPlugin());
+ Method method = getRemoveListenerMethod(e.getPlugin());
if (method != null) {
try {
@@ -379,7 +404,8 @@
LogLog.error("Failed to remove SocketNodeEventListener", ex);
}
}
- statusBar.setMessage(e.getPlugin().getName() + " stopped!");
+
+ statusBar.setMessage(e.getPlugin().getName() + " stopped!");
}
};
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]