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]