James Moger
2011-04-06 7ba0ec1e871a1f7b5a40b3272e860ade13038e95
commit | author | age
5fe7df 1 package com.gitblit.wicket;
JM 2
3 import org.apache.wicket.AttributeModifier;
4 import org.apache.wicket.PageParameters;
5 import org.apache.wicket.markup.html.WebPage;
6 import org.apache.wicket.markup.html.basic.Label;
7 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
8 import org.apache.wicket.markup.html.link.Link;
9 import org.apache.wicket.markup.html.panel.Panel;
10 import org.apache.wicket.model.AbstractReadOnlyModel;
11 import org.apache.wicket.model.IModel;
12 import org.apache.wicket.model.Model;
13
14 public class LinkPanel extends Panel {
15
16     private static final long serialVersionUID = 1L;
17
18     private IModel<String> labelModel = new Model<String>();
19
20     @SuppressWarnings({ "unchecked", "rawtypes" })
21     public LinkPanel(String wicketId, final String linkCssClass, String label, Class<? extends WebPage> clazz, PageParameters parameters) {
22         super(wicketId);
23         Link<?> link = null;
24         if (parameters == null) {
25             link = new BookmarkablePageLink("link", clazz);
26         } else {
27             link = new BookmarkablePageLink("link", clazz, parameters);
28         }
29         if (linkCssClass != null) {
30             link.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() {
31                 private static final long serialVersionUID = 1L;
32
33                 @Override
34                 public String getObject() {
35                     return linkCssClass;
36                 }
37             }));
38         }
39         labelModel.setObject(label);
40         link.add(new Label("label", labelModel));
41         add(link);
42     }
43
44 }