diff flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java @ 1535:03e82be2aabc

Added UI for "Bezugslinienverfahren" ("W auf freier Strecke"). flys-client/trunk@3751 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 23 Jan 2012 15:45:20 +0000
parents 07b9404d7170
children 79483ff032bb
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java	Mon Jan 23 11:07:38 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/WQInputPanel.java	Mon Jan 23 15:45:20 2012 +0000
@@ -60,6 +60,9 @@
         GWT.create(WQInfoService.class);
 
     /** The constant field name for choosing w or q mode.*/
+    public static final String FIELD_WQ_W_FREE = "WFREE";
+
+    /** The constant field name for choosing w or q mode.*/
     public static final String FIELD_WQ = "wq";
 
     /** The constant field value for W input mode.*/
@@ -421,13 +424,14 @@
             return;
         }
 
-        boolean isW    = theMode.equals(FIELD_WQ_W);
-        boolean isFree = Boolean.valueOf(theFree);
+        boolean isW     = theMode.equals(FIELD_WQ_W);
+        boolean isFree  = Boolean.valueOf(theFree);
+        boolean isWFree = theMode.equals(FIELD_WQ_W_FREE);
 
         initUserSingleValues(list, theMode);
         initUserRangeValues(list, theMode);
 
-        if (isW) {
+        if (isW || isWFree) {
             modes.setValue(FIELD_WQ, theMode);
         }
         else {
@@ -643,7 +647,7 @@
     protected Canvas createModePanel() {
         RadioGroupItem wq = new RadioGroupItem(FIELD_WQ);
         wq.setShowTitle(false);
-        wq.setVertical(false);
+        wq.setVertical(true);
         wq.setWidth(WIDTH_LEFT_UPPER);
         wq.setWrap(false);
 
@@ -654,6 +658,7 @@
 
         LinkedHashMap wqValues = new LinkedHashMap();
         wqValues.put(FIELD_WQ_W, MESSAGE.wqW());
+        wqValues.put(FIELD_WQ_W_FREE, MESSAGE.wqWFree());
         wqValues.put(FIELD_WQ_Q, MESSAGE.wqQ());
         wqValues.put(FIELD_WQ_Q_GAUGE, MESSAGE.wqQGauge());
 
@@ -699,12 +704,14 @@
         else if (isQFree()) {
             return validateRange(qFreeRangePanel, minQFree, maxQFree);
         }
+        else if (isWFree()) {
+            return validateRange(wRangePanel, minW, maxW);
+        }
         else {
             return validateRange(qRangePanel, minQ, maxQ);
         }
     }
 
-
     protected List<String> validateSingleValues() {
         if (isWMode()) {
             return validateSingle(wArrayPanel, minW, maxW);
@@ -712,6 +719,9 @@
         else if (isQFree()) {
             return validateSingle(qFreeArrayPanel, minQFree, maxQFree);
         }
+        else if (isWFree()) {
+            return validateSingle(wArrayPanel, minW, maxW);
+        }
         else {
             return validateSingle(qArrayPanel, minQ, maxQ);
         }
@@ -1185,6 +1195,11 @@
         return wqMode.equals(FIELD_WQ_Q);
     }
 
+    protected boolean isWFree() {
+        String wqMode = modes.getValueAsString(FIELD_WQ);
+        return wqMode.equals(FIELD_WQ_W_FREE);
+    }
+
 
     /**
      * This method changes the lower panel with the input fields depending on
@@ -1222,7 +1237,7 @@
     protected void updatePanels(String wqMode, String inputMode) {
         container.removeMembers(container.getMembers());
 
-        if (wqMode.equals(FIELD_WQ_W)) {
+        if (wqMode.equals(FIELD_WQ_W) || wqMode.equals(FIELD_WQ_W_FREE)) {
             if (inputMode.equals(FIELD_MODE_SINGLE)) {
                 // Single W mode
                 double[] values = getSingleW();

http://dive4elements.wald.intevation.org