package fr.openwide.core.basicapp.web.application.referencedata.form;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
import fr.openwide.core.basicapp.core.business.common.model.PostalCode;
import fr.openwide.core.basicapp.core.business.referencedata.model.City;
import fr.openwide.core.basicapp.core.util.binding.Bindings;
import fr.openwide.core.basicapp.web.application.referencedata.validator.CityUnicityFormValidator;
import fr.openwide.core.wicket.more.condition.Condition;
import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.modal.component.DelegatedMarkupPanel;
import fr.openwide.core.wicket.more.model.BindingModel;
public abstract class CityPopup extends AbstractGenericListItemPopup<City> {
private static final long serialVersionUID = -4941198698654382836L;
private TextField<String> label;
private CheckBox enabled;
TextField<PostalCode> postalCode;
public CityPopup(String id) {
super(id);
}
@Override
protected Component createBody(String wicketId) {
DelegatedMarkupPanel body = new DelegatedMarkupPanel(wicketId, CityPopup.class);
IModel<City> model = getModel();
form = new Form<City>("form", model);
Condition disableableCondition = Condition.isTrue(
BindingModel.of(model, Bindings.genericListItem().disableable())
);
this.postalCode = new TextField<PostalCode>(
"postalCode", BindingModel.of(model, Bindings.city().postalCode()), PostalCode.class);
this.label = new TextField<String>(
"label", BindingModel.of(model, Bindings.genericListItem().label())
);
this.enabled = new CheckBox(
"enabled", BindingModel.of(model, Bindings.genericListItem().enabled())
);
body.add(
form
.add(
label
.setLabel(new ResourceModel("business.listItem.label"))
.setRequired(true),
postalCode
.setLabel(new ResourceModel("business.postalCode"))
.setRequired(true),
enabled
.setLabel(new ResourceModel("business.listItem.enabled"))
.add(disableableCondition.thenEnable())
)
.add(new CityUnicityFormValidator(getModel(), label, postalCode))
);
return body;
}
protected final TextField<String> getLabel() {
return label;
}
protected final CheckBox getEnabled() {
return enabled;
}
}