package fr.openwide.core.wicket.more.link.descriptor.impl;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import fr.openwide.core.wicket.more.link.descriptor.AbstractDynamicBookmarkableLink;
import fr.openwide.core.wicket.more.link.descriptor.generator.IPageLinkGenerator;
/**
* An {@link AbstractDynamicBookmarkableLink} whose targeted {@link Page} and {@link PageParameters} may change during
* the page life cycle.
* <p>This implementation could not derive from {@link BookmarkablePageLink}, whose target Page class is inherently
* static.
* @see AbstractDynamicBookmarkableLink
* @see BookmarkablePageLink
*/
public class DynamicBookmarkablePageLink extends DynamicBookmarkableLink {
private static final long serialVersionUID = -7297463634865525448L;
public DynamicBookmarkablePageLink(String wicketId, IPageLinkGenerator pageLinkGenerator) {
super(wicketId, pageLinkGenerator);
}
@Override
protected IPageLinkGenerator getLinkGenerator() {
return (IPageLinkGenerator) super.getLinkGenerator();
}
/**
* @see BookmarkablePageLink
*/
@Override
protected boolean linksTo(Page page) {
return getLinkGenerator().isActive(page.getPageClass());
}
}