# HG changeset patch # User Raimund Renkert # Date 1333616469 0 # Node ID 9fa513b7955ba5e57ac69ca9beaefb7166f17ecf # Parent 75d19d46c3cde2fcde904b832a221facd78be8de Issue 499. Completed the 'W free' input and validation. flys-client/trunk@4202 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 75d19d46c3cd -r 9fa513b7955b flys-client/ChangeLog --- a/flys-client/ChangeLog Wed Apr 04 13:31:05 2012 +0000 +++ b/flys-client/ChangeLog Thu Apr 05 09:01:09 2012 +0000 @@ -1,3 +1,11 @@ +2012-04-05 Raimund Renkert + + Issue 499. + + * src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java: + Added panels for 'W free' input. Added validation for 'W free' input + values. + 2012-04-04 Ingo Weinzierl * src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties, diff -r 75d19d46c3cd -r 9fa513b7955b flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java Wed Apr 04 13:31:05 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java Thu Apr 05 09:01:09 2012 +0000 @@ -104,6 +104,9 @@ /** The min value for the 'from' property in the free Q-Range input mode.*/ protected double minQFree; + /** The min value for the 'from' property in the free W-Range input mode.*/ + protected double minWFree; + /** The max values for the 'from' property in the W-Range input mode.*/ protected double maxW; @@ -113,6 +116,9 @@ /** The max value for the 'from' property in the free Q-Range input mode.*/ protected double maxQFree; + /** The max value for the 'from' property in the free W-Range input mode.*/ + protected double maxWFree; + /** The 'from' value entered in the range W mode.*/ protected double fromW; @@ -125,24 +131,36 @@ /** The values entered in the single W mode.*/ protected double[] valuesW; + /** The values entered in the single W mode.*/ + protected double[] valuesWFree; + /** The 'from' value entered in the range Q mode.*/ protected double fromQ; /** The 'from' value entered in the range free Q mode.*/ protected double fromQFree; + /** The 'from' value entered in the range free W mode.*/ + protected double fromWFree; + /** The 'to' value entered in the range Q mode.*/ protected double toQ; /** The 'to' value entered in the range free Q mode.*/ protected double toQFree; + /** The 'to' value entered in the range free W mode.*/ + protected double toWFree; + /** The 'step' value entered in the range Q mode.*/ protected double stepQ; /** The 'step' value entered in the range free Q mode.*/ protected double stepQFree; + /** The 'step' value entered in the range free W mode.*/ + protected double stepWFree; + /** The values entered in the single Q mode.*/ protected double[] valuesQ; @@ -158,6 +176,9 @@ /** The input panel for free q values*/ protected DoubleArrayPanel qFreeArrayPanel; + /** The input panel for free w values*/ + protected DoubleArrayPanel wFreeArrayPanel; + /** The input panel for w range*/ protected DoubleRangePanel wRangePanel; @@ -167,6 +188,9 @@ /** The input panel for free q range*/ protected DoubleRangePanel qFreeRangePanel; + /** The input panel for free w range*/ + protected DoubleRangePanel wFreeRangePanel; + protected QDTable qdTable; protected WTable wTable; @@ -324,7 +348,7 @@ String wqMode = null; if (!isQMode) { - wqMode = MESSAGE.wqW(); + wqMode = isFree ? MESSAGE.wqWFree() : MESSAGE.wqW(); } else { wqMode = isFree ? MESSAGE.wqQ() : MESSAGE.wqQGauge(); @@ -368,6 +392,9 @@ DataItem fQFItem = getDataItem(f.getItems(), "minQFree"); DataItem tQFItem = getDataItem(t.getItems(), "maxQFree"); DataItem sQFItem = getDataItem(s.getItems(), "stepQFree"); + DataItem fWFItem = getDataItem(f.getItems(), "minWFree"); + DataItem tWFItem = getDataItem(t.getItems(), "maxWFree"); + DataItem sWFItem = getDataItem(s.getItems(), "stepWFree"); minW = Double.valueOf(fWItem.getStringValue()); maxW = Double.valueOf(tWItem.getStringValue()); @@ -381,6 +408,10 @@ maxQFree = Double.valueOf(tQFItem.getStringValue()); stepQFree = Double.valueOf(sQFItem.getStringValue()); + minWFree = Double.valueOf(fWFItem.getStringValue()); + maxWFree = Double.valueOf(tWFItem.getStringValue()); + stepWFree = Double.valueOf(sWFItem.getStringValue()); + this.fromW = minW; this.toW = maxW; this.stepW = stepW; @@ -392,6 +423,10 @@ this.fromQFree = minQFree; this.toQFree = maxQFree; this.stepQFree = stepQFree; + + this.fromWFree = minWFree; + this.toWFree = maxWFree; + this.stepWFree = stepWFree; } @@ -696,13 +731,13 @@ protected List validateRangeValues() { - if (isWMode()) { - return validateRange(wRangePanel, minW, maxW); + if (isWFree()) { + return validateRange(wFreeRangePanel, minWFree, maxWFree); } else if (isQFree()) { return validateRange(qFreeRangePanel, minQFree, maxQFree); } - else if (isWFree()) { + else if (isWMode()) { return validateRange(wRangePanel, minW, maxW); } else { @@ -712,12 +747,11 @@ protected List validateSingleValues() { if (isWFree()) { - // FIXME: We need min W and max W of the start km of the range. - return validateSingle(wArrayPanel, 0, 100000); + return validateSingle(wFreeArrayPanel, minWFree, maxWFree); } else if (isWMode()) { - //return validateSingle(wArrayPanel, minW, maxW); - return validateSingle(wArrayPanel, 0, 100000); + return validateSingle(wArrayPanel, minW, maxW); + //return validateSingle(wArrayPanel, 0, 100000); } else if (isQFree()) { return validateSingle(qFreeArrayPanel, minQFree, maxQFree); @@ -837,7 +871,10 @@ Canvas member = container.getMember(0); if (member instanceof DoubleArrayPanel) { DoubleArrayPanel form = (DoubleArrayPanel) member; - if (isWMode()) { + if (isWFree()) { + saveSingleWFreeValues(form); + } + else if (isWMode()) { saveSingleWValues(form); } else if (isQFree()) { @@ -855,7 +892,10 @@ if (member instanceof DoubleRangePanel) { DoubleRangePanel form = (DoubleRangePanel) member; - if (isWMode()) { + if (isWFree()) { + saveRangeWFreeValues(form); + } + else if (isWMode()) { saveRangeWValues(form); } else if (isQFree()) { @@ -939,7 +979,7 @@ value = "true"; } else { - GWT.log("getData: FIELD_WQ_W"); + GWT.log("getData: FIELD_WQ_W || FIELD_WQ_W_FREE"); value = "false"; } @@ -1051,9 +1091,10 @@ protected double[] getFinalSingle() { - boolean wMode = isWMode(); - - if (isWMode()) { + if (isWFree()) { + return getSingleWFree(); + } + else if (isWMode()) { return getSingleW(); } else if (isQFree()) { @@ -1071,11 +1112,11 @@ * @return the value of 'from' depending on the selected input mode. */ protected double getFinalFrom() { - boolean wMode = isWMode(); - boolean rangeMode = isRangeMode(); - - if (rangeMode) { - if (wMode) { + if (isRangeMode()) { + if (isWFree()) { + return getFromWFree(); + } + else if (isWMode()) { return getFromW(); } else if (isQFree()) { @@ -1088,7 +1129,10 @@ else { double[] values = null; - if (wMode) { + if (isWFree()) { + values = getSingleWFree(); + } + else if (isWMode()) { values = getSingleW(); } else if (isQFree()) { @@ -1114,11 +1158,11 @@ * @return the value of 'to' depending on the selected input mode. */ protected double getFinalTo() { - boolean wMode = isWMode(); - boolean rangeMode = isRangeMode(); - - if (rangeMode) { - if (wMode) { + if (isRangeMode()) { + if (isWFree()) { + return getToWFree(); + } + else if (isWMode()) { return getToW(); } else if (isQFree()) { @@ -1131,7 +1175,10 @@ else { double[] values = null; - if (wMode) { + if (isWFree()) { + values = getSingleWFree(); + } + else if (isWMode()) { values = getSingleW(); } else if (isQFree()) { @@ -1157,11 +1204,11 @@ * @return the value of 'step' depending on the selected input mode. */ protected double getFinalStep() { - boolean wMode = isWMode(); - boolean rangeMode = isRangeMode(); - - if (rangeMode) { - if (wMode) { + if (isRangeMode()) { + if (isWFree()) { + return getStepWFree(); + } + else if (isWMode()) { return getStepW(); } else if (isQFree()) { @@ -1255,7 +1302,33 @@ protected void updatePanels(boolean isQ, boolean isFree, boolean isRange) { container.removeMembers(container.getMembers()); - if (!isQ) { + if (!isQ && isFree) { + if (!isRange) { + // Single W mode + double[] values = getSingleWFree(); + + wFreeArrayPanel = new DoubleArrayPanel( + MESSAGE.unitWSingle(), values, this); + + container.addMember(wFreeArrayPanel); + } + else { + // Range W mode + double from = getFromWFree(); + double to = getToWFree(); + double step = getStepWFree(); + + wFreeRangePanel = new DoubleRangePanel( + MESSAGE.unitWFrom(), MESSAGE.unitWTo(), MESSAGE.unitWStep(), + from, to, step, + 250, + this); + container.addMember(wFreeRangePanel); + } + + tabs.selectTab(0); + } + else if (!isQ) { if (!isRange) { // Single W mode double[] values = getSingleW(); @@ -1356,7 +1429,17 @@ saveRangeWValue(p, item); } } - else if (wqMode.equals(FIELD_WQ_Q)) { + else if (wqMode.equals(FIELD_WQ_W_FREE)) { + if (inputMode.equals(FIELD_MODE_SINGLE)) { + DoubleArrayPanel p = (DoubleArrayPanel) form; + saveSingleWFreeValue(p, item); + } + else { + DoubleRangePanel p = (DoubleRangePanel) form; + saveRangeWFreeValue(p, item); + } + } + else if (wqMode.equals(FIELD_WQ_Q_FREE)) { if (inputMode.equals(FIELD_MODE_SINGLE)) { DoubleArrayPanel p = (DoubleArrayPanel) form; saveSingleQFreeValue(p, item); @@ -1390,6 +1473,17 @@ } + protected void saveSingleWFreeValues(DoubleArrayPanel p) { + FormItem[] formItems = p.getFields(); + + for (FormItem item: formItems) { + if (item.getFieldName().equals(DoubleArrayPanel.FIELD_NAME)) { + saveSingleWFreeValue(p, item); + } + } + } + + protected void saveSingleQValues(DoubleArrayPanel p) { FormItem[] formItems = p.getFields(); @@ -1419,6 +1513,13 @@ } + protected void saveSingleWFreeValue(DoubleArrayPanel p, FormItem item) { + if (p.validateForm(item)) { + setSingleWFree(p.getInputValues(item)); + } + } + + protected void saveSingleQValue(DoubleArrayPanel p, FormItem item) { if (p.validateForm(item)) { setSingleQ(p.getInputValues(item)); @@ -1442,6 +1543,15 @@ } + protected void saveRangeWFreeValues(DoubleRangePanel p) { + FormItem[] formItems = p.getFields(); + + for (FormItem item: formItems) { + saveRangeWFreeValue(p, item); + } + } + + protected void saveRangeQValues(DoubleRangePanel p) { FormItem[] formItems = p.getFields(); @@ -1469,6 +1579,15 @@ } + protected void saveRangeWFreeValue(DoubleRangePanel p, FormItem item) { + if (p.validateForm()) { + setFromW(p.getFrom()); + setToW(p.getTo()); + setStepW(p.getStep()); + } + } + + protected void saveRangeQValue(DoubleRangePanel p, FormItem item) { if (p.validateForm()) { setFromQ(p.getFrom()); @@ -1566,46 +1685,69 @@ this.stepQFree = stepQ; } - protected double[] getSingleW() { return valuesW; } + protected double[] getSingleWFree() { + return valuesWFree; + } protected void setSingleW(double[] values) { valuesW = values; } + protected void setSingleWFree(double[] values) { + valuesWFree = values; + } protected double getFromW() { return fromW; } + protected double getFromWFree() { + return fromWFree; + } protected void setFromW(double fromW) { this.fromW = fromW; } + protected void setFromWFree(double fromW) { + this.fromW = fromW; + } protected double getToW() { return toW; } + protected double getToWFree() { + return toWFree; + } protected void setToW(double toW) { this.toW = toW; } + protected void setToWFree(double toW) { + this.toWFree = toW; + } protected double getStepW() { return stepW; } + protected double getStepWFree() { + return stepWFree; + } protected void setStepW(double stepW) { this.stepW = stepW; } + protected void setStepWFree(double stepW) { + this.stepWFree = stepW; + } /** * Determines the min and max kilometer value selected in a former state. A