From 30f9d25d77ccb5cd978d4cf8fa389ec819e90e95 Mon Sep 17 00:00:00 2001
From: Philip L. McMahon <philip.l.mcmahon@gmail.com>
Date: Fri, 27 Jan 2012 02:02:19 -0500
Subject: [PATCH] Correct update of HEAD symbolic reference when target is a tag.

---
 src/com/gitblit/wicket/panels/LinkPanel.java |   37 +++++++++++++++++++++++++++++++++++--
 1 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/src/com/gitblit/wicket/panels/LinkPanel.java b/src/com/gitblit/wicket/panels/LinkPanel.java
index 475a71e..16b8cd4 100644
--- a/src/com/gitblit/wicket/panels/LinkPanel.java
+++ b/src/com/gitblit/wicket/panels/LinkPanel.java
@@ -20,6 +20,7 @@
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
@@ -33,16 +34,26 @@
 
 	public LinkPanel(String wicketId, String linkCssClass, String label,
 			Class<? extends WebPage> clazz) {
-		this(wicketId, linkCssClass, new Model<String>(label), clazz, null);
+		this(wicketId, linkCssClass, new Model<String>(label), clazz, null, false);
 	}
 
 	public LinkPanel(String wicketId, String linkCssClass, String label,
 			Class<? extends WebPage> clazz, PageParameters parameters) {
-		this(wicketId, linkCssClass, new Model<String>(label), clazz, parameters);
+		this(wicketId, linkCssClass, new Model<String>(label), clazz, parameters, false);
+	}
+
+	public LinkPanel(String wicketId, String linkCssClass, String label,
+			Class<? extends WebPage> clazz, PageParameters parameters, boolean newWindow) {
+		this(wicketId, linkCssClass, new Model<String>(label), clazz, parameters, newWindow);
 	}
 
 	public LinkPanel(String wicketId, String linkCssClass, IModel<String> model,
 			Class<? extends WebPage> clazz, PageParameters parameters) {
+		this(wicketId, linkCssClass, model, clazz, parameters, false);
+	}
+
+	public LinkPanel(String wicketId, String linkCssClass, IModel<String> model,
+			Class<? extends WebPage> clazz, PageParameters parameters, boolean newWindow) {
 		super(wicketId);
 		this.labelModel = model;
 		Link<Void> link = null;
@@ -51,6 +62,28 @@
 		} else {
 			link = new BookmarkablePageLink<Void>("link", clazz, parameters);
 		}
+		if (newWindow) {
+			link.add(new SimpleAttributeModifier("target", "_blank"));
+		}
+		if (linkCssClass != null) {
+			link.add(new SimpleAttributeModifier("class", linkCssClass));
+		}
+		link.add(new Label("label", labelModel));
+		add(link);
+	}
+
+	public LinkPanel(String wicketId, String linkCssClass, String label, String href) {
+		this(wicketId, linkCssClass, label, href, false);
+	}
+
+	public LinkPanel(String wicketId, String linkCssClass, String label, String href,
+			boolean newWindow) {
+		super(wicketId);
+		this.labelModel = new Model<String>(label);
+		ExternalLink link = new ExternalLink("link", href);
+		if (newWindow) {
+			link.add(new SimpleAttributeModifier("target", "_blank"));
+		}
 		if (linkCssClass != null) {
 			link.add(new SimpleAttributeModifier("class", linkCssClass));
 		}

--
Gitblit v1.9.1