package de.flower.rmt.ui.markup.html.form.renderer;
import de.flower.common.util.Collections;
import de.flower.rmt.model.db.type.Surface;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.ResourceModel;
import java.util.List;
/**
* @author flowerrrr
*/
public class SurfaceRenderer implements IChoiceRenderer<Surface> {
@Override
public Object getDisplayValue(final Surface object) {
return getResourceString(Surface.getResourceKey(object));
}
@Override
public String getIdValue(final Surface object, final int index) {
return "" + object.ordinal();
}
public String renderList(List<Surface> surfaceList) {
if (surfaceList == null || surfaceList.isEmpty()) {
return getResourceString(Surface.getResourceKey(null));
} else {
List<String> list = Collections.convert(surfaceList, new Collections.IElementConverter<Surface, String>() {
@Override
public String convert(final Surface element) {
return getResourceString(Surface.getResourceKey(element));
}
});
return StringUtils.join(list, ", ");
}
}
/**
* Subclass can override if other resource lookup than wickets resource model is used
* @param key
* @return
*/
protected String getResourceString(String key) {
return new ResourceModel(key).getObject();
}
}