From 8427e93f25fb79bc39dbd31ce13fab637e7cfdff Mon Sep 17 00:00:00 2001
From: Jeroen Baten <jeroen@jeroenbaten.nl>
Date: Fri, 04 Jan 2013 11:34:24 -0500
Subject: [PATCH] Completed Dutch translation
---
src/com/gitblit/client/RegistrantPermissionsPanel.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 102 insertions(+), 7 deletions(-)
diff --git a/src/com/gitblit/client/RegistrantPermissionsPanel.java b/src/com/gitblit/client/RegistrantPermissionsPanel.java
index fa7ff5a..98dbfb7 100644
--- a/src/com/gitblit/client/RegistrantPermissionsPanel.java
+++ b/src/com/gitblit/client/RegistrantPermissionsPanel.java
@@ -16,10 +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;
@@ -29,9 +33,15 @@
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.SwingConstants;
+import javax.swing.table.DefaultTableCellRenderer;
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;
public class RegistrantPermissionsPanel extends JPanel {
@@ -51,16 +61,37 @@
private JPanel addPanel;
- public RegistrantPermissionsPanel() {
+ public RegistrantPermissionsPanel(final RegistrantType registrantType) {
super(new BorderLayout(5, 5));
tableModel = new RegistrantPermissionsTableModel();
- permissionsTable = new JTable(tableModel);
+ 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);
add(jsp, BorderLayout.CENTER);
+ permissionsTable.getColumnModel().getColumn(RegistrantPermissionsTableModel.Columns.Registrant.ordinal())
+ .setCellRenderer(new NameRenderer());
+ permissionsTable.getColumnModel().getColumn(RegistrantPermissionsTableModel.Columns.Type.ordinal())
+ .setCellRenderer(new PermissionTypeRenderer());
permissionsTable.getColumnModel().getColumn(RegistrantPermissionsTableModel.Columns.Permission.ordinal())
- .setCellEditor(new AccessPermissionEditor());
+ .setCellEditor(new AccessPermissionEditor());
registrantModel = new DefaultComboBoxModel();
registrantSelector = new JComboBox(registrantModel);
@@ -75,10 +106,19 @@
return;
}
- RegistrantAccessPermission rp = new RegistrantAccessPermission();
+ RegistrantAccessPermission rp = new RegistrantAccessPermission(registrantType);
rp.registrant = registrantSelector.getSelectedItem().toString();
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);
@@ -99,7 +139,10 @@
@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
- permissionsTable.setEnabled(false);
+ permissionsTable.setEnabled(enabled);
+ registrantSelector.setEnabled(enabled);
+ permissionSelector.setEnabled(enabled);
+ addButton.setEnabled(enabled);
}
public void setObjects(List<String> registrants, List<RegistrantAccessPermission> permissions) {
@@ -113,7 +156,17 @@
permissions = new ArrayList<RegistrantAccessPermission>();
}
for (RegistrantAccessPermission rp : permissions) {
- filtered.remove(rp.registrant);
+ if (rp.mutable) {
+ // only remove editable duplicates
+ // this allows for specifying an explicit permission
+ filtered.remove(rp.registrant);
+ } else if (rp.isAdmin()) {
+ // administrators can not have their permission changed
+ filtered.remove(rp.registrant);
+ } else if (rp.isOwner()) {
+ // owners can not have their permission changed
+ filtered.remove(rp.registrant);
+ }
}
for (String registrant : filtered) {
registrantModel.addElement(registrant);
@@ -134,7 +187,49 @@
private static final long serialVersionUID = 1L;
public AccessPermissionEditor() {
- super(new JComboBox(AccessPermission.values()));
+ super(new JComboBox(AccessPermission.values()));
}
}
+
+ private class PermissionTypeRenderer extends DefaultTableCellRenderer {
+
+ private static final long serialVersionUID = 1L;
+
+ public PermissionTypeRenderer() {
+ super();
+ setHorizontalAlignment(SwingConstants.CENTER);
+ }
+
+ @Override
+ protected void setValue(Object value) {
+ RegistrantAccessPermission ap = (RegistrantAccessPermission) value;
+ switch (ap.permissionType) {
+ case ADMINISTRATOR:
+ setText(ap.source == null ? Translation.get("gb.administrator") : ap.source);
+ setToolTipText(Translation.get("gb.administratorPermission"));
+ break;
+ case OWNER:
+ setText(Translation.get("gb.owner"));
+ setToolTipText(Translation.get("gb.ownerPermission"));
+ break;
+ case TEAM:
+ setText(ap.source == null ? Translation.get("gb.team") : ap.source);
+ setToolTipText(MessageFormat.format(Translation.get("gb.teamPermission"), ap.source));
+ break;
+ case REGEX:
+ setText("regex");
+ setToolTipText(MessageFormat.format(Translation.get("gb.regexPermission"), ap.source));
+ break;
+ default:
+ if (ap.isMissing()) {
+ setText(Translation.get("gb.missing"));
+ setToolTipText(Translation.get("gb.missingPermission"));
+ } else {
+ setText("");
+ setToolTipText(null);
+ }
+ break;
+ }
+ }
+ }
}
--
Gitblit v1.9.1