annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java @ 2521:fe177e7f61d1

Added a new UIProvider that renders a matrix of checkboxes for user input. flys-client/trunk@4401 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 14 May 2012 14:45:02 +0000
parents 87ac5c532523
children a911e2968cb1
rev   line source
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 833
diff changeset
3 import de.intevation.flys.client.shared.model.User;
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 833
diff changeset
4
2505
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
5 import de.intevation.flys.client.client.ui.fixation.FixLocationPanel;
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
6 import de.intevation.flys.client.client.ui.fixation.FixPeriodPanel;
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
7 import de.intevation.flys.client.client.ui.fixation.FixGaugeSelectPanel;
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
8 import de.intevation.flys.client.client.ui.fixation.FixEventSelect;
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
9
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
10 /**
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
11 * 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
12 *
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
13 * 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
14 * 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
15 */
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 public class UIProviderFactory {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 private UIProviderFactory() {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 }
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 833
diff changeset
21 public static UIProvider getProvider(String uiProvider, User user) {
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 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
23 return new SelectProvider();
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 }
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 else if (uiProvider.equals("select_with_map")) {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 return new MapSelection();
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 }
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
28 else if (uiProvider.equals("location_distance_panel")) {
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
29 return new LocationDistancePanel();
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
30 }
238
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 44
diff changeset
31 else if (uiProvider.equals("location_panel")) {
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 44
diff changeset
32 return new SingleLocationPanel();
234c78a91c15 Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 44
diff changeset
33 }
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
34 else if (uiProvider.equals("multi_location_panel")) {
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
35 return new MultipleLocationPanel();
66671b69c7ea Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1602
diff changeset
36 }
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
37 else if (uiProvider.equals("distance_panel")) {
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
38 return new DistancePanel();
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
39 }
1265
f98bd9b5cedd #315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
40 else if (uiProvider.equals("distance_only_panel")) {
f98bd9b5cedd #315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
41 return new DistanceOnlyPanel();
f98bd9b5cedd #315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 901
diff changeset
42 }
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
43 else if (uiProvider.equals("waterlevel_ground_panel")) {
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
44 return new WaterlevelGroundPanel();
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
45 }
44
3853210f2d18 Enhanced the UIProviderFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
46 else if (uiProvider.equals("wq_panel")) {
3853210f2d18 Enhanced the UIProviderFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
47 return new WQInputPanel();
3853210f2d18 Enhanced the UIProviderFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 41
diff changeset
48 }
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
49 else if (uiProvider.equals("wq_panel_adapted")) {
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 238
diff changeset
50 return new WQAdaptedInputPanel();
11c5bcd349b1 Added a stub implementation of a WQ panel for discharge longitudinal section computations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 238
diff changeset
51 }
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 243
diff changeset
52 else if (uiProvider.equals("river_panel")) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 243
diff changeset
53 return new LinkSelection();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 243
diff changeset
54 }
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
55 else if (uiProvider.equals("continue")) {
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
56 return new ContinuePanel();
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
57 }
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
58 else if (uiProvider.equals("wsp_datacage_panel")) {
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
59 return new WspDatacagePanel(user);
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
60 }
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
61 else if (uiProvider.equals("dgm_datacage_panel")) {
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
62 return new DemDatacagePanel(user);
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
63 }
867
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 833
diff changeset
64 else if (uiProvider.equals("datacage_twin_panel")) {
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 833
diff changeset
65 return new DatacageTwinPanel(user);
6a2ed979dfcf Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 833
diff changeset
66 }
787
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
67 else if (uiProvider.equals("auto_integer")) {
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
68 return new AutoIntegerPanel();
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
69 }
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
70 else if (uiProvider.equals("boolean_panel")) {
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
71 return new BooleanPanel();
4e0b73b7113b Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 785
diff changeset
72 }
824
3fe265b47675 Added a NoInputPanel to suppress the creation of an input panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 787
diff changeset
73 else if (uiProvider.equals("noinput")) {
3fe265b47675 Added a NoInputPanel to suppress the creation of an input panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 787
diff changeset
74 return new NoInputPanel();
3fe265b47675 Added a NoInputPanel to suppress the creation of an input panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 787
diff changeset
75 }
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
76 else if (uiProvider.equals("map_digitize")) {
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
77 return new DigitizePanel();
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
78 }
1523
07b532f9e057 Added new panels for inserting ranges, int ranges and time (year) ranges.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1367
diff changeset
79 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
80 return new IntegerRangePanel();
1523
07b532f9e057 Added new panels for inserting ranges, int ranges and time (year) ranges.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1367
diff changeset
81 }
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
82 else if (uiProvider.equals("wq_simple_array")) {
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
83 return new WQSimpleArrayPanel();
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
84 }
1602
f30919997e57 Added helper input table to state 'timerange' input in hist. discharge curves.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1528
diff changeset
85 else if (uiProvider.equals("gaugetimerange")) {
f30919997e57 Added helper input table to state 'timerange' input in hist. discharge curves.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1528
diff changeset
86 return new GaugeTimeRangePanel();
f30919997e57 Added helper input table to state 'timerange' input in hist. discharge curves.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1528
diff changeset
87 }
2505
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
88 else if (uiProvider.equals("fix.location_panel")) {
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
89 return new FixLocationPanel();
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
90 }
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
91 else if (uiProvider.equals("fix.period_panel")) {
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
92 return new FixPeriodPanel();
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
93 }
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
94 else if (uiProvider.equals("fix.gaugeselect_panel")) {
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
95 return new FixGaugeSelectPanel();
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
96 }
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
97 else if (uiProvider.equals("fix.event_panel")) {
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
98 return new FixEventSelect();
87ac5c532523 First part of the UI for fixing analysis parameter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1612
diff changeset
99 }
2521
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2505
diff changeset
100 else if (uiProvider.equals("parameter-matrix")) {
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2505
diff changeset
101 return new ParameterMatrixPanel();
fe177e7f61d1 Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2505
diff changeset
102 }
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 else {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 return new SelectProvider();
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 }
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 }
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 }

http://dive4elements.wald.intevation.org