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 :

http://dive4elements.wald.intevation.org