package sushi.application.pages.simulator; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; import sushi.application.pages.AbstractSushiPage; import sushi.event.SushiEventType; public class IndependentUnexpectedEventPanel extends Panel{ private final List<String> effectList = new ArrayList<String>(Arrays.asList("Delay", "Cancel", "None")); private final List<SushiEventType> listOfAllEventTypes = SushiEventType.findAll(); private WebMarkupContainer unexpectedEventMarkupContainer; private List<Object> unexpectedEvents; private ListView<Object> unexpectedEventsListView; public IndependentUnexpectedEventPanel(String id) { super(id); this.setOutputMarkupId(true); this.unexpectedEvents = new ArrayList<Object>(); Form<Void> form = new Form<Void>("form"); AjaxButton addButton = new AjaxButton("addButton", form) { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { unexpectedEvents.add(new Object()); target.add(unexpectedEventMarkupContainer); } }; form.add(addButton); unexpectedEventsListView = new ListView<Object>("unexpectedEventListView", unexpectedEvents){ @Override protected void populateItem(ListItem<Object> item) { final TextField<String> occurenceInput = new TextField<String>("occurenceInput", new Model<String>()); item.add(occurenceInput); final DropDownChoice<String> effectSelect = new DropDownChoice<String>("effectSelect", new Model<String>(), effectList); item.add(effectSelect); final DropDownChoice<SushiEventType> additionalEventTypeSelect = new DropDownChoice<SushiEventType>("additionalEventTypeSelect", new Model<SushiEventType>(), listOfAllEventTypes); item.add(additionalEventTypeSelect); } }; unexpectedEventMarkupContainer = new WebMarkupContainer("unexpectedEventMarkupContainer"); unexpectedEventMarkupContainer.add(unexpectedEventsListView); unexpectedEventMarkupContainer.setOutputMarkupId(true); form.addOrReplace(unexpectedEventMarkupContainer); add(form); } }