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.util.binding.Bindings; import fr.openwide.core.jpa.more.business.generic.model.GenericListItem; 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 SimpleGenericListItemPopup<T extends GenericListItem<? super T>> extends AbstractGenericListItemPopup<T> { private static final long serialVersionUID = 7104161263728328834L; private TextField<String> label; private CheckBox enabled; public SimpleGenericListItemPopup(String id) { super(id); } @Override protected Component createBody(String wicketId) { DelegatedMarkupPanel body = new DelegatedMarkupPanel(wicketId, SimpleGenericListItemPopup.class); IModel<T> model = getModel(); form = new Form<T>("form", model); Condition disableableCondition = Condition.isTrue( BindingModel.of(model, Bindings.genericListItem().disableable()) ); this.label = new TextField<>( "label", BindingModel.of(model, Bindings.genericListItem().label()), String.class ); this.enabled = new CheckBox( "enabled", BindingModel.of(model, Bindings.genericListItem().enabled()) ); body.add( form .add( label .setLabel(new ResourceModel("business.listItem.label")) .setRequired(true), enabled .setLabel(new ResourceModel("business.listItem.enabled")) .add(disableableCondition.thenEnable()) ) ); return body; } protected final TextField<String> getLabel() { return label; } protected final CheckBox getEnabled() { return enabled; } }