Mercurial > dive4elements > river
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/SedLoadPeriodPanel.java Tue Oct 23 13:21:57 2012 +0200 @@ -0,0 +1,153 @@ +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; + } + + +}