annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/MapSelection.java @ 4573:b87073a05f9d

flys-client: Patch to render combobox options as clickable links. The way of passing data arguments to the links and further to the Artifact feeding service is somewhat hacked and should be refactored (later...).
author Christian Lins <christian.lins@intevation.de>
date Tue, 27 Nov 2012 12:50:10 +0100
parents 360e22afb98b
children 2aabd9752d5e
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
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import com.smartgwt.client.types.VerticalAlignment;
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import com.smartgwt.client.widgets.Canvas;
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import com.smartgwt.client.widgets.layout.HLayout;
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
9 import de.intevation.flys.client.shared.model.Data;
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 1401
diff changeset
10 import de.intevation.flys.client.shared.model.DataList;
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
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 * This UIProvider displays the DataItems contained in the Data object in a
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 * combo box as SelectProvider does. Furthermore, there is a map displayed that
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 * lets the user choose a river by selecting it on the map.
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 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
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 public class MapSelection extends SelectProvider {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 1401
diff changeset
22 private static final long serialVersionUID = 1261822454641198692L;
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 1401
diff changeset
23
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
24 protected ModuleSelection moduleSelection;
39
4187a797fc3d Implemented the step forward mechanism in the CollectionView and added the river map to the initial widget.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 30
diff changeset
25
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 public MapSelection() {
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 }
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 /**
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 * This method currently returns a
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 * {@link com.smartgwt.client.widgets.form.DynamicForm} that contains all
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 * data items in a combobox stored in <i>data</i>.<br>
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 *
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 * <b>TODO: The map panel for the river selection needs to be
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 * implemented!</b>
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 *
51
a2923d63f530 Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 49
diff changeset
38 * @param data The {@link DataList} object.
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 *
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 * @return a combobox.
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 */
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 1401
diff changeset
42 @Override
51
a2923d63f530 Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 49
diff changeset
43 protected Canvas createWidget(DataList data) {
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 GWT.log("MapSelection - create()");
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 HLayout h = new HLayout();
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 h.setAlign(VerticalAlignment.TOP);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
48 h.setHeight(100);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
49 moduleSelection = new ModuleSelection();
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
51 Canvas form = moduleSelection.create(data);
4573
b87073a05f9d flys-client: Patch to render combobox options as clickable links.
Christian Lins <christian.lins@intevation.de>
parents: 4131
diff changeset
52 form.setWidth(400);
53
3d5d7788d471 The widgets in the static part of the parameter panel are created using UIProviders now. The ParameterList does not build widgets any longer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 51
diff changeset
53 form.setLayoutAlign(VerticalAlignment.TOP);
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 1401
diff changeset
55 // TODO implement event handling in the river map (here? or in LinkSelection)
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 h.addMember(form);
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 return h;
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 }
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
61
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 1401
diff changeset
62 @Override
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
63 protected Data[] getData() {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
64 if (moduleSelection != null) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
65 return moduleSelection.getData();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
66 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
67 else {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
68 return null;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
69 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 83
diff changeset
70 }
20
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 }
c128d675386b Added UIProviders that are used to create widgets for entering data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org