James Moger
2012-10-13 c658df9e87d65b08d5482cf04489cb0532ff83dd
src/com/gitblit/wicket/panels/LinkPanel.java
@@ -20,10 +20,14 @@
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;
import org.apache.wicket.model.Model;
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.WicketUtils;
public class LinkPanel extends Panel {
@@ -33,16 +37,31 @@
   public LinkPanel(String wicketId, String linkCssClass, String label,
         Class<? extends WebPage> clazz) {
      this(wicketId, linkCssClass, new Model<String>(label), clazz, null);
      this(wicketId, null, 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, null, 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, null, linkCssClass, new Model<String>(label), clazz, parameters, newWindow);
   }
   public LinkPanel(String wicketId, String bootstrapIcon, String linkCssClass, String label,
         Class<? extends WebPage> clazz, PageParameters parameters, boolean newWindow) {
      this(wicketId, bootstrapIcon, 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, null, linkCssClass, model, clazz, parameters, false);
   }
   public LinkPanel(String wicketId, String bootstrapIcon, String linkCssClass, IModel<String> model,
         Class<? extends WebPage> clazz, PageParameters parameters, boolean newWindow) {
      super(wicketId);
      this.labelModel = model;
      Link<Void> link = null;
@@ -51,9 +70,39 @@
      } 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));
      }
      Label icon = new Label("icon");
      if (StringUtils.isEmpty(bootstrapIcon)) {
         link.add(icon.setVisible(false));
      } else {
         WicketUtils.setCssClass(icon, bootstrapIcon);
         link.add(icon);
      }
      link.add(new Label("label", labelModel).setRenderBodyOnly(true));
      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));
      }
      link.add(new Label("icon").setVisible(false));
      link.add(new Label("label", labelModel));
      add(link);
   }