[autocomplete] 23/143: Better custom tooltip coloring for Nimbus. Removed a few stdout debug messages.

Benjamin Mesing ben at alioth.debian.org
Sat Oct 19 12:53:11 UTC 2013


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

ben pushed a commit to branch master
in repository autocomplete.

commit 40a2260507c84b610c36f037a6633b9da4e42d32
Author: bobbylight <robert at fifesoft.com>
Date:   Thu Aug 13 23:40:38 2009 +0000

    Better custom tooltip coloring for Nimbus.  Removed a few stdout debug messages.
---
 .../ui/autocomplete/AutoCompleteDescWindow.java    |   65 +----------
 .../ParameterizedCompletionDescriptionToolTip.java |   24 +---
 src/org/fife/ui/autocomplete/TipUtil.java          |  121 ++++++++++++++++++++
 3 files changed, 127 insertions(+), 83 deletions(-)

diff --git a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
index e90d59c..1049b33 100644
--- a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
+++ b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
@@ -24,10 +24,7 @@
 package org.fife.ui.autocomplete;
 
 import java.awt.BorderLayout;
-import java.awt.Color;
 import java.awt.ComponentOrientation;
-import java.awt.Font;
-import java.awt.SystemColor;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.io.IOException;
@@ -53,7 +50,6 @@ import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
-import javax.swing.text.html.HTMLDocument;
 
 
 /**
@@ -139,10 +135,10 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener {
 //		cp.setBorder(BorderFactory.createLineBorder(Color.BLACK));
 
 		descArea = new JEditorPane("text/html", null);
-		tweakDescArea();
+		TipUtil.tweakTipEditorPane(descArea);
 		descArea.addHyperlinkListener(this);
 		scrollPane = new JScrollPane(descArea);
-		scrollPane.setViewportBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+		scrollPane.setViewportBorder(BorderFactory.createEmptyBorder());
 		scrollPane.setBackground(descArea.getBackground());
 		scrollPane.getViewport().setBackground(descArea.getBackground());
 		cp.add(scrollPane);
@@ -221,24 +217,6 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener {
 
 
 	/**
-	 * Returns the default background color to use for the description
-	 * window.
-	 *
-	 * @return The default background color.
-	 */
-	protected Color getDefaultBackground() {
-		Color c = UIManager.getColor("ToolTip.background");
-		if (c==null) { // Some LookAndFeels like Nimbus
-			c = UIManager.getColor("info"); // Used by Nimbus (and others)
-			if (c==null) {
-				c = SystemColor.infoText; // System default
-			}
-		}
-		return c;
-	}
-
-
-	/**
 	 * Returns the localized message for the specified key.
 	 *
 	 * @param key The key.
@@ -356,47 +334,12 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener {
 	}
 
 	/**
-	 * Tweaks the description text area to look good in the current Look
-	 * and Feel.
-	 */
-	private void tweakDescArea() {
-
-		// Jump through a few hoops to get things looking nice in Nimbus
-		if (UIManager.getLookAndFeel().getName().equals("Nimbus")) {
-			Color selBG = descArea.getSelectionColor();
-			Color selFG = descArea.getSelectedTextColor();
-			descArea.setUI(new javax.swing.plaf.basic.BasicEditorPaneUI());
-			descArea.setSelectedTextColor(selFG);
-			descArea.setSelectionColor(selBG);
-		}
-
-		descArea.setEditable(false); // Required for links to work!
-
-		// Make selection visible even though we are not focusable.
-		descArea.getCaret().setSelectionVisible(true);
-
-		// Make it use "tool tip" background color.
-		descArea.setBackground(getDefaultBackground());
-
-		// Force JEditorPane to use a certain font even in HTML.
-		// All standard LookAndFeels, even Nimbus (!), define Label.font.
-		Font font = UIManager.getFont("Label.font");
-		if (font==null) { // Try to make a sensible default
-			font = new Font("SansSerif", Font.PLAIN, 12);
-		}
-		HTMLDocument doc = (HTMLDocument)descArea.getDocument();
-		doc.getStyleSheet().addRule("body { font-family: " + font.getFamily() +
-				"; font-size: " + font.getSize() + "pt; }");
-
-	}
-
-
-	/**
 	 * Called by the parent completion popup window the LookAndFeel is updated.
 	 */
 	public void updateUI() {
 		SwingUtilities.updateComponentTreeUI(this);
-		tweakDescArea(); // Update the editor pane (font in HTML, etc.)
+		// Update editor pane for new font, bg, selection colors, etc.
+		TipUtil.tweakTipEditorPane(descArea);
 		scrollPane.setBackground(descArea.getBackground());
 		scrollPane.getViewport().setBackground(descArea.getBackground());
 	}
diff --git a/src/org/fife/ui/autocomplete/ParameterizedCompletionDescriptionToolTip.java b/src/org/fife/ui/autocomplete/ParameterizedCompletionDescriptionToolTip.java
index f4cd164..c824181 100644
--- a/src/org/fife/ui/autocomplete/ParameterizedCompletionDescriptionToolTip.java
+++ b/src/org/fife/ui/autocomplete/ParameterizedCompletionDescriptionToolTip.java
@@ -27,7 +27,6 @@ import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Point;
 import java.awt.Rectangle;
-import java.awt.SystemColor;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.awt.event.FocusEvent;
@@ -36,7 +35,6 @@ import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
 import java.util.ArrayList;
 import java.util.List;
-
 import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.ActionMap;
@@ -151,11 +149,11 @@ class ParameterizedCompletionDescriptionToolTip {
 		this.pc = pc;
 
 		descLabel = new JLabel();
-		descLabel.setOpaque(true);
 		descLabel.setBorder(BorderFactory.createCompoundBorder(
 					BorderFactory.createLineBorder(Color.BLACK),
 					BorderFactory.createEmptyBorder(2, 5, 2, 5)));
-		descLabel.setBackground(getDefaultBackground());
+		descLabel.setOpaque(true);
+		descLabel.setBackground(TipUtil.getToolTipBackground());
 		tooltip.setContentPane(descLabel);
 
 		lastSelectedParam = -1;
@@ -170,24 +168,6 @@ class ParameterizedCompletionDescriptionToolTip {
 	}
 
 
-	/**
-	 * Returns the default background color to use for the description
-	 * window.
-	 *
-	 * @return The default background color.
-	 */
-	protected Color getDefaultBackground() {
-		Color c = UIManager.getColor("ToolTip.background");
-		if (c==null) { // Some LookAndFeels like Nimbus
-			c = UIManager.getColor("info"); // Used by Nimbus (and others)
-			if (c==null) {
-				c = SystemColor.infoText; // System default
-			}
-		}
-		return c;
-	}
-
-
 	private List getParameterHighlights() {
 		List paramHighlights = new ArrayList(1);
 		JTextComponent tc = ac.getTextComponent();
diff --git a/src/org/fife/ui/autocomplete/TipUtil.java b/src/org/fife/ui/autocomplete/TipUtil.java
new file mode 100644
index 0000000..ea06265
--- /dev/null
+++ b/src/org/fife/ui/autocomplete/TipUtil.java
@@ -0,0 +1,121 @@
+/*
+ * 08/13/2009
+ *
+ * TipUtil.java - Utility methods for homemade tool tips.
+ * Copyright (C) 2009 Robert Futrell
+ * robert_futrell at users.sourceforge.net
+ * http://fifesoft.com/rsyntaxtextarea
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA.
+ */
+package org.fife.ui.autocomplete;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.SystemColor;
+import javax.swing.BorderFactory;
+import javax.swing.JEditorPane;
+import javax.swing.UIManager;
+import javax.swing.plaf.ColorUIResource;
+import javax.swing.text.html.HTMLDocument;
+
+
+/**
+ * Static utility methods for homemade tool tips.<p>
+ *
+ * This is blatantly ripped off from RSyntaxTextArea's "FocusableTips" class
+ * of the same name, but isn't re-used to prevent a hard dependency on the
+ * RSTA library.
+ *
+ * @author Robert Futrell
+ * @version 1.0
+ */
+class TipUtil {
+
+
+	private TipUtil() {
+	}
+
+
+	/**
+	 * Returns the default background color to use for tool tip windows.
+	 *
+	 * @return The default background color.
+	 */
+	public static Color getToolTipBackground() {
+
+		Color c = UIManager.getColor("ToolTip.background");
+
+		// Tooltip.background is wrong color on Nimbus (!)
+		if (c==null || UIManager.getLookAndFeel().getName().equals("Nimbus")) {
+			c = UIManager.getColor("info"); // Used by Nimbus (and others)
+			if (c==null) {
+				c = SystemColor.info; // System default
+			}
+		}
+
+		// Workaround for a bug (?) with Nimbus - calling JLabel.setBackground()
+		// with a ColorUIResource does nothing, must be a normal Color
+		if (c instanceof ColorUIResource) {
+			c = new Color(c.getRGB());
+		}
+
+		return c;
+
+	}
+
+
+	/**
+	 * 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>.
+	 *
+	 * @param textArea The editor pane to tweak.
+	 */
+	public static void tweakTipEditorPane(JEditorPane textArea) {
+
+		// Jump through a few hoops to get things looking nice in Nimbus
+		if (UIManager.getLookAndFeel().getName().equals("Nimbus")) {
+			Color selBG = textArea.getSelectionColor();
+			Color selFG = textArea.getSelectedTextColor();
+			textArea.setUI(new javax.swing.plaf.basic.BasicEditorPaneUI());
+			textArea.setSelectedTextColor(selFG);
+			textArea.setSelectionColor(selBG);
+		}
+
+		textArea.setEditable(false); // Required for links to work!
+		textArea.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+
+		// Make selection visible even though we are not (initially) focusable.
+		textArea.getCaret().setSelectionVisible(true);
+
+		// Make it use the "tool tip" background color.
+		textArea.setBackground(TipUtil.getToolTipBackground());
+
+		// Force JEditorPane to use a certain font even in HTML.
+		// All standard LookAndFeels, even Nimbus (!), define Label.font.
+		Font font = UIManager.getFont("Label.font");
+		if (font == null) { // Try to make a sensible default
+			font = new Font("SansSerif", Font.PLAIN, 12);
+		}
+		HTMLDocument doc = (HTMLDocument) textArea.getDocument();
+		doc.getStyleSheet().addRule(
+				"body { font-family: " + font.getFamily() + "; font-size: "
+						+ font.getSize() + "pt; }");
+
+	}
+
+
+}
\ No newline at end of file

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



More information about the pkg-java-commits mailing list