Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/SedLoadPeriodPanel.java @ 4223:015b219a97af
Added new UI provider for sediment load parameter input.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 23 Oct 2012 13:21:57 +0200 |
parents | |
children | abd304085bd4 |
line wrap: on
line source
package de.intevation.flys.client.client.ui.minfo; import java.util.ArrayList; import java.util.List; import com.google.gwt.core.client.GWT; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.validator.IsIntegerValidator; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import de.intevation.flys.client.client.ui.AbstractUIProvider; import de.intevation.flys.client.client.ui.IntegerRangePanel; import de.intevation.flys.client.shared.model.Data; import de.intevation.flys.client.shared.model.DataItem; import de.intevation.flys.client.shared.model.DataList; import de.intevation.flys.client.shared.model.DefaultData; import de.intevation.flys.client.shared.model.DefaultDataItem; public class SedLoadPeriodPanel extends AbstractUIProvider //extends SedLoadPanel { private TextItem start; private TextItem end; public SedLoadPeriodPanel () { } @Override public Canvas createOld(DataList dataList) { List<Data> items = dataList.getAll(); Data start = getData(items, "start"); Data end = getData(items, "end"); DataItem[] startItem = start.getItems(); DataItem[] endItem = end.getItems(); String v1 = startItem[0].getStringValue(); String v2 = endItem[0].getStringValue(); int v1i = 0; int v2i = 0; try { v1i = Integer.parseInt(v1); v2i = Integer.parseInt(v2); } catch (NumberFormatException nfe) { GWT.log(nfe.toString()); } Label old = new Label(v1i + " - " + v2i); HLayout layout = new HLayout(); layout.setWidth("400px"); Label label = new Label(dataList.getLabel()); label.setWidth("200px"); Canvas back = getBackButton(dataList.getState()); layout.addMember(label); layout.addMember(old); layout.addMember(back); return layout; } @Override public Canvas create(DataList data) { VLayout layout = new VLayout(); // Canvas helper = createHelper(); // this.helperContainer.addMember(helper); Canvas submit = getNextButton(); Canvas widget = createWidget(data); layout.addMember(widget); layout.addMember(submit); return layout; } public Canvas createWidget(DataList data) { VLayout layout = new VLayout(); Label title = new Label(data.get(0).getDescription()); title.setHeight("25px"); DynamicForm form = new DynamicForm(); form.setNumCols(4); start = new TextItem(MSG.from()); start.setValidators(new IsIntegerValidator()); end = new TextItem(MSG.to()); end.setValidators(new IsIntegerValidator()); form.setFields(start, end); // inputPanel.setToTitle(MSG.to()); // inputPanel.setFromTitle(MSG.from()); // inputPanel.setShowTitle(false); layout.addMember(title); layout.addMember(form); return layout; } @Override protected Data[] getData() { int v1; int v2; try { v1 = Integer.parseInt(start.getValueAsString()); v2 = Integer.parseInt(end.getValueAsString()); } catch(NumberFormatException nfe) { // warn the user... return new Data[0]; } if (validateRange(v1, v2)) { List<Data> data = new ArrayList<Data>(); DataItem startItem = new DefaultDataItem("start", "start", start.getValueAsString()); DataItem endItem = new DefaultDataItem("end", "end", end.getValueAsString()); data.add(new DefaultData( "start", null, null, new DataItem[] { startItem })); data.add(new DefaultData( "end", null, null, new DataItem[] { endItem })); return data.toArray(new Data[data.size()]); } return new Data[0]; } protected boolean validateRange(int v1, int v2) { // TODO: Set useful years for validation. Current range is between start // of gregorian calendar and a year in the future... if ((v1 > 1582 && v1 < 2100) && (v2 > 1582 && v2 < 2100)) { return true; } return false; } }