From cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Jan 2012 17:34:05 -0500
Subject: [PATCH] Fixed bug in receive hook for repositories in subfolders

---
 src/com/gitblit/client/DateCellRenderer.java |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/client/DateCellRenderer.java b/src/com/gitblit/client/DateCellRenderer.java
index 591926b..3d0ab15 100644
--- a/src/com/gitblit/client/DateCellRenderer.java
+++ b/src/com/gitblit/client/DateCellRenderer.java
@@ -15,29 +15,57 @@
  */
 package com.gitblit.client;
 
+import java.awt.Color;
 import java.awt.Component;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import javax.swing.JTable;
+import javax.swing.SwingConstants;
 import javax.swing.table.DefaultTableCellRenderer;
 
+import com.gitblit.utils.TimeUtils;
+
+/**
+ * Time ago cell renderer with real date tooltip.
+ * 
+ * @author James Moger
+ * 
+ */
 public class DateCellRenderer extends DefaultTableCellRenderer {
 
 	private static final long serialVersionUID = 1L;
 
 	private final String pattern;
 
-	public DateCellRenderer(String pattern) {
+	public DateCellRenderer(String pattern, Color foreground) {
 		this.pattern = (pattern == null ? "yyyy-MM-dd HH:mm" : pattern);
+		setForeground(foreground);
+		setHorizontalAlignment(SwingConstants.CENTER);
 	}
 
 	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 Date) {
-			String strDate = new SimpleDateFormat(pattern).format((Date) value);
-			this.setText(strDate);
+			Date date = (Date) value;
+			String title;
+			String dateString;
+			if (date.getTime() == 0) {
+				title = "--";
+				dateString = "never";
+			} else {
+				title = TimeUtils.timeAgo(date);
+				dateString = new SimpleDateFormat(pattern).format((Date) value);
+			}
+
+			if ((System.currentTimeMillis() - date.getTime()) > 10 * 24 * 60 * 60 * 1000L) {
+				String tmp = dateString;
+				dateString = title;
+				title = tmp;
+			}
+			this.setText(title);
+			this.setToolTipText(dateString);
 		}
 		return this;
 	}

--
Gitblit v1.9.1