Author: sdeboy
Date: Sat Oct 30 23:54:15 2010
New Revision: 1029225
URL: http://svn.apache.org/viewvc?rev=1029225&view=rev
Log:
Minor UI fixes
- filedialog displayed on top of a jdialog has focus issues..now hiding the 'parent' dialog while the file dialog is displayed from the receiver config screen
- since MESSAGE is the default format, changed default pattern to LogFilePatternReceiver pattern
- fixed bug in filedialog usage
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java?rev=1029225&r1=1029224&r2=1029225&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogUI.java Sat Oct 30 23:54:15 2010
@@ -21,7 +21,6 @@ import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
-import java.awt.Event;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.Point;
@@ -1463,127 +1462,128 @@ public class LogUI extends JFrame implem
new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
- }
- });
- dialog.getContentPane().add(receiverConfigurationPanel);
+ applicationPreferenceModel.setShowNoReceiverWarning(!receiverConfigurationPanel.isDontWarnMeAgain());
+ //using this config next time - stop all plugins
+ if (receiverConfigurationPanel.isDontWarnMeAgain()) {
+ List plugins = pluginRegistry.getPlugins();
+ for (Iterator iter = plugins.iterator();iter.hasNext();) {
+ Plugin plugin = (Plugin)iter.next();
+ //don't stop ZeroConfPlugin if it is registered
+ if (!plugin.getName().toLowerCase().contains("zeroconf")) {
+ pluginRegistry.stopPlugin(plugin.getName());
+ }
+ }
+ }
+ URL configURL = null;
- dialog.pack();
+ if (receiverConfigurationPanel.getModel().isNetworkReceiverMode()) {
+ int port = receiverConfigurationPanel.getModel().getNetworkReceiverPort();
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- dialog.setLocation(
- (screenSize.width / 2) - (dialog.getWidth() / 2),
- (screenSize.height / 2) - (dialog.getHeight() / 2));
-
- dialog.setVisible(true);
- applicationPreferenceModel.setShowNoReceiverWarning(!receiverConfigurationPanel.isDontWarnMeAgain());
- //using this config next time - stop all plugins
- if (receiverConfigurationPanel.isDontWarnMeAgain()) {
- List plugins = pluginRegistry.getPlugins();
- for (Iterator iter = plugins.iterator();iter.hasNext();) {
- Plugin plugin = (Plugin)iter.next();
- //don't stop ZeroConfPlugin if it is registered
- if (!plugin.getName().toLowerCase().contains("zeroconf")) {
- pluginRegistry.stopPlugin(plugin.getName());
- }
+ try {
+ Class receiverClass = receiverConfigurationPanel.getModel().getNetworkReceiverClass();
+ Receiver networkReceiver = (Receiver) receiverClass.newInstance();
+ networkReceiver.setName(receiverClass.getSimpleName() + "-" + port);
+
+ Method portMethod =
+ networkReceiver.getClass().getMethod(
+ "setPort", new Class[] { int.class });
+ portMethod.invoke(
+ networkReceiver, new Object[] { new Integer(port) });
+
+ networkReceiver.setThreshold(Level.TRACE);
+
+ pluginRegistry.addPlugin(networkReceiver);
+ networkReceiver.activateOptions();
+ receiversPanel.updateReceiverTreeInDispatchThread();
+ //setting config URL here ensures we have the receiver panel auto-saved config loaded
+ if (receiverConfigurationPanel.isDontWarnMeAgain()) {
+ configURL = receiverConfigurationPanel.getModel().getSavedConfigToLoad();
+ }
+ } catch (Exception e3) {
+ MessageCenter.getInstance().getLogger().error(
+ "Error creating Receiver", e3);
+ MessageCenter.getInstance().getLogger().info(
+ "An error occurred creating your Receiver");
}
- }
- URL configURL = null;
-
- if (receiverConfigurationPanel.getModel().isNetworkReceiverMode()) {
- int port = receiverConfigurationPanel.getModel().getNetworkReceiverPort();
-
- try {
- Class receiverClass = receiverConfigurationPanel.getModel().getNetworkReceiverClass();
- Receiver networkReceiver = (Receiver) receiverClass.newInstance();
- networkReceiver.setName(receiverClass.getSimpleName() + "-" + port);
-
- Method portMethod =
- networkReceiver.getClass().getMethod(
- "setPort", new Class[] { int.class });
- portMethod.invoke(
- networkReceiver, new Object[] { new Integer(port) });
-
- networkReceiver.setThreshold(Level.TRACE);
-
- pluginRegistry.addPlugin(networkReceiver);
- networkReceiver.activateOptions();
- receiversPanel.updateReceiverTreeInDispatchThread();
- //setting config URL here ensures we have the receiver panel auto-saved config loaded
- if (receiverConfigurationPanel.isDontWarnMeAgain()) {
+ } else if (receiverConfigurationPanel.getModel().isLoadConfig() ||
+ receiverConfigurationPanel.getModel().isLoadSavedConfigs()) {
+ if (receiverConfigurationPanel.getModel().isLoadSavedConfigs()) {
configURL = receiverConfigurationPanel.getModel().getSavedConfigToLoad();
+ } else {
+ configURL = receiverConfigurationPanel.getModel().getConfigToLoad();
+ }
+ } else if (receiverConfigurationPanel.getModel().isLogFileReceiverConfig()) {
+ try {
+ URL fileURL = receiverConfigurationPanel.getModel().getLogFileURL();
+ if (fileURL != null) {
+ VFSLogFilePatternReceiver fileReceiver = new VFSLogFilePatternReceiver();
+ fileReceiver.setName(fileURL.getFile());
+ fileReceiver.setAutoReconnect(true);
+ fileReceiver.setContainer(LogUI.this);
+ fileReceiver.setAppendNonMatches(true);
+ fileReceiver.setFileURL(fileURL.toURI().toString());
+ fileReceiver.setTailing(true);
+ if (receiverConfigurationPanel.getModel().isPatternLayoutLogFormat()) {
+ fileReceiver.setLogFormat(LogFilePatternLayoutBuilder.getLogFormatFromPatternLayout(receiverConfigurationPanel.getModel().getLogFormat()));
+ } else {
+ fileReceiver.setLogFormat(receiverConfigurationPanel.getModel().getLogFormat());
+ }
+ fileReceiver.setTimestampFormat(receiverConfigurationPanel.getModel().getLogFormatTimestampFormat());
+ fileReceiver.setThreshold(Level.TRACE);
+
+ pluginRegistry.addPlugin(fileReceiver);
+ fileReceiver.activateOptions();
+ receiversPanel.updateReceiverTreeInDispatchThread();
+ if (receiverConfigurationPanel.isDontWarnMeAgain()) {
+ configURL = receiverConfigurationPanel.getModel().getSavedConfigToLoad();
+ }
+ }
+ } catch (Exception e2) {
+ MessageCenter.getInstance().getLogger().error(
+ "Error creating Receiver", e2);
+ MessageCenter.getInstance().getLogger().info(
+ "An error occurred creating your Receiver");
}
- } catch (Exception e) {
- MessageCenter.getInstance().getLogger().error(
- "Error creating Receiver", e);
- MessageCenter.getInstance().getLogger().info(
- "An error occurred creating your Receiver");
- }
- } else if (receiverConfigurationPanel.getModel().isLoadConfig() ||
- receiverConfigurationPanel.getModel().isLoadSavedConfigs()) {
- if (receiverConfigurationPanel.getModel().isLoadSavedConfigs()) {
- configURL = receiverConfigurationPanel.getModel().getSavedConfigToLoad();
- } else {
- configURL = receiverConfigurationPanel.getModel().getConfigToLoad();
}
- } else if (receiverConfigurationPanel.getModel().isLogFileReceiverConfig()) {
- try {
- URL fileURL = receiverConfigurationPanel.getModel().getLogFileURL();
- if (fileURL != null) {
- VFSLogFilePatternReceiver fileReceiver = new VFSLogFilePatternReceiver();
- fileReceiver.setName(fileURL.getFile());
- fileReceiver.setAutoReconnect(true);
- fileReceiver.setContainer(LogUI.this);
- fileReceiver.setAppendNonMatches(true);
- fileReceiver.setFileURL(fileURL.toURI().toString());
- fileReceiver.setTailing(true);
- if (receiverConfigurationPanel.getModel().isPatternLayoutLogFormat()) {
- fileReceiver.setLogFormat(LogFilePatternLayoutBuilder.getLogFormatFromPatternLayout(receiverConfigurationPanel.getModel().getLogFormat()));
- } else {
- fileReceiver.setLogFormat(receiverConfigurationPanel.getModel().getLogFormat());
- }
- fileReceiver.setTimestampFormat(receiverConfigurationPanel.getModel().getLogFormatTimestampFormat());
- fileReceiver.setThreshold(Level.TRACE);
+ if (configURL != null) {
+ MessageCenter.getInstance().getLogger().debug(
+ "Initialiazing Log4j with " + configURL.toExternalForm());
+ final URL finalURL = configURL;
+ new Thread(
+ new Runnable() {
+ public void run() {
+ if (receiverConfigurationPanel.isDontWarnMeAgain()) {
+ applicationPreferenceModel.setConfigurationURL(finalURL.toExternalForm());
+ } else {
+ try {
+ if (new File(finalURL.toURI()).exists()) {
+ loadConfigurationUsingPluginClassLoader(finalURL);
+ }
+ }
+ catch (URISyntaxException e) {
+ //ignore
+ }
+ }
- pluginRegistry.addPlugin(fileReceiver);
- fileReceiver.activateOptions();
- receiversPanel.updateReceiverTreeInDispatchThread();
- if (receiverConfigurationPanel.isDontWarnMeAgain()) {
- configURL = receiverConfigurationPanel.getModel().getSavedConfigToLoad();
+ receiversPanel.updateReceiverTreeInDispatchThread();
}
- }
- } catch (Exception e) {
- MessageCenter.getInstance().getLogger().error(
- "Error creating Receiver", e);
- MessageCenter.getInstance().getLogger().info(
- "An error occurred creating your Receiver");
- }
+ }).start();
+ }
}
- if (configURL != null) {
- MessageCenter.getInstance().getLogger().debug(
- "Initialiazing Log4j with " + configURL.toExternalForm());
- final URL finalURL = configURL;
- new Thread(
- new Runnable() {
- public void run() {
- if (receiverConfigurationPanel.isDontWarnMeAgain()) {
- applicationPreferenceModel.setConfigurationURL(finalURL.toExternalForm());
- } else {
- try {
- if (new File(finalURL.toURI()).exists()) {
- loadConfigurationUsingPluginClassLoader(finalURL);
- }
- }
- catch (URISyntaxException e) {
- //ignore
- }
- }
+ });
- receiversPanel.updateReceiverTreeInDispatchThread();
- }
- }).start();
- }
+ receiverConfigurationPanel.setDialog(dialog);
+ dialog.getContentPane().add(receiverConfigurationPanel);
+
+ dialog.pack();
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ dialog.setLocation(
+ (screenSize.width / 2) - (dialog.getWidth() / 2),
+ (screenSize.height / 2) - (dialog.getHeight() / 2));
+
+ dialog.setVisible(true);
}
});
}
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java?rev=1029225&r1=1029224&r2=1029225&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java Sat Oct 30 23:54:15 2010
@@ -18,7 +18,9 @@ package org.apache.log4j.chainsaw;
import java.awt.BorderLayout;
import java.awt.Component;
+import java.awt.Container;
import java.awt.Dimension;
+import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
@@ -111,8 +113,10 @@ class ReceiverConfigurationPanel extends
//set by LogUI to handle hiding of the dialog
private ActionListener completionActionListener;
+ //used as frame for file open dialogs
+ private Container dialog;
- ReceiverConfigurationPanel() {
+ ReceiverConfigurationPanel() {
setBorder(BorderFactory.createEmptyBorder(5, 15, 5, 15));
setLayout(new GridBagLayout());
@@ -363,8 +367,8 @@ class ReceiverConfigurationPanel extends
panel.add(new JLabel(" Log file format type "), c);
DefaultComboBoxModel comboBoxModel = new DefaultComboBoxModel();
- comboBoxModel.addElement("PatternLayout format");
comboBoxModel.addElement("LogFilePatternReceiver LogFormat");
+ comboBoxModel.addElement("PatternLayout format");
logFileFormatTypeComboBox = new JComboBox(comboBoxModel);
logFileFormatTypeComboBox.setOpaque(false);
@@ -553,15 +557,25 @@ class ReceiverConfigurationPanel extends
* or null if they cancelled.
*/
private URL browseConfig() throws MalformedURLException {
- File selectedFile = SwingHelper.promptForFile(this, null, "Choose a Chainsaw configuration file");
+ //hiding and showing the dialog to avoid focus issues with 2 dialogs
+ dialog.setVisible(false);
+ File selectedFile = SwingHelper.promptForFile(dialog, null, "Choose a Chainsaw configuration file");
+ URL result = null;
if (selectedFile == null) {
- return null;
+ result = null;
}
-
- if (!selectedFile.exists() || !selectedFile.canRead()) {
- return null;
+ if (selectedFile != null && (!selectedFile.exists() || !selectedFile.canRead())) {
+ result = null;
+ }
+ if (selectedFile != null) {
+ result = selectedFile.toURI().toURL();
}
- return selectedFile.toURI().toURL();
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ dialog.setVisible(true);
+ }
+ });
+ return result;
}
/**
@@ -569,17 +583,25 @@ class ReceiverConfigurationPanel extends
* or null if they cancelled.
*/
private URL browseLogFile() throws MalformedURLException {
-
- File selectedFile = SwingHelper.promptForFile(this, null, "Select a log file");
+ //hiding and showing the dialog to avoid focus issues with 2 dialogs
+ dialog.setVisible(false);
+ File selectedFile = SwingHelper.promptForFile(dialog, null, "Select a log file");
+ URL result = null;
if (selectedFile == null) {
- return null;
+ result = null;
}
-
- if (!selectedFile.exists() || !selectedFile.canRead()) {
- return null;
+ if (selectedFile != null && (!selectedFile.exists() || !selectedFile.canRead())) {
+ result = null;
}
-
- return selectedFile.toURI().toURL();
+ if (selectedFile != null) {
+ result = selectedFile.toURI().toURL();
+ }
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ dialog.setVisible(true);
+ }
+ });
+ return result;
}
public static void main(String[] args) {
@@ -599,7 +621,11 @@ class ReceiverConfigurationPanel extends
return dontwarnIfNoReceiver.isSelected();
}
- /**
+ public void setDialog(Container dialog) {
+ this.dialog = dialog;
+ }
+
+ /**
* This class represents the model of the chosen options the user
* has configured.
*
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java?rev=1029225&r1=1029224&r2=1029225&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java Sat Oct 30 23:54:15 2010
@@ -20,10 +20,10 @@ package org.apache.log4j.chainsaw.helper
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
+import java.awt.EventQueue;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Toolkit;
-import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.io.File;
@@ -38,6 +38,7 @@ import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
/**
* A collection of standard utility methods for use within Swing.
@@ -109,7 +110,14 @@ public final class SwingHelper {
public static File promptForFile(Container parent, String defaultPath, String title) {
if (SwingHelper.isMacOSX()) {
//use filedialog on mac
- FileDialog fileDialog = new FileDialog((Frame)null, title);
+ Component root = SwingUtilities.getRoot(parent);
+ Frame frame = null;
+ if (root instanceof Frame) {
+ frame = (Frame) root;
+ }
+
+ FileDialog fileDialog = new FileDialog(frame, title);
+ fileDialog.setModal(true);
if (defaultPath != null) {
fileDialog.setDirectory(defaultPath);
}
@@ -118,7 +126,11 @@ public final class SwingHelper {
if (fileString == null) {
return null;
}
+ if (fileDialog.getDirectory() != null) {
+ return new File(fileDialog.getDirectory(), fileString);
+ } else {
return new File(fileString);
+ }
} else {
JFileChooser chooser;
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.