[autocomplete] 95/143: Added getIcon() method to the Completion interface to attempt to streamline icon usage in completions. Minor warning cleanup.

Benjamin Mesing ben at alioth.debian.org
Sat Oct 19 12:53:24 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 56da0d286b22b459abc9083004625ea20386b6e2
Author: bobbylight <robert at fifesoft.com>
Date:   Fri Jul 6 18:33:44 2012 +0000

    Added getIcon() method to the Completion interface to attempt to streamline icon usage in completions.  Minor warning cleanup.
---
 .../fife/ui/autocomplete/AbstractCompletion.java   |   12 +++++++++
 src/org/fife/ui/autocomplete/Completion.java       |    9 +++++++
 .../ui/autocomplete/CompletionCellRenderer.java    |   27 ++++++++++++++++----
 src/org/fife/ui/autocomplete/EmptyIcon.java        |    5 ++--
 4 files changed, 46 insertions(+), 7 deletions(-)

diff --git a/src/org/fife/ui/autocomplete/AbstractCompletion.java b/src/org/fife/ui/autocomplete/AbstractCompletion.java
index c700e77..4a10898 100644
--- a/src/org/fife/ui/autocomplete/AbstractCompletion.java
+++ b/src/org/fife/ui/autocomplete/AbstractCompletion.java
@@ -8,6 +8,7 @@
  */
 package org.fife.ui.autocomplete;
 
+import javax.swing.Icon;
 import javax.swing.text.JTextComponent;
 
 
@@ -77,6 +78,17 @@ public abstract class AbstractCompletion implements Completion {
 
 
 	/**
+	 * The default implementation returns <code>null</code>.  Subclasses
+	 * who wish to display an icon can override this method.
+	 *
+	 * @return The icon for this completion.
+	 */
+	public Icon getIcon() {
+		return null;
+	}
+
+
+	/**
 	 * Returns the text the user has to (start) typing for this completion
 	 * to be offered.  The default implementation simply returns
 	 * {@link #getReplacementText()}.
diff --git a/src/org/fife/ui/autocomplete/Completion.java b/src/org/fife/ui/autocomplete/Completion.java
index a484cfa..dc65995 100644
--- a/src/org/fife/ui/autocomplete/Completion.java
+++ b/src/org/fife/ui/autocomplete/Completion.java
@@ -8,6 +8,7 @@
  */
 package org.fife.ui.autocomplete;
 
+import javax.swing.Icon;
 import javax.swing.text.JTextComponent;
 
 
@@ -62,6 +63,14 @@ public interface Completion extends Comparable {
 
 
 	/**
+	 * Returns the icon to use for this completion.
+	 *
+	 * @return The icon, or <code>null</code> for none.
+	 */
+	public Icon getIcon();
+
+
+	/**
 	 * Returns the text that the user has to (start) typing for this completion
 	 * to be offered.  Note that this will usually be the same value as
 	 * {@link #getReplacementText()}, but not always (a completion could be
diff --git a/src/org/fife/ui/autocomplete/CompletionCellRenderer.java b/src/org/fife/ui/autocomplete/CompletionCellRenderer.java
index e3e259f..d67de22 100644
--- a/src/org/fife/ui/autocomplete/CompletionCellRenderer.java
+++ b/src/org/fife/ui/autocomplete/CompletionCellRenderer.java
@@ -15,6 +15,7 @@ import java.awt.Font;
 import java.awt.Graphics;
 import java.awt.Rectangle;
 import javax.swing.DefaultListCellRenderer;
+import javax.swing.Icon;
 import javax.swing.JList;
 import javax.swing.plaf.basic.BasicHTML;
 import javax.swing.text.View;
@@ -132,24 +133,26 @@ public class CompletionCellRenderer extends DefaultListCellRenderer {
 		this.selected = selected;
 		this.realBG = altBG!=null && (index&1)==0 ? altBG : list.getBackground();
 
-		if (value instanceof FunctionCompletion) {
+		Completion c = (Completion)value;
+		setIcon(c.getIcon());
+
+		if (c instanceof FunctionCompletion) {
 			FunctionCompletion fc = (FunctionCompletion)value;
 			prepareForFunctionCompletion(list, fc, index, selected, hasFocus);
 		}
-		else if (value instanceof VariableCompletion) {
+		else if (c instanceof VariableCompletion) {
 			VariableCompletion vc = (VariableCompletion)value;
 			prepareForVariableCompletion(list, vc, index, selected, hasFocus);
 		}
-		else if (value instanceof TemplateCompletion) {
+		else if (c instanceof TemplateCompletion) {
 			TemplateCompletion tc = (TemplateCompletion)value;
 			prepareForTemplateCompletion(list, tc, index, selected, hasFocus);
 		}
-		else if (value instanceof MarkupTagCompletion) {
+		else if (c instanceof MarkupTagCompletion) {
 			MarkupTagCompletion mtc = (MarkupTagCompletion)value;
 			prepareForMarkupTagCompletion(list, mtc, index, selected, hasFocus);
 		}
 		else {
-			Completion c = (Completion)value;
 			prepareForOtherCompletion(list, c, index, selected, hasFocus);
 		}
 
@@ -416,6 +419,20 @@ public class CompletionCellRenderer extends DefaultListCellRenderer {
 
 
 	/**
+	 * Sets the icon to display based off of a completion, falling back to a
+	 * default icon if the completion has no icon.
+	 *
+	 * @param completion The completion to check.
+	 * @param defaultIcon The icon to use if <code>completion</code> does not
+	 *        specify an icon.
+	 */
+	protected void setIconWithDefault(Completion completion, Icon defaultIcon) {
+		Icon icon = completion.getIcon();
+		setIcon(icon!=null ? icon : defaultIcon);
+	}
+
+
+	/**
 	 * Sets whether the types of fields and return types of methods are
 	 * shown in the completion text.
 	 *
diff --git a/src/org/fife/ui/autocomplete/EmptyIcon.java b/src/org/fife/ui/autocomplete/EmptyIcon.java
index fceb4d4..32a2a25 100644
--- a/src/org/fife/ui/autocomplete/EmptyIcon.java
+++ b/src/org/fife/ui/autocomplete/EmptyIcon.java
@@ -15,8 +15,9 @@ import javax.swing.Icon;
 
 
 /**
- * A standard icon that doesn't paint anything.  This can be used to take
- * up an icon's space when no icon is specified.
+ * A standard icon that doesn't paint anything.  This can be used when some
+ * <code>Completion</code>s have icons and others don't, to visually align the
+ * text of all completions.
  *
  * @author Robert Futrell
  * @version 1.0

-- 
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