annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/UIProviderFactory.java @ 1612:66671b69c7ea

Added new UIProvider to enter mutliple locations (yet only input view textfield possible). flys-client/trunk@3979 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 08 Feb 2012 16:24:39 +0000
parents f30919997e57
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 }

http://dive4elements.wald.intevation.org