From dfc4ece4083bbbb98f55291d05e7d2b1513464b7 Mon Sep 17 00:00:00 2001
From: Thomas Pummer <dev@nullpointer.at>
Date: Fri, 22 Feb 2013 11:10:11 -0500
Subject: [PATCH] the display-name in web.xml now shows the actual version of Gitblit

---
 src/com/gitblit/client/RegistrantPermissionsPanel.java |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/client/RegistrantPermissionsPanel.java b/src/com/gitblit/client/RegistrantPermissionsPanel.java
index 8ae23e9..98dbfb7 100644
--- a/src/com/gitblit/client/RegistrantPermissionsPanel.java
+++ b/src/com/gitblit/client/RegistrantPermissionsPanel.java
@@ -16,11 +16,14 @@
 package com.gitblit.client;
 
 import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import javax.swing.DefaultCellEditor;
@@ -36,6 +39,7 @@
 import com.gitblit.Constants.AccessPermission;
 import com.gitblit.Constants.PermissionType;
 import com.gitblit.Constants.RegistrantType;
+import com.gitblit.client.Utils.RowRenderer;
 import com.gitblit.models.RegistrantAccessPermission;
 import com.gitblit.utils.StringUtils;
 
@@ -60,7 +64,23 @@
 	public RegistrantPermissionsPanel(final RegistrantType registrantType) {
 		super(new BorderLayout(5, 5));
 		tableModel = new RegistrantPermissionsTableModel();
-		permissionsTable = Utils.newTable(tableModel, Utils.DATE_FORMAT);
+		permissionsTable = Utils.newTable(tableModel, Utils.DATE_FORMAT, new RowRenderer() {
+			Color clear = new Color(0, 0, 0, 0);
+			Color iceGray = new Color(0xf0, 0xf0, 0xf0);
+			
+			@Override
+			public void prepareRow(Component c, boolean isSelected, int row, int column) {
+				if (isSelected) {
+					c.setBackground(permissionsTable.getSelectionBackground());
+				} else {
+					if (tableModel.permissions.get(row).mutable) {
+						c.setBackground(clear);
+					} else {
+						c.setBackground(iceGray);
+					}
+				}
+			}
+		});
 		permissionsTable.setModel(tableModel);
 		permissionsTable.setPreferredScrollableViewportSize(new Dimension(400, 150));
 		JScrollPane jsp = new JScrollPane(permissionsTable);
@@ -91,11 +111,14 @@
 				rp.permission = (AccessPermission) permissionSelector.getSelectedItem();
 				if (StringUtils.findInvalidCharacter(rp.registrant) != null) {
 					rp.permissionType = PermissionType.REGEX;
+					rp.source = rp.registrant;
 				} else {
 					rp.permissionType = PermissionType.EXPLICIT;
 				}
 
 				tableModel.permissions.add(rp);
+				// resort permissions after insert to convey idea of eval order
+				Collections.sort(tableModel.permissions);
 				
 				registrantModel.removeElement(rp.registrant);
 				registrantSelector.setSelectedIndex(-1);
@@ -133,7 +156,7 @@
 			permissions = new ArrayList<RegistrantAccessPermission>();
 		}
 		for (RegistrantAccessPermission rp : permissions) {
-			if (rp.isEditable) {
+			if (rp.mutable) {
 				// only remove editable duplicates
 				// this allows for specifying an explicit permission
 				filtered.remove(rp.registrant);
@@ -198,8 +221,13 @@
 				setToolTipText(MessageFormat.format(Translation.get("gb.regexPermission"), ap.source));
 				break;
 			default:
-				setText("");
-				setToolTipText(null);
+				if (ap.isMissing()) {
+					setText(Translation.get("gb.missing"));
+					setToolTipText(Translation.get("gb.missingPermission"));
+				} else {
+					setText("");
+					setToolTipText(null);
+				}
 				break;
 			}
 		}

--
Gitblit v1.9.1