[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