package sushi.application.components.table; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; import sushi.application.pages.input.model.EventAttributeProvider; import sushi.event.attribute.SushiAttribute; public class AttributeTypeCheckBoxPanel extends Panel { private static final long serialVersionUID = 1L; public AttributeTypeCheckBoxPanel(String id, final SushiAttribute attribute, final boolean checkBoxEnabled, final EventAttributeProvider dataProvider, final Component tableContainer) { super(id); Form<Void> form = new Form<Void>("layoutForm"); CheckBox checkBox = new CheckBox("attributeTypeCheckBox", Model.of(dataProvider.isEntrySelected(attribute))); checkBox.add(new AjaxFormComponentUpdatingBehavior("onchange"){ private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { if (dataProvider.isEntrySelected(attribute)) { dataProvider.deselectEntry(attribute); } else if (!dataProvider.isEntrySelected(attribute)) { dataProvider.selectEntry(attribute); } target.add(tableContainer); } }); checkBox.setEnabled(checkBoxEnabled); form.add(checkBox); add(form); } }