diff gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java @ 634:58c32df1a44d

Improved the describe document so that we are able to render a measurement-parameter-matrix with these data. gnv-artifacts/trunk@713 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 26 Feb 2010 13:53:05 +0000
parents a72ecacccc91
children 22cc12b1622c
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java	Thu Feb 25 09:11:56 2010 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java	Fri Feb 26 13:53:05 2010 +0000
@@ -266,19 +266,29 @@
 
         if (obj instanceof NamedArrayList) {
             NamedArrayList list = (NamedArrayList) obj;
-            String[]   selected = data.splitValue();
+            List       selected = Arrays.asList(data.splitValue());
             int            size = list.size();
-            int           ssize = selected.length;
 
             for (int i = 0; i < size; i++) {
                 KeyValueDescibeData kv = (KeyValueDescibeData) list.get(i);
 
                 // values are concatinated in InputData, so one InputData object can
                 // contain many input
-                for (int j = 0; j < ssize; j++) {
-                    if (kv.getKey().equals(selected[j])) {
-                        descs.add(kv.getValue());
+                String key = kv.getKey();
+                int idx = selected.indexOf(key);
+                if (idx >= 0) {
+                    descs.add(kv.getValue());
+
+                    // XXX Workarround: I just wanted to remove the element at
+                    // 'idx' from selected, but for any reason this is not
+                    // possible (throws an exception) (iw)
+                    List tmp = new ArrayList();
+                    for (int j = 0; j < selected.size(); j++) {
+                        if (j != idx)
+                            tmp.add(selected.get(j));
                     }
+
+                    selected = tmp;
                 }
             }
         }
@@ -709,7 +719,7 @@
             itemNode.appendChild(choiceLableNode);
 
             Element choiceValueNode = creator.create("value");
-            choiceValueNode.setTextContent(dataName);
+            choiceValueNode.setTextContent(data.getValue());
             itemNode.appendChild(choiceValueNode);
             choiceNode.appendChild(itemNode);
         }

http://dive4elements.wald.intevation.org