view gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WaterlevelRecommandationInfo.java @ 8852:8f6d6d26e96f

Refaktored the DatacageTwinPanel so it is reusable.
author gernotbelger
date Thu, 18 Jan 2018 18:32:30 +0100
parents
children
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by 
 *  Björnsen Beratende Ingenieure GmbH 
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */
package org.dive4elements.river.client.client.ui;

import org.dive4elements.river.client.client.ui.DatacageTwinPanel.IDatacageTwinPanelInfo;
import org.dive4elements.river.client.shared.model.Recommendation;

import com.google.gwt.core.client.GWT;

/**
 * @author Gernot Belger
 */
public final class WaterlevelRecommandationInfo implements IDatacageTwinPanelInfo {

	private String outs;

	public WaterlevelRecommandationInfo(String outs ) {
		this.outs = outs;
	}
	
	@Override
	public String getFactory() {
		// FIXME: why are the factory here and the one used in createDataString different?
		// Probably also because of the 'throw all this code away comment'
		return "waterlevel";
	}
	
	@Override
	public String getDataStringFactory() {
		return "staticwkms";
	}
	
    @Override
	public void adjustRecommendation(Recommendation recommendation) {
        // XXX: THIS IS AN EVIL HACK TO MAKE W-DIFFERENCES WORK AGAIN!
        // TODO: Throw all this code away and do it with server side recommendations!
        recommendation.setTargetOut("w_differences");

        if (recommendation.getIDs() != null) {
            GWT.log("Setting staticwkms factory for rec with ID "
                + recommendation.getIDs());
            recommendation.setFactory("staticwkms");
        }
        /*
        // So far, we do not need to rewrite the factory anymore,
        // except for staticwkms; probably other cases will pop up later.
        else if (recommendation.getFactory().equals("winfo")) {
            GWT.log("Setting waterlevel factory for a winfo rec.");
            recommendation.setFactory("waterlevel");
        }
        */
        else {
           GWT.log("Leave rec. id " + recommendation.getIDs() + ", factory "
               + recommendation.getFactory() + " untouched.");
        }
    }

	@Override
	public String getOuts() {
		return outs;
	}
}

http://dive4elements.wald.intevation.org