annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java @ 7764:5d17e0012020

Use river model_uuid to identify rivers.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 27 Feb 2014 16:42:35 +0100
parents 626af4af74a5
children 5ec28ef7026b
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: 5966
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: 5966
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;
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import com.google.gwt.core.client.GWT;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.types.VerticalAlignment;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.Canvas;
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
14 import com.smartgwt.client.widgets.HTMLPane;
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
15 import com.smartgwt.client.widgets.Img;
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.Label;
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
17 import com.smartgwt.client.widgets.events.VisibilityChangedEvent;
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
18 import com.smartgwt.client.widgets.events.VisibilityChangedHandler;
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import com.smartgwt.client.widgets.form.DynamicForm;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import com.smartgwt.client.widgets.form.fields.LinkItem;
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 3546
diff changeset
21 import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 3546
diff changeset
22 import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
23 import com.smartgwt.client.widgets.form.fields.events.ItemHoverEvent;
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
24 import com.smartgwt.client.widgets.form.fields.events.ItemHoverHandler;
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import com.smartgwt.client.widgets.layout.HLayout;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import com.smartgwt.client.widgets.layout.VLayout;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27
6349
0b3193d268b6 Fix the "Saale-Thüringen" hover effect in the interactive JS map.
Christian Lins <christian.lins@intevation.de>
parents: 6146
diff changeset
28 import java.util.HashMap;
0b3193d268b6 Fix the "Saale-Thüringen" hover effect in the interactive JS map.
Christian Lins <christian.lins@intevation.de>
parents: 6146
diff changeset
29 import java.util.Map;
0b3193d268b6 Fix the "Saale-Thüringen" hover effect in the interactive JS map.
Christian Lins <christian.lins@intevation.de>
parents: 6146
diff changeset
30
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
31 import org.dive4elements.river.client.client.FLYSConstants;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
32 import org.dive4elements.river.client.client.event.StepForwardEvent;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
33 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
34 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
35 import org.dive4elements.river.client.shared.model.DataList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
36 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
37 import org.dive4elements.river.client.shared.model.DefaultDataItem;
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 /**
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 * This UIProvider displays the DataItems of the Data object in a list of links.
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 *
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 */
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 public class LinkSelection
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 extends MapSelection
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
47 implements VisibilityChangedHandler
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 {
4131
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 4064
diff changeset
49
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 4064
diff changeset
50 private static final long serialVersionUID = -7138270638349711024L;
360e22afb98b Cosmetics, warnings and minor TODOs.
Christian Lins <christian.lins@intevation.de>
parents: 4064
diff changeset
51
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 /** The message class that provides i18n strings.*/
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 protected FLYSConstants messages = GWT.create(FLYSConstants.class);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 /** The selected river*/
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 protected Data river;
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
57 private static Map<String, Img> riverHighlight;
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
58 private static Map<String, HLayout> riverList;
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
59 private static String selected;
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
60 private static HLayout columns;
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
61
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
62 private static Trigger trigger;
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
63
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
64 private Canvas module;
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
65
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
66
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
67 private class Trigger {
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
68
6349
0b3193d268b6 Fix the "Saale-Thüringen" hover effect in the interactive JS map.
Christian Lins <christian.lins@intevation.de>
parents: 6146
diff changeset
69 private final LinkSelection ls;
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
70
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
71 public Trigger(LinkSelection ls) {
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
72 this.ls = ls;
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
73 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
74
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
75 public void trigger(String name) {
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
76 DataItem item = new DefaultDataItem(
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
77 name,
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
78 null,
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
79 name);
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
80
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
81 river = new DefaultData(
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
82 "river",
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
83 null,
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
84 null,
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
85 new DataItem [] {item});
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
86 this.ls.fireStepForwardEvent (new StepForwardEvent (getData()));
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
87 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
88 }
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 /**
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 * This method currently returns a
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 * {@link com.smartgwt.client.widgets.form.DynamicForm} that contains all
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 * data items in a list of links stored in <i>data</i>.
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 *
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 * @param data The {@link Data} object.
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 *
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 * @return a combobox.
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 */
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 3546
diff changeset
99 @Override
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 public Canvas create(DataList data) {
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
101 trigger = new Trigger(this);
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
102 createCallback();
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
103 riverHighlight = new HashMap<String, Img>();
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
104 riverList = new HashMap<String, HLayout>();
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
105
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 VLayout v = new VLayout();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 v.setMembersMargin(10);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 v.setAlign(VerticalAlignment.TOP);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 if (data.getState() == null) {
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
110 module = super.createWidget(data);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 v.addMember(module);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 }
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
113 else {
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
114 module = null;
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
115 }
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 Canvas content = createWidget(data);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 v.addMember(content);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 return v;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 3546
diff changeset
123 @Override
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 public Canvas createOld(DataList dataList) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 HLayout layout = new HLayout();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 VLayout vLayout = new VLayout();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 layout.setWidth("400px");
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 Label label = new Label(dataList.getLabel());
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 label.setWidth("200px");
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 int size = dataList.size();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 for (int i = 0; i < size; i++) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 Data data = dataList.get(i);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 DataItem[] items = data.getItems();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 for (DataItem item: items) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 HLayout hLayout = new HLayout();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 hLayout.addMember(label);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 hLayout.addMember(new Label(item.getLabel()));
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 vLayout.addMember(hLayout);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144 vLayout.setWidth("130px");
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148 Canvas back = getBackButton(dataList.getState());
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 layout.addMember(label);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 layout.addMember(vLayout);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 layout.addMember(back);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 return layout;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 /**
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 * This method creates the content of the widget.
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 *
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 * @param data The {@link Data} object.
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 *
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 * @return a list of links
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 */
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 3546
diff changeset
165 @Override
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166 protected Canvas createWidget(DataList data) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 GWT.log("LinkSelection - create()");
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169 VLayout layout = new VLayout();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
170 layout.setAlign(VerticalAlignment.TOP);
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
171 // XXX: This an evil hack because of misuse of static vars!
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 layout.setHeight(25);
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
173 columns = new HLayout();
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
174 VLayout formLayout1 = new VLayout();
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
175 VLayout formLayout2 = new VLayout();
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
177 formLayout1.setLayoutLeftMargin(60);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 int size = data.size();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 for (int i = 0; i < size; i++) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 Data d = data.get(i);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 Label label = new Label(d.getDescription());
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 label.setValign(VerticalAlignment.TOP);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186 label.setHeight(20);
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
187 label.setWidth(400);
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
188
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
189 int counter = 0;
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 for (DataItem item: d.getItems()) {
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
191 HLayout row = new HLayout();
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 LinkItem link = new LinkItem("river");
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
193 link.setHoverDelay(0);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 link.setLinkTitle(item.getLabel());
7764
5d17e0012020 Use river model_uuid to identify rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 6354
diff changeset
195 link.setValue(item.getStringValue());
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 link.setShowTitle(false);
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
197 Img img = new Img();
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
198 img.setShowTitle(false);
6130
2033f86a1863 Use new icon in rver link list.
Raimund Renkert <rrenkert@intevation.de>
parents: 6119
diff changeset
199 img.setSrc("symbol_selected.png");
2033f86a1863 Use new icon in rver link list.
Raimund Renkert <rrenkert@intevation.de>
parents: 6119
diff changeset
200 img.setWidth(18);
2033f86a1863 Use new icon in rver link list.
Raimund Renkert <rrenkert@intevation.de>
parents: 6119
diff changeset
201 img.setHeight(18);
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
202 img.setVisible(false);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
203 Canvas container = new Canvas();
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
204 container.addChild(img);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
205 container.setHeight(20);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
206 container.setWidth(20);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
207 DynamicForm f = new DynamicForm();
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
208 riverList.put(item.getStringValue(), row);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
209 riverHighlight.put(item.getStringValue(), img);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
210 f.setItems(link);
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
211 row.addMember(container);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
212 row.addMember(f);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
213 row.addVisibilityChangedHandler(this);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
214 link.setColSpan(20);
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
215 if (counter < d.getItems().length/2) {
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
216 formLayout1.addMember(row);
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
217 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
218 else {
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
219 formLayout2.addMember(row);
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
220 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
221 counter++;
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222 link.addClickHandler(new ClickHandler() {
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 3546
diff changeset
223 @Override
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
224 public void onClick(ClickEvent event) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 DataItem item = new DefaultDataItem(
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 ((LinkItem)event.getItem()).getLinkTitle(),
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227 null,
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228 ((LinkItem)event.getItem()).getLinkTitle());
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230 river = new DefaultData(
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231 "river",
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 null,
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 null,
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 new DataItem [] {item});
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 fireStepForwardEvent (new StepForwardEvent (getData()));
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 });
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
238 link.addItemHoverHandler(new ItemHoverHandler() {
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
239 @Override
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
240 public void onItemHover(ItemHoverEvent event) {
7764
5d17e0012020 Use river model_uuid to identify rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 6354
diff changeset
241 String river =
5d17e0012020 Use river model_uuid to identify rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 6354
diff changeset
242 ((LinkItem)event.getItem()).getValue().toString();
6146
04dd1f598ef9 Removed unnecessary call of map.containsKey(x).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6131
diff changeset
243 Img item = riverHighlight.get(river);
04dd1f598ef9 Removed unnecessary call of map.containsKey(x).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6131
diff changeset
244 if (item != null) {
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
245 item.setVisible(true);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
246 if (selected != null && !selected.equals(river)) {
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
247 riverHighlight.get(selected).setVisible(false);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
248 callUnHighlightRiver(selected);
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
249 }
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
250 callHighlightRiver(river);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
251 selected = river;
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
252 }
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
253 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
254 });
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
255 }
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
256
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
257 if (module != null) {
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
258 getModuleSelection().setRivers(riverList);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
259 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260 label.setWidth(50);
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
261
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
262 layout.addMember(label);
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
263 columns.addMember(formLayout1);
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
264 columns.addMember(formLayout2);
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
265 layout.addMember(columns);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
267 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
268 HTMLPane map = new HTMLPane();
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
269 map.setContentsURL("images/FLYS_Karte_interactive.html");
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
270
3546
12245d1386bb fix issue63
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 284
diff changeset
271 helperContainer.addMember(map);
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
272 return layout;
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
273 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
274
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
275
4064
61020a61ed38 Show river map only once.
Christian Lins <christian.lins@intevation.de>
parents: 3546
diff changeset
276 @Override
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
277 protected Data[] getData() {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
278 Data[] module = super.getData();
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279 if (module != null) {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
280 return new Data[] {module[0], river};
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282 else {
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
283 return new Data[] {river};
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285 }
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
286
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
287 private native void createCallback() /*-{
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
288 $wnd.highlightRiver = @org.dive4elements.river.client.client.ui.LinkSelection::highlightCallback(Ljava/lang/String;);
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
289 $wnd.unHighlightRiver = @org.dive4elements.river.client.client.ui.LinkSelection::unHighlightCallback(Ljava/lang/String;);
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
290 $wnd.selectRiver = @org.dive4elements.river.client.client.ui.LinkSelection::selectCallback(Ljava/lang/String;);
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
291 $wnd.availableRiver = @org.dive4elements.river.client.client.ui.LinkSelection::availableRiver(Ljava/lang/String;);
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
292 }-*/;
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
293
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
294 private static void highlightCallback(String name) {
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
295 if (riverHighlight.containsKey(name)) {
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
296 riverHighlight.get(name).setVisible(true);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
297 if(selected != null && !selected.equals(name)) {
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
298 riverHighlight.get(selected).setVisible(false);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
299 }
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
300 selected = name;
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
301 }
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
302 }
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
303
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
304 private static void unHighlightCallback(String name) {
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
305 if (riverHighlight.containsKey(name)) {
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
306 riverHighlight.get(name).setVisible(false);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
307 selected = null;
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
308 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
309 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
310
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
311 private static boolean availableRiver(String river) {
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
312 HLayout row = riverList.get(river);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
313 return row != null && row.isVisible();
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
314 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
315
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
316 private static void selectCallback(String name) {
6019
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
317 if (availableRiver(name)) {
078677c684af Commit performance improvement written by Sascha Teichmann
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
318 trigger.trigger(name);
5966
b2e6a90ba0e6 Only select available rivers in interactive image map.
Raimund Renkert <rrenkert@intevation.de>
parents: 5931
diff changeset
319 }
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
320 }
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
321
6354
626af4af74a5 Removed umlaut stripping for image map and renamed 'Saale Thüringen'.
Raimund Renkert <rrenkert@intevation.de>
parents: 6349
diff changeset
322 private native void callHighlightRiver(String name) /*-{
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
323 $wnd.highlight(name);
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
324 }-*/;
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
325
6354
626af4af74a5 Removed umlaut stripping for image map and renamed 'Saale Thüringen'.
Raimund Renkert <rrenkert@intevation.de>
parents: 6349
diff changeset
326 private native void callUnHighlightRiver(String name) /*-{
5928
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
327 $wnd.unHighlight(name);
34392dc16546 Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents: 5861
diff changeset
328 }-*/;
6119
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
329
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
330
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
331 @Override
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
332 public void onVisibilityChanged(VisibilityChangedEvent event) {
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
333 for (Map.Entry<String, Img> entry: riverHighlight.entrySet()) {
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
334 entry.getValue().setVisible(false);
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
335 callUnHighlightRiver(entry.getKey());
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
336 }
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
337 selected = null;
0b9f0d37fe6e We have a much faster interactive image map!
Raimund Renkert <rrenkert@intevation.de>
parents: 6066
diff changeset
338 }
282
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
339 }
e92f7ef455d6 Show rivers as links instead of a combobox.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
340 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org