package de.elatexam.editor.components.menu;
import java.io.Serializable;
import org.apache.wicket.markup.html.WebPage;
/**
* Simple bean with link informations.
*
* @author Steffen Dienst
*/
public class LinkVO implements Serializable {
public interface Create extends Serializable {
WebPage createPage();
}
/**
*
*/
private static final long serialVersionUID = 7059147735653473097L;
private Class<? extends WebPage> responsePageClass;
private WebPage responsePage;
private String linkText = null;
private String externalUrl;
private Create pageCallback;
/**
*/
public LinkVO(final Class<? extends WebPage> linkPageClass, final String linkText) {
this.responsePageClass = linkPageClass;
this.linkText = linkText;
}
public LinkVO(final Create pageCallback, final String linkText) {
this.pageCallback = pageCallback;
this.linkText = linkText;
}
/**
*/
public LinkVO(final String externalLink, final String linkText) {
this.linkText = linkText;
this.externalUrl = externalLink;
}
/**
*/
public LinkVO(final WebPage linkPage, final String linkText) {
this.responsePage = linkPage;
this.linkText = linkText;
}
/**
* @return the externalUrl
*/
public String getExternalUrl() {
return externalUrl;
}
public String getLinkText() {
return linkText;
}
public WebPage getResponsePage() {
if (pageCallback != null) {
try {
this.responsePage = pageCallback.createPage();
this.pageCallback = null;
} catch (final Exception e) {
e.printStackTrace();
}
}
return responsePage;
}
public Class<? extends WebPage> getResponsePageClass() {
return responsePageClass;
}
public void setLinkText(final String linkText) {
this.linkText = linkText;
}
}