teichmann@5861: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5861: * Software engineering by Intevation GmbH teichmann@5861: * teichmann@5993: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5861: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5993: * documentation coming with Dive4Elements River for details. teichmann@5861: */ teichmann@5861: teichmann@5835: package org.dive4elements.river.client.client.ui; ingo@20: gernotbelger@9133: import org.dive4elements.river.client.client.FLYSConstants; teichmann@5835: import org.dive4elements.river.client.client.ui.fixation.FixEventSelect; teichmann@5835: import org.dive4elements.river.client.client.ui.fixation.FixFunctionSelect; teichmann@5835: import org.dive4elements.river.client.client.ui.fixation.FixGaugeSelectPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.fixation.FixLocationPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.fixation.FixMultiPeriodPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.fixation.FixPeriodPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.fixation.FixQSelectPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.minfo.BedHeightsDatacagePanel; teichmann@5835: import org.dive4elements.river.client.client.ui.minfo.BedMultiPeriodPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.minfo.CheckboxPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.minfo.SedLoadDistancePanel; teichmann@5835: import org.dive4elements.river.client.client.ui.minfo.SedLoadEpochPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.minfo.SedLoadPeriodPanel; andre@8231: import org.dive4elements.river.client.client.ui.minfo.SedLoadSQTiPanel; gernotbelger@9063: import org.dive4elements.river.client.client.ui.sinfo.CollisionLoadEpochPanel; gernotbelger@9074: import org.dive4elements.river.client.client.ui.sinfo.CollisionLoadYearPanel; gernotbelger@8993: import org.dive4elements.river.client.client.ui.sinfo.FlowDepthMinMaxTwinPanel; gernotbelger@8854: import org.dive4elements.river.client.client.ui.sinfo.FlowDepthTwinPanel; teichmann@5835: import org.dive4elements.river.client.client.ui.sq.SQPeriodPanel; gernotbelger@9256: import org.dive4elements.river.client.client.ui.uinfo.Limit5SalixBehaviour; gernotbelger@9066: import org.dive4elements.river.client.client.ui.uinfo.LoadSedimentHeightPanel; gernotbelger@9063: import org.dive4elements.river.client.client.ui.uinfo.LoadSingleYearPanel; gernotbelger@9248: import org.dive4elements.river.client.client.ui.uinfo.LoadSingleYearPseudoEpochPanel; gernotbelger@9256: import org.dive4elements.river.client.client.ui.uinfo.SingleBehaviour; gernotbelger@9237: import org.dive4elements.river.client.client.ui.uinfo.SupraRegionalTablePanel; gernotbelger@9066: import org.dive4elements.river.client.client.ui.uinfo.VegetationzonesTableEditPanel; gernotbelger@9066: import org.dive4elements.river.client.client.ui.uinfo.VegetationzonesTablePanel; teichmann@5835: import org.dive4elements.river.client.shared.model.User; felix@1612: gernotbelger@9133: import com.google.gwt.core.client.GWT; gernotbelger@9133: felix@1612: /** felix@1612: * Depending on the provider the state declared, return a UIProvider. felix@1612: * felix@1612: * A UIProvider provides widgets and input helpers to guide input to an felix@1612: * artifacts state. felix@1612: */ ingo@20: public class UIProviderFactory { gernotbelger@9133: private static FLYSConstants MSG; ingo@20: ingo@20: private UIProviderFactory() { ingo@20: } ingo@20: gernotbelger@9053: /** gernotbelger@9053: * @param uiProvider gernotbelger@9053: * uiprovider demanded for by state. gernotbelger@9053: */ gernotbelger@9053: public static UIProvider getProvider(final String uiProvider, final User user) { ingo@20: if (uiProvider == null || uiProvider.equals("")) { ingo@20: return new SelectProvider(); gernotbelger@9053: } else if (uiProvider.equals("select_with_map")) { ingo@20: return new MapSelection(); gernotbelger@9053: } else if (uiProvider.equals("location_distance_panel")) { ingo@41: return new LocationDistancePanel(); gernotbelger@9053: } else if (uiProvider.equals("location_panel")) { raimund@238: return new SingleLocationPanel(); gernotbelger@9053: } else if (uiProvider.equals("multi_location_panel")) { felix@1612: return new MultipleLocationPanel(); gernotbelger@9053: } else if (uiProvider.equals("distance_panel")) { ingo@780: return new DistancePanel(); gernotbelger@9053: } else if (uiProvider.equals("distance_only_panel")) { ingo@1265: return new DistanceOnlyPanel(); gernotbelger@9062: } else if (uiProvider.equals("distance_only_part_panel")) { gernotbelger@9062: return new DistanceOnlyPartPanel(); gernotbelger@9246: } else if (uiProvider.equals("distance_only_part_historical_panel")) { gernotbelger@9246: return new DistanceOnlyPartHistoricalPanel(); gernotbelger@9053: } else if (uiProvider.equals("waterlevel_ground_panel")) { ingo@787: return new WaterlevelGroundPanel(); gernotbelger@9053: } else if (uiProvider.equals("wq_panel")) { ingo@44: return new WQInputPanel(); gernotbelger@9053: } else if (uiProvider.equals("wq_panel_adapted")) { ingo@243: return new WQAdaptedInputPanel(); gernotbelger@9053: } else if (uiProvider.equals("wq_panel_adapted_fixing")) { aheinecke@6060: return new WQAdaptedFixingInputPanel(); gernotbelger@9053: } else if (uiProvider.equals("q_segmented_panel")) { felix@4120: return new QSegmentedInputPanel(); gernotbelger@9053: } else if (uiProvider.equals("river_panel")) { raimund@282: return new LinkSelection(); gernotbelger@9053: } else if (uiProvider.equals("continue")) { ingo@785: return new ContinuePanel(); gernotbelger@9066: } else if (uiProvider.equals("uinfo.vegetationzones.table.edit")) { gernotbelger@9066: return new VegetationzonesTableEditPanel(); gernotbelger@9064: } else if (uiProvider.equals("uinfo.vegetationzones.table")) { gernotbelger@9066: return new VegetationzonesTablePanel(); gernotbelger@9053: } else if (uiProvider.equals("wsp_datacage_panel")) { ingo@901: return new WspDatacagePanel(user); gernotbelger@9053: } else if (uiProvider.equals("dgm_datacage_panel")) { ingo@901: return new DemDatacagePanel(user); gernotbelger@9053: } else if (uiProvider.equals("waterlevel_twin_panel")) { gernotbelger@8854: return new WaterlevelTwinPanel(user); gernotbelger@9053: } else if (uiProvider.equals("auto_integer")) { ingo@787: return new AutoIntegerPanel(); gernotbelger@9053: } else if (uiProvider.equals("boolean_panel")) { ingo@787: return new BooleanPanel(); gernotbelger@9053: } else if (uiProvider.equals("noinput")) { ingo@824: return new NoInputPanel(); gernotbelger@9053: } else if (uiProvider.equals("map_digitize")) { ingo@833: return new DigitizePanel(); gernotbelger@9053: } else if (uiProvider.equals("timerange")) { ingo@1524: return new IntegerRangePanel(); gernotbelger@9053: } else if (uiProvider.equals("wq_simple_array")) { ingo@1528: return new WQSimpleArrayPanel(); gernotbelger@9053: } else if (uiProvider.equals("gaugetimerange")) { raimund@1602: return new GaugeTimeRangePanel(); gernotbelger@9053: } else if (uiProvider.equals("fix.location_panel")) { raimund@2505: return new FixLocationPanel(); gernotbelger@9053: } else if (uiProvider.equals("fix.period_panel")) { raimund@2505: return new FixPeriodPanel(); gernotbelger@9053: } else if (uiProvider.equals("fix.period_ref_panel")) { sascha@2538: return new FixPeriodPanel("ref_start", "ref_end"); gernotbelger@9053: } else if (uiProvider.equals("fix.period_ana_panel")) { raimund@2883: return new FixMultiPeriodPanel(); gernotbelger@9053: } else if (uiProvider.equals("fix.qselect_panel")) { felix@3365: return new FixQSelectPanel(); gernotbelger@9053: } else if (uiProvider.equals("fix.gaugeselect_panel")) { raimund@2505: return new FixGaugeSelectPanel(); gernotbelger@9053: } else if (uiProvider.equals("fix.event_panel")) { raimund@2505: return new FixEventSelect(); gernotbelger@9053: } else if (uiProvider.equals("fix.preprocessing_panel")) { raimund@2526: return new BooleanPanel(); gernotbelger@9053: } else if (uiProvider.equals("fix.functionselect")) { raimund@3358: return new FixFunctionSelect(); gernotbelger@9053: } else if (uiProvider.equals("period_select")) { ingo@3372: return new PeriodPanel(); gernotbelger@9053: } else if (uiProvider.equals("periods_select")) { raimund@3527: return new MultiPeriodPanel(); gernotbelger@9053: } else if (uiProvider.equals("sq.period.select")) { ingo@3373: return new SQPeriodPanel(); gernotbelger@9053: } else if (uiProvider.equals("outliers_input")) { raimund@2898: return new DoubleInputPanel(); gernotbelger@9053: } else if (uiProvider.equals("percent_input")) { felix@4280: return new DoubleInputPanel("percent"); gernotbelger@9053: } else if (uiProvider.equals("parameter-matrix")) { ingo@2521: return new ParameterMatrixPanel(); gernotbelger@9076: } else if (uiProvider.equals("minfo.bed.year_epoch")) {// legacy gernotbelger@9076: return new RadioPanel(); gernotbelger@9053: } else if (uiProvider.equals("radio_panel")) { gernotbelger@9053: return new RadioPanel(); gernotbelger@9053: } else if (uiProvider.equals("bedquality_periods_select")) { raimund@3705: return new BedMultiPeriodPanel(); gernotbelger@9053: } else if (uiProvider.equals("bedheights_twin_panel")) { raimund@3508: return new BedHeightsDatacagePanel(user); gernotbelger@9053: } else if (uiProvider.equals("minfo.bed.char_diameter")) { raimund@3527: return new CheckboxPanel(); gernotbelger@9053: } else if (uiProvider.equals("minfo.sedimentload_unit_select")) { rrenkert@4224: return new RadioPanel(); gernotbelger@9053: } else if (uiProvider.equals("static_data")) { gernotbelger@9053: return new StaticDataPanel(); gernotbelger@9053: } else if (uiProvider.equals("minfo.sedimentload_distance_select")) { gernotbelger@9053: return new SedLoadDistancePanel(); gernotbelger@9053: } else if (uiProvider.equals("minfo.sedimentload_year_select")) { gernotbelger@9053: return new SedLoadPeriodPanel(); gernotbelger@9053: } else if (uiProvider.equals("minfo.sedimentload_epoch_select")) { gernotbelger@9053: return new SedLoadEpochPanel(); gernotbelger@9074: } else if (uiProvider.equals("sinfo.collision.load_year_select")) { gernotbelger@9074: return new CollisionLoadYearPanel(); gernotbelger@9063: } else if (uiProvider.equals("sinfo.collision.load_epoch_select")) { gernotbelger@9063: return new CollisionLoadEpochPanel(); gernotbelger@9073: } else if (uiProvider.equals("common.state.load_single_year_select")) { gernotbelger@9063: return new LoadSingleYearPanel(); gernotbelger@9250: } else if (uiProvider.equals("common.state.load_single_year_select.show_hint")) { gernotbelger@9250: return new LoadSingleYearPanel(true); gernotbelger@9248: } else if (uiProvider.equals("uinfo.salix.load_single_year_pseudo_epoch_select")) { gernotbelger@9248: return new LoadSingleYearPseudoEpochPanel(); gernotbelger@9053: } else if (uiProvider.equals("minfo.sedimentload_sqti_select")) { gernotbelger@9053: return new SedLoadSQTiPanel(); gernotbelger@9066: } else if (uiProvider.equals("uinfo.sedimentheight_select")) { gernotbelger@9256: return new LoadSedimentHeightPanel(new SingleBehaviour());// Type.single); gernotbelger@9222: } else if (uiProvider.equals("uinfo.sedimentheight_select.limit5")) { gernotbelger@9256: return new LoadSedimentHeightPanel(new Limit5SalixBehaviour()); gernotbelger@9053: } else if (uiProvider.equals("hws_datacage_panel")) { gernotbelger@9053: return new HWSDatacagePanel(user); gernotbelger@9053: } else if (uiProvider.equals("user_rgd_panel")) { gernotbelger@9053: return new UserRGDProvider(); gernotbelger@9053: } else if (uiProvider.equals("static_sqrelation")) { rrenkert@5503: return new StaticDataPanel(); gernotbelger@9237: } else if (uiProvider.equals("uinfo.salix.supraregional.table")) { gernotbelger@9237: return new SupraRegionalTablePanel(); bjoern@4160: } gernotbelger@9053: gernotbelger@8854: if ("sinfo_flowdepth_twin_panel".equals(uiProvider)) gernotbelger@9133: return new FlowDepthTwinPanel(user, 1, getMSG().sinfo_flow_depth_development_twin_panel_max_count_msg()); gernotbelger@8854: gernotbelger@8993: if ("sinfo_flowdepthminmax_twin_panel".equals(uiProvider)) gernotbelger@8993: return new FlowDepthMinMaxTwinPanel(user); gernotbelger@9053: gernotbelger@9053: // GWT.log("Picked default provider."); gernotbelger@8854: return new SelectProvider(); ingo@20: } gernotbelger@9133: gernotbelger@9133: private static FLYSConstants getMSG() { gernotbelger@9133: if (MSG == null) { gernotbelger@9133: MSG = GWT.create(FLYSConstants.class); gernotbelger@9133: } gernotbelger@9133: return MSG; gernotbelger@9133: } gernotbelger@9133: ingo@20: } felix@3351: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :