From 342a0566918d561b382b31ddd8a9696f363ca5e3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 23 Apr 2013 17:39:02 -0400
Subject: [PATCH] Improve Gerrit change ref rendering (issue-206)

---
 src/main/java/com/gitblit/client/BranchRenderer.java   |    5 +++++
 releases.moxie                                         |    1 +
 src/main/java/com/gitblit/wicket/panels/RefsPanel.java |    6 ++++++
 3 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/releases.moxie b/releases.moxie
index 5aedcac..c065435 100644
--- a/releases.moxie
+++ b/releases.moxie
@@ -26,6 +26,7 @@
 	 - Use standard ServletRequestWrapper instead of custom wrapper (issue 224)
 
 	changes:
+	 - Improve Gerrit change ref decoration in the refs panel (issue 206)
  	 - Disable Gson's pretty printing which has a huge performance gain
 	 - Properly set application/json content-type on api calls
 	 - Updated Polish translation
diff --git a/src/main/java/com/gitblit/client/BranchRenderer.java b/src/main/java/com/gitblit/client/BranchRenderer.java
index 9a303c3..5f12c42 100644
--- a/src/main/java/com/gitblit/client/BranchRenderer.java
+++ b/src/main/java/com/gitblit/client/BranchRenderer.java
@@ -37,6 +37,8 @@
 	private static final String R_HEADS = "refs/heads/";
 
 	private static final String R_REMOTES = "refs/remotes/";
+	
+	private static final String R_CHANGES = "refs/changes/";
 
 	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
 			boolean hasFocus, int row, int column) {
@@ -71,6 +73,9 @@
 		} else if (name.startsWith(R_REMOTES)) {
 			name = name.substring(R_REMOTES.length());
 			fg = Color.decode("#6C6CBF");
+		} else if (name.startsWith(R_CHANGES)) {
+			name = name.substring(R_CHANGES.length());
+			fg = Color.decode("#B0E0F0");
 		}
 		setForeground(fg);
 		super.setText(name);
diff --git a/src/main/java/com/gitblit/wicket/panels/RefsPanel.java b/src/main/java/com/gitblit/wicket/panels/RefsPanel.java
index 3ba22c0..c3807ac 100644
--- a/src/main/java/com/gitblit/wicket/panels/RefsPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/RefsPanel.java
@@ -41,6 +41,8 @@
 public class RefsPanel extends Panel {
 
 	private static final long serialVersionUID = 1L;
+	
+	private static final String R_CHANGES = "refs/changes/";
 
 	public RefsPanel(String id, final String repositoryName, RevCommit c,
 			Map<ObjectId, List<RefModel>> refs) {
@@ -108,6 +110,10 @@
 					// local head
 					linkClass = LogPage.class;
 					cssClass = "headRef";
+				} else if (name.startsWith(R_CHANGES)) {
+					// Gerrit change ref
+					name = name.substring(R_CHANGES.length());
+					cssClass = "otherRef";
 				} else if (name.startsWith(Constants.R_REMOTES)) {
 					// remote branch
 					linkClass = LogPage.class;

--
Gitblit v1.9.1