diff artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/FixationChoice.java @ 9267:c7e5285d434f

bundu bezugswst work
author gernotbelger
date Wed, 18 Jul 2018 15:34:53 +0200
parents 2f5052835b76
children 7337034eb5d5
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/FixationChoice.java	Wed Jul 18 12:20:01 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/FixationChoice.java	Wed Jul 18 15:34:53 2018 +0200
@@ -11,8 +11,14 @@
 import java.util.LinkedHashMap;
 
 import org.dive4elements.artifacts.Artifact;
+import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.artifacts.CallMeta;
+import org.dive4elements.artifacts.common.utils.XMLUtils;
+import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
+import org.dive4elements.river.artifacts.D4EArtifact;
 import org.dive4elements.river.artifacts.states.RadioSelect;
+import org.dive4elements.river.artifacts.states.fixation.EventSelect;
+import org.w3c.dom.Element;
 
 /**
  * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
@@ -21,6 +27,11 @@
     private static final long serialVersionUID = 1L;
 
     @Override
+    protected final String getUIProvider() {
+        return "custom_fixation_radio_panel";
+    }
+
+    @Override
     protected LinkedHashMap<String, String> makeEntries(final CallMeta meta, final Artifact artifact) {
         final LinkedHashMap<String, String> entries = new LinkedHashMap<>();
         entries.put("state.bundu.fix.auto", null);
@@ -28,4 +39,46 @@
         return entries;
     }
 
+    @Override
+    protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) {
+
+        final Element[] elements = super.createItems(ec, artifact, name, context);
+        final Element[] elementsAndYear = new Element[elements.length + 2];
+
+        for (int i = 0; i < elements.length; i++) {
+            elementsAndYear[i] = elements[i];
+        }
+        // add Bezugsjahr
+        // REMEBER: we need it for getLabelFor later
+        final BunduAccess access = new BunduAccess((D4EArtifact) artifact);
+        final int[] eventsTemp = access.getEventsTemp();
+        final StringBuilder builder = new StringBuilder();
+        if (eventsTemp != null) {
+            for (final int event : eventsTemp) {
+                builder.append(event).append(";");
+            }
+        } else {
+            builder.append("");// no values
+        }
+        elementsAndYear[elements.length] = createItem(ec, new String[] { "ignore_events_temp", builder.toString() });
+
+        final int year = access.getBezugsJahr();
+
+        elementsAndYear[elements.length + 1] = createItem(ec, new String[] { "ignore_singleyear", String.valueOf(year) });
+
+        return elementsAndYear;
+
+    }
+
+    @Override
+    protected Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value,
+            final String type) {
+        if (name.equals("events")) {
+            return EventSelect.createStaticDataPublic(flys, creator, cc, name, value, type);
+
+        } else {
+            return super.createStaticData(flys, creator, cc, name, value, type);
+        }
+    }
+
 }
\ No newline at end of file

http://dive4elements.wald.intevation.org