comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java @ 1485:00e429e6420c

Made WQInputPanel able to distinguish between a 'Q at Gauge' and 'Free Q'. flys-client/trunk@3556 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 29 Dec 2011 14:55:18 +0000
parents 149f70bcbb96
children 15b4bc8eede0
comparison
equal deleted inserted replaced
1484:cb5ab84505b7 1485:00e429e6420c
96 protected double minW; 96 protected double minW;
97 97
98 /** The min values for the 'from' property in the Q-Range input mode.*/ 98 /** The min values for the 'from' property in the Q-Range input mode.*/
99 protected double minQ; 99 protected double minQ;
100 100
101 /** The min value for the 'from' property in the free Q-Range input mode.*/
102 protected double minQFree;
103
101 /** The max values for the 'from' property in the W-Range input mode.*/ 104 /** The max values for the 'from' property in the W-Range input mode.*/
102 protected double maxW; 105 protected double maxW;
103 106
104 /** The max values for the 'from' property in the Q-Range input mode.*/ 107 /** The max values for the 'from' property in the Q-Range input mode.*/
105 protected double maxQ; 108 protected double maxQ;
106 109
110 /** The max value for the 'from' property in the free Q-Range input mode.*/
111 protected double maxQFree;
112
107 /** The 'from' value entered in the range W mode.*/ 113 /** The 'from' value entered in the range W mode.*/
108 protected double fromW; 114 protected double fromW;
109 115
110 /** The 'to' value entered in the range W mode.*/ 116 /** The 'to' value entered in the range W mode.*/
111 protected double toW; 117 protected double toW;
117 protected double[] valuesW; 123 protected double[] valuesW;
118 124
119 /** The 'from' value entered in the range Q mode.*/ 125 /** The 'from' value entered in the range Q mode.*/
120 protected double fromQ; 126 protected double fromQ;
121 127
128 /** The 'from' value entered in the range free Q mode.*/
129 protected double fromQFree;
130
122 /** The 'to' value entered in the range Q mode.*/ 131 /** The 'to' value entered in the range Q mode.*/
123 protected double toQ; 132 protected double toQ;
124 133
134 /** The 'to' value entered in the range free Q mode.*/
135 protected double toQFree;
136
125 /** The 'step' value entered in the range Q mode.*/ 137 /** The 'step' value entered in the range Q mode.*/
126 protected double stepQ; 138 protected double stepQ;
127 139
140 /** The 'step' value entered in the range free Q mode.*/
141 protected double stepQFree;
142
128 /** The values entered in the single Q mode.*/ 143 /** The values entered in the single Q mode.*/
129 protected double[] valuesQ; 144 protected double[] valuesQ;
130 145
146 /** The values entered in the single free Q mode.*/
147 protected double[] valuesQFree;
148
131 /** The input panel for W values*/ 149 /** The input panel for W values*/
132 protected DoubleArrayPanel wArrayPanel; 150 protected DoubleArrayPanel wArrayPanel;
133 151
134 /** The input panel for q values*/ 152 /** The input panel for q values*/
135 protected DoubleArrayPanel qArrayPanel; 153 protected DoubleArrayPanel qArrayPanel;
136 154
155 /** The input panel for free q values*/
156 protected DoubleArrayPanel qFreeArrayPanel;
157
137 /** The input panel for w range*/ 158 /** The input panel for w range*/
138 protected DoubleRangePanel wRangePanel; 159 protected DoubleRangePanel wRangePanel;
139 160
140 /** The input panel for q range*/ 161 /** The input panel for q range*/
141 protected DoubleRangePanel qRangePanel; 162 protected DoubleRangePanel qRangePanel;
163
164 /** The input panel for free q range*/
165 protected DoubleRangePanel qFreeRangePanel;
142 166
143 protected QDTable qdTable; 167 protected QDTable qdTable;
144 168
145 protected WTable wTable; 169 protected WTable wTable;
146 170
331 protected void initDefaults(DataList list) { 355 protected void initDefaults(DataList list) {
332 Data f = getData(list.getAll(), "wq_from"); 356 Data f = getData(list.getAll(), "wq_from");
333 Data t = getData(list.getAll(), "wq_to"); 357 Data t = getData(list.getAll(), "wq_to");
334 Data s = getData(list.getAll(), "wq_step"); 358 Data s = getData(list.getAll(), "wq_step");
335 359
336 DataItem fQItem = getDataItem(f.getItems(), "minQ"); 360 DataItem fQItem = getDataItem(f.getItems(), "minQ");
337 DataItem fWItem = getDataItem(f.getItems(), "minW"); 361 DataItem fWItem = getDataItem(f.getItems(), "minW");
338 DataItem tQItem = getDataItem(t.getItems(), "maxQ"); 362 DataItem tQItem = getDataItem(t.getItems(), "maxQ");
339 DataItem tWItem = getDataItem(t.getItems(), "maxW"); 363 DataItem tWItem = getDataItem(t.getItems(), "maxW");
340 DataItem sQItem = getDataItem(s.getItems(), "stepQ"); 364 DataItem sQItem = getDataItem(s.getItems(), "stepQ");
341 DataItem sWItem = getDataItem(s.getItems(), "stepW"); 365 DataItem sWItem = getDataItem(s.getItems(), "stepW");
366 DataItem fQFItem = getDataItem(f.getItems(), "minQFree");
367 DataItem tQFItem = getDataItem(t.getItems(), "maxQFree");
368 DataItem sQFItem = getDataItem(s.getItems(), "stepQFree");
342 369
343 minW = Double.valueOf(fWItem.getStringValue()); 370 minW = Double.valueOf(fWItem.getStringValue());
344 maxW = Double.valueOf(tWItem.getStringValue()); 371 maxW = Double.valueOf(tWItem.getStringValue());
345 stepW = Double.valueOf(sWItem.getStringValue()); 372 stepW = Double.valueOf(sWItem.getStringValue());
346 373
347 minQ = Double.valueOf(fQItem.getStringValue()); 374 minQ = Double.valueOf(fQItem.getStringValue());
348 maxQ = Double.valueOf(tQItem.getStringValue()); 375 maxQ = Double.valueOf(tQItem.getStringValue());
349 stepQ = Double.valueOf(sQItem.getStringValue()); 376 stepQ = Double.valueOf(sQItem.getStringValue());
350 377
378 minQFree = Double.valueOf(fQFItem.getStringValue());
379 maxQFree = Double.valueOf(tQFItem.getStringValue());
380 stepQFree = Double.valueOf(sQFItem.getStringValue());
381
351 this.fromW = minW; 382 this.fromW = minW;
352 this.toW = maxW; 383 this.toW = maxW;
353 this.stepW = stepW; 384 this.stepW = stepW;
354 385
355 this.fromQ = minQ; 386 this.fromQ = minQ;
356 this.toQ = maxQ; 387 this.toQ = maxQ;
357 this.stepQ = stepQ; 388 this.stepQ = stepQ;
389
390 this.fromQFree = minQFree;
391 this.toQFree = maxQFree;
392 this.stepQFree = stepQFree;
358 } 393 }
359 394
360 395
361 /** 396 /**
362 * Initializes the form items with former inserted user data. 397 * Initializes the form items with former inserted user data.
659 694
660 protected List<String> validateRangeValues() { 695 protected List<String> validateRangeValues() {
661 if (isWMode()) { 696 if (isWMode()) {
662 return validateRange(wRangePanel, minW, maxW); 697 return validateRange(wRangePanel, minW, maxW);
663 } 698 }
699 else if (isQFree()) {
700 return validateRange(qFreeRangePanel, minQFree, maxQFree);
701 }
664 else { 702 else {
665 return validateRange(qRangePanel, minQ, maxQ); 703 return validateRange(qRangePanel, minQ, maxQ);
666 } 704 }
667 } 705 }
668 706
669 707
670 protected List<String> validateSingleValues() { 708 protected List<String> validateSingleValues() {
671 if (isWMode()) { 709 if (isWMode()) {
672 return validateSingle(wArrayPanel, minW, maxW); 710 return validateSingle(wArrayPanel, minW, maxW);
711 }
712 else if (isQFree()) {
713 return validateSingle(qFreeArrayPanel, minQFree, maxQFree);
673 } 714 }
674 else { 715 else {
675 return validateSingle(qArrayPanel, minQ, maxQ); 716 return validateSingle(qArrayPanel, minQ, maxQ);
676 } 717 }
677 } 718 }
771 if (member instanceof DoubleArrayPanel) { 812 if (member instanceof DoubleArrayPanel) {
772 DoubleArrayPanel form = (DoubleArrayPanel) member; 813 DoubleArrayPanel form = (DoubleArrayPanel) member;
773 if (isWMode()) { 814 if (isWMode()) {
774 saveSingleWValues(form); 815 saveSingleWValues(form);
775 } 816 }
817 else if (isQFree()) {
818 saveSingleQFreeValues(form);
819 }
776 else { 820 else {
777 saveSingleQValues(form); 821 saveSingleQValues(form);
778 } 822 }
779 } 823 }
780 824
785 if (member instanceof DoubleRangePanel) { 829 if (member instanceof DoubleRangePanel) {
786 DoubleRangePanel form = (DoubleRangePanel) member; 830 DoubleRangePanel form = (DoubleRangePanel) member;
787 831
788 if (isWMode()) { 832 if (isWMode()) {
789 saveRangeWValues(form); 833 saveRangeWValues(form);
834 }
835 else if (isQFree()) {
836 saveRangeQFreeValues(form);
790 } 837 }
791 else { 838 else {
792 saveRangeQValues(form); 839 saveRangeQValues(form);
793 } 840 }
794 } 841 }
966 1013
967 1014
968 protected double[] getFinalSingle() { 1015 protected double[] getFinalSingle() {
969 boolean wMode = isWMode(); 1016 boolean wMode = isWMode();
970 1017
971 return wMode ? getSingleW() : getSingleQ(); 1018 if (isWMode()) {
1019 return getSingleW();
1020 }
1021 else if (isQFree()) {
1022 return getSingleQFree();
1023 }
1024 else {
1025 return getSingleQ();
1026 }
972 } 1027 }
973 1028
974 1029
975 /** 1030 /**
976 * Returns the value of 'from' depending on the selected input mode. 1031 * Returns the value of 'from' depending on the selected input mode.
980 protected double getFinalFrom() { 1035 protected double getFinalFrom() {
981 boolean wMode = isWMode(); 1036 boolean wMode = isWMode();
982 boolean rangeMode = isRangeMode(); 1037 boolean rangeMode = isRangeMode();
983 1038
984 if (rangeMode) { 1039 if (rangeMode) {
985 return wMode ? getFromW() : getFromQ(); 1040 if (wMode) {
986 1041 return getFromW();
1042 }
1043 else if (isQFree()) {
1044 return getFromQFree();
1045 }
1046 else {
1047 return getFromQ();
1048 }
987 } 1049 }
988 else { 1050 else {
989 double[] values = wMode ? getSingleW() : getSingleQ(); 1051 double[] values = null;
990 double value = Double.MAX_VALUE; 1052
991 1053 if (wMode) {
1054 values = getSingleW();
1055 }
1056 else if (isQFree()) {
1057 values = getSingleQFree();
1058 }
1059 else {
1060 values = getSingleQ();
1061 }
1062
1063 double value = Double.MAX_VALUE;
992 for (double v: values) { 1064 for (double v: values) {
993 value = value < v ? value : v; 1065 value = value < v ? value : v;
994 } 1066 }
995 1067
996 return value; 1068 return value;
1006 protected double getFinalTo() { 1078 protected double getFinalTo() {
1007 boolean wMode = isWMode(); 1079 boolean wMode = isWMode();
1008 boolean rangeMode = isRangeMode(); 1080 boolean rangeMode = isRangeMode();
1009 1081
1010 if (rangeMode) { 1082 if (rangeMode) {
1011 return wMode ? getToW() : getToQ(); 1083 if (wMode) {
1012 1084 return getToW();
1085 }
1086 else if (isQFree()) {
1087 return getToQFree();
1088 }
1089 else {
1090 return getToQ();
1091 }
1013 } 1092 }
1014 else { 1093 else {
1015 double[] values = wMode ? getSingleW() : getSingleQ(); 1094 double[] values = null;
1016 double value = Double.MIN_VALUE; 1095
1017 1096 if (wMode) {
1097 values = getSingleW();
1098 }
1099 else if (isQFree()) {
1100 values = getSingleQFree();
1101 }
1102 else {
1103 values = getSingleQ();
1104 }
1105
1106 double value = Double.MIN_VALUE;
1018 for (double v: values) { 1107 for (double v: values) {
1019 value = value > v ? value : v; 1108 value = value > v ? value : v;
1020 } 1109 }
1021 1110
1022 return value; 1111 return value;
1032 protected double getFinalStep() { 1121 protected double getFinalStep() {
1033 boolean wMode = isWMode(); 1122 boolean wMode = isWMode();
1034 boolean rangeMode = isRangeMode(); 1123 boolean rangeMode = isRangeMode();
1035 1124
1036 if (rangeMode) { 1125 if (rangeMode) {
1037 return wMode ? getStepW() : getStepQ(); 1126 if (wMode) {
1127 return getStepW();
1128 }
1129 else if (isQFree()) {
1130 return getStepQFree();
1131 }
1132 else {
1133 return getStepQ();
1134 }
1038 } 1135 }
1039 else { 1136 else {
1040 // we have no field to enter the 'step' attribute in the 1137 // we have no field to enter the 'step' attribute in the
1041 // single mode 1138 // single mode
1042 return 0d; 1139 return 0d;
1098 if (wqMode.equals("Q")) { 1195 if (wqMode.equals("Q")) {
1099 qdTable.hideIconFields(); 1196 qdTable.hideIconFields();
1100 } 1197 }
1101 else { 1198 else {
1102 qdTable.showIconFields(); 1199 qdTable.showIconFields();
1103 double[] empty = {};
1104 valuesQ = empty;
1105 } 1200 }
1106 1201
1107 updatePanels(wqMode, inputMode); 1202 updatePanels(wqMode, inputMode);
1108 } 1203 }
1109 1204
1135 container.addMember(wRangePanel); 1230 container.addMember(wRangePanel);
1136 } 1231 }
1137 1232
1138 tabs.selectTab(0); 1233 tabs.selectTab(0);
1139 } 1234 }
1235 else if (wqMode.equals(FIELD_WQ_Q)) {
1236 if (inputMode.equals(FIELD_MODE_SINGLE)) {
1237 // Single Q mode
1238 double[] values = getSingleQFree();
1239
1240 qFreeArrayPanel = new DoubleArrayPanel(
1241 MESSAGE.unitQSingle(), values, this);
1242 container.addMember(qFreeArrayPanel);
1243 }
1244 else {
1245 // Range Q mode
1246 double from = getFromQFree();
1247 double to = getToQFree();
1248 double step = getStepQFree();
1249
1250 qFreeRangePanel = new DoubleRangePanel(
1251 MESSAGE.unitQFrom(), MESSAGE.unitQTo(), MESSAGE.unitQStep(),
1252 from, to, step,
1253 250,
1254 this);
1255 container.addMember(qFreeRangePanel);
1256 }
1257
1258 tabs.selectTab(1);
1259 }
1140 else { 1260 else {
1141 if (inputMode.equals(FIELD_MODE_SINGLE)) { 1261 if (inputMode.equals(FIELD_MODE_SINGLE)) {
1142 // Single Q mode 1262 // Single Q mode
1143 double[] values = getSingleQ(); 1263 double[] values = getSingleQ();
1144 1264
1185 else { 1305 else {
1186 DoubleRangePanel p = (DoubleRangePanel) form; 1306 DoubleRangePanel p = (DoubleRangePanel) form;
1187 saveRangeWValue(p, item); 1307 saveRangeWValue(p, item);
1188 } 1308 }
1189 } 1309 }
1310 else if (wqMode.equals(FIELD_WQ_Q)) {
1311 if (inputMode.equals(FIELD_MODE_SINGLE)) {
1312 DoubleArrayPanel p = (DoubleArrayPanel) form;
1313 saveSingleQFreeValue(p, item);
1314 }
1315 else {
1316 DoubleRangePanel p = (DoubleRangePanel) form;
1317 saveRangeQFreeValue(p, item);
1318 }
1319 }
1190 else { 1320 else {
1191 if (inputMode.equals(FIELD_MODE_SINGLE)) { 1321 if (inputMode.equals(FIELD_MODE_SINGLE)) {
1192 DoubleArrayPanel p = (DoubleArrayPanel) form; 1322 DoubleArrayPanel p = (DoubleArrayPanel) form;
1193 saveSingleQValue(p, item); 1323 saveSingleQValue(p, item);
1194 } 1324 }
1220 } 1350 }
1221 } 1351 }
1222 } 1352 }
1223 1353
1224 1354
1355 protected void saveSingleQFreeValues(DoubleArrayPanel p) {
1356 FormItem[] formItems = p.getFields();
1357
1358 for (FormItem item: formItems) {
1359 if (item.getFieldName().equals(DoubleArrayPanel.FIELD_NAME)) {
1360 saveSingleQFreeValue(p, item);
1361 }
1362 }
1363 }
1364
1365
1225 protected void saveSingleWValue(DoubleArrayPanel p, FormItem item) { 1366 protected void saveSingleWValue(DoubleArrayPanel p, FormItem item) {
1226 if (p.validateForm(item)) { 1367 if (p.validateForm(item)) {
1227 setSingleW(p.getInputValues(item)); 1368 setSingleW(p.getInputValues(item));
1228 } 1369 }
1229 } 1370 }
1234 setSingleQ(p.getInputValues(item)); 1375 setSingleQ(p.getInputValues(item));
1235 } 1376 }
1236 } 1377 }
1237 1378
1238 1379
1380 protected void saveSingleQFreeValue(DoubleArrayPanel p, FormItem item) {
1381 if (p.validateForm(item)) {
1382 setSingleQFree(p.getInputValues(item));
1383 }
1384 }
1385
1386
1239 protected void saveRangeWValues(DoubleRangePanel p) { 1387 protected void saveRangeWValues(DoubleRangePanel p) {
1240 FormItem[] formItems = p.getFields(); 1388 FormItem[] formItems = p.getFields();
1241 1389
1242 for (FormItem item: formItems) { 1390 for (FormItem item: formItems) {
1243 saveRangeWValue(p, item); 1391 saveRangeWValue(p, item);
1248 protected void saveRangeQValues(DoubleRangePanel p) { 1396 protected void saveRangeQValues(DoubleRangePanel p) {
1249 FormItem[] formItems = p.getFields(); 1397 FormItem[] formItems = p.getFields();
1250 1398
1251 for (FormItem item: formItems) { 1399 for (FormItem item: formItems) {
1252 saveRangeQValue(p, item); 1400 saveRangeQValue(p, item);
1401 }
1402 }
1403
1404
1405 protected void saveRangeQFreeValues(DoubleRangePanel p) {
1406 FormItem[] formItems = p.getFields();
1407
1408 for (FormItem item: formItems) {
1409 saveRangeQFreeValue(p, item);
1253 } 1410 }
1254 } 1411 }
1255 1412
1256 1413
1257 protected void saveRangeWValue(DoubleRangePanel p, FormItem item) { 1414 protected void saveRangeWValue(DoubleRangePanel p, FormItem item) {
1270 setStepQ(p.getStep()); 1427 setStepQ(p.getStep());
1271 } 1428 }
1272 } 1429 }
1273 1430
1274 1431
1432 protected void saveRangeQFreeValue(DoubleRangePanel p, FormItem item) {
1433 if (p.validateForm(item)) {
1434 setFromQFree(p.getFrom());
1435 setToQFree(p.getTo());
1436 setStepQFree(p.getStep());
1437 }
1438 }
1439
1440
1275 protected double[] getSingleQ() { 1441 protected double[] getSingleQ() {
1276 return valuesQ; 1442 return valuesQ;
1277 } 1443 }
1278 1444
1279 1445
1446 protected double[] getSingleQFree() {
1447 return valuesQFree;
1448 }
1449
1450
1280 protected void setSingleQ(double[] values) { 1451 protected void setSingleQ(double[] values) {
1281 valuesQ = values; 1452 valuesQ = values;
1282 } 1453 }
1283 1454
1284 1455
1456 protected void setSingleQFree(double[] values) {
1457 valuesQFree = values;
1458 }
1459
1460
1285 protected double getFromQ() { 1461 protected double getFromQ() {
1286 return fromQ; 1462 return fromQ;
1287 } 1463 }
1288 1464
1289 1465
1466 protected double getFromQFree() {
1467 return fromQFree;
1468 }
1469
1470
1290 protected void setFromQ(double fromQ) { 1471 protected void setFromQ(double fromQ) {
1291 this.fromQ = fromQ; 1472 this.fromQ = fromQ;
1292 } 1473 }
1293 1474
1294 1475
1476 protected void setFromQFree(double fromQ) {
1477 this.fromQFree = fromQ;
1478 }
1479
1480
1295 protected double getToQ() { 1481 protected double getToQ() {
1296 return toQ; 1482 return toQ;
1297 } 1483 }
1298 1484
1299 1485
1486 protected double getToQFree() {
1487 return toQFree;
1488 }
1489
1490
1300 protected void setToQ(double toQ) { 1491 protected void setToQ(double toQ) {
1301 this.toQ = toQ; 1492 this.toQ = toQ;
1302 } 1493 }
1303 1494
1304 1495
1496 protected void setToQFree(double toQ) {
1497 this.toQFree = toQ;
1498 }
1499
1500
1305 protected double getStepQ() { 1501 protected double getStepQ() {
1306 return stepQ; 1502 return stepQ;
1307 } 1503 }
1308 1504
1309 1505
1506 protected double getStepQFree() {
1507 return stepQFree;
1508 }
1509
1510
1310 protected void setStepQ(double stepQ) { 1511 protected void setStepQ(double stepQ) {
1311 this.stepQ = stepQ; 1512 this.stepQ = stepQ;
1513 }
1514
1515
1516 protected void setStepQFree(double stepQ) {
1517 this.stepQFree = stepQ;
1312 } 1518 }
1313 1519
1314 1520
1315 protected double[] getSingleW() { 1521 protected double[] getSingleW() {
1316 return valuesW; 1522 return valuesW;

http://dive4elements.wald.intevation.org