From 73f1adb2e84b8b9cd4045bcdd7d9afa72d3875b5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 27 Nov 2012 17:13:03 -0500 Subject: [PATCH] Added short commit id column to log and history tables (issue 168) --- src/com/gitblit/client/DateCellRenderer.java | 40 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/com/gitblit/client/DateCellRenderer.java b/src/com/gitblit/client/DateCellRenderer.java index 591926b..751c7db 100644 --- a/src/com/gitblit/client/DateCellRenderer.java +++ b/src/com/gitblit/client/DateCellRenderer.java @@ -15,29 +15,61 @@ */ 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; +/** + * 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 { + if (date.getTime() - System.currentTimeMillis() > 0) { + // future + title = Translation.getTimeUtils().inFuture(date); + } else { + // past + title = Translation.getTimeUtils().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