From 53206ce28721940f13e60c351ef4773edab89be7 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 26 Nov 2008 14:44:06 +0000
Subject: [PATCH] Fix for issue 3633 (status-panel is not coming up in Asian locales)
---
opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java | 47 +++++++++++++++++++++--
opends/src/guitools/org/opends/guitools/controlpanel/ControlPanel.java | 36 +++++++++++++++++-
opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java | 36 ++++++++++++++----
3 files changed, 104 insertions(+), 15 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanel.java
index 67cb47c..faa8778 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanel.java
@@ -31,6 +31,7 @@
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
+import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
@@ -63,8 +64,7 @@
public static void main(String[] args) {
try
{
- UIManager.setLookAndFeel(
- UIManager.getSystemLookAndFeelClassName());
+ initLookAndFeel();
}
catch (Throwable t)
{
@@ -122,4 +122,36 @@
controlCenterPane.getLoginDialog().toFront();
}
}
+
+ private static void initLookAndFeel() throws Throwable
+ {
+ if (SwingUtilities.isEventDispatchThread())
+ {
+ UIManager.setLookAndFeel(
+ UIManager.getSystemLookAndFeelClassName());
+ }
+ else
+ {
+ final Throwable[] ts = {null};
+ SwingUtilities.invokeAndWait(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ UIManager.setLookAndFeel(
+ UIManager.getSystemLookAndFeelClassName());
+ }
+ catch (Throwable t)
+ {
+ ts[0] = t;
+ }
+ }
+ });
+ if (ts[0] != null)
+ {
+ throw ts[0];
+ }
+ }
+ }
}
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java b/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java
index 100457f..a15727e 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelLauncher.java
@@ -177,13 +177,9 @@
{
try
{
- // Setup MacOSX native menu bar before AWT is loaded.
- Utils.setMacOSXMenuBar(
- AdminToolMessages.INFO_CONTROL_PANEL_TITLE.get());
try
{
- UIManager.setLookAndFeel(
- UIManager.getSystemLookAndFeelClassName());
+ initLookAndFeel();
}
catch (Throwable t)
{
@@ -237,8 +233,49 @@
System.setErr(printStream);
return returnValue[0];
}
+
+ private static void initLookAndFeel() throws Throwable
+ {
+ if (SwingUtilities.isEventDispatchThread())
+ {
+// Setup MacOSX native menu bar before AWT is loaded.
+ Utils.setMacOSXMenuBar(
+ AdminToolMessages.INFO_CONTROL_PANEL_TITLE.get());
+
+ UIManager.setLookAndFeel(
+ UIManager.getSystemLookAndFeelClassName());
+ }
+ else
+ {
+ final Throwable[] ts = {null};
+ SwingUtilities.invokeAndWait(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+// Setup MacOSX native menu bar before AWT is loaded.
+ Utils.setMacOSXMenuBar(
+ AdminToolMessages.INFO_CONTROL_PANEL_TITLE.get());
+
+ UIManager.setLookAndFeel(
+ UIManager.getSystemLookAndFeelClassName());
+ }
+ catch (Throwable t)
+ {
+ ts[0] = t;
+ }
+ }
+ });
+ if (ts[0] != null)
+ {
+ throw ts[0];
+ }
+ }
+ }
}
+
/**
* The enumeration containing the different return codes that the command-line
* can have.
diff --git a/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java b/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
index 2753429..1f68ab2 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/ui/UIFactory.java
@@ -725,17 +725,37 @@
{
if (!initialized)
{
- System.setProperty("swing.aatext", "true");
- try
+ Runnable r = new Runnable()
{
- UIManager.setLookAndFeel(
- UIManager.getSystemLookAndFeelClassName());
- } catch (Exception ex)
+ public void run()
+ {
+ System.setProperty("swing.aatext", "true");
+ try
+ {
+ UIManager.setLookAndFeel(
+ UIManager.getSystemLookAndFeelClassName());
+ } catch (Throwable t)
+ {
+ t.printStackTrace();
+ }
+ JFrame.setDefaultLookAndFeelDecorated(false);
+ }
+ };
+ if (SwingUtilities.isEventDispatchThread())
{
- ex.printStackTrace();
+ r.run();
}
- JFrame.setDefaultLookAndFeelDecorated(false);
-
+ else
+ {
+ try
+ {
+ SwingUtilities.invokeAndWait(r);
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ }
+ }
initialized = true;
}
}
--
Gitblit v1.10.0