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/RefsPanel.java | 51 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/com/gitblit/wicket/panels/RefsPanel.java b/src/com/gitblit/wicket/panels/RefsPanel.java index 8cf137b..b467642 100644 --- a/src/com/gitblit/wicket/panels/RefsPanel.java +++ b/src/com/gitblit/wicket/panels/RefsPanel.java @@ -22,6 +22,7 @@ import java.util.Map; import org.apache.wicket.Component; +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; @@ -54,35 +55,68 @@ Collections.sort(refs, new Comparator<RefModel>() { @Override public int compare(RefModel o1, RefModel o2) { + // sort remote heads last, otherwise sort by name + // this is so we can insert a break on the refs panel + // [head][branch][branch][tag][tag] + // [remote][remote][remote] + boolean remote1 = o1.displayName.startsWith(Constants.R_REMOTES); + boolean remote2 = o2.displayName.startsWith(Constants.R_REMOTES); + if (remote1 && remote2) { + // both are remote heads, sort by name + return o1.displayName.compareTo(o2.displayName); + } + if (remote1) { + // o1 is remote, o2 comes first + return 1; + } + if (remote2) { + // remote is o2, o1 comes first + return -1; + } + // standard sort return o1.displayName.compareTo(o2.displayName); } }); - + + // count remote and determine if we should insert a break + int remoteCount = 0; + for (RefModel ref : refs) { + if (ref.displayName.startsWith(Constants.R_REMOTES)) { + remoteCount++; + } + } + final boolean shouldBreak = remoteCount < refs.size(); + ListDataProvider<RefModel> refsDp = new ListDataProvider<RefModel>(refs); DataView<RefModel> refsView = new DataView<RefModel>("ref", refsDp) { private static final long serialVersionUID = 1L; + private boolean alreadyInsertedBreak = !shouldBreak; public void populateItem(final Item<RefModel> item) { RefModel entry = item.getModelObject(); String name = entry.displayName; String objectid = entry.getReferencedObjectId().getName(); - + boolean breakLine = false; Class<? extends RepositoryPage> linkClass = CommitPage.class; String cssClass = ""; if (name.startsWith(Constants.R_HEADS)) { - // local head + // local branch linkClass = LogPage.class; name = name.substring(Constants.R_HEADS.length()); - cssClass = "headRef"; + cssClass = "localBranch"; } else if (name.equals(Constants.HEAD)) { // local head linkClass = LogPage.class; cssClass = "headRef"; } else if (name.startsWith(Constants.R_REMOTES)) { - // remote head + // remote branch linkClass = LogPage.class; name = name.substring(Constants.R_REMOTES.length()); - cssClass = "remoteRef"; + cssClass = "remoteBranch"; + if (!alreadyInsertedBreak) { + breakLine = true; + alreadyInsertedBreak = true; + } } else if (name.startsWith(Constants.R_TAGS)) { // tag if (entry.isAnnotatedTag()) { @@ -104,6 +138,11 @@ WicketUtils.setCssClass(c, cssClass); WicketUtils.setHtmlTooltip(c, name); item.add(c); + Label lb = new Label("lineBreak", "<br/>"); + lb.setVisible(breakLine); + lb.setRenderBodyOnly(true); + item.add(lb.setEscapeModelStrings(false)); + item.setRenderBodyOnly(true); } }; add(refsView); -- Gitblit v1.9.1