/** * Sencha GXT 3.0.0b - Sencha for GWT * Copyright(c) 2007-2012, Sencha, Inc. * licensing@sencha.com * * http://www.sencha.com/products/gxt/license/ */ package com.sencha.gxt.examples.test.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.editor.client.Editor.Path; import com.google.gwt.user.client.ui.RootPanel; import com.sencha.gxt.core.client.ValueProvider; import com.sencha.gxt.data.shared.LabelProvider; import com.sencha.gxt.data.shared.ListStore; import com.sencha.gxt.data.shared.ModelKeyProvider; import com.sencha.gxt.data.shared.PropertyAccess; import com.sencha.gxt.examples.resources.client.TestData; import com.sencha.gxt.examples.resources.client.model.State; import com.sencha.gxt.widget.core.client.ListView; import com.sencha.gxt.widget.core.client.button.TextButton; import com.sencha.gxt.widget.core.client.event.SelectEvent; import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; import com.sencha.gxt.widget.core.client.form.ListField; import com.sencha.gxt.widget.core.client.form.validator.EmptyValidator; public class ListFieldTest implements EntryPoint { interface StateProperties extends PropertyAccess<State> { ModelKeyProvider<State> abbr(); LabelProvider<State> name(); @Path("name") ValueProvider<State, String> nameProp(); } @Override public void onModuleLoad() { StateProperties props = GWT.create(StateProperties.class); ListStore<State> states = new ListStore<State>(props.abbr()); states.addAll(TestData.getStates()); ListView<State, String> view = new ListView<State, String>(states, props.nameProp()); final ListField<State, String> field = new ListField<State, String>(view); field.addValidator(new EmptyValidator<State>()); field.setPixelSize(200, 300); RootPanel.get().add(field); RootPanel.get().add(new TextButton("Validate", new SelectHandler() { @Override public void onSelect(SelectEvent event) { field.validate(); } })); } }