Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/states/RadioSelect.java @ 9184:dace17e26d33
code review uinfo.inundationduration
author | gernotbelger |
---|---|
date | Wed, 27 Jun 2018 14:07:02 +0200 |
parents | 2f5052835b76 |
children | c7e5285d434f |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/RadioSelect.java Tue Jun 26 20:19:31 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/RadioSelect.java Wed Jun 27 14:07:02 2018 +0200 @@ -26,14 +26,14 @@ public abstract class RadioSelect extends DefaultState { private static final long serialVersionUID = 1L; + private Artifact artifact; public RadioSelect() { } - protected abstract LinkedHashMap<String, String> makeEntries(CallMeta meta, Artifact artifact); // AUSNAHMSWEISE EXPLIZITER TYP, damit gewährleistet ist, - // dass die Reihenfolge - // nicht verrutscht + protected abstract LinkedHashMap<String, String> makeEntries(CallMeta meta, Artifact artifact); // AUSNAHMSWEISE EXPLIZITER TYP, damit Reihenfolge nicht + // verrutscht @Override protected final String getUIProvider() { @@ -42,6 +42,10 @@ @Override protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) { + + // REMEBER: we need it for getLabelFor later + this.artifact = artifact; + final CallMeta meta = context.getMeta(); final Map<String, String> entries = makeEntries(meta, artifact); @@ -58,9 +62,8 @@ @Override protected String getLabelFor(final CallContext cc, final String name, final String value, final String type) { - // könnte nicht davon ausgegangen werden, dass die entries immer zuerst in createItems erzeugt werden und da quasi - // "lazy" initialisiert werden? - final Map<String, String> entries = makeEntries(cc.getMeta(), null); + // artifacts must be set in "createItems" -> createItems has to be called first + final Map<String, String> entries = makeEntries(cc.getMeta(), this.artifact); final String valueToSet = entries.get(value) != null ? entries.get(value) : value; return super.getLabelFor(cc, name, valueToSet, type);