package fr.openwide.maven.artifact.notifier.web.application.artifact.component;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.IModel;
import org.retzlaff.select2.ISelect2AjaxAdapter;
import org.retzlaff.select2.Select2Settings;
import fr.openwide.core.wicket.more.markup.html.select2.GenericSelect2AjaxDropDownSingleChoice;
import fr.openwide.core.wicket.more.markup.html.select2.util.DropDownChoiceWidth;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact;
public class ArtifactDropDownChoice extends GenericSelect2AjaxDropDownSingleChoice<Artifact> {
private static final long serialVersionUID = -6782229493391720861L;
public static final IChoiceRenderer<Artifact> CHOICE_RENDERER = new ArtifactChoiceRenderer();
public ArtifactDropDownChoice(String id, IModel<Artifact> model) {
this(id, model, new ArtifactSelect2AjaxAdapter(CHOICE_RENDERER));
}
public ArtifactDropDownChoice(String id, IModel<Artifact> model, ISelect2AjaxAdapter<Artifact> adapter) {
super(id, model, adapter);
setWidth(DropDownChoiceWidth.XLARGE);
}
@Override
protected void fillSelect2Settings(Select2Settings settings) {
super.fillSelect2Settings(settings);
}
private static class ArtifactChoiceRenderer extends ChoiceRenderer<Artifact> {
private static final long serialVersionUID = -4610661508328127491L;
@Override
public Object getDisplayValue(Artifact artifact) {
return artifact != null ? artifact.getArtifactKey().getKey() : null;
}
@Override
public String getIdValue(Artifact object, int index) {
if (object != null) {
return String.valueOf(object.getId());
}
return null;
}
}
}