Mercurial > dive4elements > gnv-client
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); }