Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelPairSelectState.java @ 9580:839b2aa84dd0
minuend/subtrahend-UI-switch
author | gernotbelger |
---|---|
date | Tue, 08 Jan 2019 17:01:09 +0100 |
parents | 28df64078f27 |
children |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelPairSelectState.java Tue Dec 11 17:08:36 2018 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelPairSelectState.java Tue Jan 08 17:01:09 2019 +0100 @@ -11,85 +11,60 @@ import java.util.List; import org.apache.log4j.Logger; - -import org.w3c.dom.Element; - +import org.dive4elements.artifactdatabase.ProtocolUtils; +import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; - -import org.dive4elements.artifactdatabase.ProtocolUtils; -import org.dive4elements.artifactdatabase.state.Facet; - import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; - import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.model.FacetTypes; import org.dive4elements.river.artifacts.resources.Resources; - import org.dive4elements.river.backend.utils.StringUtil; +import org.w3c.dom.Element; /** * State in which the user selects 1 to n pairs of Waterlevels and alikes. */ -public class WaterlevelPairSelectState -extends DefaultState -implements FacetTypes -{ +public class WaterlevelPairSelectState extends DefaultState implements FacetTypes { /** The log that is used in this state. */ - private static Logger log = Logger.getLogger( - WaterlevelPairSelectState.class); - + private static Logger log = Logger.getLogger(WaterlevelPairSelectState.class); /** Trivial constructor. */ public WaterlevelPairSelectState() { } - /** Specify to display a datacage_twin_panel. */ @Override protected String getUIProvider() { return "waterlevel_twin_panel"; } - /** * Overridden to do nothing. */ @Override - public Object computeAdvance( - D4EArtifact artifact, - String hash, - CallContext context, - List<Facet> facets, - Object old - ) { - //Get data and do stuff, do not calculate + public Object computeAdvance(final D4EArtifact artifact, final String hash, final CallContext context, final List<Facet> facets, final Object old) { + // Get data and do stuff, do not calculate return ""; } - /** * Create elements for document (prepopulated with data, if any). - * @param artifact D4EArtifact to get data from. - * @param name DataName, expceted to be "diffids". + * + * @param artifact + * D4EArtifact to get data from. + * @param name + * DataName, expceted to be "diffids". */ @Override - protected Element[] createItems( - ElementCreator cr, - Artifact artifact, - String name, - CallContext context) - { + protected Element[] createItems(final ElementCreator cr, final Artifact artifact, final String name, final CallContext context) { log.debug("createItems: " + name); if (name.equals("diffids")) { - Element item = ProtocolUtils.createArtNode( - cr, "item", null, null); - Element label = ProtocolUtils.createArtNode( - cr, "label", null, null); - Element value = ProtocolUtils.createArtNode( - cr, "value", null, null); - D4EArtifact flys = (D4EArtifact) artifact; - String s = flys.getDataAsString("diffids"); + final Element item = ProtocolUtils.createArtNode(cr, "item", null, null); + final Element label = ProtocolUtils.createArtNode(cr, "label", null, null); + final Element value = ProtocolUtils.createArtNode(cr, "value", null, null); + final D4EArtifact flys = (D4EArtifact) artifact; + final String s = flys.getDataAsString("diffids"); value.setTextContent(s); item.appendChild(label); item.appendChild(value); @@ -98,33 +73,25 @@ return new Element[] {}; } - /** * Creats the data element used for the static part of DESCRIBE document. */ @Override - protected Element createStaticData( - D4EArtifact flys, - ElementCreator creator, - CallContext cc, - String name, - String value, - String type - ) { - Element dataElement = creator.create("data"); + protected Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value, + final String type) { + final Element dataElement = creator.create("data"); creator.addAttr(dataElement, "name", name, true); creator.addAttr(dataElement, "type", type, true); - Element itemElement = creator.create("item"); + final Element itemElement = creator.create("item"); creator.addAttr(itemElement, "value", value, true); - String[] labels = getLabels(cc, value); - Object[] obj = new Object[] { labels[0] }; + final String[] labels = getLabels(cc, value, false); + final Object[] obj = new Object[] { labels[0] }; // TODO own i18n - String attrValue = Resources.getMsg( - cc.getMeta(), "wsp.selected.string", "wsp.selected.string", obj); - //I18N_STATIC_KEY, I18N_STATIC_KEY, obj); + final String attrValue = Resources.getMsg(cc.getMeta(), "wsp.selected.string", "wsp.selected.string", obj); + // I18N_STATIC_KEY, I18N_STATIC_KEY, obj); creator.addAttr(itemElement, "label", attrValue, true); dataElement.appendChild(itemElement); @@ -132,42 +99,39 @@ return dataElement; } - /** * Get name to display for selected watelerlevels (for example "Q=123") * from the CalculationResult. */ - public static String[] getLabels(CallContext cc, String value) { - String[] recommendations = value.split("#"); + public static String[] getLabels(final CallContext cc, final String value, final boolean minuendSubtrahendUiReversed) { + final String[] recommendations = value.split("#"); String displayString = ""; // Walk over all selected recommendations and create label // like "W (Q=1) - W (Q=2)". - for (int i = 0; i < recommendations.length; i+=2) { - String[] minuendParts = StringUtil - .unbracket(recommendations[i+0]) - .split(";"); - if(minuendParts.length >= 4) { + final int minuendIndex = minuendSubtrahendUiReversed ? 1 : 0; + final int subtrahendIndex = minuendSubtrahendUiReversed ? 0 : 1; + + for (int i = 0; i < recommendations.length; i += 2) { + final String[] minuendParts = StringUtil.unbracket(recommendations[i + minuendIndex]).split(";"); + if (minuendParts.length >= 4) { displayString += "(" + minuendParts[3]; - } - else { + } else { displayString += "([error]"; } displayString += " - "; - String[] subtrahendParts = StringUtil - .unbracket(recommendations[i+1]) - .split(";"); - if(subtrahendParts.length >= 4) { + final String[] subtrahendParts = StringUtil.unbracket(recommendations[i + subtrahendIndex]).split(";"); + if (subtrahendParts.length >= 4) { displayString += subtrahendParts[3] + ") "; - } - else { + } else { displayString += "[error])"; } } return new String[] { displayString }; } + } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :