package com.evolveum.midpoint.web.component.input; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.wicket.Application; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.model.IModel; public class StringChoiceRenderer implements IChoiceRenderer<String> { private static final long serialVersionUID = 1L; private String keyPrefix; private String splitPattern; public StringChoiceRenderer(String keyPrefix) { this.keyPrefix = StringUtils.isNotBlank(keyPrefix) ? keyPrefix : ""; } public StringChoiceRenderer(String keyPrefix, String splitPattern) { this.keyPrefix = StringUtils.isNotBlank(keyPrefix) ? keyPrefix : ""; this.splitPattern = splitPattern; } @Override public String getObject(String id, IModel<? extends List<? extends String>> choices) { return StringUtils.isNotBlank(id) ? choices.getObject().get(Integer.parseInt(id)) : null; } @Override public String getDisplayValue(String object) { if (StringUtils.isNotBlank(splitPattern)){ String[] fields = object.split(splitPattern); object = fields[1]; } if (StringUtils.isNotBlank(keyPrefix)){ return Application.get().getResourceSettings().getLocalizer().getString(keyPrefix + object, null); } return object; } @Override public String getIdValue(String object, int index) { return Integer.toString(index); } }