annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/RiverInfoPanel.java @ 4202:1fa244f70ad5

Move RiverInfoPanel to its own java file in refactor it Allow to change the riverinfo without having to create a new instace of the RiverInfoPanel.
author Björn Ricks <bjoern.ricks@intevation.de>
date Mon, 22 Oct 2012 15:23:00 +0200
parents
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 }

http://dive4elements.wald.intevation.org