ingo@20: package de.intevation.flys.client.client.ui;
ingo@20:
ingo@20: import com.google.gwt.core.client.GWT;
ingo@20:
ingo@20: import com.smartgwt.client.types.VerticalAlignment;
ingo@20: import com.smartgwt.client.widgets.Canvas;
ingo@39: import com.smartgwt.client.widgets.Img;
ingo@20: import com.smartgwt.client.widgets.layout.HLayout;
ingo@20:
ingo@51: import de.intevation.flys.client.shared.model.DataList;
raimund@1399: import de.intevation.flys.client.client.FLYSConstants;
raimund@282: import de.intevation.flys.client.shared.model.Data;
ingo@20:
ingo@20:
ingo@20: /**
ingo@20: * This UIProvider displays the DataItems contained in the Data object in a
ingo@20: * combo box as SelectProvider does. Furthermore, there is a map displayed that
ingo@20: * lets the user choose a river by selecting it on the map.
ingo@20: *
ingo@20: * @author Ingo Weinzierl
ingo@20: */
ingo@20: public class MapSelection extends SelectProvider {
ingo@20:
ingo@39: /** The interface that provides the image resources. */
raimund@1399: private FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
ingo@39:
raimund@282: protected ModuleSelection moduleSelection;
ingo@39:
ingo@20: public MapSelection() {
ingo@20: }
ingo@20:
ingo@20:
ingo@20: /**
ingo@20: * This method currently returns a
ingo@20: * {@link com.smartgwt.client.widgets.form.DynamicForm} that contains all
ingo@20: * data items in a combobox stored in data.
ingo@20: *
ingo@20: * TODO: The map panel for the river selection needs to be
ingo@20: * implemented!
ingo@20: *
ingo@51: * @param data The {@link DataList} object.
ingo@20: *
ingo@20: * @return a combobox.
ingo@20: */
ingo@51: protected Canvas createWidget(DataList data) {
ingo@20: GWT.log("MapSelection - create()");
ingo@20:
raimund@1399: String baseUrl = GWT.getHostPageBaseURL();
raimund@1399:
ingo@20: HLayout h = new HLayout();
ingo@20: h.setAlign(VerticalAlignment.TOP);
raimund@282: h.setHeight(100);
raimund@282: moduleSelection = new ModuleSelection();
ingo@20:
raimund@282: Canvas form = moduleSelection.create(data);
ingo@30: form.setWidth(250);
ingo@53: form.setLayoutAlign(VerticalAlignment.TOP);
ingo@20:
raimund@1399: Img map = new Img(baseUrl + MESSAGES.riverMap(), 400, 452);
ingo@20:
ingo@39: // TODO implement event handling in the river map
ingo@20:
ingo@20: h.addMember(form);
ingo@788: helperContainer.addMember(map);
ingo@20:
ingo@20: return h;
ingo@20: }
raimund@282:
raimund@282: protected Data[] getData() {
raimund@282: if (moduleSelection != null) {
raimund@282: return moduleSelection.getData();
raimund@282: }
raimund@282: else {
raimund@282: return null;
raimund@282: }
raimund@282: }
ingo@20: }
ingo@20: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :