Mercurial > dive4elements > river
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