From d65f712ea3d8941f4b9145c0630c30c20af80d13 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 11 Nov 2011 17:22:21 -0500
Subject: [PATCH] Documentation. Add javadoc and source jars to the gbapi download.

---
 src/com/gitblit/client/RepositoriesPanel.java |   48 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/src/com/gitblit/client/RepositoriesPanel.java b/src/com/gitblit/client/RepositoriesPanel.java
index 1efc876..70ff6cf 100644
--- a/src/com/gitblit/client/RepositoriesPanel.java
+++ b/src/com/gitblit/client/RepositoriesPanel.java
@@ -26,7 +26,6 @@
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.io.IOException;
-import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -91,9 +90,8 @@
 		browseRepository.addActionListener(new ActionListener() {
 			public void actionPerformed(ActionEvent e) {
 				RepositoryModel model = getSelectedRepositories().get(0);
-				String u = MessageFormat.format("{0}/summary/{1}", gitblit.url,
-						StringUtils.encodeURL(model.name));
-				Utils.browse(u);
+				String url = gitblit.getURL("summary", model.name, null);
+				Utils.browse(url);
 			}
 		});
 
@@ -136,6 +134,24 @@
 			}
 		});
 
+		final JButton logRepository = new JButton(Translation.get("gb.log") + "...");
+		logRepository.setEnabled(false);
+		logRepository.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				RepositoryModel model = getSelectedRepositories().get(0);
+				showSearchDialog(false, model);
+			}
+		});
+
+		final JButton searchRepository = new JButton(Translation.get("gb.search") + "...");
+		searchRepository.setEnabled(false);
+		searchRepository.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				RepositoryModel model = getSelectedRepositories().get(0);
+				showSearchDialog(true, model);
+			}
+		});
+
 		SubscribedRepositoryRenderer nameRenderer = new SubscribedRepositoryRenderer(gitblit);
 		IndicatorsRenderer typeRenderer = new IndicatorsRenderer();
 
@@ -167,9 +183,19 @@
 				}
 				boolean singleSelection = table.getSelectedRowCount() == 1;
 				boolean selected = table.getSelectedRow() > -1;
-				browseRepository.setEnabled(singleSelection);
+				if (singleSelection) {
+					RepositoryModel repository = getSelectedRepositories().get(0);
+					browseRepository.setEnabled(repository.hasCommits);
+					logRepository.setEnabled(repository.hasCommits);
+					searchRepository.setEnabled(repository.hasCommits);
+					subscribeRepository.setEnabled(repository.hasCommits);
+				} else {
+					browseRepository.setEnabled(false);
+					logRepository.setEnabled(false);
+					searchRepository.setEnabled(false);
+					subscribeRepository.setEnabled(false);
+				}
 				delRepository.setEnabled(selected);
-				subscribeRepository.setEnabled(singleSelection);
 				if (selected) {
 					int viewRow = table.getSelectedRow();
 					int modelRow = table.convertRowIndexToModel(viewRow);
@@ -218,6 +244,8 @@
 		repositoryControls.add(editRepository);
 		repositoryControls.add(delRepository);
 		repositoryControls.add(subscribeRepository);
+		repositoryControls.add(logRepository);
+		repositoryControls.add(searchRepository);
 
 		setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
 		header = new HeaderPanel(Translation.get("gb.repositories"), "gitweb-favicon.png");
@@ -451,4 +479,12 @@
 		}
 	}
 
+	private void showSearchDialog(boolean isSearch, final RepositoryModel repository) {
+		final SearchDialog dialog = new SearchDialog(gitblit, isSearch);
+		if (repository != null) {
+			dialog.selectRepository(repository);
+		}
+		dialog.setLocationRelativeTo(this);
+		dialog.setVisible(true);
+	}
 }

--
Gitblit v1.9.1