gernotbelger@9053: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9053: * Software engineering by gernotbelger@9053: * Björnsen Beratende Ingenieure GmbH gernotbelger@9053: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9053: * gernotbelger@9053: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9053: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9053: * documentation coming with Dive4Elements River for details. gernotbelger@9053: */ gernotbelger@9053: package org.dive4elements.river.artifacts.states; gernotbelger@9053: gernotbelger@9053: import java.util.List; gernotbelger@9053: gernotbelger@9053: import org.dive4elements.artifacts.Artifact; gernotbelger@9053: import org.dive4elements.artifacts.CallContext; gernotbelger@9053: import org.dive4elements.artifacts.CallMeta; gernotbelger@9053: import org.dive4elements.artifacts.common.utils.XMLUtils; gernotbelger@9053: import org.dive4elements.river.artifacts.resources.Resources; gernotbelger@9053: import org.w3c.dom.Element; gernotbelger@9053: gernotbelger@9053: /** gernotbelger@9053: * @author Domenico Nardi Tironi gernotbelger@9053: * gernotbelger@9053: */ gernotbelger@9053: public abstract class RadioSelect extends DefaultState { gernotbelger@9053: gernotbelger@9053: private static final long serialVersionUID = 1L; gernotbelger@9053: private final List entries; gernotbelger@9053: gernotbelger@9053: public RadioSelect() { gernotbelger@9053: super(); gernotbelger@9053: this.entries = makeEntries(); gernotbelger@9053: } gernotbelger@9053: gernotbelger@9053: protected abstract List makeEntries(); gernotbelger@9053: gernotbelger@9053: @Override gernotbelger@9053: protected final String getUIProvider() { gernotbelger@9053: return "radio_panel"; gernotbelger@9053: } gernotbelger@9053: gernotbelger@9053: @Override gernotbelger@9053: protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) { gernotbelger@9053: final CallMeta meta = context.getMeta(); gernotbelger@9053: final Element[] elements = new Element[this.entries.size()]; gernotbelger@9053: int i = 0; gernotbelger@9053: for (final String item : this.entries) { gernotbelger@9053: elements[i] = createItem(ec, new String[] { Resources.getMsg(meta, item, item), item }); gernotbelger@9053: i++; gernotbelger@9053: } gernotbelger@9053: return elements; gernotbelger@9053: } gernotbelger@9053: gernotbelger@9053: }