comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java @ 2428:f405eb46762e

Refactored the wq input data fields. flys-client/trunk@4066 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 16 Feb 2012 12:39:11 +0000
parents 3b1a7f34e19b
children 61c8e517671e
comparison
equal deleted inserted replaced
2427:29e28bb404ec 2428:f405eb46762e
70 70
71 /** The constant field value for Q input mode.*/ 71 /** The constant field value for Q input mode.*/
72 public static final String FIELD_WQ_Q = "Q"; 72 public static final String FIELD_WQ_Q = "Q";
73 73
74 /** The constant field value for Q input mode.*/ 74 /** The constant field value for Q input mode.*/
75 public static final String FIELD_WQ_Q_GAUGE = "Q_GAUGE"; 75 public static final String FIELD_WQ_Q_FREE = "QFREE";
76 76
77 /** The constant field name for choosing single values or range.*/ 77 /** The constant field name for choosing single values or range.*/
78 public static final String FIELD_MODE = "mode"; 78 public static final String FIELD_MODE = "mode";
79 79
80 /** The constant field value for single input mode.*/ 80 /** The constant field value for single input mode.*/
283 Data dTo = getData(items, "wq_to"); 283 Data dTo = getData(items, "wq_to");
284 Data dStep = getData(items, "wq_step"); 284 Data dStep = getData(items, "wq_step");
285 285
286 DataItem[] mode = dMode.getItems(); 286 DataItem[] mode = dMode.getItems();
287 String strMode = mode[0].getStringValue(); 287 String strMode = mode[0].getStringValue();
288 boolean wMode = strMode.equals(FIELD_WQ_W); 288 boolean isQMode = Boolean.valueOf(strMode);
289 289
290 DataItem[] free = dFree.getItems(); 290 DataItem[] free = dFree.getItems();
291 String strFree = free[0].getStringValue(); 291 String strFree = free[0].getStringValue();
292 boolean isFree = Boolean.valueOf(strFree); 292 boolean isFree = Boolean.valueOf(strFree);
293 293
298 label.setWidth("200px"); 298 label.setWidth("200px");
299 299
300 VLayout vLabel = null; 300 VLayout vLabel = null;
301 301
302 DataItem[] selItem = dSelection.getItems(); 302 DataItem[] selItem = dSelection.getItems();
303 String sel = selItem != null 303 boolean isRange = selItem != null
304 ? selItem[0].getStringValue() 304 ? Boolean.valueOf(selItem[0].getStringValue())
305 : ""; 305 : false;
306 306
307 if (sel.equals("single")) { 307 if (!isRange) {
308 DataItem[] single = dSingle.getItems(); 308 DataItem[] single = dSingle.getItems();
309 309
310 vLabel = wMode 310 vLabel = !isQMode
311 ? createWString(single[0]) 311 ? createWString(single[0])
312 : createQString(single[0]); 312 : createQString(single[0]);
313 } 313 }
314 else { 314 else {
315 DataItem[] from = dFrom.getItems(); 315 DataItem[] from = dFrom.getItems();
316 DataItem[] to = dTo.getItems(); 316 DataItem[] to = dTo.getItems();
317 DataItem[] step = dStep.getItems(); 317 DataItem[] step = dStep.getItems();
318 318
319 vLabel = wMode 319 vLabel = !isQMode
320 ? createWString(from[0], to[0], step[0]) 320 ? createWString(from[0], to[0], step[0])
321 : createQString(from[0], to[0], step[0]); 321 : createQString(from[0], to[0], step[0]);
322 } 322 }
323 323
324 VLayout selectedLayout = new VLayout(); 324 VLayout selectedLayout = new VLayout();
325 String wqMode = null; 325 String wqMode = null;
326 326
327 if (wMode) { 327 if (!isQMode) {
328 wqMode = MESSAGE.wqW(); 328 wqMode = MESSAGE.wqW();
329 } 329 }
330 else { 330 else {
331 wqMode = isFree ? MESSAGE.wqQ() : MESSAGE.wqQGauge(); 331 wqMode = isFree ? MESSAGE.wqQ() : MESSAGE.wqQGauge();
332 } 332 }
404 protected void initUserDefaults(DataList list) { 404 protected void initUserDefaults(DataList list) {
405 List<Data> allData = list.getAll(); 405 List<Data> allData = list.getAll();
406 406
407 Data m = getData(allData, "wq_mode"); 407 Data m = getData(allData, "wq_mode");
408 DataItem modeItem = m != null ? m.getDefault() : null; 408 DataItem modeItem = m != null ? m.getDefault() : null;
409 String theMode = modeItem != null 409 boolean isQ = modeItem != null
410 ? modeItem.getStringValue() 410 ? Boolean.valueOf(modeItem.getStringValue())
411 : ""; 411 : false;
412 412
413 Data f = getData(allData, "wq_free"); 413 Data f = getData(allData, "wq_free");
414 DataItem freeItem = f != null ? f.getDefault() : null; 414 DataItem freeItem = f != null ? f.getDefault() : null;
415 String theFree = freeItem != null 415 boolean isFree = freeItem != null
416 ? freeItem.getStringValue() 416 ? Boolean.valueOf(freeItem.getStringValue())
417 : null; 417 : false;
418 418
419 Data s = getData(allData, "wq_selection"); 419 Data s = getData(allData, "wq_selection");
420 DataItem sI = s != null ? s.getDefault() : null; 420 DataItem sI = s != null ? s.getDefault() : null;
421 String theSelection = sI != null ? sI.getStringValue() : null; 421 boolean isRange = sI != null
422 422 ? Boolean.valueOf(sI.getStringValue())
423 if (theMode == null || theMode.length() == 0) { 423 : false;
424 return; 424
425 } 425 initUserSingleValues(list, isQ);
426 426 initUserRangeValues(list, isQ);
427 boolean isW = theMode.equals(FIELD_WQ_W); 427
428 boolean isFree = Boolean.valueOf(theFree); 428 if (isQ) {
429 boolean isWFree = theMode.equals(FIELD_WQ_W_FREE); 429 modes.setValue(FIELD_WQ, isQ);
430
431 initUserSingleValues(list, theMode);
432 initUserRangeValues(list, theMode);
433
434 if (isW || isWFree) {
435 modes.setValue(FIELD_WQ, theMode);
436 } 430 }
437 else { 431 else {
438 modes.setValue(FIELD_WQ, isFree ? FIELD_WQ_Q : FIELD_WQ_Q_GAUGE); 432 modes.setValue(FIELD_WQ, isFree ? FIELD_WQ_Q_FREE : FIELD_WQ_Q);
439 } 433 }
440 434
441 if (theSelection != null || theSelection.length() > 0) { 435 if(isRange) {
442 modes.setValue(FIELD_MODE, theSelection); 436 modes.setValue(FIELD_MODE, FIELD_MODE_RANGE);
443 updatePanels(theMode, theSelection); 437 }
444 } 438 else {
439 modes.setValue(FIELD_MODE, FIELD_MODE_SINGLE);
440 }
441 updatePanels(isQ, isFree, isRange);
445 } 442 }
446 443
447 444
448 /** 445 /**
449 * Initializes the single values of W or Q from DataList. 446 * Initializes the single values of W or Q from DataList.
450 * 447 *
451 * @param list The DataList that contains the 'wq_single' object. 448 * @param list The DataList that contains the 'wq_single' object.
452 * @param theMode The W or Q mode. 449 * @param theMode The W or Q mode.
453 */ 450 */
454 protected void initUserSingleValues(DataList list, String theMode) { 451 protected void initUserSingleValues(DataList list, boolean isQ) {
455 List<Data> allData = list.getAll(); 452 List<Data> allData = list.getAll();
453
456 454
457 Data s = getData(allData, "wq_single"); 455 Data s = getData(allData, "wq_single");
458 DataItem i = s != null ? s.getDefault() : null; 456 DataItem i = s != null ? s.getDefault() : null;
457 GWT.log("init values: " + i.getStringValue());
459 458
460 if (i != null) { 459 if (i != null) {
461 String value = i.getStringValue(); 460 String value = i.getStringValue();
462 String[] split = value.split(" "); 461 String[] split = value.split(" ");
463 462
472 catch (NumberFormatException nfe) { 471 catch (NumberFormatException nfe) {
473 // nothing to do 472 // nothing to do
474 } 473 }
475 } 474 }
476 475
477 if (theMode.equals("W")) { 476 if (!isQ) {
478 setSingleW(values); 477 setSingleW(values);
479 } 478 }
480 else { 479 else {
481 setSingleQ(values); 480 setSingleQ(values);
482 } 481 }
488 * Initializes the range values of W or Q from DataList. 487 * Initializes the range values of W or Q from DataList.
489 * 488 *
490 * @param list The DataList that contains the 'wq_single' object. 489 * @param list The DataList that contains the 'wq_single' object.
491 * @param theMode The W or Q mode. 490 * @param theMode The W or Q mode.
492 */ 491 */
493 protected void initUserRangeValues(DataList list, String theMode) { 492 protected void initUserRangeValues(DataList list, boolean isQ) {
494 List<Data> allData = list.getAll(); 493 List<Data> allData = list.getAll();
495 494
496 // init range mode values 495 // init range mode values
497 Data f = getData(allData, "wq_from"); 496 Data f = getData(allData, "wq_from");
498 Data t = getData(allData, "wq_to"); 497 Data t = getData(allData, "wq_to");
510 try { 509 try {
511 double from = Double.valueOf(fS); 510 double from = Double.valueOf(fS);
512 double to = Double.valueOf(tS); 511 double to = Double.valueOf(tS);
513 double step = Double.valueOf(sS); 512 double step = Double.valueOf(sS);
514 513
515 if (theMode.equals("W")) { 514 if (!isQ) {
516 setWRangeValues(from, to, step); 515 setWRangeValues(from, to, step);
517 } 516 }
518 else { 517 else {
519 setQRangeValues(from, to, step); 518 setQRangeValues(from, to, step);
520 } 519 }
657 mode.setWidth(WIDTH_LEFT_LOWER); 656 mode.setWidth(WIDTH_LEFT_LOWER);
658 657
659 LinkedHashMap wqValues = new LinkedHashMap(); 658 LinkedHashMap wqValues = new LinkedHashMap();
660 wqValues.put(FIELD_WQ_W, MESSAGE.wqW()); 659 wqValues.put(FIELD_WQ_W, MESSAGE.wqW());
661 wqValues.put(FIELD_WQ_W_FREE, MESSAGE.wqWFree()); 660 wqValues.put(FIELD_WQ_W_FREE, MESSAGE.wqWFree());
662 wqValues.put(FIELD_WQ_Q, MESSAGE.wqQ()); 661 wqValues.put(FIELD_WQ_Q_FREE, MESSAGE.wqQ());
663 wqValues.put(FIELD_WQ_Q_GAUGE, MESSAGE.wqQGauge()); 662 wqValues.put(FIELD_WQ_Q, MESSAGE.wqQGauge());
664 663
665 LinkedHashMap modeValues = new LinkedHashMap(); 664 LinkedHashMap modeValues = new LinkedHashMap();
666 modeValues.put(FIELD_MODE_SINGLE, MESSAGE.wqSingle()); 665 modeValues.put(FIELD_MODE_SINGLE, MESSAGE.wqSingle());
667 modeValues.put(FIELD_MODE_RANGE, MESSAGE.wqRange()); 666 modeValues.put(FIELD_MODE_RANGE, MESSAGE.wqRange());
668 667
676 modes.setFields(wq, mode); 675 modes.setFields(wq, mode);
677 modes.setWidth(WIDTH_LEFT_UPPER); 676 modes.setWidth(WIDTH_LEFT_UPPER);
678 modes.setNumCols(1); 677 modes.setNumCols(1);
679 678
680 LinkedHashMap initial = new LinkedHashMap(); 679 LinkedHashMap initial = new LinkedHashMap();
681 initial.put(FIELD_WQ, FIELD_WQ_Q_GAUGE); 680 initial.put(FIELD_WQ, FIELD_WQ_Q);
682 initial.put(FIELD_MODE, FIELD_MODE_SINGLE); 681 initial.put(FIELD_MODE, FIELD_MODE_SINGLE);
683 modes.setValues(initial); 682 modes.setValues(initial);
684 683
685 return modes; 684 return modes;
686 } 685 }
882 DataItem to = new DefaultDataItem("wq_to", "wq_to", ""); 881 DataItem to = new DefaultDataItem("wq_to", "wq_to", "");
883 DataItem step = new DefaultDataItem("wq_step", "wq_step", ""); 882 DataItem step = new DefaultDataItem("wq_step", "wq_step", "");
884 883
885 return new Data[] { 884 return new Data[] {
886 getDataMode(), 885 getDataMode(),
887 getQMode(), 886 getFree(),
888 getDataSelectionMode(), 887 getDataSelectionMode(),
889 getDataSingle(), 888 getDataSingle(),
890 new DefaultData( 889 new DefaultData(
891 "wq_from", 890 "wq_from",
892 null, 891 null,
912 protected Data[] getRangeData() { 911 protected Data[] getRangeData() {
913 DataItem item = new DefaultDataItem("wq_single", "wq_single", ""); 912 DataItem item = new DefaultDataItem("wq_single", "wq_single", "");
914 913
915 return new Data[] { 914 return new Data[] {
916 getDataMode(), 915 getDataMode(),
917 getQMode(), 916 getFree(),
918 getDataSelectionMode(), 917 getDataSelectionMode(),
919 getDataFrom(), 918 getDataFrom(),
920 getDataTo(), 919 getDataTo(),
921 getDataStep(), 920 getDataStep(),
922 new DefaultData( 921 new DefaultData(
934 */ 933 */
935 protected Data getDataMode() { 934 protected Data getDataMode() {
936 String wqMode = modes.getValueAsString(FIELD_WQ); 935 String wqMode = modes.getValueAsString(FIELD_WQ);
937 936
938 String value = null; 937 String value = null;
939 if (wqMode.equals(FIELD_WQ_Q) || wqMode.equals(FIELD_WQ_Q_GAUGE)) { 938 if (wqMode.equals(FIELD_WQ_Q_FREE) || wqMode.equals(FIELD_WQ_Q)) {
940 GWT.log("getData: FIELD_WQ_Q || FIELD_WQ_Q_GAUGE"); 939 GWT.log("getData: FIELD_WQ_Q || FIELD_WQ_Q_FREE");
941 value = FIELD_WQ_Q; 940 value = "true";
942 } 941 }
943 else if (wqMode.equals(FIELD_WQ_W_FREE)) { 942 /* else if (wqMode.equals(FIELD_WQ_W_FREE)) {
944 GWT.log("getData: FIELD_WQ_W_FREE"); 943 GWT.log("getData: FIELD_WQ_W_FREE");
945 value = FIELD_WQ_W_FREE; 944 value = FIELD_WQ_W_FREE;
946 } 945 }*/
947 else { 946 else {
948 GWT.log("getData: FIELD_WQ_W"); 947 GWT.log("getData: FIELD_WQ_W");
949 value = FIELD_WQ_W; 948 value = "false";
950 } 949 }
951 950
952 DataItem item = new DefaultDataItem("wq_mode", "wq_mode", value); 951 DataItem item = new DefaultDataItem("wq_mode", "wq_mode", value);
953 return new DefaultData( 952 return new DefaultData(
954 "wq_mode", null, null, new DataItem[] { item }); 953 "wq_mode", null, null, new DataItem[] { item });
960 * calculation is not based on a gauge, false means the calculation should 959 * calculation is not based on a gauge, false means the calculation should
961 * be based on a gauge. 960 * be based on a gauge.
962 * 961 *
963 * @return the Data object for the 'wq_free' attribute. 962 * @return the Data object for the 'wq_free' attribute.
964 */ 963 */
965 protected Data getQMode() { 964 protected Data getFree() {
966 String value = isQFree() ? "true" : "false"; 965 String value = "";
967 966 GWT.log("--------mode: " + isWMode());
967 if(!isWMode()) {
968 value = isQFree() ? "true" : "false";
969 }
970 else {
971 value = isWFree() ? "true" : "false";
972 }
973 GWT.log("--------free? " + value);
968 DataItem item = new DefaultDataItem("wq_free", "wq_free", value); 974 DataItem item = new DefaultDataItem("wq_free", "wq_free", value);
969 return new DefaultData( 975 return new DefaultData(
970 "wq_free", null, null, new DataItem[] { item }); 976 "wq_free", null, null, new DataItem[] { item });
971 } 977 }
972 978
976 * 982 *
977 * @return the Data object for the 'mode' attribute. 983 * @return the Data object for the 'mode' attribute.
978 */ 984 */
979 protected Data getDataSelectionMode() { 985 protected Data getDataSelectionMode() {
980 String wqSelection = modes.getValueAsString(FIELD_MODE); 986 String wqSelection = modes.getValueAsString(FIELD_MODE);
987
988 String isRange = "true";
989 if (wqSelection.equals(FIELD_MODE_SINGLE)) {
990 isRange = "false";
991 }
992
993 GWT.log("selection mode: " + isRange);
981 DataItem item = new DefaultDataItem( 994 DataItem item = new DefaultDataItem(
982 "wq_selection", "wq_selection", wqSelection); 995 "wq_selection", "wq_selection", isRange);
983 996
984 return new DefaultData( 997 return new DefaultData(
985 "wq_selection", null, null, new DataItem[] { item }); 998 "wq_selection", null, null, new DataItem[] { item });
986 } 999 }
987 1000
1192 * 1205 *
1193 * @return true, if the W mode is activated. 1206 * @return true, if the W mode is activated.
1194 */ 1207 */
1195 public boolean isWMode() { 1208 public boolean isWMode() {
1196 String wq = modes.getValueAsString(FIELD_WQ); 1209 String wq = modes.getValueAsString(FIELD_WQ);
1197 return wq.equals(FIELD_WQ_W); 1210 return wq.contains("W");
1198 } 1211 }
1199 1212
1200 1213
1201 public boolean isQFree() { 1214 public boolean isQFree() {
1202 String wqMode = modes.getValueAsString(FIELD_WQ); 1215 String wqMode = modes.getValueAsString(FIELD_WQ);
1203 return wqMode.equals(FIELD_WQ_Q); 1216 return wqMode.equals(FIELD_WQ_Q_FREE);
1204 } 1217 }
1205 1218
1206 protected boolean isWFree() { 1219 protected boolean isWFree() {
1207 String wqMode = modes.getValueAsString(FIELD_WQ); 1220 String wqMode = modes.getValueAsString(FIELD_WQ);
1221 GWT.log("#########wqmode: " + wqMode + " " + FIELD_WQ_W_FREE);
1208 return wqMode.equals(FIELD_WQ_W_FREE); 1222 return wqMode.equals(FIELD_WQ_W_FREE);
1209 } 1223 }
1210 1224
1211 1225
1212 /** 1226 /**
1217 */ 1231 */
1218 public void onChange(ChangeEvent event) { 1232 public void onChange(ChangeEvent event) {
1219 DynamicForm form = event.getForm(); 1233 DynamicForm form = event.getForm();
1220 FormItem item = event.getItem(); 1234 FormItem item = event.getItem();
1221 1235
1222 String wqMode = null; 1236 boolean isQ = false;
1223 String inputMode = null; 1237 boolean isFree = false;
1238 boolean isRange = false;
1224 1239
1225 if (item.getFieldName().equals(FIELD_MODE)) { 1240 if (item.getFieldName().equals(FIELD_MODE)) {
1226 wqMode = form.getValueAsString(FIELD_WQ); 1241 String wq = form.getValueAsString(FIELD_WQ);
1227 inputMode = (String) event.getValue(); 1242 GWT.log("mode change: " + wq);
1243 isQ = wq.contains("Q");
1244 isFree = wq.contains("FREE");
1245 isRange = ((String) event.getValue()).equals(FIELD_MODE_RANGE);
1228 } 1246 }
1229 else { 1247 else {
1230 wqMode = (String) event.getValue(); 1248 String wq = ((String) event.getValue());
1231 inputMode = form.getValueAsString(FIELD_MODE); 1249 GWT.log("else: " + wq);
1232 } 1250 isQ = wq.contains("Q");
1233 1251 isFree = wq.contains("FREE");
1234 if (wqMode.equals("Q")) { 1252 isRange =
1253 form.getValueAsString(FIELD_MODE).equals(FIELD_MODE_RANGE);
1254 }
1255
1256 if (!isQ) {
1235 qdTable.hideIconFields(); 1257 qdTable.hideIconFields();
1236 } 1258 }
1237 else { 1259 else {
1238 qdTable.showIconFields(); 1260 qdTable.showIconFields();
1239 } 1261 }
1240 1262
1241 updatePanels(wqMode, inputMode); 1263 updatePanels(isQ, isFree, isRange);
1242 } 1264 }
1243 1265
1244 1266
1245 protected void updatePanels(String wqMode, String inputMode) { 1267 protected void updatePanels(boolean isQ, boolean isFree, boolean isRange) {
1246 container.removeMembers(container.getMembers()); 1268 container.removeMembers(container.getMembers());
1247 1269
1248 if (wqMode.equals(FIELD_WQ_W) || wqMode.equals(FIELD_WQ_W_FREE)) { 1270 if (!isQ) {
1249 if (inputMode.equals(FIELD_MODE_SINGLE)) { 1271 if (!isRange) {
1250 // Single W mode 1272 // Single W mode
1251 double[] values = getSingleW(); 1273 double[] values = getSingleW();
1252 1274
1253 wArrayPanel = new DoubleArrayPanel( 1275 wArrayPanel = new DoubleArrayPanel(
1254 MESSAGE.unitWSingle(), values, this); 1276 MESSAGE.unitWSingle(), values, this);
1269 container.addMember(wRangePanel); 1291 container.addMember(wRangePanel);
1270 } 1292 }
1271 1293
1272 tabs.selectTab(0); 1294 tabs.selectTab(0);
1273 } 1295 }
1274 else if (wqMode.equals(FIELD_WQ_Q)) { 1296 else if (isQ && isFree) {
1275 if (inputMode.equals(FIELD_MODE_SINGLE)) { 1297 if (!isRange) {
1276 // Single Q mode 1298 // Single Q mode
1277 double[] values = getSingleQFree(); 1299 double[] values = getSingleQFree();
1278 1300
1279 qFreeArrayPanel = new DoubleArrayPanel( 1301 qFreeArrayPanel = new DoubleArrayPanel(
1280 MESSAGE.unitQSingle(), values, this); 1302 MESSAGE.unitQSingle(), values, this);
1295 } 1317 }
1296 1318
1297 tabs.selectTab(1); 1319 tabs.selectTab(1);
1298 } 1320 }
1299 else { 1321 else {
1300 if (inputMode.equals(FIELD_MODE_SINGLE)) { 1322 if (!isRange) {
1301 // Single Q mode 1323 // Single Q mode
1302 double[] values = getSingleQ(); 1324 double[] values = getSingleQ();
1303 1325
1304 qArrayPanel = new DoubleArrayPanel( 1326 qArrayPanel = new DoubleArrayPanel(
1305 MESSAGE.unitQSingle(), values, this); 1327 MESSAGE.unitQSingle(), values, this);
1653 1675
1654 addWQInfo(wqi); 1676 addWQInfo(wqi);
1655 1677
1656 String wq = (String) modes.getValue(FIELD_WQ); 1678 String wq = (String) modes.getValue(FIELD_WQ);
1657 String sr = (String) modes.getValue(FIELD_MODE); 1679 String sr = (String) modes.getValue(FIELD_MODE);
1658 updatePanels(wq, sr); 1680 GWT.log("sending: " + wq + ", " + sr);
1681 boolean isQ = wq.contains("Q");
1682 boolean isFree = wq.contains("FREE");
1683 boolean isRange = sr.equals(FIELD_MODE_RANGE);
1684
1685 updatePanels(isQ, isFree, isRange);
1659 } 1686 }
1660 } 1687 }
1661 ); 1688 );
1662 } 1689 }
1663 1690

http://dive4elements.wald.intevation.org