From 5ae0b71e1e6e73e4bacf321a7d5be49fcdf4ad97 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 20 Oct 2011 08:01:54 -0400
Subject: [PATCH] Properly handle anonymous registrations.

---
 src/com/gitblit/client/EditRepositoryDialog.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index 93fcced..9fc8e5c 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -24,6 +24,7 @@
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -42,7 +43,10 @@
 import javax.swing.JList;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.JRootPane;
+import javax.swing.JTabbedPane;
 import javax.swing.JTextField;
+import javax.swing.KeyStroke;
 import javax.swing.ListCellRenderer;
 
 import com.gitblit.Constants.AccessRestrictionType;
@@ -104,14 +108,31 @@
 		this.isCreate = false;
 		initialize(aRepository);
 		setModal(true);
+		setResizable(false);
 		setTitle(Translation.get("gb.edit") + ": " + aRepository.name);
 		setIconImage(new ImageIcon(getClass().getResource("/gitblt-favicon.png")).getImage());
+	}
+	
+	@Override
+	protected JRootPane createRootPane() {
+		KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
+		JRootPane rootPane = new JRootPane();
+		rootPane.registerKeyboardAction(new ActionListener() {
+			public void actionPerformed(ActionEvent actionEvent) {
+				setVisible(false);
+			}
+		}, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
+		return rootPane;
 	}
 
 	private void initialize(RepositoryModel anRepository) {
 		nameField = new JTextField(anRepository.name == null ? "" : anRepository.name, 35);
 		descriptionField = new JTextField(anRepository.description == null ? ""
 				: anRepository.description, 35);
+
+		JTextField originField = new JTextField(anRepository.origin == null ? ""
+				: anRepository.origin, 40);
+		originField.setEditable(false);
 
 		ownerField = new JComboBox();
 
@@ -142,6 +163,7 @@
 		JPanel fieldsPanel = new JPanel(new GridLayout(0, 1));
 		fieldsPanel.add(newFieldPanel(Translation.get("gb.name"), nameField));
 		fieldsPanel.add(newFieldPanel(Translation.get("gb.description"), descriptionField));
+		fieldsPanel.add(newFieldPanel(Translation.get("gb.origin"), originField));
 		fieldsPanel.add(newFieldPanel(Translation.get("gb.owner"), ownerField));
 
 		fieldsPanel.add(newFieldPanel(Translation.get("gb.enableTickets"), useTickets));
@@ -166,10 +188,10 @@
 		federationPanel.add(newFieldPanel(Translation.get("gb.federationSets"), setsPalette),
 				BorderLayout.CENTER);
 
-		JPanel panel = new JPanel(new BorderLayout(5, 5));
-		panel.add(fieldsPanel, BorderLayout.NORTH);
-		panel.add(accessPanel, BorderLayout.CENTER);
-		panel.add(federationPanel, BorderLayout.SOUTH);
+		JTabbedPane panel = new JTabbedPane(JTabbedPane.TOP);
+		panel.addTab(Translation.get("gb.general"), fieldsPanel);
+		panel.addTab(Translation.get("gb.accessRestriction"), accessPanel);
+		panel.addTab(Translation.get("gb.federation"), federationPanel);
 
 		JButton createButton = new JButton(Translation.get("gb.save"));
 		createButton.addActionListener(new ActionListener() {
@@ -209,7 +231,6 @@
 		getContentPane().setLayout(new BorderLayout(5, 5));
 		getContentPane().add(centerPanel, BorderLayout.CENTER);
 		pack();
-		setLocationRelativeTo(null);
 	}
 
 	private JPanel newFieldPanel(String label, JComponent comp) {

--
Gitblit v1.9.1