package de.swm.mobile.kitchensink.client.showcase.forms.utils; import com.google.gwt.text.shared.Renderer; import de.swm.commons.mobile.client.widgets.GenericRadioButtonGroup; import de.swm.commons.mobile.client.widgets.RadioButton; import de.swm.commons.mobile.client.widgets.itf.IProvidesKeyAndValue; import java.io.IOException; /** * Helperclass to showcase i18n enum rendering. */ public class EnumRenderer implements IProvidesKeyAndValue<EnumRenderer.ExampleEnum>, Renderer<EnumRenderer.ExampleEnum> { public enum ExampleEnum { GENERIC_OPTION_1, GENERIC_OPTION_2, GENERIC_OPTION_3 } @Override public String getKey(ExampleEnum item) { return item.name(); } @Override public ExampleEnum getValue(String key) { return ExampleEnum.valueOf(key); } @Override public String render(ExampleEnum object) { switch (object) { case GENERIC_OPTION_1: return "Option 1"; case GENERIC_OPTION_2: return "Option 2"; case GENERIC_OPTION_3: return "Option 3"; default: return "n/a"; } } @Override public void render(ExampleEnum object, Appendable appendable) throws IOException { appendable.append(render(object)); } /** * Set the possible values in the rendering widget. * * @param field the underlying widget */ public static void setValues(GenericRadioButtonGroup<ExampleEnum> field) { for (ExampleEnum entry : ExampleEnum.values()) { RadioButton radio = new RadioButton(); radio.setFormValue(entry.name()); field.add(radio); } } }