You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2017/05/30 23:48:49 UTC
[12/50] [abbrv] logging-chainsaw git commit: Slight improvements to
UI fidelity (on Mac) - ok/cancel button order is cancel/ok on Mac,
ok/cancel everywhere else - use 'FileDialog' instead of JFileChooser on Mac
since it looks more like a native Mac fil
Slight improvements to UI fidelity (on Mac)
- ok/cancel button order is cancel/ok on Mac, ok/cancel everywhere else
- use 'FileDialog' instead of JFileChooser on Mac since it looks more like a native Mac file-open dialog
Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/98f2a549
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/98f2a549
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/98f2a549
Branch: refs/heads/master
Commit: 98f2a549255b1a4b0a8c766995a521bf3f7457a0
Parents: 4c8ba76
Author: Scott Deboy <sd...@apache.org>
Authored: Sat Oct 30 18:58:21 2010 +0000
Committer: Scott Deboy <sd...@apache.org>
Committed: Sat Oct 30 18:58:21 2010 +0000
----------------------------------------------------------------------
.../log4j/chainsaw/AbstractPreferencePanel.java | 10 ++--
.../ApplicationPreferenceModelPanel.java | 17 +++---
.../apache/log4j/chainsaw/FileLoadAction.java | 35 ++----------
.../chainsaw/ReceiverConfigurationPanel.java | 58 ++++++--------------
.../log4j/chainsaw/helper/SwingHelper.java | 57 +++++++++++++++++++
5 files changed, 90 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/98f2a549/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
index 50adbc6..89e4e5f 100644
--- a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java
@@ -23,6 +23,7 @@ import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionListener;
import java.util.Enumeration;
+import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.Box;
@@ -42,6 +43,7 @@ import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
+import org.apache.log4j.chainsaw.helper.SwingHelper;
import org.apache.log4j.chainsaw.icons.ChainsawIcons;
/**
* Some basic plumbing for Preference related dialogs.
@@ -106,14 +108,12 @@ public abstract class AbstractPreferencePanel extends JPanel
add(mainPanel, BorderLayout.CENTER);
-
-
-
Box buttonBox = Box.createHorizontalBox();
+ List buttons = SwingHelper.orderOKCancelButtons(okButton, cancelButton);
buttonBox.add(Box.createHorizontalGlue());
- buttonBox.add(okButton);
+ buttonBox.add((JButton)buttons.get(0));
buttonBox.add(Box.createHorizontalStrut(10));
- buttonBox.add(cancelButton);
+ buttonBox.add((JButton)buttons.get(1));
add(buttonBox, BorderLayout.SOUTH);
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/98f2a549/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
index 35457be..64cba35 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java
@@ -40,7 +40,6 @@ import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
-import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
@@ -58,6 +57,7 @@ import javax.swing.tree.TreeModel;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
+import org.apache.log4j.chainsaw.helper.SwingHelper;
import org.apache.log4j.chainsaw.osx.OSXIntegration;
@@ -509,7 +509,7 @@ public static void main(String[] args) {
p6.add(configURLPanel);
- JButton browseButton = new JButton(" Browse ");
+ JButton browseButton = new JButton(" Open File... ");
browseButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
@@ -552,7 +552,7 @@ public static void main(String[] args) {
File currentConfigurationPath = new File(selectedItem.toString()).getParentFile();
if (currentConfigurationPath != null) {
defaultPath = currentConfigurationPath.getPath();
- //JFileChooser constructor will not navigate to this location unless we remove the prefixing protocol and slash
+ //FileDialog will not navigate to this location unless we remove the prefixing protocol and slash
//at least on winxp
if (defaultPath.toLowerCase().startsWith("file:\\")) {
defaultPath = defaultPath.substring("file:\\".length());
@@ -560,14 +560,11 @@ public static void main(String[] args) {
}
}
}
-
- JFileChooser chooser = new JFileChooser(defaultPath);
- int result = chooser.showOpenDialog(ApplicationPreferenceModelPanel.this);
- if (JFileChooser.APPROVE_OPTION == result) {
- File f = chooser.getSelectedFile();
+ File selectedFile = SwingHelper.promptForFile(this, defaultPath, "Select a Chainsaw configuration file");
+ if (selectedFile != null) {
try
{
- String newConfigurationFile = f.toURI().toURL().toExternalForm();
+ String newConfigurationFile = selectedFile.toURI().toURL().toExternalForm();
if (!committedPreferenceModel.getConfigurationURLs().contains(newConfigurationFile)) {
configurationURL.addItem(newConfigurationFile);
}
@@ -575,7 +572,7 @@ public static void main(String[] args) {
}
catch (MalformedURLException e1)
{
- e1.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ e1.printStackTrace();
}
}
}
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/98f2a549/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
index d5432e5..638bc50 100644
--- a/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
+++ b/src/main/java/org/apache/log4j/chainsaw/FileLoadAction.java
@@ -27,11 +27,10 @@ import java.util.Map;
import java.util.Vector;
import javax.swing.AbstractAction;
-import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
-import javax.swing.filechooser.FileFilter;
import org.apache.log4j.Logger;
+import org.apache.log4j.chainsaw.helper.SwingHelper;
import org.apache.log4j.chainsaw.prefs.MRUFileList;
import org.apache.log4j.helpers.Constants;
import org.apache.log4j.spi.Decoder;
@@ -57,8 +56,6 @@ class FileLoadAction extends AbstractAction {
private LogUI parent;
- private JFileChooser chooser = null;
-
private boolean remoteURL = false;
public FileLoadAction(LogUI parent, Decoder decoder, String title,
@@ -81,35 +78,13 @@ class FileLoadAction extends AbstractAction {
String name = "";
URL url = null;
- if (!remoteURL) {
- if (chooser == null) {
- chooser = new JFileChooser();
-
- chooser.setDialogTitle("Load Events from XML file...");
-
- chooser.setAcceptAllFileFilterUsed(true);
-
- chooser.setFileFilter(new FileFilter() {
- public boolean accept(File f) {
- return (f.getName().toLowerCase().endsWith(".xml") || f.getName().toLowerCase().endsWith(".zip")
- || f.isDirectory());
- }
-
- public String getDescription() {
- return "XML files (*.xml), ZIP files (*.zip)";
- }
- });
- }
-
- int i = chooser.showOpenDialog(parent);
- if (i != JFileChooser.APPROVE_OPTION) {
- return;
- }
- File selectedFile = chooser.getSelectedFile();
-
+ if (!remoteURL) {
try {
+ File selectedFile = SwingHelper.promptForFile(parent, null, "Load Events from XML file or zipped XML file...");
+ if (selectedFile != null) {
url = selectedFile.toURI().toURL();
name = selectedFile.getName();
+ }
} catch (Exception ex) {
// TODO: handle exception
}
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/98f2a549/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
index fbd4c22..8f276f1 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ReceiverConfigurationPanel.java
@@ -29,6 +29,7 @@ import java.awt.event.FocusListener;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
@@ -37,7 +38,6 @@ import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
-import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -45,13 +45,13 @@ import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
-import javax.swing.filechooser.FileFilter;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
+import org.apache.log4j.chainsaw.helper.SwingHelper;
import org.apache.log4j.chainsaw.prefs.SettingsManager;
import org.apache.log4j.net.SocketReceiver;
import org.apache.log4j.net.UDPReceiver;
@@ -210,20 +210,24 @@ class ReceiverConfigurationPanel extends JPanel {
dontwarnIfNoReceiver = new JCheckBox("Always start Chainsaw with this configuration");
panel.add(dontwarnIfNoReceiver, c);
+ okButton = new JButton(" OK ");
+ cancelButton = new JButton(" Cancel ");
+
+ List okCancelButtons = SwingHelper.orderOKCancelButtons(okButton, cancelButton);
+
c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 0;
c.insets = new Insets(0, 0, 0, 10);
- okButton = new JButton(" OK ");
- panel.add(okButton, c);
+ panel.add((JButton)okCancelButtons.get(0), c);
c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 2;
c.gridy = 0;
- cancelButton = new JButton(" Cancel ");
- panel.add(cancelButton, c);
+ panel.add((JButton)okCancelButtons.get(1), c);
+
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
@@ -308,7 +312,7 @@ class ReceiverConfigurationPanel extends JPanel {
private JPanel buildLogFileReceiverPanel() {
JPanel panel = new JPanel(new GridBagLayout());
- browseLogFileButton = new JButton(new AbstractAction(" Find a log file ") {
+ browseLogFileButton = new JButton(new AbstractAction(" Open File... ") {
public void actionPerformed(ActionEvent e) {
try {
@@ -465,7 +469,7 @@ class ReceiverConfigurationPanel extends JPanel {
}
});
- browseForAnExistingConfigurationButton = new JButton(new AbstractAction(" Find an existing configuration ") {
+ browseForAnExistingConfigurationButton = new JButton(new AbstractAction(" Open File... ") {
public void actionPerformed(ActionEvent e) {
try {
@@ -549,39 +553,15 @@ class ReceiverConfigurationPanel extends JPanel {
* or null if they cancelled.
*/
private URL browseConfig() throws MalformedURLException {
-
- JFileChooser chooser = new JFileChooser();
- chooser.setDialogTitle("Use an existing configuration file...");
- chooser.setDialogType(JFileChooser.OPEN_DIALOG);
- chooser.setFileFilter(new FileFilter() {
- public boolean accept(File f) {
-
- return f.isDirectory() ||
- f.getName().endsWith(".properties") ||
- f.getName().endsWith(".xml");
- }
-
- public String getDescription() {
-
- return "Log4j Configuration file";
- }
- });
-
- chooser.showOpenDialog(this);
-
- File selectedFile = chooser.getSelectedFile();
-
+ File selectedFile = SwingHelper.promptForFile(this, null, "Choose a Chainsaw configuration file");
if (selectedFile == null) {
-
return null;
}
if (!selectedFile.exists() || !selectedFile.canRead()) {
-
return null;
}
-
- return chooser.getSelectedFile().toURI().toURL();
+ return selectedFile.toURI().toURL();
}
/**
@@ -590,13 +570,7 @@ class ReceiverConfigurationPanel extends JPanel {
*/
private URL browseLogFile() throws MalformedURLException {
- JFileChooser chooser = new JFileChooser();
- chooser.setDialogTitle("Browse for a log file...");
- chooser.setDialogType(JFileChooser.OPEN_DIALOG);
- chooser.showOpenDialog(this);
-
- File selectedFile = chooser.getSelectedFile();
-
+ File selectedFile = SwingHelper.promptForFile(this, null, "Select a log file");
if (selectedFile == null) {
return null;
}
@@ -605,7 +579,7 @@ class ReceiverConfigurationPanel extends JPanel {
return null;
}
- return chooser.getSelectedFile().toURI().toURL();
+ return selectedFile.toURI().toURL();
}
public static void main(String[] args) {
http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/98f2a549/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java b/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java
index f10b441..018e45c 100644
--- a/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java
+++ b/src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java
@@ -18,11 +18,17 @@
package org.apache.log4j.chainsaw.helper;
import java.awt.Component;
+import java.awt.Container;
import java.awt.Dimension;
+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;
+import java.util.ArrayList;
+import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -30,6 +36,7 @@ import javax.swing.InputMap;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
+import javax.swing.JFileChooser;
import javax.swing.KeyStroke;
/**
@@ -82,4 +89,54 @@ public final class SwingHelper {
EventQueue.invokeLater(runnable);
}
}
+
+ public static boolean isMacOSX() {
+ return System.getProperty("os.name").toLowerCase().startsWith("mac os x");
+ }
+
+ public static List orderOKCancelButtons(JButton okButton, JButton cancelButton) {
+ List result = new ArrayList();
+ if (isMacOSX()) {
+ result.add(cancelButton);
+ result.add(okButton);
+ } else {
+ result.add(okButton);
+ result.add(cancelButton);
+ }
+ return result;
+ }
+
+ public static File promptForFile(Container parent, String defaultPath, String title) {
+ if (SwingHelper.isMacOSX()) {
+ //use filedialog on mac
+ FileDialog fileDialog = new FileDialog((Frame)null, title);
+ if (defaultPath != null) {
+ fileDialog.setDirectory(defaultPath);
+ }
+ fileDialog.setVisible(true);
+ String fileString = fileDialog.getFile();
+ if (fileString == null) {
+ return null;
+ }
+ return new File(fileString);
+ } else {
+
+ JFileChooser chooser;
+ if (defaultPath != null) {
+ chooser = new JFileChooser(defaultPath);
+ } else {
+ chooser = new JFileChooser();
+ }
+
+ chooser.setDialogTitle(title);
+
+ chooser.setAcceptAllFileFilterUsed(true);
+
+ int i = chooser.showOpenDialog(parent);
+ if (i != JFileChooser.APPROVE_OPTION) {
+ return null;
+ }
+ return chooser.getSelectedFile();
+ }
+ }
}