Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LinkSelection.java @ 6272:24be0cc1c67c
Replaced the 'old school' wiki link buttons with default links.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 11 Jun 2013 12:57:51 +0200 |
parents | 04dd1f598ef9 |
children | 0b3193d268b6 |
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(); |
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 |
34392dc16546
Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents:
5861
diff
changeset
|
322 private native void callHighlightRiver(String name) /*-{ |
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 |
34392dc16546
Implemented interaction design in project startup page.
Raimund Renkert <rrenkert@intevation.de>
parents:
5861
diff
changeset
|
326 private native void callUnHighlightRiver(String name) /*-{ |
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 : |