annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/UIProviderFactory.java @ 9559:ba0561906f81

Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
author gernotbelger
date Wed, 24 Oct 2018 18:40:38 +0200
parents 709a73badd48
children 839b2aa84dd0
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui;
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
11 import org.dive4elements.river.client.client.FLYSConstants;
9292
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9276
diff changeset
12 import org.dive4elements.river.client.client.ui.bundu.BunduWstCalcSelectRadioPanel;
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents: 9273
diff changeset
13 import org.dive4elements.river.client.client.ui.bundu.BunduWstWQPanel;
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
14 import org.dive4elements.river.client.client.ui.bundu.CustomFixationChoiceRadioPanel;
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
15 import org.dive4elements.river.client.client.ui.bundu.QSeriesLengthPanel;
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
16 import org.dive4elements.river.client.client.ui.fixation.BunduFixPeriodPanel;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
17 import org.dive4elements.river.client.client.ui.fixation.FixEventSelect;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
18 import org.dive4elements.river.client.client.ui.fixation.FixFunctionSelect;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
19 import org.dive4elements.river.client.client.ui.fixation.FixGaugeSelectPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
20 import org.dive4elements.river.client.client.ui.fixation.FixLocationPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
21 import org.dive4elements.river.client.client.ui.fixation.FixMultiPeriodPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
22 import org.dive4elements.river.client.client.ui.fixation.FixPeriodPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
23 import org.dive4elements.river.client.client.ui.fixation.FixQSelectPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
24 import org.dive4elements.river.client.client.ui.minfo.BedHeightsDatacagePanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.river.client.client.ui.minfo.BedMultiPeriodPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.river.client.client.ui.minfo.CheckboxPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.river.client.client.ui.minfo.SedLoadDistancePanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
28 import org.dive4elements.river.client.client.ui.minfo.SedLoadEpochPanel;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
29 import org.dive4elements.river.client.client.ui.minfo.SedLoadPeriodPanel;
8231
dded480e17c9 (issue1448) Add Panel for new sq_ti_select state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 6060
diff changeset
30 import org.dive4elements.river.client.client.ui.minfo.SedLoadSQTiPanel;
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents: 9062
diff changeset
31 import org.dive4elements.river.client.client.ui.sinfo.CollisionLoadEpochPanel;
9074
766890addcb2 state To client communication;
gernotbelger
parents: 9073
diff changeset
32 import org.dive4elements.river.client.client.ui.sinfo.CollisionLoadYearPanel;
9353
217e8e59c386 sinfo flowdepth multiple pairs allowed; bugfix arrayOutOfRange hasTkh==false && useTkh==true
gernotbelger
parents: 9299
diff changeset
33 import org.dive4elements.river.client.client.ui.sinfo.DiffPairTwinPanel;
8993
0adc6d04de95 SInfo - FlowDepthMinMax: choosing bed heights, not bed height min and max separately
gernotbelger
parents: 8854
diff changeset
34 import org.dive4elements.river.client.client.ui.sinfo.FlowDepthMinMaxTwinPanel;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
35 import org.dive4elements.river.client.client.ui.sq.SQPeriodPanel;
9481
787fc085459b TSV introduced; uinfo.inundationWMS-Config
gernotbelger
parents: 9391
diff changeset
36 import org.dive4elements.river.client.client.ui.uinfo.InundationWMSInputPanel;
9256
6c24c857ccf9 fixation refactoring and inputItem behaviour to interfaces
gernotbelger
parents: 9250
diff changeset
37 import org.dive4elements.river.client.client.ui.uinfo.Limit5SalixBehaviour;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
38 import org.dive4elements.river.client.client.ui.uinfo.LoadSedimentHeightPanel;
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents: 9062
diff changeset
39 import org.dive4elements.river.client.client.ui.uinfo.LoadSingleYearPanel;
9248
9e6b70cce337 pseudo epoch for salix.historical
gernotbelger
parents: 9246
diff changeset
40 import org.dive4elements.river.client.client.ui.uinfo.LoadSingleYearPseudoEpochPanel;
9237
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9224
diff changeset
41 import org.dive4elements.river.client.client.ui.uinfo.SupraRegionalTablePanel;
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
42 import org.dive4elements.river.client.client.ui.uinfo.VegetationzonesTableEditPanel;
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
43 import org.dive4elements.river.client.client.ui.uinfo.VegetationzonesTablePanel;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
44 import org.dive4elements.river.client.shared.model.User;
1612
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
45
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
46 import com.google.gwt.core.client.GWT;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
47
1612
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
48 /**
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
49 * Depending on the provider the state declared, return a UIProvider.
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
50 *
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
51 * A UIProvider provides widgets and input helpers to guide input to an
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
52 * artifacts state.
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
53 */
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 public class UIProviderFactory {
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
55 private static FLYSConstants MSG;
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 private UIProviderFactory() {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 }
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
60 /**
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
61 * @param uiProvider
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
62 * uiprovider demanded for by state.
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
63 */
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
64 public static UIProvider getProvider(final String uiProvider, final User user) {
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 if (uiProvider == null || uiProvider.equals("")) {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 return new SelectProvider();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
67 } else if (uiProvider.equals("select_with_map")) {
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 return new MapSelection();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
69 } else if (uiProvider.equals("location_distance_panel")) {
41
87a44f8e25cc Added a new widget that enables the user to enter a location or a distance in a single step.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 20
diff changeset
70 return new LocationDistancePanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
71 } else if (uiProvider.equals("location_panel")) {
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 44
diff changeset
72 return new SingleLocationPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
73 } else if (uiProvider.equals("multi_location_panel")) {
1612
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
74 return new MultipleLocationPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
75 } else if (uiProvider.equals("distance_panel")) {
780
a39c2f531755 Implemented a new panel to enter kilometer ranges (with no option to insert locations).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 282
diff changeset
76 return new DistancePanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
77 } else if (uiProvider.equals("distance_only_panel")) {
1265
f98bd9b5cedd #315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
78 return new DistanceOnlyPanel();
9062
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents: 9053
diff changeset
79 } else if (uiProvider.equals("distance_only_part_panel")) {
5198066492a9 Teilabschnitt Salix State
gernotbelger
parents: 9053
diff changeset
80 return new DistanceOnlyPartPanel();
9246
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9237
diff changeset
81 } else if (uiProvider.equals("distance_only_part_historical_panel")) {
c08d5cfa4981 some hibernate queries on bedheigts for salix
gernotbelger
parents: 9237
diff changeset
82 return new DistanceOnlyPartHistoricalPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
83 } else if (uiProvider.equals("waterlevel_ground_panel")) {
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
84 return new WaterlevelGroundPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
85 } else if (uiProvider.equals("wq_panel")) {
44
3853210f2d18 Enhanced the UIProviderFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
86 return new WQInputPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
87 } else if (uiProvider.equals("wq_panel_adapted")) {
243
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 238
diff changeset
88 return new WQAdaptedInputPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
89 } else if (uiProvider.equals("wq_panel_adapted_fixing")) {
6060
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
90 return new WQAdaptedFixingInputPanel();
9276
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents: 9273
diff changeset
91 } else if (uiProvider.equals("bundu_wst_wq_panel")) {
3141f0e7314e clone for bundu.ws.wq
gernotbelger
parents: 9273
diff changeset
92 return new BunduWstWQPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
93 } else if (uiProvider.equals("q_segmented_panel")) {
4120
062cb6605653 Register new ui provider.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4061
diff changeset
94 return new QSegmentedInputPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
95 } else if (uiProvider.equals("river_panel")) {
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 243
diff changeset
96 return new LinkSelection();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
97 } else if (uiProvider.equals("continue")) {
785
3ae0facd4cab Added a panel that lets users step to a next state without feeding the current artifact with new data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 780
diff changeset
98 return new ContinuePanel();
9066
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
99 } else if (uiProvider.equals("uinfo.vegetationzones.table.edit")) {
b5d7a9d79837 uinfo.inundation_duration ui
gernotbelger
parents: 9064
diff changeset
100 return new VegetationzonesTableEditPanel();
9064
28c50f5efceb work on uinfo-vegetation-zones table
gernotbelger
parents: 9063
diff changeset
101 } else if (uiProvider.equals("uinfo.vegetationzones.table")) {
9558
709a73badd48 VegetationZone removed from Uinfo-Ü'Dauern Workflow
gernotbelger
parents: 9481
diff changeset
102 // THIS CASE IS UNUSED AND SHOULD BE DELETED
9299
4a6cc7c6716a uinfo.inundation_duration veg'zone select
gernotbelger
parents: 9292
diff changeset
103 return new VegetationzonesTablePanel(user);
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
104 } else if (uiProvider.equals("wsp_datacage_panel")) {
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 867
diff changeset
105 return new WspDatacagePanel(user);
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
106 } else if (uiProvider.equals("dgm_datacage_panel")) {
901
3ef7205b814e Added stubs for two datacage panels - one for choosing waterlevels, one for choosing DEMs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 867
diff changeset
107 return new DemDatacagePanel(user);
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
108 } else if (uiProvider.equals("waterlevel_twin_panel")) {
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents: 8791
diff changeset
109 return new WaterlevelTwinPanel(user);
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
110 } else if (uiProvider.equals("auto_integer")) {
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
111 return new AutoIntegerPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
112 } else if (uiProvider.equals("boolean_panel")) {
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
113 return new BooleanPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
114 } else if (uiProvider.equals("noinput")) {
824
3fe265b47675 Added a NoInputPanel to suppress the creation of an input panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 787
diff changeset
115 return new NoInputPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
116 } else if (uiProvider.equals("map_digitize")) {
833
dcecdd9693a8 Added a UIProvider that displays a combobox on the left and a map widget in the helper container.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 824
diff changeset
117 return new DigitizePanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
118 } else if (uiProvider.equals("timerange")) {
1524
487c3ff7e838 Improved the code of IntegerRangePanel: it now returns the inserted values as IntegerRangeData object.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1523
diff changeset
119 return new IntegerRangePanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
120 } else if (uiProvider.equals("wq_simple_array")) {
1528
ff41405a891d Added a new widget to simply insert a WQ mode and values as array.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1524
diff changeset
121 return new WQSimpleArrayPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
122 } else if (uiProvider.equals("gaugetimerange")) {
1602
f30919997e57 Added helper input table to state 'timerange' input in hist. discharge curves.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1528
diff changeset
123 return new GaugeTimeRangePanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
124 } else if (uiProvider.equals("fix.location_panel")) {
2505
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
125 return new FixLocationPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
126 } else if (uiProvider.equals("fix.period_panel")) {
2505
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
127 return new FixPeriodPanel();
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
128 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
129
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
130 else if (uiProvider.equals("bundu.fix.period_panel")) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
131 return new BunduFixPeriodPanel();
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
132 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
133
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
134 else if (uiProvider.equals("bundu.wst.state.load_single_q_series")) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
135 return new QSeriesLengthPanel();
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
136 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
137
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
138 else if (uiProvider.equals("fix.period_ref_panel")) {
2538
c7da05282644 FixPeriodPanel: Make the names of state parameters configurable by constructor.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2526
diff changeset
139 return new FixPeriodPanel("ref_start", "ref_end");
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
140 } else if (uiProvider.equals("fix.period_ana_panel")) {
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2538
diff changeset
141 return new FixMultiPeriodPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
142 } else if (uiProvider.equals("fix.qselect_panel")) {
3365
1f4ce71cb6c4 Register upcoming FixQSelectPanel UI-Provider, added omitted ChangeLog entries.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3358
diff changeset
143 return new FixQSelectPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
144 } else if (uiProvider.equals("fix.gaugeselect_panel")) {
2505
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
145 return new FixGaugeSelectPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
146 } else if (uiProvider.equals("fix.event_panel")) {
2505
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
147 return new FixEventSelect();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
148 } else if (uiProvider.equals("fix.preprocessing_panel")) {
2526
a911e2968cb1 Changed some data types in states and filter and added new preprocessing state
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2521
diff changeset
149 return new BooleanPanel();
9273
1b2623dff742 salix another review
gernotbelger
parents: 9270
diff changeset
150 } else if (uiProvider.equals("fix.missing_volume_panel")) {
1b2623dff742 salix another review
gernotbelger
parents: 9270
diff changeset
151 return new BooleanPanel();
1b2623dff742 salix another review
gernotbelger
parents: 9270
diff changeset
152 }
1b2623dff742 salix another review
gernotbelger
parents: 9270
diff changeset
153
1b2623dff742 salix another review
gernotbelger
parents: 9270
diff changeset
154 else if (uiProvider.equals("fix.functionselect")) {
3358
65b71ddc7716 Show the overview and chart in function select state in fix analysis helper
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3351
diff changeset
155 return new FixFunctionSelect();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
156 } else if (uiProvider.equals("period_select")) {
3372
cb84e717e54d Added a new UI provider that allows the input of a single time period (without any helper panel).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3365
diff changeset
157 return new PeriodPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
158 } else if (uiProvider.equals("periods_select")) {
3527
6ededa5aa803 MINFO: Added new UI provider for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3508
diff changeset
159 return new MultiPeriodPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
160 } else if (uiProvider.equals("sq.period.select")) {
3373
86e69788c946 Added a new UIProvider that allows the input of a time period; the helper panel displays the field campaigns of MINFO's SQ relation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3372
diff changeset
161 return new SQPeriodPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
162 } else if (uiProvider.equals("outliers_input")) {
2898
242b5c230707 Added UI for S-Q-relation parameters in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2883
diff changeset
163 return new DoubleInputPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
164 } else if (uiProvider.equals("percent_input")) {
4280
a27e68562f2a Let percent_input be DoubleInputPanal UI-Provider that inputs data named 'percent'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4224
diff changeset
165 return new DoubleInputPanel("percent");
9391
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
166 } else if (uiProvider.equals("parameter-matrix-sounding-multiple")) {
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
167 return new ParameterMatrixPanel(getMSG().getString("name_of_sounding"), ParameterMatrix.Column.SelectionMode.multi);
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
168 } else if (uiProvider.equals("parameter-matrix-sounding-single")) {
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
169 return new ParameterMatrixPanel(getMSG().getString("name_of_sounding"), ParameterMatrix.Column.SelectionMode.single);
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
170 }
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
171
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
172 else if (uiProvider.equals("parameter-matrix-flowvelocity")) {
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
173 return new ParameterMatrixPanel(" ", ParameterMatrix.Column.SelectionMode.multi); // TODO minfo.fließgeschwindigkeiten auflusszustand und gerinne
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
174 // title
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
175 // erste spalte ausdenken (nur
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
176 // wenn jemand
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 9369
diff changeset
177 // danach fragt, ansonsten ist es old stuff)
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 9369
diff changeset
178 } else if (uiProvider.equals("parameter-matrix-char-diameter")) {
9391
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
179 return new ParameterMatrixPanel(" ", ParameterMatrix.Column.SelectionMode.multi); // TODO minfo.sohlbeschaffenheit ? title erste spalte ausdenken
2da486c7c05f salix historical sounding workflow changed
gernotbelger
parents: 9390
diff changeset
180 // (nur wenn jemand
9390
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 9369
diff changeset
181 // danach fragt, ansonsten ist es old stuff)
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 9369
diff changeset
182 }
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 9369
diff changeset
183
f575ff573cbb "Name der Peilung" columname minfo.
gernotbelger
parents: 9369
diff changeset
184 else if (uiProvider.equals("minfo.bed.year_epoch")) {// legacy
9369
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
185 return new RadioPanel("ye_select");
9292
e6958f0e72fa bundu.bezugswst details
gernotbelger
parents: 9276
diff changeset
186 } else if (uiProvider.equals("bundu_calc_choice_radio_panel")) {
9369
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
187 return new BunduWstCalcSelectRadioPanel("calc_choice");
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
188 } else if (uiProvider.equals("collision_yearchoice_radio_panel")) {
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
189 return new RadioPanel("ye_select");
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
190 } else if (uiProvider.equals("inundationduration_yearchoice_radio_panel")) {
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
191 return new RadioPanel("ye_select");
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
192 } else if (uiProvider.equals("salix_yearchoice_radio_panel")) {
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
193 return new RadioPanel("ye_select");
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
194 } else if (uiProvider.equals("salix_scenariotype_radio_panel")) {
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
195 return new RadioPanel("scenario_selection");
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
196 } else if (uiProvider.equals("custom_fixation_radio_panel")) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents: 9256
diff changeset
197 return new CustomFixationChoiceRadioPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
198 } else if (uiProvider.equals("bedquality_periods_select")) {
3705
f84ed73311f2 Added UI for minfo bed quality calculation and added new services for overview
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3535
diff changeset
199 return new BedMultiPeriodPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
200 } else if (uiProvider.equals("bedheights_twin_panel")) {
3508
60984be9bcfa MINFO: Added UI for minfo differences calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3373
diff changeset
201 return new BedHeightsDatacagePanel(user);
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
202 } else if (uiProvider.equals("minfo.bed.char_diameter")) {
3527
6ededa5aa803 MINFO: Added new UI provider for bed quality calculation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 3508
diff changeset
203 return new CheckboxPanel();
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
204 } else if (uiProvider.equals("minfo.sedimentload_unit_select")) {
9369
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
205 return new RadioPanel("unit");
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
206 } else if (uiProvider.equals("riverside_radio_panel")) {
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9353
diff changeset
207 return new RadioPanel("riverside");
9481
787fc085459b TSV introduced; uinfo.inundationWMS-Config
gernotbelger
parents: 9391
diff changeset
208 } else if (uiProvider.equals("static_data")) {
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
209 return new StaticDataPanel();
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
210 } else if (uiProvider.equals("minfo.sedimentload_distance_select")) {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
211 return new SedLoadDistancePanel();
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
212 } else if (uiProvider.equals("minfo.sedimentload_year_select")) {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
213 return new SedLoadPeriodPanel();
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
214 } else if (uiProvider.equals("minfo.sedimentload_epoch_select")) {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
215 return new SedLoadEpochPanel();
9074
766890addcb2 state To client communication;
gernotbelger
parents: 9073
diff changeset
216 } else if (uiProvider.equals("sinfo.collision.load_year_select")) {
9270
7337034eb5d5 multiple whitespace input fix
gernotbelger
parents: 9267
diff changeset
217 return new CollisionLoadYearPanel(getMSG());
9063
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents: 9062
diff changeset
218 } else if (uiProvider.equals("sinfo.collision.load_epoch_select")) {
b6919e3c2d86 work on uinfo-inundation_duration states
gernotbelger
parents: 9062
diff changeset
219 return new CollisionLoadEpochPanel();
9073
cd650cacc926 work on bundu.bezugswst states
gernotbelger
parents: 9066
diff changeset
220 } else if (uiProvider.equals("common.state.load_single_year_select")) {
9270
7337034eb5d5 multiple whitespace input fix
gernotbelger
parents: 9267
diff changeset
221 return new LoadSingleYearPanel(getMSG());
9481
787fc085459b TSV introduced; uinfo.inundationWMS-Config
gernotbelger
parents: 9391
diff changeset
222 } else if (uiProvider.equals("uinfo.inundation.wms_year")) {
9559
ba0561906f81 Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
gernotbelger
parents: 9558
diff changeset
223 return new InundationWMSInputPanel(getMSG(), "year_epoch_select", getMSG().year(), null, true);
9481
787fc085459b TSV introduced; uinfo.inundationWMS-Config
gernotbelger
parents: 9391
diff changeset
224 } else if (uiProvider.equals("uinfo.inundation.wms_epoch")) {
9559
ba0561906f81 Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
gernotbelger
parents: 9558
diff changeset
225 return new InundationWMSInputPanel(getMSG(), "year_epoch_select", getMSG().epoch(), null, false);
9250
b64cf2f5f719 bundu showHint "JJJJ"
gernotbelger
parents: 9248
diff changeset
226 } else if (uiProvider.equals("common.state.load_single_year_select.show_hint")) {
9270
7337034eb5d5 multiple whitespace input fix
gernotbelger
parents: 9267
diff changeset
227 return new LoadSingleYearPanel(getMSG(), true);
9248
9e6b70cce337 pseudo epoch for salix.historical
gernotbelger
parents: 9246
diff changeset
228 } else if (uiProvider.equals("uinfo.salix.load_single_year_pseudo_epoch_select")) {
9270
7337034eb5d5 multiple whitespace input fix
gernotbelger
parents: 9267
diff changeset
229 return new LoadSingleYearPseudoEpochPanel(getMSG());
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
230 } else if (uiProvider.equals("minfo.sedimentload_sqti_select")) {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
231 return new SedLoadSQTiPanel();
9559
ba0561906f81 Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
gernotbelger
parents: 9558
diff changeset
232 } else if (uiProvider.equals("uinfo.inundation.szenario")) {
ba0561906f81 Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
gernotbelger
parents: 9558
diff changeset
233 return new InundationWMSInputPanel(getMSG(), "inundation_scenario", getMSG().uinfo_inundation_scenario_old_msg(), "cm", false);
9222
5a0e8d76582e uinfo.salix regional workflow
gernotbelger
parents: 9133
diff changeset
234 } else if (uiProvider.equals("uinfo.sedimentheight_select.limit5")) {
9270
7337034eb5d5 multiple whitespace input fix
gernotbelger
parents: 9267
diff changeset
235 return new LoadSedimentHeightPanel(new Limit5SalixBehaviour(getMSG()));
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
236 } else if (uiProvider.equals("hws_datacage_panel")) {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
237 return new HWSDatacagePanel(user);
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
238 } else if (uiProvider.equals("user_rgd_panel")) {
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
239 return new UserRGDProvider();
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
240 } else if (uiProvider.equals("static_sqrelation")) {
5503
b660090b417d Create a new sq relation project on measurement station record click.
Raimund Renkert <rrenkert@intevation.de>
parents: 5312
diff changeset
241 return new StaticDataPanel();
9237
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9224
diff changeset
242 } else if (uiProvider.equals("uinfo.salix.supraregional.table")) {
972e10522ed6 salix.supraregional ui
gernotbelger
parents: 9224
diff changeset
243 return new SupraRegionalTablePanel();
9353
217e8e59c386 sinfo flowdepth multiple pairs allowed; bugfix arrayOutOfRange hasTkh==false && useTkh==true
gernotbelger
parents: 9299
diff changeset
244 } else if ("sinfo_flowdepth_development_twin_panel".equals(uiProvider))
217e8e59c386 sinfo flowdepth multiple pairs allowed; bugfix arrayOutOfRange hasTkh==false && useTkh==true
gernotbelger
parents: 9299
diff changeset
245 return new DiffPairTwinPanel(user, 1, getMSG().sinfo_flow_depth_development_twin_panel_max_count_msg());
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
246
9353
217e8e59c386 sinfo flowdepth multiple pairs allowed; bugfix arrayOutOfRange hasTkh==false && useTkh==true
gernotbelger
parents: 9299
diff changeset
247 else if ("sinfo_flowdepth_twin_panel".equals(uiProvider))
217e8e59c386 sinfo flowdepth multiple pairs allowed; bugfix arrayOutOfRange hasTkh==false && useTkh==true
gernotbelger
parents: 9299
diff changeset
248 return new DiffPairTwinPanel(user, 9999, "");
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents: 8791
diff changeset
249
9353
217e8e59c386 sinfo flowdepth multiple pairs allowed; bugfix arrayOutOfRange hasTkh==false && useTkh==true
gernotbelger
parents: 9299
diff changeset
250 else if ("sinfo_flowdepthminmax_twin_panel".equals(uiProvider))
8993
0adc6d04de95 SInfo - FlowDepthMinMax: choosing bed heights, not bed height min and max separately
gernotbelger
parents: 8854
diff changeset
251 return new FlowDepthMinMaxTwinPanel(user);
9053
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
252
ad2ae847e10e - RadioButton-Auswahl generisch
gernotbelger
parents: 8993
diff changeset
253 // GWT.log("Picked default provider.");
8854
7bbfb24e6eec SINFO - first prototype of BArt Fließtiefen
gernotbelger
parents: 8791
diff changeset
254 return new SelectProvider();
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
255 }
9133
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
256
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
257 private static FLYSConstants getMSG() {
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
258 if (MSG == null) {
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
259 MSG = GWT.create(FLYSConstants.class);
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
260 }
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
261 return MSG;
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
262 }
af73fdd96920 Title current/historical diff pair; limit on entries in diff'pair twin_panel
gernotbelger
parents: 9079
diff changeset
263
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
264 }
3351
24e9b5eb83f8 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2953
diff changeset
265 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org