package de.flower.rmt.ui.page.user.manager;
import de.flower.common.ui.ajax.event.AjaxEventListener;
import de.flower.rmt.model.db.entity.User;
import de.flower.rmt.ui.model.UserModel;
import de.flower.rmt.ui.page.Pages;
import de.flower.rmt.ui.page.base.manager.ManagerBasePage;
import org.apache.wicket.model.IModel;
/**
* @author flowerrrr
*/
public class PlayerPage extends ManagerBasePage {
public PlayerPage() {
// for creating new player
this(new UserModel());
}
public PlayerPage(final IModel<User> model) {
super(model);
// initialize model object if it is not set
setHeading("manager.player.edit.heading");
// replace main heading with players name.
setHeadingText(model.getObject().getFullname());
addMainPanel(new PlayerMainPanel(model));
final SendInvitationPanel sendInvitationPanel = new SendInvitationPanel(model) {
@Override
public boolean isVisible() {
return (!model.getObject().isNew()
&& !model.getObject().isInvitationSent()
&& model.getObject().getInitialPassword() != null);
}
};
ResetPasswordPanel resetPasswordPanel = new ResetPasswordPanel(model) {
@Override
public boolean isVisible() {
// only show if existing user is edited.
// never show no invitation mail has been sent. doesn't make sense to display both panels.
return !model.getObject().isNew();
}
};
addSecondaryPanel(sendInvitationPanel, resetPasswordPanel);
// listen to events when user is created.
getSecondaryPanel().add(new AjaxEventListener(User.class));
}
@Override
public String getActiveTopBarItem() {
return Pages.USERS.name();
}
}