From 9af47c10c6a268877c1d232c8d71ee6df4f8a7ab Mon Sep 17 00:00:00 2001
From: Jeroen Baten <jeroen@jeroenbaten.nl>
Date: Fri, 04 Jan 2013 05:18:37 -0500
Subject: [PATCH] Dutch translation before spellcheck

---
 src/com/gitblit/wicket/panels/HistoryPanel.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 47 insertions(+), 6 deletions(-)

diff --git a/src/com/gitblit/wicket/panels/HistoryPanel.java b/src/com/gitblit/wicket/panels/HistoryPanel.java
index 14aed91..0f58603 100644
--- a/src/com/gitblit/wicket/panels/HistoryPanel.java
+++ b/src/com/gitblit/wicket/panels/HistoryPanel.java
@@ -15,6 +15,7 @@
  */
 package com.gitblit.wicket.panels;
 
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -26,9 +27,12 @@
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
 import org.apache.wicket.model.StringResourceModel;
+import org.eclipse.jgit.diff.DiffEntry.ChangeType;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.treewalk.TreeWalk;
+import org.eclipse.jgit.treewalk.filter.PathFilterGroup;
 
 import com.gitblit.Constants;
 import com.gitblit.GitBlit;
@@ -43,8 +47,8 @@
 import com.gitblit.wicket.pages.BlobPage;
 import com.gitblit.wicket.pages.CommitDiffPage;
 import com.gitblit.wicket.pages.CommitPage;
-import com.gitblit.wicket.pages.HistoryPage;
 import com.gitblit.wicket.pages.GitSearchPage;
+import com.gitblit.wicket.pages.HistoryPage;
 import com.gitblit.wicket.pages.TreePage;
 
 public class HistoryPanel extends BasePanel {
@@ -72,6 +76,28 @@
 				break;
 			}
 		}
+		if (matchingPath == null) {
+			// path not in commit
+			// manually locate path in tree
+			TreeWalk tw = new TreeWalk(r);
+			tw.reset();
+			tw.setRecursive(true);
+			try {
+				tw.addTree(commit.getTree());
+				tw.setFilter(PathFilterGroup.createFromStrings(Collections.singleton(path)));
+				while (tw.next()) {
+					if (tw.getPathString().equals(path)) {
+						matchingPath = new PathChangeModel(tw.getPathString(), tw.getPathString(), 0, tw
+							.getRawMode(0), tw.getObjectId(0).getName(), commit.getId().getName(),
+							ChangeType.MODIFY);
+					}
+				}
+			} catch (Exception e) {
+			} finally {
+				tw.release();
+			}
+		}
+		
 		final boolean isTree = matchingPath == null ? true : matchingPath.isTree();
 
 		final Map<ObjectId, List<RefModel>> allRefs = JGitUtils.getAllRefs(r, showRemoteRefs);
@@ -94,6 +120,7 @@
 		// breadcrumbs
 		add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, path, objectId));
 
+		final int hashLen = GitBlit.getInteger(Keys.web.shortCommitIdLength, 6);
 		ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits);
 		DataView<RevCommit> logView = new DataView<RevCommit>("commit", dp) {
 			private static final long serialVersionUID = 1L;
@@ -139,16 +166,30 @@
 				item.add(new RefsPanel("commitRefs", repositoryName, entry, allRefs));
 
 				if (isTree) {
+					// tree
+					item.add(new Label("hashLabel", getString("gb.tree") + "@"));
+					LinkPanel commitHash = new LinkPanel("hashLink", null, entry.getName().substring(0, hashLen),
+							TreePage.class, WicketUtils.newObjectParameter(
+									repositoryName, entry.getName()));
+					WicketUtils.setCssClass(commitHash, "shortsha1");
+					WicketUtils.setHtmlTooltip(commitHash, entry.getName());					
+					item.add(commitHash);
+					
 					Fragment links = new Fragment("historyLinks", "treeLinks", this);
-					links.add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils
-							.newObjectParameter(repositoryName, entry.getName())));
 					links.add(new BookmarkablePageLink<Void>("commitdiff", CommitDiffPage.class,
 							WicketUtils.newObjectParameter(repositoryName, entry.getName())));
 					item.add(links);
-				} else {
+				} else {					
+					// commit
+					item.add(new Label("hashLabel", getString("gb.blob") + "@"));
+					LinkPanel commitHash = new LinkPanel("hashLink", null, entry.getName().substring(0, hashLen),
+							BlobPage.class, WicketUtils.newPathParameter(
+									repositoryName, entry.getName(), path));
+					WicketUtils.setCssClass(commitHash, "sha1");
+					WicketUtils.setHtmlTooltip(commitHash, entry.getName());
+					item.add(commitHash);
+					
 					Fragment links = new Fragment("historyLinks", "blobLinks", this);
-					links.add(new BookmarkablePageLink<Void>("view", BlobPage.class, WicketUtils
-							.newPathParameter(repositoryName, entry.getName(), path)));
 					links.add(new BookmarkablePageLink<Void>("commitdiff", CommitDiffPage.class,
 							WicketUtils.newObjectParameter(repositoryName, entry.getName())));
 					links.add(new BookmarkablePageLink<Void>("difftocurrent", BlobDiffPage.class,

--
Gitblit v1.9.1