From 00afd77a2182ece3d9522d41b86b4ddd7e132288 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 19 May 2011 17:13:50 -0400
Subject: [PATCH] Owner editing. Frozen status. Grouped repositories. Documentation.

---
 src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java |   41 +++++++++++++++++++++--------------------
 1 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java b/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java
index 5ce356a..974fb9a 100644
--- a/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java
+++ b/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java
@@ -4,7 +4,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.markup.repeater.Item;
@@ -12,8 +11,8 @@
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
 
 import com.gitblit.wicket.LinkPanel;
+import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.pages.TreePage;
-
 
 public class PathBreadcrumbsPanel extends Panel {
 
@@ -21,19 +20,21 @@
 
 	private final String ROOT = "--ROOT--";
 
-	public PathBreadcrumbsPanel(String id, final String repositoryName, String pathName, final String commitId) {
+	public PathBreadcrumbsPanel(String id, final String repositoryName, String pathName, final String objectId) {
 		super(id);
 		List<BreadCrumb> crumbs = new ArrayList<BreadCrumb>();
 		crumbs.add(new BreadCrumb("[" + repositoryName + "]", ROOT, false));
 
-		String[] paths = pathName.split("/");
-		StringBuilder sb = new StringBuilder();
-		
-		for (int i = 0; i < paths.length; i++) {
-			String path = paths[i];
-			sb.append(path);
-			crumbs.add(new BreadCrumb(path, sb.toString(), (i == (paths.length - 1))));
-			sb.append("/");
+		if (pathName != null && pathName.length() > 0) {
+			String[] paths = pathName.split("/");
+			StringBuilder sb = new StringBuilder();
+
+			for (int i = 0; i < paths.length; i++) {
+				String path = paths[i];
+				sb.append(path);
+				crumbs.add(new BreadCrumb(path, sb.toString(), (i == (paths.length - 1))));
+				sb.append("/");
+			}
 		}
 
 		ListDataProvider<BreadCrumb> crumbsDp = new ListDataProvider<BreadCrumb>(crumbs);
@@ -43,26 +44,26 @@
 			public void populateItem(final Item<BreadCrumb> item) {
 				final BreadCrumb entry = item.getModelObject();
 				String path = entry.getPath();
-				String parameters = "p=" + repositoryName + ",h=" + commitId;
-				if (path != null) {
-					parameters += ",f=" + path;
+				if (entry.isLeaf) {
+					item.add(new Label("pathLink", entry.name));
+					item.add(new Label("pathSeparator", "").setVisible(false));
+				} else {
+					item.add(new LinkPanel("pathLink", null, entry.name, TreePage.class, WicketUtils.newPathParameter(repositoryName, objectId, path)));
+					item.add(new Label("pathSeparator", "/"));
 				}
-
-				item.add(new LinkPanel("pathLink", null, entry.name, TreePage.class, new PageParameters(parameters)));
-				item.add(new Label("pathSeparator", entry.isLeaf ? "":"/"));
 			}
 		};
 		add(pathsView);
 	}
 
 	private class BreadCrumb implements Serializable {
-		
+
 		private static final long serialVersionUID = 1L;
-		
+
 		final String name;
 		final String path;
 		final boolean isLeaf;
-		
+
 		BreadCrumb(String name, String path, boolean isLeaf) {
 			this.name = name;
 			this.path = path;

--
Gitblit v1.9.1