package fr.openwide.core.wicket.more.console.maintenance.task.component; import java.util.Arrays; import java.util.Collection; import java.util.List; import org.apache.wicket.markup.html.form.ChoiceRenderer; import org.apache.wicket.markup.html.form.ListMultipleChoice; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.StringResourceModel; import org.apache.wicket.util.lang.Classes; import fr.openwide.core.jpa.more.business.task.util.TaskResult; public class TaskResultListMultipleChoice extends ListMultipleChoice<TaskResult> { private static final long serialVersionUID = -6536121467575076892L; public TaskResultListMultipleChoice(String id, IModel<? extends Collection<TaskResult>> statusListModel) { super(id, statusListModel, new LoadableDetachableModel<List<TaskResult>>() { private static final long serialVersionUID = 1L; @Override protected List<TaskResult> load() { return Arrays.asList(TaskResult.values()); } }); setChoiceRenderer(new TaskResultChoiceRenderer()); } private class TaskResultChoiceRenderer extends ChoiceRenderer<TaskResult> { private static final long serialVersionUID = 1L; @Override public Object getDisplayValue(final TaskResult object) { return object != null ? new StringResourceModel(Classes.simpleName(TaskResult.class) + ".${}", TaskResultListMultipleChoice.this, Model.of(object.name())).getString() : ""; } @Override public String getIdValue(TaskResult object, int index) { return object != null ? String.valueOf(index) : "-1"; } } }