From df162cdbdfeb5fbf5500546c9783e1685be6980f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 04 Jan 2012 08:42:54 -0500
Subject: [PATCH] Federation pull_scripts request. Documentation.
---
src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java | 75 ++++++++++++++++++++++---------------
1 files changed, 44 insertions(+), 31 deletions(-)
diff --git a/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java b/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java
index 5ce356a..f6c0e4f 100644
--- a/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java
+++ b/src/com/gitblit/wicket/panels/PathBreadcrumbsPanel.java
@@ -1,39 +1,55 @@
+/*
+ * Copyright 2011 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.gitblit.wicket.panels;
import java.io.Serializable;
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;
import org.apache.wicket.markup.repeater.data.DataView;
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 {
private static final long serialVersionUID = 1L;
- private final String ROOT = "--ROOT--";
+ private static 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);
@@ -42,38 +58,35 @@
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;
+ String path = entry.path;
+ if (path.equals(ROOT)) {
+ path = null;
}
-
- item.add(new LinkPanel("pathLink", null, entry.name, TreePage.class, new PageParameters(parameters)));
- item.add(new Label("pathSeparator", entry.isLeaf ? "":"/"));
+ 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", "/"));
+ }
}
};
add(pathsView);
}
- private class BreadCrumb implements Serializable {
-
+ private static 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;
this.isLeaf = isLeaf;
- }
-
- String getPath() {
- if (path.equals(ROOT)) {
- return null;
- }
- return path;
}
}
}
\ No newline at end of file
--
Gitblit v1.9.1