James Moger
2012-01-05 cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef
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;
   }