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/Utils.java | 64 ++++++++++++++++++++++++++++++-- 1 files changed, 60 insertions(+), 4 deletions(-) diff --git a/src/com/gitblit/client/Utils.java b/src/com/gitblit/client/Utils.java index ae81e7f..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,20 +40,55 @@ 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; + } + + public static void explainNotAllowed(Component c, RpcRequest request) { + String msg = MessageFormat.format("The Gitblit server does not allow the request \"{0}\".", + request.name()); + JOptionPane.showMessageDialog(c, msg, "Not Allowed", JOptionPane.ERROR_MESSAGE); } public static void explainForbidden(Component c, RpcRequest request) { String msg = MessageFormat.format( - "The request \"{0}\" has been forbidden by the Gitblit server.", request.name()); + "The request \"{0}\" has been forbidden for the account by the Gitblit server.", + request.name()); JOptionPane.showMessageDialog(c, msg, "Forbidden", JOptionPane.ERROR_MESSAGE); } @@ -58,6 +96,12 @@ String msg = MessageFormat.format( "This account is not authorized to execute the request \"{0}\".", request.name()); JOptionPane.showMessageDialog(c, msg, "Unauthorized", JOptionPane.ERROR_MESSAGE); + } + + public static void explainUnknown(Component c, RpcRequest request) { + String msg = MessageFormat.format( + "The request \"{0}\" is not recognized by the Gitblit server.", request.name()); + JOptionPane.showMessageDialog(c, msg, "Unknown Request", JOptionPane.ERROR_MESSAGE); } public static void showException(Component c, Throwable t) { @@ -114,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