annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java @ 6130:2033f86a1863

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

http://dive4elements.wald.intevation.org