summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/wicket/LinkPanel.java
blob: afa2647b8a2fc94fc17bcc25898d0c0bea064535 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.gitblit.wicket;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.PageParameters;
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.Link;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

public class LinkPanel extends Panel {

	private static final long serialVersionUID = 1L;

	private IModel<String> labelModel = new Model<String>();

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public LinkPanel(String wicketId, final String linkCssClass, String label, Class<? extends WebPage> clazz, PageParameters parameters) {
		super(wicketId);
		Link<?> link = null;
		if (parameters == null) {
			link = new BookmarkablePageLink("link", clazz);
		} else {
			link = new BookmarkablePageLink("link", clazz, parameters);
		}
		if (linkCssClass != null) {
			link.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() {
				private static final long serialVersionUID = 1L;

				@Override
				public String getObject() {
					return linkCssClass;
				}
			}));
		}
		labelModel.setObject(label);
		link.add(new Label("label", labelModel));
		add(link);
	}

}