package de.swm.mobile.kitchensink.client.showcase.widgets; import java.io.IOException; import com.google.gwt.core.client.GWT; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.text.shared.Renderer; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Widget; import de.swm.commons.mobile.client.utils.Utils; import de.swm.commons.mobile.client.widgets.DropDownItem; import de.swm.commons.mobile.client.widgets.DropDownList; import de.swm.commons.mobile.client.widgets.HeaderPanel; import de.swm.commons.mobile.client.widgets.itf.IProvidesKeyAndValue; import de.swm.mobile.kitchensink.client.Application; import de.swm.mobile.kitchensink.client.base.ShowcaseDetailPage; import static de.swm.mobile.kitchensink.client.ShowcaseAnnotations.ShowcaseSource; import static de.swm.mobile.kitchensink.client.ShowcaseAnnotations.ShowcaseUiXML; @ShowcaseSource @ShowcaseUiXML({"DropDownListPage.ui.xml"}) public class DropDownListPage extends ShowcaseDetailPage { @UiField DropDownList<String> cars; @UiField HeaderPanel header; private static DropDownListPageUiBinder uiBinder = GWT.create(DropDownListPageUiBinder.class); @Override public HeaderPanel getHeaderPanel() { return header; } interface DropDownListPageUiBinder extends UiBinder<Widget, DropDownListPage> { } public DropDownListPage() { super(DropDownListPage.class); initWidget(uiBinder.createAndBindUi(this)); Application.addDefaultBackButtonHanlder(header); cars.setKeyValueProvider(new IProvidesKeyAndValue<String>() { @Override public String getValue(String key) { return "Car " + key; } @Override public String getKey(String item) { String[] parts = item.split(" "); if (parts.length == 2) { return parts[1]; } return "Unknown"; } }); cars.setRenderer(new Renderer<String>() { @Override public void render(String object, Appendable appendable) throws IOException { appendable.append(object); } @Override public String render(String object) { return object; } }); for (int i = 0; i < 5; i++) { cars.add(new DropDownItem((i + 1) + "")); } } @UiHandler("cars") public void onValueChangeCar(ValueChangeEvent<String> e) { Utils.console(e.getValue()); } @Override public String getName() { return "Drop down example"; } }