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/Utils.java | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 46 insertions(+), 3 deletions(-) diff --git a/src/com/gitblit/client/Utils.java b/src/com/gitblit/client/Utils.java index 786eb9f..1e6ab2b 100644 --- a/src/com/gitblit/client/Utils.java +++ b/src/com/gitblit/client/Utils.java @@ -17,10 +17,13 @@ import java.awt.Color; import java.awt.Component; +import java.awt.Desktop; import java.awt.Dimension; import java.awt.Font; +import java.awt.Insets; import java.io.PrintWriter; import java.io.StringWriter; +import java.net.URI; import java.text.MessageFormat; import java.util.Date; @@ -37,14 +40,42 @@ public class Utils { - public static JTable newTable(TableModel model) { - JTable table = new JTable(model); + public final static int MARGIN = 5; + + public final static Insets INSETS = new Insets(MARGIN, MARGIN, MARGIN, MARGIN); + + public final static String TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm"; + + public final static String DATE_FORMAT = "yyyy-MM-dd"; + + public static JTable newTable(TableModel model, String datePattern) { + return newTable(model, datePattern, null); + } + + public static JTable newTable(TableModel model, String datePattern, final RowRenderer rowRenderer) { + JTable table; + if (rowRenderer == null) { + table = new JTable(model); + } else { + table = new JTable(model) { + + @Override + public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { + Component c = super.prepareRenderer(renderer, row, column); + boolean isSelected = isCellSelected(row, column); + rowRenderer.prepareRow(c, isSelected, row, column); + return c; + } + }; + } + table.setRowHeight(table.getFont().getSize() + 8); table.setCellSelectionEnabled(false); table.setRowSelectionAllowed(true); table.getTableHeader().setReorderingAllowed(false); table.setGridColor(new Color(0xd9d9d9)); table.setBackground(Color.white); - table.setDefaultRenderer(Date.class, new DateCellRenderer(null, Color.orange.darker())); + table.setDefaultRenderer(Date.class, + new DateCellRenderer(datePattern, Color.orange.darker())); return table; } @@ -127,4 +158,16 @@ // Set the width col.setPreferredWidth(width); } + + public static void browse(String url) { + try { + Desktop.getDesktop().browse(new URI(url)); + } catch (Exception x) { + showException(null, x); + } + } + + public static abstract class RowRenderer { + public abstract void prepareRow(Component c, boolean isSelected, int row, int column); + } } -- Gitblit v1.9.1