From eba89539a29deba954035056437279088c3e047b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 22 Oct 2012 16:52:48 -0400
Subject: [PATCH] Tweak permissions panel layout a bit

---
 src/com/gitblit/client/GitblitPanel.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/src/com/gitblit/client/GitblitPanel.java b/src/com/gitblit/client/GitblitPanel.java
index 6c65328..f14ce79 100644
--- a/src/com/gitblit/client/GitblitPanel.java
+++ b/src/com/gitblit/client/GitblitPanel.java
@@ -30,8 +30,7 @@
 import com.gitblit.models.FeedModel;
 
 /**
- * GitblitPanel performs the login, all business logic, and contains all widgets
- * to represent the state of a repository for the given account credentials.
+ * GitblitPanel is a container for the repository, users, settings, etc panels.
  * 
  * @author James Moger
  * 
@@ -51,6 +50,8 @@
 	private FeedsPanel feedsPanel;
 
 	private UsersPanel usersPanel;
+	
+	private TeamsPanel teamsPanel;
 
 	private SettingsPanel settingsPanel;
 
@@ -62,15 +63,16 @@
 
 		tabs = new JTabbedPane(JTabbedPane.BOTTOM);
 		tabs.addTab(Translation.get("gb.repositories"), createRepositoriesPanel());
-		tabs.addTab(Translation.get("gb.recentActivity"), createFeedsPanel());
+		tabs.addTab(Translation.get("gb.activity"), createFeedsPanel());
+		tabs.addTab(Translation.get("gb.teams"), createTeamsPanel());
 		tabs.addTab(Translation.get("gb.users"), createUsersPanel());
 		tabs.addTab(Translation.get("gb.settings"), createSettingsPanel());
 		tabs.addTab(Translation.get("gb.status"), createStatusPanel());
 		tabs.addChangeListener(new ChangeListener() {
 			public void stateChanged(ChangeEvent e) {
-				tabs.getSelectedComponent().requestFocus();				
+				tabs.getSelectedComponent().requestFocus();
 			}
-		});		
+		});
 
 		setLayout(new BorderLayout());
 		add(tabs, BorderLayout.CENTER);
@@ -90,6 +92,11 @@
 			protected void updateUsersTable() {
 				usersPanel.updateTable(false);
 			}
+			
+			@Override
+			protected void updateTeamsTable() {
+				teamsPanel.updateTable(false);
+			}
 
 		};
 		return repositoriesPanel;
@@ -108,9 +115,30 @@
 	}
 
 	private JPanel createUsersPanel() {
-		usersPanel = new UsersPanel(gitblit);
+		usersPanel = new UsersPanel(gitblit) {
+			
+			private static final long serialVersionUID = 1L;
+			
+			@Override
+			protected void updateTeamsTable() {
+				teamsPanel.updateTable(false);
+			}
+		};
 		return usersPanel;
 	}
+	
+	private JPanel createTeamsPanel() {
+		teamsPanel = new TeamsPanel(gitblit) {
+			
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void updateUsersTable() {
+				usersPanel.updateTable(false);
+			}
+		};
+		return teamsPanel;
+	}	
 
 	private JPanel createSettingsPanel() {
 		settingsPanel = new SettingsPanel(gitblit);
@@ -129,6 +157,19 @@
 		feedsPanel.updateTable(true);
 
 		if (gitblit.allowManagement()) {
+			if (gitblit.getProtocolVersion() >= 2) {
+				// refresh teams panel
+				teamsPanel.updateTable(false);
+			} else {
+				// remove teams panel
+				String teams = Translation.get("gb.teams");
+				for (int i = 0; i < tabs.getTabCount(); i++) {
+					if (teams.equals(tabs.getTitleAt(i))) {
+						tabs.removeTabAt(i);
+						break;
+					}
+				}
+			}
 			usersPanel.updateTable(false);
 		} else {
 			// user does not have administrator privileges
@@ -145,7 +186,7 @@
 			settingsPanel.updateTable(true);
 			statusPanel.updateTable(false);
 		} else {
-			// remove the settings tab
+			// remove the settings and status tab
 			String[] titles = { Translation.get("gb.settings"), Translation.get("gb.status") };
 			for (String title : titles) {
 				for (int i = 0; i < tabs.getTabCount(); i++) {

--
Gitblit v1.9.1