package fr.openwide.core.wicket.more.markup.html.link; import org.apache.wicket.IGenericComponent; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.link.AbstractLink; import org.apache.wicket.model.IModel; /** * A link pointing to nothing in particular. Useful as a basis to add Javascript behaviors. */ public abstract class GenericBlankLink<T> extends AbstractLink implements IGenericComponent<T> { private static final long serialVersionUID = 7324003053376463554L; public GenericBlankLink(String id) { super(id); } public GenericBlankLink(String id, IModel<T> model) { super(id, model); } @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); if (isEnabledInHierarchy()) { if (tag.getName().equalsIgnoreCase("a")) { tag.put("href", "#"); } } else { disableLink(tag); } } @Override public void setModel(IModel<T> model) { super.setDefaultModel(model); } @Override @SuppressWarnings("unchecked") public final IModel<T> getModel() { return (IModel<T>) getDefaultModel(); } @Override @SuppressWarnings("unchecked") public final T getModelObject() { return (T) getDefaultModelObject(); } @Override public void setModelObject(T object) { getModel().setObject(object); } }