package de.flower.rmt.ui.panel;
import de.flower.common.ui.panel.BasePanel;
import de.flower.rmt.model.db.entity.User;
import de.flower.rmt.security.ISecurityService;
import de.flower.rmt.ui.app.IViewResolver;
import de.flower.rmt.ui.app.View;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
/**
* @author flowerrrr
*/
public class RMTBasePanel<T> extends BasePanel<T> {
@SpringBean
protected ISecurityService securityService;
@SpringBean
private IViewResolver viewResolver;
public RMTBasePanel() {
this(null, null);
}
public RMTBasePanel(String id) {
this(id, null);
}
public RMTBasePanel(final IModel<T> model) {
this(null, model);
}
public RMTBasePanel(final String id, final IModel<T> model) {
super(id, model);
// always append a css class indicating the view
add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return (getView() == null) ? "" : "view-" + getView().toString().toLowerCase();
}
}));
}
public boolean isManagerView() {
return getView() == View.MANAGER && securityService.getUser().isManager() /* redundant check, but doesn't hurt. */;
}
protected View getView() {
return viewResolver.getView();
}
protected User getUser() {
return securityService.getUser();
}
}