gernotbelger@8852: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9220: * Software engineering by gernotbelger@9220: * 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@9220: * gernotbelger@8852: * @author Gernot Belger gernotbelger@8852: */ gernotbelger@8868: public final class WaterlevelRecommendationInfo implements IDatacageTwinPanelInfo { gernotbelger@8852: gernotbelger@9220: private final String outs; gernotbelger@9220: gernotbelger@8875: /** gernotbelger@8875: * @param tweakFactory See evil hack below gernotbelger@8875: */ gernotbelger@9220: public WaterlevelRecommendationInfo(final String outs) { gernotbelger@9220: this.outs = outs; gernotbelger@9220: } gernotbelger@9220: gernotbelger@8852: @Override gernotbelger@9220: public String getFactory(final String originalFactory) { gernotbelger@9220: // FIXME: why are the factory here and the one used in createDataString different? gernotbelger@9220: // Probably also because of the 'throw all this code away comment' gernotbelger@9220: return "waterlevel"; gernotbelger@9220: } gernotbelger@9220: gernotbelger@9220: @Override gernotbelger@9220: public String getDataStringFactory(final Recommendation recommendation) { gernotbelger@9220: return "staticwkms"; gernotbelger@9220: } gernotbelger@9220: gernotbelger@9220: @Override gernotbelger@9220: public void adjustRecommendation(final Recommendation recommendation) { gernotbelger@9220: 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@9220: + 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@9220: */ gernotbelger@8852: else { gernotbelger@9220: GWT.log("Leave rec. id " + recommendation.getIDs() + ", factory " gernotbelger@9220: + recommendation.getFactory() + " untouched."); gernotbelger@8852: } gernotbelger@8852: } gernotbelger@8852: gernotbelger@9220: @Override gernotbelger@9220: public String getOuts() { gernotbelger@9220: return this.outs; gernotbelger@9220: } gernotbelger@9220: gernotbelger@9220: @Override gernotbelger@9220: public String getColumnLabel() { gernotbelger@9220: return null; gernotbelger@9220: } gernotbelger@8852: }