Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/SelectProvider.java @ 28:dfdb927b137d
Improved the main menu - added further buttons (clickable labels).
flys-client/trunk@1428 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 08 Mar 2011 16:20:34 +0000 |
parents | c128d675386b |
children | 5709bd8f4d7c |
line wrap: on
line source
package de.intevation.flys.client.client.ui; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import com.google.gwt.core.client.GWT; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.IButton; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.ComboBoxItem; import com.smartgwt.client.widgets.layout.VLayout; import de.intevation.flys.client.shared.model.Data; import de.intevation.flys.client.shared.model.DataItem; import de.intevation.flys.client.shared.model.DefaultData; import de.intevation.flys.client.shared.model.DefaultDataItem; import de.intevation.flys.client.client.FLYSMessages; import de.intevation.flys.client.client.event.HasStepForwardHandlers; import de.intevation.flys.client.client.event.StepForwardEvent; import de.intevation.flys.client.client.event.StepForwardHandler; /** * This UIProvider displays the DataItems of the Data object in a combo box. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class SelectProvider implements UIProvider, HasStepForwardHandlers, ClickHandler { /** The message class that provides i18n strings.*/ protected FLYSMessages messages = GWT.create(FLYSMessages.class); /** The StepForwardHandlers.*/ protected List<StepForwardHandler> forwardHandlers; /** The combobox.*/ protected ComboBoxItem combobox; /** * Creates a new UIProvider instance of this class. */ public SelectProvider() { forwardHandlers = new ArrayList<StepForwardHandler>(); } public void addStepForwardHandler(StepForwardHandler handler) { if (handler != null) { GWT.log("SelectProvider - addStepForwardHandler()"); forwardHandlers.add(handler); } GWT.log("Handlers now: " + forwardHandlers.size()); } /** * This method is called after the user has clicked on the 'next' button to * step to the next state. * * @param e The StepForwardEvent. */ protected void fireStepForwardEvent(StepForwardEvent e) { GWT.log("SelectProvider - fireStepForwardEvent() handlers: " + forwardHandlers.size()); for (StepForwardHandler handler: forwardHandlers) { GWT.log("SelectProvider - fireStepForwardEvent()"); handler.onStepForward(e); } } public void onClick(ClickEvent e) { GWT.log("SelectProvider - feed and advance..."); Data[] data = getData(); GWT.log("GO ON..."); SelectProvider.this.fireStepForwardEvent(new StepForwardEvent(data)); } /** * This method currently returns a * {@link com.smartgwt.client.widgets.form.DynamicForm} that contains all * data items in a combobox stored in <i>data</i>. * * @param data The {@link Data} object. * * @return a combobox. */ public Canvas create(Data data) { VLayout v = new VLayout(); Canvas content = createWidget(data); IButton button = new IButton(messages.next(), this); //IButton button = new IButton(messages.next(), new ClickHandler() { // public void onClick(ClickEvent e) { // GWT.log("SelectProvider - feed and advance..."); // Data[] data = getData(); // GWT.log("GO ON..."); // SelectProvider.this.fireStepForwardEvent(new StepForwardEvent(data)); // } //}); v.addMember(content); v.addMember(button); return v; } /** * This method creates the content of the widget. * * @param data The {@link Data} object. * * @return a combobox. */ protected Canvas createWidget(Data data) { GWT.log("SelectProvider - create()"); DynamicForm form = new DynamicForm(); combobox = new ComboBoxItem("river"); LinkedHashMap<String, String> it = new LinkedHashMap<String, String>(); for (DataItem item: data.getItems()) { GWT.log("Add item: " + item.getLabel()); it.put(item.getStringValue(), item.getLabel()); } combobox.setValueMap(it); form.setItems(combobox); return form; } protected Data[] getData() { String selection = combobox.getValueAsString(); GWT.log("SelectProvider - getData() Selected value = " + selection); DataItem item = new DefaultDataItem("river", null, selection); return new Data[] { new DefaultData( "river", null, null, new DataItem[] { item }, null) }; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :