From a70b43cde76b4baab82b4ce0d9ff82883f80b8df Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 26 Oct 2011 17:54:07 -0400
Subject: [PATCH] Added status icon

---
 src/com/gitblit/client/GitblitPanel.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/client/GitblitPanel.java b/src/com/gitblit/client/GitblitPanel.java
index 6772c3d..9eb896b 100644
--- a/src/com/gitblit/client/GitblitPanel.java
+++ b/src/com/gitblit/client/GitblitPanel.java
@@ -118,6 +118,8 @@
 
 	private HeaderPanel settingsHeader;
 
+	private StatusPanel statusPanel;
+
 	public GitblitPanel(GitblitRegistration reg) {
 		this(reg.url, reg.account, reg.password);
 	}
@@ -129,6 +131,7 @@
 		tabs.addTab(Translation.get("gb.repositories"), createRepositoriesPanel());
 		tabs.addTab(Translation.get("gb.users"), createUsersPanel());
 		tabs.addTab(Translation.get("gb.settings"), createSettingsPanel());
+		tabs.addTab(Translation.get("gb.status"), createStatusPanel());
 
 		setLayout(new BorderLayout());
 		add(tabs, BorderLayout.CENTER);
@@ -482,11 +485,29 @@
 		return settingsPanel;
 	}
 
+	private JPanel createStatusPanel() {
+		JButton refreshStatus = new JButton(Translation.get("gb.refresh"));
+		refreshStatus.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				refreshStatus();
+			}
+		});
+
+		JPanel controls = new JPanel();
+		controls.add(refreshStatus);
+
+		JPanel panel = new JPanel(new BorderLayout());
+		statusPanel = new StatusPanel();
+		panel.add(statusPanel, BorderLayout.CENTER);
+		panel.add(controls, BorderLayout.SOUTH);
+		return panel;
+	}
+
 	public void login() throws IOException {
 		gitblit.login();
 
 		updateRepositoriesTable();
-		Utils.packColumns(repositoriesTable, 2);
+		Utils.packColumns(repositoriesTable, 5);
 
 		if (gitblit.allowManagement()) {
 			updateUsersTable();
@@ -505,6 +526,8 @@
 
 		if (gitblit.allowAdministration()) {
 			updateSettingsTable();
+			updateStatusPanel();
+			Utils.packColumns(settingsTable, 5);
 		} else {
 			// remove the settings tab
 			String settingsTitle = Translation.get("gb.settings");
@@ -536,6 +559,10 @@
 		settingsModel.setSettings(gitblit.getSettings());
 		settingsModel.fireTableDataChanged();
 		settingsHeader.setText(Translation.get("gb.settings"));
+	}
+
+	private void updateStatusPanel() {
+		statusPanel.setStatus(gitblit.getStatus());
 	}
 
 	private void filterRepositories(final String fragment) {
@@ -656,6 +683,7 @@
 		dialog.setLocationRelativeTo(GitblitPanel.this);
 		dialog.setUsers(null, gitblit.getUsernames(), null);
 		dialog.setRepositories(gitblit.getRepositories());
+		dialog.setFederationSets(gitblit.getFederationSets(), null);
 		dialog.setVisible(true);
 		final RepositoryModel newRepository = dialog.getRepository();
 		final List<String> permittedUsers = dialog.getPermittedUsers();
@@ -933,6 +961,22 @@
 		worker.execute();
 	}
 
+	protected void refreshStatus() {
+		GitblitWorker worker = new GitblitWorker(GitblitPanel.this, RpcRequest.LIST_STATUS) {
+			@Override
+			protected Boolean doRequest() throws IOException {
+				gitblit.refreshStatus();
+				return true;
+			}
+
+			@Override
+			protected void onSuccess() {
+				updateStatusPanel();
+			}
+		};
+		worker.execute();
+	}
+
 	protected void editSetting(final SettingModel settingModel) {
 		final JTextField textField = new JTextField(settingModel.currentValue);
 		JPanel editPanel = new JPanel(new GridLayout(0, 1));
@@ -948,8 +992,8 @@
 		if (settingModel.currentValue.equals(settingModel.defaultValue)) {
 			options = new String[] { Translation.get("gb.cancel"), Translation.get("gb.save") };
 		} else {
-			options = new String[] { Translation.get("gb.cancel"), Translation.get("gb.setDefault"),
-					Translation.get("gb.save") };
+			options = new String[] { Translation.get("gb.cancel"),
+					Translation.get("gb.setDefault"), Translation.get("gb.save") };
 		}
 		String defaultOption = options[0];
 		int selection = JOptionPane.showOptionDialog(GitblitPanel.this, settingPanel,

--
Gitblit v1.9.1