From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 25 Feb 2013 08:40:30 -0500
Subject: [PATCH] Merge pull request #75 from thefake/master

---
 src/com/gitblit/client/NameRenderer.java |   70 ++++++++++++++++-------------------
 1 files changed, 32 insertions(+), 38 deletions(-)

diff --git a/src/com/gitblit/client/NameRenderer.java b/src/com/gitblit/client/NameRenderer.java
index ce04255..4cbb590 100644
--- a/src/com/gitblit/client/NameRenderer.java
+++ b/src/com/gitblit/client/NameRenderer.java
@@ -18,11 +18,10 @@
 import java.awt.Color;
 import java.awt.Component;
 
-import javax.swing.ImageIcon;
+import javax.swing.JList;
 import javax.swing.JTable;
+import javax.swing.ListCellRenderer;
 import javax.swing.table.DefaultTableCellRenderer;
-
-import com.gitblit.models.RepositoryModel;
 
 /**
  * Repository name cell renderer. This renderer shows the group name in a gray
@@ -31,30 +30,19 @@
  * @author James Moger
  * 
  */
-public class NameRenderer extends DefaultTableCellRenderer {
+public class NameRenderer extends DefaultTableCellRenderer implements ListCellRenderer {
 
 	private static final long serialVersionUID = 1L;
 
-	final String groupSpan;
+	private static final Color CORNFLOWER = new Color(0x00, 0x69, 0xD6);
 
-	private final boolean displayIcon;
-
-	private final ImageIcon blankIcon;
-
-	private final ImageIcon subscribedIcon;
+	private final String groupSpan;
 
 	public NameRenderer() {
-		this(false);
+		this(Color.gray, CORNFLOWER);
 	}
 
-	public NameRenderer(boolean showIcon) {
-		this(Color.gray, new Color(0x00, 0x69, 0xD6), showIcon);
-	}
-
-	private NameRenderer(Color group, Color repo, boolean showIcon) {
-		blankIcon = new ImageIcon(getClass().getResource("/blank.png"));
-		subscribedIcon = new ImageIcon(getClass().getResource("/bullet_feed.png"));
-		displayIcon = showIcon;
+	private NameRenderer(Color group, Color repo) {
 		groupSpan = "<span style='color:" + getHexColor(group) + "'>";
 		setForeground(repo);
 	}
@@ -71,27 +59,33 @@
 	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
 			boolean hasFocus, int row, int column) {
 		super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
-		if (value instanceof RepositoryModel) {
-			RepositoryModel model = (RepositoryModel) value;
-			String name = value.toString();
-			int lastSlash = name.lastIndexOf('/');
-			if (!isSelected && lastSlash > -1) {
-				String group = name.substring(0, lastSlash + 1);
-				String repo = name.substring(lastSlash + 1);
-				setText("<html><body>" + groupSpan + group + "</span>" + repo);
-			} else {
-				this.setText(name);
-			}
-			if (displayIcon) {
-				if (model.subscribed) {
-					setIcon(subscribedIcon);
-				} else {
-					setIcon(blankIcon);
-				}
-			}
+		setValue(value == null ? "" : value, isSelected);
+		return this;
+	}
+
+	@Override
+	public Component getListCellRendererComponent(JList list, Object value, int index,
+			boolean isSelected, boolean cellHasFocus) {
+		setValue(value == null ? "" : value, isSelected);
+		if (isSelected) {
+			setBackground(list.getSelectionBackground());
+			setForeground(list.getSelectionForeground());
 		} else {
-			this.setText(value.toString());
+			setBackground(list.getBackground());
+			setForeground(CORNFLOWER);
 		}
 		return this;
 	}
+
+	private void setValue(Object value, boolean isSelected) {
+		String name = value.toString();
+		int lastSlash = name.lastIndexOf('/');
+		if (!isSelected && lastSlash > -1) {
+			String group = name.substring(0, lastSlash + 1);
+			String repo = name.substring(lastSlash + 1);
+			setText("<html><body>" + groupSpan + group + "</span>" + repo);
+		} else {
+			this.setText(name);
+		}
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.1