From 27ae9095639bb228a1b7ff86a3ebe4264abf05be Mon Sep 17 00:00:00 2001
From: mschaefers <mschaefers@scoop-gmbh.de>
Date: Thu, 29 Nov 2012 12:33:09 -0500
Subject: [PATCH] feature: when using LdapUserService one can configure Gitblit to fetch all users from ldap that can possibly login. This allows to see newly generated LDAP users instantly in Gitblit. By now an LDAP user had to log in once to appear in GitBlit.

---
 src/com/gitblit/client/Utils.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/client/Utils.java b/src/com/gitblit/client/Utils.java
index 1f44c32..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;
 
@@ -36,19 +39,43 @@
 import com.gitblit.Constants.RpcRequest;
 
 public class Utils {
-	
+
+	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);
+		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(datePattern, Color.orange.darker()));
+		table.setDefaultRenderer(Date.class,
+				new DateCellRenderer(datePattern, Color.orange.darker()));
 		return table;
 	}
 
@@ -131,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