Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/RiverInfoPanel.java @ 4205:0dd8963cec9c
Set also the width of the GaugeTree when resizing the GaugePanel
GWT is no longer able to calculate and set the correct width of the GaugeTree since
the GaugeTree is added via a Canvas wrapper. Therefore set the width manually
when resizing the GaugeTree.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Mon, 22 Oct 2012 15:33:16 +0200 |
parents | 1fa244f70ad5 |
children | e70ff0a600a3 |
rev | line source |
---|---|
4202
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.client.ui; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
2 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
3 import java.util.Iterator; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
4 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
5 import com.google.gwt.core.client.GWT; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
6 import com.google.gwt.i18n.client.NumberFormat; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
7 import com.google.gwt.user.client.ui.Anchor; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
8 import com.google.gwt.user.client.ui.HorizontalPanel; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
9 import com.google.gwt.user.client.ui.Label; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
10 import com.google.gwt.user.client.ui.Widget; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
11 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.flys.client.client.FLYSConstants; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
13 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.flys.client.shared.model.RiverInfo; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
15 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
16 /** |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
17 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
18 */ |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
19 public class RiverInfoPanel extends HorizontalPanel { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
20 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
21 /** |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
22 * Panel to display information about a river |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
23 */ |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
24 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
25 /** The message class that provides i18n strings.*/ |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
26 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
27 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
28 public final static int HEIGHT = 30; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
29 public final static int BORDER_WIDTH = 3; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
30 public final static int PADDING = 8; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
31 public final static int MARGIN = 10; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
32 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
33 public RiverInfoPanel(RiverInfo riverinfo) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
34 setStyleName("riverinfopanel"); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
35 setHeight("" + HEIGHT + "px"); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
36 setVerticalAlignment(ALIGN_MIDDLE); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
37 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
38 setRiverInfo(riverinfo); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
39 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
40 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
41 public void setRiverInfo(RiverInfo riverinfo) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
42 GWT.log("RiverInfoPanel - setRiverInfo"); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
43 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
44 NumberFormat nf = NumberFormat.getDecimalFormat(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
45 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
46 removeAllLabels(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
47 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
48 addLabel(riverinfo.getName(), false); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
49 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
50 String kmtext = ""; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
51 Double start = riverinfo.getKmStart(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
52 Double end = riverinfo.getKmEnd(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
53 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
54 if (!riverinfo.isKmUp()) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
55 Double tmp = end; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
56 end = start; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
57 start = tmp; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
58 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
59 if (end != null) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
60 kmtext += nf.format(end); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
61 kmtext += " - "; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
62 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
63 if (start != null) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
64 kmtext += nf.format(start); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
65 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
66 kmtext += " km"; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
67 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
68 addLabel(kmtext, false); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
69 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
70 String qtext = ""; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
71 Double qmin = riverinfo.getMinQ(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
72 Double qmax = riverinfo.getMaxQ(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
73 if (qmin != null) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
74 qtext += nf.format(qmin); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
75 qtext += " " + MSG.gauge_q_unit(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
76 qtext += " - "; |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
77 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
78 if (qmax != null) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
79 qtext += nf.format(qmax); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
80 qtext += " " + MSG.gauge_q_unit(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
81 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
82 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
83 addLabel(qtext, false); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
84 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
85 Long number = riverinfo.getOfficialNumber(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
86 String url = number != null ? |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
87 MSG.gauge_river_url() + number : |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
88 MSG.gauge_river_url(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
89 Anchor anchor = new Anchor(MSG.gauge_river_info_link(), url, "_blank"); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
90 add(anchor); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
91 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
92 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
93 public static int getStaticHeight() { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
94 return RiverInfoPanel.HEIGHT + |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
95 (2 * RiverInfoPanel.BORDER_WIDTH) + |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
96 (2 * RiverInfoPanel.PADDING) + |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
97 (2 * RiverInfoPanel.MARGIN); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
98 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
99 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
100 private void addLabel(String text, boolean wordwrap) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
101 Label label = new Label(text, wordwrap); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
102 add(label); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
103 setCellHeight(label, "" + HEIGHT + "px"); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
104 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
105 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
106 private void removeAllLabels() { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
107 GWT.log("RiverInfoPanel - removeAllLabels"); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
108 |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
109 Iterator<Widget> it = this.iterator(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
110 while(it.hasNext()) { |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
111 it.next(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
112 it.remove(); |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
113 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
114 /* for (Widget wid: this) { */ |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
115 /* this.remove(wid); */ |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
116 /* } */ |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
117 } |
1fa244f70ad5
Move RiverInfoPanel to its own java file in refactor it
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
118 } |