package sushi.application.components.table; import java.util.Arrays; import java.util.List; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.PropertyModel; import sushi.application.pages.input.model.EventAttributeProvider; import sushi.event.attribute.SushiAttribute; import sushi.event.attribute.SushiAttributeTypeEnum; public class AttributeTypeDropDownChoicePanel extends Panel { private static final long serialVersionUID = 1L; private List<SushiAttributeTypeEnum> attributeTypes = Arrays.asList(SushiAttributeTypeEnum.values()); protected SushiAttributeTypeEnum attributeType; public AttributeTypeDropDownChoicePanel(String id, final SushiAttribute attribute, final boolean dropDownChoiceEnabled, final EventAttributeProvider dataProvider) { super(id); Form<Void> layoutForm = new Form<Void>("layoutForm"); attributeType = attribute.getType(); DropDownChoice<SushiAttributeTypeEnum> attributeTypeDropDownChoice = new DropDownChoice<SushiAttributeTypeEnum>("attributeTypeDropDownChoice", new PropertyModel<SushiAttributeTypeEnum>(this, "attributeType"), attributeTypes); attributeTypeDropDownChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { attribute.setType(attributeType); } }); attributeTypeDropDownChoice.setEnabled(dropDownChoiceEnabled); layoutForm.add(attributeTypeDropDownChoice); add(layoutForm); } }