diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/CharDiameter.java @ 3649:33bfc01410fb

Merged revisions 5375,5379,5382 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk ........ r5375 | ingo | 2012-09-07 11:26:45 +0200 (Fr, 07 Sep 2012) | 1 line Tagged 'flys-artifacts' as 2.9 ........ r5379 | rrenkert | 2012-09-07 13:58:41 +0200 (Fr, 07 Sep 2012) | 4 lines Issue 791. Add start km to data to compare reference and target km in next state. ........ r5382 | rrenkert | 2012-09-07 14:03:48 +0200 (Fr, 07 Sep 2012) | 3 lines Set data for characteristic diameter for use in parameter matrix UI. ........ flys-artifacts/tags/2.9@5388 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 07 Sep 2012 13:12:08 +0000
parents f3717e625b0a
children 9d12526c1933
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/CharDiameter.java	Fri Sep 07 09:12:11 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/CharDiameter.java	Fri Sep 07 13:12:08 2012 +0000
@@ -1,17 +1,26 @@
 package de.intevation.flys.artifacts.states.minfo;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.poi.hssf.record.formula.functions.Rows;
 import org.w3c.dom.Element;
 
 import de.intevation.artifacts.Artifact;
 import de.intevation.artifacts.CallContext;
 import de.intevation.artifacts.CallMeta;
+import de.intevation.artifacts.common.model.KVP;
 import de.intevation.artifacts.common.utils.XMLUtils;
 import de.intevation.flys.artifacts.resources.Resources;
 import de.intevation.flys.artifacts.states.DefaultState;
+import de.intevation.flys.artifacts.states.MultiStringArrayState;
 
-public class CharDiameter extends DefaultState {
+public class CharDiameter extends MultiStringArrayState {
 
-    public static final String UI_PROVIDER = "minfo.bed.char_diameter";
+    private static final Logger logger = Logger.getLogger(CharDiameter.class);
+
+    public static final String UI_PROVIDER = "parameter-matrix";
 
     private static final String CHAR_DIAMETER_MIN  = "calc.bed.dmin";
     private static final String CHAR_DIAMETER_MAX  = "calc.bed.dmax";
@@ -55,25 +64,31 @@
     }
 
     @Override
-    protected Element[] createItems(
-        XMLUtils.ElementCreator cr,
-        Artifact    artifact,
-        String      name,
-        CallContext context)
+    protected KVP<String, String>[] getOptions(
+        Artifact artifact,
+        String parameterName,
+        CallContext context
+    )
+    throws IllegalArgumentException
     {
         CallMeta meta   = context.getMeta();
-        Element[] calcs = new Element[CHAR_DIAMETER.length];
 
+        List<KVP<String, String>> rows = new ArrayList<KVP<String, String>>();
+        String key = parameterName;
         for (int i = 0; i < CHAR_DIAMETER.length; ++i) {
             String calc = CHAR_DIAMETER[i];
-            calcs[i] = createItem(
-                cr, new String[] {
-                    Resources.getMsg(meta, calc, calc),
-                    calc
-                });
+            rows.add(new KVP (calc,
+                              Resources.getMsg(meta, calc, calc)));
         }
 
-        return calcs;
+        return rows.toArray(new KVP[rows.size()]);
+    }
+
+    @Override
+    protected String getLabelFor(CallContext cc, String parameterName,
+            String value) throws IllegalArgumentException {
+
+        return Resources.getMsg(cc.getMeta(), value, value);
     }
 
 }

http://dive4elements.wald.intevation.org