From 60bdad67b4694360fc959c5bfa0148aaa30d959a Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Mon, 05 Jan 2009 22:38:09 +0000
Subject: [PATCH] Fix for issue 3685 (Swing repainting problem in control panel) The fix consists on handling in a particular mode the border of some components when the Metal look and feel is used. In this look and feel the scroll pane border can only be used with JScrollPane objects.
---
opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java | 2 +-
opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java | 12 ++++++++++++
opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java | 2 +-
opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/ColorAndFontConstants.java | 26 +++++++++++++++++++-------
opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseIndexPanel.java | 2 +-
5 files changed, 34 insertions(+), 10 deletions(-)
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java
index 647e5af..10aafc4 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java
@@ -222,7 +222,7 @@
new Dimension((treeScroll.getPreferredSize().width * 5) / 2,
treeScroll.getPreferredSize().height));
- entryPane.setBorder(treeScroll.getBorder());
+ entryPane.setBorder(getRightPanelBorder());
addPopupMenu();
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseIndexPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseIndexPanel.java
index 8f2fb37..b542cbe 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseIndexPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseIndexPanel.java
@@ -437,7 +437,7 @@
treeScroll.setPreferredSize(
new Dimension(2 * treeScroll.getPreferredSize().width,
8 * treeScroll.getPreferredSize().height));
- entryPane.setBorder(treeScroll.getBorder());
+ entryPane.setBorder(getRightPanelBorder());
entryPane.setPreferredSize(
new Dimension((treeScroll.getPreferredSize().width * 5) / 2,
treeScroll.getPreferredSize().height));
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java
index 4019934..6c99cf2 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java
@@ -579,7 +579,7 @@
new Dimension((3 * treeScroll.getPreferredSize().width) / 2,
5 * treeScroll.getPreferredSize().height));
entryPane.displayMessage(NO_SCHEMA_ITEM_SELECTED);
- entryPane.setBorder(treeScroll.getBorder());
+ entryPane.setBorder(getRightPanelBorder());
entryPane.setPreferredSize(
new Dimension(treeScroll.getPreferredSize().width,
treeScroll.getPreferredSize().height));
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/ColorAndFontConstants.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/ColorAndFontConstants.java
index 0e8f4dd..0e61917 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/ColorAndFontConstants.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/ColorAndFontConstants.java
@@ -31,9 +31,9 @@
import java.awt.Font;
import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.border.Border;
+import javax.swing.plaf.metal.MetalBorders;
import org.opends.guitools.controlpanel.util.Utilities;
@@ -59,7 +59,6 @@
public static final Border textAreaBorder;
static
{
- Border border = new javax.swing.border.EmptyBorder(0, 0, 0, 0);
Color bg = Color.white;
try
{
@@ -78,16 +77,29 @@
{
toggleButtonColor = new Color(200, 200, 200);
}
-
- JScrollPane scroll = new JScrollPane(new JTextArea());
- border = scroll.getViewportBorder();
- if (border == null)
+ }
+ catch (Throwable t)
+ {
+ }
+ Border border = null;
+ try
+ {
+ JScrollPane scroll = new JScrollPane();
+ border = scroll.getBorder();
+ // If the border is of class MetalBorders$ScrollPaneBorder it cannot
+ // be used.
+ if (border instanceof MetalBorders.ScrollPaneBorder)
{
- border = scroll.getBorder();
+ border = null;
}
}
catch (Throwable t)
{
+ border = null;
+ }
+ if (border == null)
+ {
+ border = new MetalBorders.Flush3DBorder();
}
textAreaBorder = border;
background = bg;
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
index 4cc9613..11d70ad 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -64,6 +64,7 @@
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
+import javax.swing.border.Border;
import org.opends.admin.ads.util.ConnectionUtils;
import org.opends.guitools.controlpanel.browser.BrowserController;
@@ -1940,4 +1941,15 @@
}
return hasObjectClass;
}
+
+ /**
+ * Returns the border to be used in the right panel of the dialog with a tree
+ * on the left (for instance the schema browser, entry browser and index
+ * browser).
+ * @return the border to be used in the right panel.
+ */
+ protected Border getRightPanelBorder()
+ {
+ return ColorAndFontConstants.textAreaBorder;
+ }
}
--
Gitblit v1.10.0