package de.flower.rmt.ui.page.events.manager;
import de.flower.common.ui.ajax.markup.html.AjaxLink;
import de.flower.common.ui.panel.BasePanel;
import de.flower.rmt.model.db.type.EventType;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.model.util.ListModel;
import java.util.Arrays;
/**
* Panel to let user select event type before event form is displayed.
*
* @author flowerrrr
*/
public abstract class EventTypeSelectPanel extends BasePanel {
public EventTypeSelectPanel() {
add(new ListView<EventType>("eventTypes", getEventTypeListModel()) {
@Override
protected void populateItem(ListItem<EventType> item) {
final EventType type = item.getModelObject();
item.add(new AjaxLink("typeLink") {
@Override
public void onClick(AjaxRequestTarget target) {
onSelect(type, target);
}
}.setBody(new ResourceModel(type.getResourceKey())));
}
});
}
public abstract void onSelect(EventType eventType, AjaxRequestTarget target);
private ListModel<EventType> getEventTypeListModel() {
return new ListModel<EventType>(Arrays.asList(EventType.values()));
}
}