# HG changeset patch # User Ingo Weinzierl # Date 1325170518 0 # Node ID 00e429e6420cbb411a6eb904c99ba25e1ba858f2 # Parent cb5ab84505b72dae6ebdddbd5de96e195f6cc4ef Made WQInputPanel able to distinguish between a 'Q at Gauge' and 'Free Q'. flys-client/trunk@3556 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r cb5ab84505b7 -r 00e429e6420c flys-client/ChangeLog --- a/flys-client/ChangeLog Tue Dec 27 11:13:05 2011 +0000 +++ b/flys-client/ChangeLog Thu Dec 29 14:55:18 2011 +0000 @@ -1,3 +1,15 @@ +2011-12-29 Ingo Weinzierl + + * src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java: + Introduced fields and methods to support free Q values. This panel now + has the cases: + 1) W array input + 2) W range input + 3) Q array input + 4) Q range input + 5) Q free array input + 6) Q free range input + 2011-12-27 Ingo Weinzierl * src/main/java/de/intevation/flys/client/client/ui/chart/ChartToolbar.java: diff -r cb5ab84505b7 -r 00e429e6420c 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 Tue Dec 27 11:13:05 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java Thu Dec 29 14:55:18 2011 +0000 @@ -98,12 +98,18 @@ /** The min values for the 'from' property in the Q-Range input mode.*/ protected double minQ; + /** The min value for the 'from' property in the free Q-Range input mode.*/ + protected double minQFree; + /** The max values for the 'from' property in the W-Range input mode.*/ protected double maxW; /** The max values for the 'from' property in the Q-Range input mode.*/ protected double maxQ; + /** The max value for the 'from' property in the free Q-Range input mode.*/ + protected double maxQFree; + /** The 'from' value entered in the range W mode.*/ protected double fromW; @@ -119,27 +125,45 @@ /** 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 '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 '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 values entered in the single Q mode.*/ protected double[] valuesQ; + /** The values entered in the single free Q mode.*/ + protected double[] valuesQFree; + /** The input panel for W values*/ protected DoubleArrayPanel wArrayPanel; /** The input panel for q values*/ protected DoubleArrayPanel qArrayPanel; + /** The input panel for free q values*/ + protected DoubleArrayPanel qFreeArrayPanel; + /** The input panel for w range*/ protected DoubleRangePanel wRangePanel; /** The input panel for q range*/ protected DoubleRangePanel qRangePanel; + /** The input panel for free q range*/ + protected DoubleRangePanel qFreeRangePanel; + protected QDTable qdTable; protected WTable wTable; @@ -333,12 +357,15 @@ Data t = getData(list.getAll(), "wq_to"); Data s = getData(list.getAll(), "wq_step"); - DataItem fQItem = getDataItem(f.getItems(), "minQ"); - DataItem fWItem = getDataItem(f.getItems(), "minW"); - DataItem tQItem = getDataItem(t.getItems(), "maxQ"); - DataItem tWItem = getDataItem(t.getItems(), "maxW"); - DataItem sQItem = getDataItem(s.getItems(), "stepQ"); - DataItem sWItem = getDataItem(s.getItems(), "stepW"); + DataItem fQItem = getDataItem(f.getItems(), "minQ"); + DataItem fWItem = getDataItem(f.getItems(), "minW"); + DataItem tQItem = getDataItem(t.getItems(), "maxQ"); + DataItem tWItem = getDataItem(t.getItems(), "maxW"); + DataItem sQItem = getDataItem(s.getItems(), "stepQ"); + DataItem sWItem = getDataItem(s.getItems(), "stepW"); + DataItem fQFItem = getDataItem(f.getItems(), "minQFree"); + DataItem tQFItem = getDataItem(t.getItems(), "maxQFree"); + DataItem sQFItem = getDataItem(s.getItems(), "stepQFree"); minW = Double.valueOf(fWItem.getStringValue()); maxW = Double.valueOf(tWItem.getStringValue()); @@ -348,6 +375,10 @@ maxQ = Double.valueOf(tQItem.getStringValue()); stepQ = Double.valueOf(sQItem.getStringValue()); + minQFree = Double.valueOf(fQFItem.getStringValue()); + maxQFree = Double.valueOf(tQFItem.getStringValue()); + stepQFree = Double.valueOf(sQFItem.getStringValue()); + this.fromW = minW; this.toW = maxW; this.stepW = stepW; @@ -355,6 +386,10 @@ this.fromQ = minQ; this.toQ = maxQ; this.stepQ = stepQ; + + this.fromQFree = minQFree; + this.toQFree = maxQFree; + this.stepQFree = stepQFree; } @@ -661,6 +696,9 @@ if (isWMode()) { return validateRange(wRangePanel, minW, maxW); } + else if (isQFree()) { + return validateRange(qFreeRangePanel, minQFree, maxQFree); + } else { return validateRange(qRangePanel, minQ, maxQ); } @@ -671,6 +709,9 @@ if (isWMode()) { return validateSingle(wArrayPanel, minW, maxW); } + else if (isQFree()) { + return validateSingle(qFreeArrayPanel, minQFree, maxQFree); + } else { return validateSingle(qArrayPanel, minQ, maxQ); } @@ -773,6 +814,9 @@ if (isWMode()) { saveSingleWValues(form); } + else if (isQFree()) { + saveSingleQFreeValues(form); + } else { saveSingleQValues(form); } @@ -788,6 +832,9 @@ if (isWMode()) { saveRangeWValues(form); } + else if (isQFree()) { + saveRangeQFreeValues(form); + } else { saveRangeQValues(form); } @@ -968,7 +1015,15 @@ protected double[] getFinalSingle() { boolean wMode = isWMode(); - return wMode ? getSingleW() : getSingleQ(); + if (isWMode()) { + return getSingleW(); + } + else if (isQFree()) { + return getSingleQFree(); + } + else { + return getSingleQ(); + } } @@ -982,13 +1037,30 @@ boolean rangeMode = isRangeMode(); if (rangeMode) { - return wMode ? getFromW() : getFromQ(); - + if (wMode) { + return getFromW(); + } + else if (isQFree()) { + return getFromQFree(); + } + else { + return getFromQ(); + } } else { - double[] values = wMode ? getSingleW() : getSingleQ(); - double value = Double.MAX_VALUE; + double[] values = null; + if (wMode) { + values = getSingleW(); + } + else if (isQFree()) { + values = getSingleQFree(); + } + else { + values = getSingleQ(); + } + + double value = Double.MAX_VALUE; for (double v: values) { value = value < v ? value : v; } @@ -1008,13 +1080,30 @@ boolean rangeMode = isRangeMode(); if (rangeMode) { - return wMode ? getToW() : getToQ(); - + if (wMode) { + return getToW(); + } + else if (isQFree()) { + return getToQFree(); + } + else { + return getToQ(); + } } else { - double[] values = wMode ? getSingleW() : getSingleQ(); - double value = Double.MIN_VALUE; + double[] values = null; + if (wMode) { + values = getSingleW(); + } + else if (isQFree()) { + values = getSingleQFree(); + } + else { + values = getSingleQ(); + } + + double value = Double.MIN_VALUE; for (double v: values) { value = value > v ? value : v; } @@ -1034,7 +1123,15 @@ boolean rangeMode = isRangeMode(); if (rangeMode) { - return wMode ? getStepW() : getStepQ(); + if (wMode) { + return getStepW(); + } + else if (isQFree()) { + return getStepQFree(); + } + else { + return getStepQ(); + } } else { // we have no field to enter the 'step' attribute in the @@ -1100,8 +1197,6 @@ } else { qdTable.showIconFields(); - double[] empty = {}; - valuesQ = empty; } updatePanels(wqMode, inputMode); @@ -1137,6 +1232,31 @@ tabs.selectTab(0); } + else if (wqMode.equals(FIELD_WQ_Q)) { + if (inputMode.equals(FIELD_MODE_SINGLE)) { + // Single Q mode + double[] values = getSingleQFree(); + + qFreeArrayPanel = new DoubleArrayPanel( + MESSAGE.unitQSingle(), values, this); + container.addMember(qFreeArrayPanel); + } + else { + // Range Q mode + double from = getFromQFree(); + double to = getToQFree(); + double step = getStepQFree(); + + qFreeRangePanel = new DoubleRangePanel( + MESSAGE.unitQFrom(), MESSAGE.unitQTo(), MESSAGE.unitQStep(), + from, to, step, + 250, + this); + container.addMember(qFreeRangePanel); + } + + tabs.selectTab(1); + } else { if (inputMode.equals(FIELD_MODE_SINGLE)) { // Single Q mode @@ -1187,6 +1307,16 @@ saveRangeWValue(p, item); } } + else if (wqMode.equals(FIELD_WQ_Q)) { + if (inputMode.equals(FIELD_MODE_SINGLE)) { + DoubleArrayPanel p = (DoubleArrayPanel) form; + saveSingleQFreeValue(p, item); + } + else { + DoubleRangePanel p = (DoubleRangePanel) form; + saveRangeQFreeValue(p, item); + } + } else { if (inputMode.equals(FIELD_MODE_SINGLE)) { DoubleArrayPanel p = (DoubleArrayPanel) form; @@ -1222,6 +1352,17 @@ } + protected void saveSingleQFreeValues(DoubleArrayPanel p) { + FormItem[] formItems = p.getFields(); + + for (FormItem item: formItems) { + if (item.getFieldName().equals(DoubleArrayPanel.FIELD_NAME)) { + saveSingleQFreeValue(p, item); + } + } + } + + protected void saveSingleWValue(DoubleArrayPanel p, FormItem item) { if (p.validateForm(item)) { setSingleW(p.getInputValues(item)); @@ -1236,6 +1377,13 @@ } + protected void saveSingleQFreeValue(DoubleArrayPanel p, FormItem item) { + if (p.validateForm(item)) { + setSingleQFree(p.getInputValues(item)); + } + } + + protected void saveRangeWValues(DoubleRangePanel p) { FormItem[] formItems = p.getFields(); @@ -1254,6 +1402,15 @@ } + protected void saveRangeQFreeValues(DoubleRangePanel p) { + FormItem[] formItems = p.getFields(); + + for (FormItem item: formItems) { + saveRangeQFreeValue(p, item); + } + } + + protected void saveRangeWValue(DoubleRangePanel p, FormItem item) { if (p.validateForm(item)) { setFromW(p.getFrom()); @@ -1272,46 +1429,95 @@ } + protected void saveRangeQFreeValue(DoubleRangePanel p, FormItem item) { + if (p.validateForm(item)) { + setFromQFree(p.getFrom()); + setToQFree(p.getTo()); + setStepQFree(p.getStep()); + } + } + + protected double[] getSingleQ() { return valuesQ; } + protected double[] getSingleQFree() { + return valuesQFree; + } + + protected void setSingleQ(double[] values) { valuesQ = values; } + protected void setSingleQFree(double[] values) { + valuesQFree = values; + } + + protected double getFromQ() { return fromQ; } + protected double getFromQFree() { + return fromQFree; + } + + protected void setFromQ(double fromQ) { this.fromQ = fromQ; } + protected void setFromQFree(double fromQ) { + this.fromQFree = fromQ; + } + + protected double getToQ() { return toQ; } + protected double getToQFree() { + return toQFree; + } + + protected void setToQ(double toQ) { this.toQ = toQ; } + protected void setToQFree(double toQ) { + this.toQFree = toQ; + } + + protected double getStepQ() { return stepQ; } + protected double getStepQFree() { + return stepQFree; + } + + protected void setStepQ(double stepQ) { this.stepQ = stepQ; } + protected void setStepQFree(double stepQ) { + this.stepQFree = stepQ; + } + + protected double[] getSingleW() { return valuesW; }