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/Utils.java | 61 ++++++++++++++++++++++++++++-- 1 files changed, 56 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/client/Utils.java b/src/com/gitblit/client/Utils.java index c837579..538e6be 100644 --- a/src/com/gitblit/client/Utils.java +++ b/src/com/gitblit/client/Utils.java @@ -17,11 +17,20 @@ 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; import javax.swing.JOptionPane; +import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.JTextArea; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; @@ -31,20 +40,36 @@ public class Utils { - public static JTable newTable(TableModel 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) { JTable table = new JTable(model); 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); } @@ -54,9 +79,26 @@ 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) { - // TODO show the unexpected exception - t.printStackTrace(); + StringWriter writer = new StringWriter(); + t.printStackTrace(new PrintWriter(writer)); + String stacktrace = writer.toString(); + try { + writer.close(); + } catch (Throwable x) { + } + JTextArea textArea = new JTextArea(stacktrace); + textArea.setFont(new Font("monospaced", Font.PLAIN, 11)); + JScrollPane jsp = new JScrollPane(textArea); + jsp.setPreferredSize(new Dimension(800, 400)); + JOptionPane.showMessageDialog(c, jsp, Translation.get("gb.error"), + JOptionPane.ERROR_MESSAGE); } public static void packColumns(JTable table, int margin) { @@ -97,4 +139,13 @@ // 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); + } + } + } -- Gitblit v1.9.1