gernotbelger@8852: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8852: * Software engineering by gernotbelger@8852: * Björnsen Beratende Ingenieure GmbH gernotbelger@8852: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8852: * gernotbelger@8852: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8852: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8852: * documentation coming with Dive4Elements River for details. gernotbelger@8852: */ gernotbelger@8852: package org.dive4elements.river.client.client.ui; gernotbelger@8852: gernotbelger@8852: import org.dive4elements.river.client.client.ui.DatacageTwinPanel.IDatacageTwinPanelInfo; gernotbelger@8852: import org.dive4elements.river.client.shared.model.Recommendation; gernotbelger@8852: gernotbelger@8852: import com.google.gwt.core.client.GWT; gernotbelger@8852: gernotbelger@8852: /** gernotbelger@8875: * Factored out code from the old WaterlevelTwinPanel; contains some evil hacks about the involved artifact factories. See original comments below... gernotbelger@8875: * gernotbelger@8852: * @author Gernot Belger gernotbelger@8852: */ gernotbelger@8868: public final class WaterlevelRecommendationInfo implements IDatacageTwinPanelInfo { gernotbelger@8852: gernotbelger@8875: private final String outs; gernotbelger@8875: gernotbelger@8875: /** gernotbelger@8875: * @param tweakFactory See evil hack below gernotbelger@8875: */ gernotbelger@8875: public WaterlevelRecommendationInfo(final String outs) { gernotbelger@8852: this.outs = outs; gernotbelger@8852: } gernotbelger@8852: gernotbelger@8852: @Override gernotbelger@8875: public String getFactory(final String originalFactory) { gernotbelger@8852: // FIXME: why are the factory here and the one used in createDataString different? gernotbelger@8852: // Probably also because of the 'throw all this code away comment' gernotbelger@8852: return "waterlevel"; gernotbelger@8852: } gernotbelger@8852: gernotbelger@8852: @Override gernotbelger@8875: public String getDataStringFactory(final Recommendation recommendation) { gernotbelger@8852: return "staticwkms"; gernotbelger@8852: } gernotbelger@8852: gernotbelger@8852: @Override gernotbelger@8875: public void adjustRecommendation(final Recommendation recommendation) { gernotbelger@8875: gernotbelger@8852: // XXX: THIS IS AN EVIL HACK TO MAKE W-DIFFERENCES WORK AGAIN! gernotbelger@8852: // TODO: Throw all this code away and do it with server side recommendations! gernotbelger@8852: recommendation.setTargetOut("w_differences"); gernotbelger@8852: gernotbelger@8852: if (recommendation.getIDs() != null) { gernotbelger@8852: GWT.log("Setting staticwkms factory for rec with ID " gernotbelger@8852: + recommendation.getIDs()); gernotbelger@8852: recommendation.setFactory("staticwkms"); gernotbelger@8852: } gernotbelger@8852: /* gernotbelger@8852: // So far, we do not need to rewrite the factory anymore, gernotbelger@8852: // except for staticwkms; probably other cases will pop up later. gernotbelger@8852: else if (recommendation.getFactory().equals("winfo")) { gernotbelger@8852: GWT.log("Setting waterlevel factory for a winfo rec."); gernotbelger@8852: recommendation.setFactory("waterlevel"); gernotbelger@8852: } gernotbelger@8852: */ gernotbelger@8852: else { gernotbelger@8852: GWT.log("Leave rec. id " + recommendation.getIDs() + ", factory " gernotbelger@8852: + recommendation.getFactory() + " untouched."); gernotbelger@8852: } gernotbelger@8852: } gernotbelger@8852: gernotbelger@8852: @Override gernotbelger@8852: public String getOuts() { gernotbelger@8875: return this.outs; gernotbelger@8852: } gernotbelger@8852: }