package de.flower.rmt.ui.page.event.manager.invitees;
import de.flower.common.ui.ajax.event.AjaxEventSender;
import de.flower.common.ui.ajax.markup.html.form.AjaxSubmitLink;
import de.flower.common.ui.panel.BasePanel;
import de.flower.rmt.model.db.entity.Invitation;
import de.flower.rmt.model.db.entity.event.Event;
import de.flower.rmt.service.IInvitationManager;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.hibernate.validator.constraints.NotBlank;
import org.wicketstuff.jsr303.validator.BeanValidator;
import java.io.Serializable;
/**
* @author flowerrrr
*/
public class AddGuestPlayerPanel extends BasePanel<Event> {
@SpringBean
private IInvitationManager invitationManager;
private FEntity fEntity;
public AddGuestPlayerPanel(String id, final IModel<Event> model) {
super(id);
fEntity = new FEntity();
final Form<FEntity> form = new Form<FEntity>("form", new CompoundPropertyModel<FEntity>(fEntity));
add(form);
form.add(new TextField("guestName"));
AjaxSubmitLink addButton = new AjaxSubmitLink("addButton") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
if (!new BeanValidator(form).isValid(form.getModelObject())) {
onError(target, form);
} else {
invitationManager.addGuestPlayer(model.getObject(), ((FEntity) form.getModelObject()).guestName);
AjaxEventSender.entityEvent(this, Invitation.class);
onClose(target);
}
}
};
form.add(addButton);
// make enter submit the form via ajax.
form.setDefaultButton(addButton);
}
@Override
protected void onDetach() {
fEntity.guestName = "";
super.onDetach();
}
protected static final class FEntity implements Serializable {
@NotBlank
public String guestName;
}
}