Mercurial > dive4elements > river
changeset 1265:f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
flys-client/trunk@2797 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 21 Sep 2011 12:54:27 +0000 |
parents | 0a19a90d40c3 |
children | ff012a9d9d1d |
files | flys-client/ChangeLog flys-client/src/main/java/de/intevation/flys/client/client/ui/DistanceOnlyPanel.java flys-client/src/main/java/de/intevation/flys/client/client/ui/DistancePanel.java flys-client/src/main/java/de/intevation/flys/client/client/ui/DoubleRangeOnlyPanel.java flys-client/src/main/java/de/intevation/flys/client/client/ui/DoubleRangePanel.java flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java |
diffstat | 6 files changed, 190 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/flys-client/ChangeLog Mon Sep 19 16:51:27 2011 +0000 +++ b/flys-client/ChangeLog Wed Sep 21 12:54:27 2011 +0000 @@ -1,3 +1,26 @@ +2011-09-21 Ingo Weinzierl <ingo@intevation.de> + + flys/issue315 (Überschwemmungsfläche: String bei Streckenauswahl) + + * src/main/java/de/intevation/flys/client/client/ui/DoubleRangePanel.java: + Little modifications to allow subclassing. + + * src/main/java/de/intevation/flys/client/client/ui/DoubleRangeOnlyPanel.java: + New. A subclass of DoubleRangePanel that does NOT display a "step" + field. + + * src/main/java/de/intevation/flys/client/client/ui/DistancePanel.java: + Set correct title for this panel. + + * src/main/java/de/intevation/flys/client/client/ui/DistanceOnlyPanel.java: + New. A subclass of DistancePanel that instantiates a + DoubleRangeOnlyPanel instead of a DoubleRangePanel. So, there are only + "from" and "to" fields visible. In addition, this panel only returns + Data objects for these two fields. + + * src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java: + Registered the DistanceOnlyPanel. + 2011-09-19 Hans Plum <hans@intevation.de> * NEWS for V 2.5.0:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DistanceOnlyPanel.java Wed Sep 21 12:54:27 2011 +0000 @@ -0,0 +1,71 @@ +package de.intevation.flys.client.client.ui; + +import java.util.List; + +import de.intevation.flys.client.shared.model.Data; +import de.intevation.flys.client.shared.model.DataItem; +import de.intevation.flys.client.shared.model.DataList; + + +public class DistanceOnlyPanel extends DistancePanel { + + public DistanceOnlyPanel() { + this("right"); + } + + + public DistanceOnlyPanel(String labelOrientation) { + distancePanel = new DoubleRangeOnlyPanel( + labelFrom(), labelTo(), 0d, 0d, 250, this, labelOrientation); + } + + + @Override + protected String getOldSelectionString(DataList dataList) { + List<Data> items = dataList.getAll(); + + Data dFrom = getData(items, getLowerField()); + Data dTo = getData(items, getUpperField()); + + DataItem[] from = dFrom.getItems(); + DataItem[] to = dTo.getItems(); + + StringBuilder sb = new StringBuilder(); + sb.append(from[0].getLabel()); + sb.append(" " + getUnitFrom() + " - "); + sb.append(to[0].getLabel()); + sb.append(" " + getUnitTo()); + + return sb.toString(); + } + + + @Override + protected void initDefaultStep(DataList data) { + // do nothing + } + + + @Override + public Data[] getData() { + Data[] data = new Data[2]; + + data[0] = getDataFrom(); + data[1] = getDataTo(); + + return data; + } + + + @Override + protected String labelFrom() { + return getUnitFrom() + " - "; + } + + + @Override + protected String labelTo() { + return getUnitTo(); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DistancePanel.java Mon Sep 19 16:51:27 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DistancePanel.java Wed Sep 21 12:54:27 2011 +0000 @@ -82,7 +82,7 @@ VLayout layout = new VLayout(); layout.setMembersMargin(10); - Label label = new Label(d.getDescription()); + Label label = new Label(MSG.distance_state()); Canvas submit = getNextButton();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DoubleRangeOnlyPanel.java Wed Sep 21 12:54:27 2011 +0000 @@ -0,0 +1,88 @@ +package de.intevation.flys.client.client.ui; + +import com.google.gwt.i18n.client.NumberFormat; + +import com.smartgwt.client.types.Alignment; +import com.smartgwt.client.widgets.form.fields.FloatItem; +import com.smartgwt.client.widgets.form.fields.StaticTextItem; +import com.smartgwt.client.widgets.form.fields.events.BlurHandler; + + +public class DoubleRangeOnlyPanel extends DoubleRangePanel { + + public DoubleRangeOnlyPanel( + String titleFrom, + String titleTo, + double from, + double to, + int width, + BlurHandler handler + ) { + this(titleFrom, titleTo, from, to, width, handler, "right"); + } + + + public DoubleRangeOnlyPanel( + String titleFrom, + String titleTo, + double from, + double to, + int width, + BlurHandler handler, + String labelOrientation + ) { + super(); + + fromItem = new FloatItem(FIELD_FROM); + toItem = new FloatItem(FIELD_TO); + stepItem = new FloatItem(FIELD_WIDTH); + + fromItem.addBlurHandler(handler); + toItem.addBlurHandler(handler); + + NumberFormat nf = NumberFormat.getDecimalFormat(); + + fromItem.setValue(nf.format(from)); + toItem.setValue(nf.format(to)); + + StaticTextItem fromText = new StaticTextItem("staticFrom"); + fromText.setValue(titleFrom); + fromText.setShowTitle(false); + fromItem.setShowTitle(false); + + StaticTextItem toText = new StaticTextItem("staticTo"); + toText.setValue(titleTo); + toText.setShowTitle(false); + toItem.setShowTitle(false); + + int itemWidth = width / 4; + fromItem.setWidth(itemWidth); + fromText.setWidth(itemWidth); + toItem.setWidth(itemWidth); + toText.setWidth(itemWidth); + + if (labelOrientation.equals("right")) { + setFields(fromItem, fromText, toItem, toText); + } + else { + setFields(fromText, fromItem, toText, toItem); + } + + setFixedColWidths(false); + setNumCols(4); + setWidth(width); + setAlign(Alignment.CENTER); + } + + + @Override + public boolean validateForm() { + return validateForm(fromItem) && validateForm(toItem); + } + + + @Override + public double getStep() { + return -1; + } +}
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DoubleRangePanel.java Mon Sep 19 16:51:27 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DoubleRangePanel.java Wed Sep 21 12:54:27 2011 +0000 @@ -44,6 +44,10 @@ protected FloatItem stepItem; + public DoubleRangePanel() { + } + + /** * Creates a new form with a single input field that displays an array of * double values.
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java Mon Sep 19 16:51:27 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java Wed Sep 21 12:54:27 2011 +0000 @@ -24,6 +24,9 @@ else if (uiProvider.equals("distance_panel")) { return new DistancePanel(); } + else if (uiProvider.equals("distance_only_panel")) { + return new DistanceOnlyPanel(); + } else if (uiProvider.equals("waterlevel_ground_panel")) { return new WaterlevelGroundPanel(); }