package org.nocket.gen.page.element.synchronizer;
import gengui.util.I18nPropertyBasedImpl;
import java.util.MissingResourceException;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.markup.html.form.EnumChoiceRenderer;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.ResourceModel;
import org.nocket.gen.page.DMDWebGenPageContext;
// TODO: Auto-generated Javadoc
/**
* The Class EnumChoicesRenderer.
*
* @param <T> the generic type
*/
public class EnumChoicesRenderer<T extends Enum<T>> implements IChoiceRenderer<T> {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1L;
/** The delegate. */
private final EnumChoiceRenderer<T> delegate;
/** The context. */
private DMDWebGenPageContext context;
/**
* Instantiates a new enum choices renderer.
*
* @param context the context
*/
public EnumChoicesRenderer(DMDWebGenPageContext context) {
delegate = new EnumChoiceRenderer<T>(context.getPage());
this.context = context;
}
/* (non-Javadoc)
* @see org.apache.wicket.markup.html.form.IChoiceRenderer#getDisplayValue(java.lang.Object)
*/
@Override
public Object getDisplayValue(T object) {
try {
if (context.getConfiguration().isLocalizationWicket()) {
return delegate.getDisplayValue(object);
} else {
return new I18nPropertyBasedImpl().translate(object.getDeclaringClass(), object);
}
} catch (MissingResourceException e) {
String stringValue = object.toString();
String resourceValue = new ResourceModel(stringValue, "").getObject();
if (StringUtils.isNotBlank(resourceValue)) {
return resourceValue;
} else {
return stringValue;
}
}
}
/* (non-Javadoc)
* @see org.apache.wicket.markup.html.form.IChoiceRenderer#getIdValue(java.lang.Object, int)
*/
@Override
public String getIdValue(T object, int index) {
return delegate.getIdValue(object, index);
}
}