This is an automated email from the git hooks/post-receive script.

ben pushed a commit to branch master
in repository autocomplete.

commit 41158e5483546d8ec54f27647088207c3a8c8aa0
Author: bobbylight <[email protected]>
Date:   Sun Dec 4 06:45:41 2011 +0000

    Popup windows: Working around Nimbus oddities (yet again) with colors.  
Make "tool tip" style windows use actual tool tip border where possible.
    JavaLanguageSupport: Improving "go to member" action.
    Folding: Fixed bug with top-level single-line folded regions.
---
 .../ui/autocomplete/AutoCompleteDescWindow.java    |   22 +++++++-
 src/org/fife/ui/autocomplete/SizeGrip.java         |    4 +-
 src/org/fife/ui/autocomplete/TipUtil.java          |   58 ++++++++++++++++++--
 3 files changed, 75 insertions(+), 9 deletions(-)

diff --git a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java 
b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
index 00fe324..9c4e784 100644
--- a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
+++ b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
@@ -24,7 +24,10 @@
 package org.fife.ui.autocomplete;
 
 import java.awt.BorderLayout;
+import java.awt.Component;
 import java.awt.ComponentOrientation;
+import java.awt.Graphics;
+import java.awt.Insets;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.io.IOException;
@@ -49,6 +52,8 @@ import javax.swing.JWindow;
 import javax.swing.SwingUtilities;
 import javax.swing.Timer;
 import javax.swing.UIManager;
+import javax.swing.border.AbstractBorder;
+import javax.swing.border.Border;
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
 
@@ -154,13 +159,15 @@ class AutoCompleteDescWindow extends JWindow implements 
HyperlinkListener {
                ComponentOrientation o = ac.getTextComponentOrientation();
                
                JPanel cp = new JPanel(new BorderLayout());
-//             cp.setBorder(BorderFactory.createLineBorder(Color.BLACK));
+               cp.setBorder(TipUtil.getToolTipBorder());
 
                descArea = new JEditorPane("text/html", null);
                TipUtil.tweakTipEditorPane(descArea);
                descArea.addHyperlinkListener(this);
                scrollPane = new JScrollPane(descArea);
-               scrollPane.setViewportBorder(BorderFactory.createEmptyBorder());
+               Border b = BorderFactory.createEmptyBorder();
+               scrollPane.setBorder(b);
+               scrollPane.setViewportBorder(b);
                scrollPane.setBackground(descArea.getBackground());
                
scrollPane.getViewport().setBackground(descArea.getBackground());
                cp.add(scrollPane);
@@ -173,6 +180,16 @@ class AutoCompleteDescWindow extends JWindow implements 
HyperlinkListener {
                descWindowNavBar.add(new JButton(forwardAction));
 
                bottomPanel = new JPanel(new BorderLayout());
+               b = new AbstractBorder() {
+                       public Insets getBorderInsets(Component c) { 
+                               return new Insets(1, 0, 0, 0);
+                       }
+                       public void paintBorder(Component c, Graphics g, int x, 
int y, int w, int h) {
+                               
g.setColor(UIManager.getColor("controlDkShadow"));
+                               g.drawLine(x,y, x+w-1,y);
+                       }
+               };
+               bottomPanel.setBorder(b);
                SizeGrip rp = new SizeGrip();
                bottomPanel.add(descWindowNavBar, BorderLayout.LINE_START);
                bottomPanel.add(rp, BorderLayout.LINE_END);
@@ -378,6 +395,7 @@ class AutoCompleteDescWindow extends JWindow implements 
HyperlinkListener {
                TipUtil.tweakTipEditorPane(descArea);
                scrollPane.setBackground(descArea.getBackground());
                
scrollPane.getViewport().setBackground(descArea.getBackground());
+               
((JPanel)getContentPane()).setBorder(TipUtil.getToolTipBorder());
        }
 
 
diff --git a/src/org/fife/ui/autocomplete/SizeGrip.java 
b/src/org/fife/ui/autocomplete/SizeGrip.java
index 637268d..ffe65f6 100644
--- a/src/org/fife/ui/autocomplete/SizeGrip.java
+++ b/src/org/fife/ui/autocomplete/SizeGrip.java
@@ -122,14 +122,14 @@ class SizeGrip extends JPanel {
                super.paintComponent(g);
 
                Dimension dim = getSize();
-               Color c1 = UIManager.getColor("Label.disabledShadow");
-               Color c2 = UIManager.getColor("Label.disabledForeground");
 
                if (osxSizeGrip!=null) {
                        g.drawImage(osxSizeGrip, dim.width-16, dim.height-16, 
null);
                        return;
                }
 
+               Color c1 = UIManager.getColor("Label.disabledShadow");
+               Color c2 = UIManager.getColor("Label.disabledForeground");
                ComponentOrientation orientation = getComponentOrientation();
 
                if (orientation.isLeftToRight()) {
diff --git a/src/org/fife/ui/autocomplete/TipUtil.java 
b/src/org/fife/ui/autocomplete/TipUtil.java
index cbf838a..654ecc7 100644
--- a/src/org/fife/ui/autocomplete/TipUtil.java
+++ b/src/org/fife/ui/autocomplete/TipUtil.java
@@ -29,6 +29,7 @@ import java.net.URL;
 import javax.swing.BorderFactory;
 import javax.swing.JEditorPane;
 import javax.swing.UIManager;
+import javax.swing.border.Border;
 import javax.swing.plaf.ColorUIResource;
 import javax.swing.text.html.HTMLDocument;
 
@@ -60,9 +61,10 @@ class TipUtil {
                Color c = UIManager.getColor("ToolTip.background");
 
                // Tooltip.background is wrong color on Nimbus (!)
-               if (c==null || 
UIManager.getLookAndFeel().getName().equals("Nimbus")) {
+               boolean isNimbus = isNimbusLookAndFeel();
+               if (c==null || isNimbus) {
                        c = UIManager.getColor("info"); // Used by Nimbus (and 
others)
-                       if (c==null) {
+                       if (c==null || (isNimbus && isDerivedColor(c))) {
                                c = SystemColor.info; // System default
                        }
                }
@@ -79,6 +81,51 @@ class TipUtil {
 
 
        /**
+        * Returns the border used by tool tips in this look and feel.
+        *
+        * @return The border.
+        */
+       public static Border getToolTipBorder() {
+
+               Border border = UIManager.getBorder("ToolTip.border");
+
+               if (border==null || isNimbusLookAndFeel()) {
+                       border = UIManager.getBorder("nimbusBorder");
+                       if (border==null) {
+                               border = 
BorderFactory.createLineBorder(SystemColor.controlDkShadow);
+                       }
+               }
+
+               return border;
+
+       }
+
+
+       /**
+        * Returns whether a color is a Nimbus DerivedColor, which is 
troublesome
+        * in that it doesn't use its RGB values (uses HSB instead?) and so
+        * querying them is useless.
+        *
+        * @param c The color to check.
+        * @return Whether it is a DerivedColor
+        */
+       private static final boolean isDerivedColor(Color c) {
+               return c!=null && 
(c.getClass().getName().endsWith(".DerivedColor") ||
+                               
c.getClass().getName().endsWith(".DerivedColor$UIResource"));
+       }
+
+
+       /**
+        * Returns whether the Nimbus Look and Feel is installed.
+        *
+        * @return Whether the current LAF is Nimbus.
+        */
+       private static final boolean isNimbusLookAndFeel() {
+               return UIManager.getLookAndFeel().getName().equals("Nimbus");
+       }
+
+
+       /**
         * Tweaks a <code>JEditorPane</code> so it can be used to render the
         * content in a focusable pseudo-tool tip.  It is assumed that the 
editor
         * pane is using an <code>HTMLDocument</code>.
@@ -88,7 +135,8 @@ class TipUtil {
        public static void tweakTipEditorPane(JEditorPane textArea) {
 
                // Jump through a few hoops to get things looking nice in Nimbus
-               if (UIManager.getLookAndFeel().getName().equals("Nimbus")) {
+               boolean isNimbus = isNimbusLookAndFeel();
+               if (isNimbus) {
                        Color selBG = textArea.getSelectionColor();
                        Color selFG = textArea.getSelectedTextColor();
                        textArea.setUI(new 
javax.swing.plaf.basic.BasicEditorPaneUI());
@@ -106,8 +154,8 @@ class TipUtil {
                // default foreground becomes black, which may not match all 
LAF's
                // (e.g. Substance).
                Color fg = UIManager.getColor("Label.foreground");
-               if (fg==null) {
-                       fg = SystemColor.text;
+               if (fg==null || (isNimbus && isDerivedColor(fg))) {
+                       fg = SystemColor.textText;
                }
                textArea.setForeground(fg);
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-java/autocomplete.git

_______________________________________________
pkg-java-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

Reply via email to