package com.evolveum.midpoint.web.component.input; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.Validate; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.model.IModel; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; public class ObjectReferenceChoiceRenderer implements IChoiceRenderer<ObjectReferenceType> { private static final long serialVersionUID = 1L; private Map<String, String> referenceMap; public ObjectReferenceChoiceRenderer(Map<String, String> referenceMap) { super(); Validate.notNull(referenceMap); this.referenceMap = referenceMap; } @Override public ObjectReferenceType getObject(String id, IModel<? extends List<? extends ObjectReferenceType>> choices) { return StringUtils.isNotBlank(id) ? choices.getObject().get(Integer.parseInt(id)) : null; } @Override public Object getDisplayValue(ObjectReferenceType object) { return object != null ? referenceMap.get(object.getOid()) : null; } @Override public String getIdValue(ObjectReferenceType object, int index) { return Integer.toString(index); } }