From d66b1c68b93d8b7e103a71b99b4db38a1264e74e Mon Sep 17 00:00:00 2001 From: mguessan Date: Mon, 16 May 2011 20:37:36 +0000 Subject: [PATCH] Revert LookAndFeel changes, switch to System.setProperty to set default LAF git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1685 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/ui/AboutFrame.java | 1 - .../davmail/ui/AcceptCertificateDialog.java | 1 - src/java/davmail/ui/NotificationDialog.java | 1 - src/java/davmail/ui/PasswordPromptDialog.java | 1 - src/java/davmail/ui/SettingsFrame.java | 1 - src/java/davmail/ui/tray/AwtGatewayTray.java | 16 +---------- src/java/davmail/ui/tray/DavGatewayTray.java | 3 --- .../ui/tray/DavGatewayTrayInterface.java | 4 --- .../davmail/ui/tray/FrameGatewayTray.java | 16 +---------- src/java/davmail/ui/tray/SwtGatewayTray.java | 27 ++++++++++++++----- 10 files changed, 22 insertions(+), 49 deletions(-) diff --git a/src/java/davmail/ui/AboutFrame.java b/src/java/davmail/ui/AboutFrame.java index 5454bf97..0f5ab3f0 100644 --- a/src/java/davmail/ui/AboutFrame.java +++ b/src/java/davmail/ui/AboutFrame.java @@ -46,7 +46,6 @@ public class AboutFrame extends JFrame { * About frame. */ public AboutFrame() { - DavGatewayTray.setLookAndFeel(); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); setTitle(BundleMessage.format("UI_ABOUT_DAVMAIL")); setIconImage(DavGatewayTray.getFrameIcon()); diff --git a/src/java/davmail/ui/AcceptCertificateDialog.java b/src/java/davmail/ui/AcceptCertificateDialog.java index ecff59a6..583c8b70 100644 --- a/src/java/davmail/ui/AcceptCertificateDialog.java +++ b/src/java/davmail/ui/AcceptCertificateDialog.java @@ -70,7 +70,6 @@ public class AcceptCertificateDialog extends JDialog { * @param certificate certificate sent by server */ public AcceptCertificateDialog(X509Certificate certificate) { - DavGatewayTray.setLookAndFeel(); setAlwaysOnTop(true); String sha1Hash = DavGatewayX509TrustManager.getFormattedHash(certificate); DateFormat formatter = DateFormat.getDateInstance(DateFormat.MEDIUM); diff --git a/src/java/davmail/ui/NotificationDialog.java b/src/java/davmail/ui/NotificationDialog.java index 89ec651c..eca1d5d9 100644 --- a/src/java/davmail/ui/NotificationDialog.java +++ b/src/java/davmail/ui/NotificationDialog.java @@ -57,7 +57,6 @@ public class NotificationDialog extends JDialog { } public NotificationDialog(String to, String cc, String subject) { - DavGatewayTray.setLookAndFeel(); setModal(true); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); setTitle(BundleMessage.format("UI_CALDAV_NOTIFICATION")); diff --git a/src/java/davmail/ui/PasswordPromptDialog.java b/src/java/davmail/ui/PasswordPromptDialog.java index 35de7d93..3cb60450 100644 --- a/src/java/davmail/ui/PasswordPromptDialog.java +++ b/src/java/davmail/ui/PasswordPromptDialog.java @@ -52,7 +52,6 @@ public class PasswordPromptDialog extends JDialog { * @param prompt password prompt from PKCS11 module */ public PasswordPromptDialog(String prompt) { - DavGatewayTray.setLookAndFeel(); setAlwaysOnTop(true); setTitle(BundleMessage.format("UI_PASSWORD_PROMPT")); diff --git a/src/java/davmail/ui/SettingsFrame.java b/src/java/davmail/ui/SettingsFrame.java index 4d09857f..2ed69603 100644 --- a/src/java/davmail/ui/SettingsFrame.java +++ b/src/java/davmail/ui/SettingsFrame.java @@ -559,7 +559,6 @@ public class SettingsFrame extends JFrame { * DavMail settings frame. */ public SettingsFrame() { - DavGatewayTray.setLookAndFeel(); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); setTitle(BundleMessage.format("UI_DAVMAIL_SETTINGS")); setIconImage(DavGatewayTray.getFrameIcon()); diff --git a/src/java/davmail/ui/tray/AwtGatewayTray.java b/src/java/davmail/ui/tray/AwtGatewayTray.java index fff3fe39..a3f949b5 100644 --- a/src/java/davmail/ui/tray/AwtGatewayTray.java +++ b/src/java/davmail/ui/tray/AwtGatewayTray.java @@ -175,22 +175,8 @@ public class AwtGatewayTray implements DavGatewayTrayInterface { }); } - boolean lookAndFeelSet; - - public void setLookAndFeel() { - if (!lookAndFeelSet) { - lookAndFeelSet = true; - // set native look and feel - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception e) { - DavGatewayTray.warn(new BundleMessage("LOG_UNABLE_TO_SET_SYSTEM_LOOK_AND_FEEL"), e); - } - } - } - protected void createAndShowGUI() { - setLookAndFeel(); + System.setProperty("swing.defaultlaf", UIManager.getSystemLookAndFeelClassName()); // get the SystemTray instance SystemTray tray = SystemTray.getSystemTray(); diff --git a/src/java/davmail/ui/tray/DavGatewayTray.java b/src/java/davmail/ui/tray/DavGatewayTray.java index 3e9c25f7..99e9d834 100644 --- a/src/java/davmail/ui/tray/DavGatewayTray.java +++ b/src/java/davmail/ui/tray/DavGatewayTray.java @@ -292,7 +292,4 @@ public final class DavGatewayTray { return result; } - public static void setLookAndFeel() { - davGatewayTray.setLookAndFeel(); - } } diff --git a/src/java/davmail/ui/tray/DavGatewayTrayInterface.java b/src/java/davmail/ui/tray/DavGatewayTrayInterface.java index a704197d..7220cea3 100644 --- a/src/java/davmail/ui/tray/DavGatewayTrayInterface.java +++ b/src/java/davmail/ui/tray/DavGatewayTrayInterface.java @@ -68,8 +68,4 @@ public interface DavGatewayTrayInterface { */ void init(); - /** - * Set Look and Feel to system LAF - */ - void setLookAndFeel(); } diff --git a/src/java/davmail/ui/tray/FrameGatewayTray.java b/src/java/davmail/ui/tray/FrameGatewayTray.java index 25063fb6..cbc9c8d0 100644 --- a/src/java/davmail/ui/tray/FrameGatewayTray.java +++ b/src/java/davmail/ui/tray/FrameGatewayTray.java @@ -253,22 +253,8 @@ public class FrameGatewayTray implements DavGatewayTrayInterface { menu.add(exitItem); } - boolean lookAndFeelSet; - - public void setLookAndFeel() { - if (!lookAndFeelSet) { - lookAndFeelSet = true; - // set native look and feel - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception e) { - DavGatewayTray.warn(new BundleMessage("LOG_UNABLE_TO_SET_SYSTEM_LOOK_AND_FEEL"), e); - } - } - } - protected void createAndShowGUI() { - setLookAndFeel(); + System.setProperty("swing.defaultlaf", UIManager.getSystemLookAndFeelClassName()); image = DavGatewayTray.loadImage("tray.png"); image2 = DavGatewayTray.loadImage(AwtGatewayTray.TRAY_ACTIVE_PNG); diff --git a/src/java/davmail/ui/tray/SwtGatewayTray.java b/src/java/davmail/ui/tray/SwtGatewayTray.java index 4877fb6e..90109730 100644 --- a/src/java/davmail/ui/tray/SwtGatewayTray.java +++ b/src/java/davmail/ui/tray/SwtGatewayTray.java @@ -182,11 +182,13 @@ public class SwtGatewayTray implements DavGatewayTrayInterface { lafClassName = UIManager.getCrossPlatformLookAndFeelClassName(); // replace AWT event queue Gdk error handler to avoid application crash Toolkit.getDefaultToolkit().getSystemEventQueue().push(new SwtAwtEventQueue()); - SwtAwtEventQueue.registerErrorHandler(); - UIManager.setLookAndFeel(lafClassName); - SwtAwtEventQueue.handleGdkError(); + //SwtAwtEventQueue.registerErrorHandler(); + //UIManager.setLookAndFeel(lafClassName); + //SwtAwtEventQueue.handleGdkError(); + System.setProperty("swing.defaultlaf", lafClassName); } else { - UIManager.setLookAndFeel(lafClassName); + //UIManager.setLookAndFeel(lafClassName); + System.setProperty("swing.defaultlaf", lafClassName); } } catch (Exception e) { DavGatewayTray.warn(new BundleMessage("LOG_UNABLE_TO_SET_LOOK_AND_FEEL")); @@ -194,11 +196,24 @@ public class SwtGatewayTray implements DavGatewayTrayInterface { } } - /** * Create tray icon and register frame listeners. */ public void init() { + try { + String lafClassName = UIManager.getSystemLookAndFeelClassName(); + // workaround for bug when SWT and AWT both try to access Gtk + if (lafClassName.indexOf("gtk") > 0) { + lafClassName = UIManager.getCrossPlatformLookAndFeelClassName(); + // replace AWT event queue Gdk error handler to avoid application crash + Toolkit.getDefaultToolkit().getSystemEventQueue().push(new SwtAwtEventQueue()); + System.setProperty("swing.defaultlaf", lafClassName); + } else { + System.setProperty("swing.defaultlaf", lafClassName); + } + } catch (Exception e) { + DavGatewayTray.warn(new BundleMessage("LOG_UNABLE_TO_SET_LOOK_AND_FEEL")); + } new Thread("SWT") { @Override @@ -300,7 +315,6 @@ public class SwtGatewayTray implements DavGatewayTrayInterface { Logger rootLogger = Logger.getRootLogger(); LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender"); if (lf5Appender == null) { - setLookAndFeel(); logBrokerMonitor = new LogBrokerMonitor(LogLevel.getLog4JLevels()) { @Override protected void closeAfterConfirm() { @@ -330,7 +344,6 @@ public class SwtGatewayTray implements DavGatewayTrayInterface { if (Settings.isFirstStart()) { // create frame on first call if (settingsFrame == null) { - setLookAndFeel(); settingsFrame = new SettingsFrame(); } settingsFrame.setVisible(true);