Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java @ 2454:99bd77501188
Issue 514.
Remove filter if selection changes from description to range.
flys-client/trunk@4139 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Tue, 13 Mar 2012 17:24:52 +0000 |
parents | 66671b69c7ea |
children | 87ac5c532523 |
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 |
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
|
5 |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1602
diff
changeset
|
6 /** |
66671b69c7ea
Added new UIProvider to enter mutliple locations (yet only input view textfield possible).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1602
diff
changeset
|
7 * 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
|
8 * |
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 * 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
|
10 * 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
|
11 */ |
20
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 public class UIProviderFactory { |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 private UIProviderFactory() { |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 } |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
867
6a2ed979dfcf
Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
833
diff
changeset
|
17 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
|
18 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
|
19 return new SelectProvider(); |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 } |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 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
|
22 return new MapSelection(); |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 } |
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
|
24 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
|
25 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
|
26 } |
238
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
44
diff
changeset
|
27 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
|
28 return new SingleLocationPanel(); |
234c78a91c15
Added new UI provider for single location selection.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
44
diff
changeset
|
29 } |
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
|
30 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
|
31 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
|
32 } |
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
|
33 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
|
34 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
|
35 } |
1265
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
901
diff
changeset
|
36 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
|
37 return new DistanceOnlyPanel(); |
f98bd9b5cedd
#315 Added a new UIProvider for range selection in floodmaps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
901
diff
changeset
|
38 } |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
39 else if (uiProvider.equals("waterlevel_ground_panel")) { |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
40 return new WaterlevelGroundPanel(); |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
41 } |
44
3853210f2d18
Enhanced the UIProviderFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
41
diff
changeset
|
42 else if (uiProvider.equals("wq_panel")) { |
3853210f2d18
Enhanced the UIProviderFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
41
diff
changeset
|
43 return new WQInputPanel(); |
3853210f2d18
Enhanced the UIProviderFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
41
diff
changeset
|
44 } |
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
|
45 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
|
46 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
|
47 } |
282
e92f7ef455d6
Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
243
diff
changeset
|
48 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
|
49 return new LinkSelection(); |
e92f7ef455d6
Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
243
diff
changeset
|
50 } |
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
|
51 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
|
52 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
|
53 } |
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
|
54 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
|
55 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
|
56 } |
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
|
57 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
|
58 return new DemDatacagePanel(user); |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
59 } |
867
6a2ed979dfcf
Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
833
diff
changeset
|
60 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
|
61 return new DatacageTwinPanel(user); |
6a2ed979dfcf
Added new UIProvider "DatacageTwinPanel", pass user via UIProviderFactory.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
833
diff
changeset
|
62 } |
787
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
63 else if (uiProvider.equals("auto_integer")) { |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
64 return new AutoIntegerPanel(); |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
65 } |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
66 else if (uiProvider.equals("boolean_panel")) { |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
67 return new BooleanPanel(); |
4e0b73b7113b
Added new UI providers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
785
diff
changeset
|
68 } |
824
3fe265b47675
Added a NoInputPanel to suppress the creation of an input panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
787
diff
changeset
|
69 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
|
70 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
|
71 } |
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
|
72 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
|
73 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
|
74 } |
1523
07b532f9e057
Added new panels for inserting ranges, int ranges and time (year) ranges.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
75 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
|
76 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
|
77 } |
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
|
78 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
|
79 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
|
80 } |
1602
f30919997e57
Added helper input table to state 'timerange' input in hist. discharge curves.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1528
diff
changeset
|
81 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
|
82 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
|
83 } |
20
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 else { |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 return new SelectProvider(); |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 } |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 } |
c128d675386b
Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 } |