package org.orienteer.core.web;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.orienteer.core.component.meta.IDisplayModeAware;
import org.orienteer.core.component.property.DisplayMode;
/**
* {@link AbstractWidgetPage} plus generic stuff for pages which can have a deal with {@link DisplayMode}
*
* @param <T> the type of a main object for this page
*/
public abstract class AbstractWidgetDisplayModeAwarePage<T> extends AbstractWidgetPage<T> implements IDisplayModeAware {
private IModel<DisplayMode> displayModeModel = DisplayMode.VIEW.asModel();
public AbstractWidgetDisplayModeAwarePage() {
super();
}
public AbstractWidgetDisplayModeAwarePage(IModel<T> model) {
super(model);
}
public AbstractWidgetDisplayModeAwarePage(PageParameters parameters) {
super(parameters);
}
@Override
public IModel<DisplayMode> getModeModel() {
return displayModeModel;
}
@Override
public DisplayMode getModeObject() {
return displayModeModel.getObject();
}
public AbstractWidgetDisplayModeAwarePage<T> setModeObject(DisplayMode mode) {
displayModeModel.setObject(mode);
return this;
}
}