package fr.openwide.core.wicket.markup.html.basic; import org.apache.wicket.model.IModel; public abstract class AbstractGenericLabel<E, T extends AbstractGenericLabel<E, T>> extends AbstractCoreLabel<T> { private static final long serialVersionUID = 1512490126457208708L; private IModel<E> mainModel; public AbstractGenericLabel(String id, IModel<E> model) { super(id, model); this.mainModel = wrap(model); } @Override protected abstract T thisAsT(); @SuppressWarnings("unchecked") public final IModel<E> getModel() { return (IModel<E>) getDefaultModel(); } @SuppressWarnings("unchecked") public final E getModelObject() { return (E) getDefaultModelObject(); } @Override protected void onDetach() { super.onDetach(); if (mainModel != null) { mainModel.detach(); } } }