psmith 2003/12/30 23:03:34
Modified: src/java/org/apache/log4j/chainsaw LogUI.java
Log:
moved some code within the acivation area into new methods.
added the ChainsawCentral as a hard coded plugin for now.
Revision Changes Path
1.66 +170 -150 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.65
retrieving revision 1.66
diff -u -r1.65 -r1.66
--- LogUI.java 23 Dec 2003 02:18:40 -0000 1.65
+++ LogUI.java 31 Dec 2003 07:03:34 -0000 1.66
@@ -109,7 +109,6 @@
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
import org.apache.log4j.UtilLoggingLevel;
import org.apache.log4j.chainsaw.help.HelpManager;
@@ -117,6 +116,7 @@
import org.apache.log4j.chainsaw.helper.SwingHelper;
import org.apache.log4j.chainsaw.icons.ChainsawIcons;
import org.apache.log4j.chainsaw.messages.MessageCenter;
+import org.apache.log4j.chainsaw.plugins.ChainsawCentral;
import org.apache.log4j.chainsaw.prefs.LoadSettingsEvent;
import org.apache.log4j.chainsaw.prefs.SaveSettingsEvent;
import org.apache.log4j.chainsaw.prefs.SettingsListener;
@@ -155,7 +155,6 @@
*
*/
public class LogUI extends JFrame implements ChainsawViewer, SettingsListener {
- private static final Logger messageLogger =
Logger.getLogger(MessageCenter.getInstance().getClass());
private static final String CONFIG_FILE_TO_USE = "config.file";
static final String USE_CYCLIC_BUFFER_PROP_NAME = "chainsaw.usecyclicbuffer";
static final String CYCLIC_BUFFER_SIZE_PROP_NAME =
@@ -278,7 +277,7 @@
applyLookAndFeel(model.getLookAndFeelClassName());
- createChainsawGUI(model, null);
+ createChainsawGUI(model, true, null);
}
/**
@@ -291,10 +290,10 @@
* DOCUMENT ME!
*/
public static void createChainsawGUI(ApplicationPreferenceModel model,
- Action shutdownAction) {
+ boolean showSplash, Action shutdownAction) {
LogUI logUI = new LogUI();
- if (model.isShowSplash()) {
+ if (showSplash) {
showSplash(logUI);
}
@@ -337,6 +336,8 @@
setJMenuBar(getToolBarAndMenus().getMenubar());
setTabbedPane(new ChainsawTabbedPane());
+
+
applicationPreferenceModelPanel.setOkCancelActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
@@ -346,12 +347,32 @@
}
+ private void initPlugins() {
+ PluginRegistry.addPluginListener(new PluginListener() {
+
+ public void pluginStarted(PluginEvent e) {
+ if (e.getPlugin() instanceof JComponent) {
+ JComponent plugin = (JComponent) e.getPlugin();
+ getTabbedPane().addANewTab(plugin.getName(), plugin, null, null);
+ }
+ }
+
+ public void pluginStopped(PluginEvent e) {
+ //TODO remove the plugin from the gui
+ }});
+
+
+ // TODO this should all be in a config file
+ ChainsawCentral cc = new ChainsawCentral();
+ PluginRegistry.startPlugin(cc);
+ }
+
private void setupReceiverPanel() {
receiversPanel = new ReceiversPanel();
receiversPanel.addPropertyChangeListener("visible", new
PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
- messageLogger.debug("Receiver's panel:" + evt.getNewValue());
+ MessageCenter.getInstance().getLogger().debug("Receiver's panel:" +
evt.getNewValue());
getApplicationPreferenceModel().setReceivers(((Boolean)evt.getNewValue()).booleanValue());
}});
}
@@ -448,67 +469,13 @@
public void activateViewer() {
initGUI();
- applicationPreferenceModel.addPropertyChangeListener("identifierExpression",
new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
- handler.setIdentifierExpression(evt.getNewValue().toString());
- }
- } );
- applicationPreferenceModel.addPropertyChangeListener("responsiveness", new
PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
- int value = ((Integer)evt.getNewValue()).intValue();
- handler.setQueueInterval((value*1000)-750);
- }
- } );
-
- applicationPreferenceModel.addPropertyChangeListener("tabPlacement", new
PropertyChangeListener() {
-
- public void propertyChange(final PropertyChangeEvent evt) {
- SwingUtilities.invokeLater(new Runnable() {
-
- public void run() {
- int placement = ((Integer)evt.getNewValue()).intValue();
- switch (placement) {
- case SwingConstants.TOP :
- case SwingConstants.BOTTOM:
- tabbedPane.setTabPlacement(placement);
- break;
-
- default :
- break;
- }
- }});
- }});
-
- applicationPreferenceModel.addPropertyChangeListener("statusBar", new
PropertyChangeListener() {
-
- public void propertyChange(PropertyChangeEvent evt) {
- boolean value = ((Boolean)evt.getNewValue()).booleanValue();
- setStatusBarVisible(value);
- }});
-
- applicationPreferenceModel.addPropertyChangeListener("receivers", new
PropertyChangeListener() {
-
- public void propertyChange(PropertyChangeEvent evt) {
- boolean value = ((Boolean)evt.getNewValue()).booleanValue();
- receiversPanel.setVisible(value);
- }});
- receiversPanel.setVisible(applicationPreferenceModel.isReceivers());
-
- applicationPreferenceModel.addPropertyChangeListener("toolbar", new
PropertyChangeListener() {
-
- public void propertyChange(PropertyChangeEvent evt) {
- boolean value = ((Boolean)evt.getNewValue()).booleanValue();
- toolbar.setVisible(value);
- }});
- toolbar.setVisible(applicationPreferenceModel.isToolbar());
-
- setStatusBarVisible(applicationPreferenceModel.isStatusBar());
+ initPrefModelListeners();
/**
* We add a simple appender to the MessageCenter logger
* so that each message is displayed in the Status bar
*/
- messageLogger.addAppender(new AppenderSkeleton(){
+ MessageCenter.getInstance().getLogger().addAppender(new AppenderSkeleton(){
protected void append(LoggingEvent event) {
getStatusBar().setMessage(event.getMessage().toString());
@@ -522,70 +489,9 @@
return false;
}});
- final SocketNodeEventListener socketListener =
- new SocketNodeEventListener() {
- public void socketOpened(String remoteInfo) {
- statusBar.remoteConnectionReceived(remoteInfo);
- }
-
- public void socketClosedEvent(Exception e) {
- messageLogger.info("Connection lost! :: " + e.getMessage());
- }
- };
-
- PluginListener pluginListener =
- new PluginListener() {
- public void pluginStarted(PluginEvent e) {
- messageLogger.info(e.getPlugin().getName() + " started!");
-
- Method method = getAddListenerMethod(e.getPlugin());
-
- if (method != null) {
- try {
- method.invoke(e.getPlugin(), new Object[] { socketListener });
- } catch (Exception ex) {
- messageLogger.error("Failed to add a SocketNodeEventListener", ex);
- }
- }
- }
-
- Method getRemoveListenerMethod(Plugin p) {
- try {
- return p.getClass().getMethod(
- "removeSocketNodeEventListener",
- new Class[] { SocketNodeEventListener.class });
- } catch (Exception e) {
- return null;
- }
- }
-
- 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 = getRemoveListenerMethod(e.getPlugin());
-
- if (method != null) {
- try {
- method.invoke(e.getPlugin(), new Object[] { socketListener });
- } catch (Exception ex) {
- messageLogger.error("Failed to remove SocketNodeEventListener", ex);
- }
- }
-
- messageLogger.info(e.getPlugin().getName() + " stopped!");
- }
- };
-
- PluginRegistry.addPluginListener(pluginListener);
+ initSocketConnectionListener();
+
getSettingsManager().configure(
new SettingsListener() {
public void loadSettings(LoadSettingsEvent event) {
@@ -603,13 +509,13 @@
url, null, LogManager.getLoggerRepository());
if (LogUI.this.getStatusBar() != null) {
- messageLogger.info(
+ MessageCenter.getInstance().getLogger().info(
"Configured Log4j using remembered URL :: " + url);
}
LogUI.this.configURLToUse = url;
} catch (Exception e) {
- messageLogger.error("error occurred initializing log4j", e);
+ MessageCenter.getInstance().getLogger().error("error occurred
initializing log4j", e);
}
}
}
@@ -744,6 +650,7 @@
panePanel.add(getTabbedPane());
addWelcomePanel();
+ initPlugins();
getContentPane().add(toolbar, BorderLayout.NORTH);
getContentPane().add(panePanel, BorderLayout.CENTER);
@@ -894,7 +801,7 @@
tutorialArea.setPage(ChainsawConstants.TUTORIAL_URL);
container.add(new JScrollPane(tutorialArea), BorderLayout.CENTER);
} catch (Exception e) {
- messageLogger.error("Error occurred loading the Tutorial", e);
+ MessageCenter.getInstance().getLogger().error("Error occurred loading the
Tutorial", e);
}
tutorialFrame.setIconImage(new ImageIcon(ChainsawIcons.HELP).getImage());
@@ -998,7 +905,7 @@
try {
tutorialArea.setPage(e.getURL());
} catch (IOException e1) {
- messageLogger.error("Failed to change the URL for the Tutorial",
e1);
+ MessageCenter.getInstance().getLogger().error("Failed to change the
URL for the Tutorial", e1);
}
}
}
@@ -1006,6 +913,130 @@
});
}
+ private void initSocketConnectionListener() {
+ final SocketNodeEventListener socketListener =
+ new SocketNodeEventListener() {
+ public void socketOpened(String remoteInfo) {
+ statusBar.remoteConnectionReceived(remoteInfo);
+ }
+
+ public void socketClosedEvent(Exception e) {
+ MessageCenter.getInstance().getLogger().info("Connection lost! :: " +
e.getMessage());
+ }
+ };
+
+ PluginListener pluginListener =
+ new PluginListener() {
+ public void pluginStarted(PluginEvent e) {
+ MessageCenter.getInstance().getLogger().info(e.getPlugin().getName() + "
started!");
+
+ Method method = getAddListenerMethod(e.getPlugin());
+
+ if (method != null) {
+ try {
+ method.invoke(e.getPlugin(), new Object[] { socketListener });
+ } catch (Exception ex) {
+ MessageCenter.getInstance().getLogger().error("Failed to add a
SocketNodeEventListener", ex);
+ }
+ }
+ }
+
+ Method getRemoveListenerMethod(Plugin p) {
+ try {
+ return p.getClass().getMethod(
+ "removeSocketNodeEventListener",
+ new Class[] { SocketNodeEventListener.class });
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ 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 = getRemoveListenerMethod(e.getPlugin());
+
+ if (method != null) {
+ try {
+ method.invoke(e.getPlugin(), new Object[] { socketListener });
+ } catch (Exception ex) {
+ MessageCenter.getInstance().getLogger().error("Failed to remove
SocketNodeEventListener", ex);
+ }
+ }
+
+ MessageCenter.getInstance().getLogger().info(e.getPlugin().getName() + "
stopped!");
+ }
+ };
+
+ PluginRegistry.addPluginListener(pluginListener);
+ }
+
+ private void initPrefModelListeners() {
+ applicationPreferenceModel.addPropertyChangeListener("identifierExpression",
new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ handler.setIdentifierExpression(evt.getNewValue().toString());
+ }
+ } );
+ applicationPreferenceModel.addPropertyChangeListener("responsiveness", new
PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ int value = ((Integer)evt.getNewValue()).intValue();
+ handler.setQueueInterval((value*1000)-750);
+ }
+ } );
+
+ applicationPreferenceModel.addPropertyChangeListener("tabPlacement", new
PropertyChangeListener() {
+
+ public void propertyChange(final PropertyChangeEvent evt) {
+ SwingUtilities.invokeLater(new Runnable() {
+
+ public void run() {
+ int placement = ((Integer)evt.getNewValue()).intValue();
+ switch (placement) {
+ case SwingConstants.TOP :
+ case SwingConstants.BOTTOM:
+ tabbedPane.setTabPlacement(placement);
+ break;
+
+ default :
+ break;
+ }
+ }});
+ }});
+
+ applicationPreferenceModel.addPropertyChangeListener("statusBar", new
PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ boolean value = ((Boolean)evt.getNewValue()).booleanValue();
+ setStatusBarVisible(value);
+ }});
+
+ applicationPreferenceModel.addPropertyChangeListener("receivers", new
PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ boolean value = ((Boolean)evt.getNewValue()).booleanValue();
+ receiversPanel.setVisible(value);
+ }});
+ receiversPanel.setVisible(applicationPreferenceModel.isReceivers());
+
+ applicationPreferenceModel.addPropertyChangeListener("toolbar", new
PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ boolean value = ((Boolean)evt.getNewValue()).booleanValue();
+ toolbar.setVisible(value);
+ }});
+ toolbar.setVisible(applicationPreferenceModel.isToolbar());
+
+ setStatusBarVisible(applicationPreferenceModel.isStatusBar());
+ }
+
/**
* Displays a warning dialog about having no Receivers defined and allows the
* user to choose some options for configuration
@@ -1097,7 +1128,7 @@
PluginRegistry.startPlugin(simpleReceiver);
receiversPanel.updateReceiverTreeInDispatchThread();
} catch (Exception e) {
- messageLogger.error("Error creating Receiver", e);
+ MessageCenter.getInstance().getLogger().error("Error creating
Receiver", e);
MessageCenter.getInstance().getLogger().info(
"An error occurred creating your Receiver");
}
@@ -1106,7 +1137,7 @@
noReceiversWarningPanel.getModel().getConfigToLoad();
if (url != null) {
- messageLogger.debug("Initialiazing Log4j with " +
url.toExternalForm());
+ MessageCenter.getInstance().getLogger().debug("Initialiazing Log4j
with " + url.toExternalForm());
new Thread(
new Runnable() {
@@ -1115,7 +1146,7 @@
OptionConverter.selectAndConfigure(
url, null, LogManager.getLoggerRepository());
} catch (Exception e) {
- messageLogger.error("Error initializing Log4j", e);
+ MessageCenter.getInstance().getLogger().error("Error
initializing Log4j", e);
}
LogManager.getLoggerRepository().getRootLogger()
@@ -1288,7 +1319,7 @@
*
*/
private void performShutdownAction() {
- messageLogger.debug("Calling the shutdown Action. Goodbye!");
+ MessageCenter.getInstance().getLogger().debug("Calling the shutdown Action.
Goodbye!");
shutdownAction.actionPerformed(
new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "Shutting Down"));
@@ -1315,7 +1346,7 @@
* @param b
*/
private void setStatusBarVisible(final boolean visible) {
- messageLogger.debug("Setting StatusBar to " + visible);
+ MessageCenter.getInstance().getLogger().debug("Setting StatusBar to " +
visible);
SwingUtilities.invokeLater(
new Runnable() {
public void run() {
@@ -1386,21 +1417,21 @@
if (
UIManager.getLookAndFeel().getClass().getName().equals(
lookAndFeelClassName)) {
- messageLogger.debug("No need to change L&F, already the same");
+ MessageCenter.getInstance().getLogger().debug("No need to change L&F, already
the same");
return;
}
if(lookAndFeelClassName == null || lookAndFeelClassName.trim().equals("")) {
- messageLogger.info("Using System native L&F");
+// MessageCenter.getInstance().getLogger().info("Using System native L&F");
lookAndFeelClassName = UIManager.getSystemLookAndFeelClassName();
}
- messageLogger.debug("Setting L&F -> " + lookAndFeelClassName);
try {
UIManager.setLookAndFeel(lookAndFeelClassName);
+ MessageCenter.getInstance().getLogger().debug("Setting L&F -> " +
lookAndFeelClassName);
} catch (Exception e) {
- messageLogger.error("Failed to change L&F", e);
+ MessageCenter.getInstance().getLogger().error("Failed to change L&F", e);
}
}
@@ -1686,7 +1717,7 @@
});
String msg = "added tab " + ident;
- messageLogger.debug(msg);
+ MessageCenter.getInstance().getLogger().debug(msg);
}
}
@@ -1783,16 +1814,5 @@
public final ApplicationPreferenceModel getApplicationPreferenceModel()
{
return applicationPreferenceModel;
- }
- /* (non-Javadoc)
- * @see java.awt.Window#processWindowEvent(java.awt.event.WindowEvent)
- */
- protected void processWindowEvent(WindowEvent e) {
-
- if(e.getID() == WindowEvent.WINDOW_CLOSING) {
- exit();
- return;
- }
- super.processWindowEvent(e);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]