annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java @ 3847:f3b821735e39

Calculate the info url via i18n Don't fetch the info url from the artifact service and use i18n to calculate the url by using the official gauge and river number. flys-client/trunk@5582 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Bjoern Ricks <bjoern.ricks@intevation.de>
date Mon, 24 Sep 2012 08:39:22 +0000
parents 44c1beb78ad1
children 436eec3be6ff
rev   line source
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
2
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
4 import com.google.gwt.i18n.client.NumberFormat;
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
5 import com.google.gwt.user.client.rpc.AsyncCallback;
3839
509ef6ec93af Add html links for the additinal river and gauge info pages
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3837
diff changeset
6 import com.google.gwt.user.client.ui.Anchor;
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
7 import com.google.gwt.user.client.ui.HorizontalPanel;
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
8 import com.google.gwt.user.client.ui.Label;
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
9
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.types.Overflow;
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
11 import com.smartgwt.client.widgets.events.ResizedEvent;
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
12 import com.smartgwt.client.widgets.events.ResizedHandler;
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.layout.SectionStackSection;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.layout.VLayout;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
15
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
16 import de.intevation.flys.client.client.FLYSConstants;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.client.client.services.GaugeOverviewInfoService;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.client.client.services.GaugeOverviewInfoServiceAsync;
3837
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
19 import de.intevation.flys.client.shared.model.DataList;
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.client.shared.model.RiverInfo;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
21
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
22 /**
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
23 * The GaugePanel is intendet to be used within a SectionStackSection
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
24 * It extends the VLayout by two methods to show and hide the
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
25 * section stack section.
3842
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3841
diff changeset
26 *
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3841
diff changeset
27 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
28 */
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
29 public class GaugePanel extends VLayout implements ResizedHandler {
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
30
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
31 /** SectionStackSection where this GaugePanel belongs in*/
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
32 private SectionStackSection sectionStack;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
33
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
34 /** Name of the river */
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
35 private String river;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
36
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
37 /** The message class that provides i18n strings.*/
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
38 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
39
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
40 protected GaugeOverviewInfoServiceAsync gaugeOverviewInfoService =
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
41 GWT.create(GaugeOverviewInfoService.class);
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
42
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
43 protected GaugeTree gaugetree = new GaugeTree();
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
44
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
45 protected RiverInfoPanel riverinfopanel;
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
46
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
47 /**
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
48 * Creates a new VLayout with a SectionStackSection
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
49 * The GaugePanel's SectionStackSection is hidden by default.
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
50 * @param sectionStack The section stack section to place the VLayout in.
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
51 */
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
52 public GaugePanel(SectionStackSection sectionStack) {
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
53 setOverflow(Overflow.HIDDEN);
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
54 sectionStack.setHidden(true);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
55 sectionStack.setItems(this);
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
56 this.sectionStack = sectionStack;
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
57 setStyleName("gaugepanel");
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
58 addResizedHandler(this);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
59 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
60
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
61 /**
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
62 * Sets and loads the river data if river is not the current set river
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
63 */
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
64 public void setRiver(String river) {
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
65 if (!river.equals(this.river)) {
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
66 this.river = river;
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
67 this.refresh();
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
68 }
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
69 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
70
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
71 /**
3837
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
72 * Sets the data and closes not corresponding folds in the gauge tree
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
73 */
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
74 public void setData(DataList[] data) {
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
75 gaugetree.setData(data);
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
76 }
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
77
6b2ae2ec5b01 Open and close gauge tree folds that correspond to the selected WINFO
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3834
diff changeset
78 /**
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
79 * Loads the river info and renders it afterwards
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
80 */
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
81 public void refresh() {
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
82 gaugeOverviewInfoService.getRiverInfo(this.river, new AsyncCallback<RiverInfo>() {
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
83 public void onFailure(Throwable e) {
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
84 GWT.log("Could not load the river info." + e);
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
85 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
86
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
87 public void onSuccess(RiverInfo riverinfo) {
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
88 GWT.log("Loaded river info");
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
89 renderGaugeOverviewInfo(riverinfo);
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
90 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
91 });
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
92 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
93
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
94 public void renderGaugeOverviewInfo(RiverInfo riverinfo) {
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
95 removeMembers(getMembers());
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
96
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
97 riverinfopanel = new RiverInfoPanel(riverinfo);
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
98 addMember(riverinfopanel);
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
99 addMember(gaugetree);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
100
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
101 gaugetree.setGauges(riverinfo);
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
102 }
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
103
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
104 @Override
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
105 public void onResized(ResizedEvent event) {
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
106 /* this height calculation is only an approximation and doesn't reflect
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
107 * the real height of the the gaugetree. */
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
108 int height = getInnerContentHeight() -
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
109 (RiverInfoPanel.HEIGHT +
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
110 (2 * RiverInfoPanel.BORDER_WIDTH) +
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
111 (2 * RiverInfoPanel.PADDING) +
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
112 (2 * RiverInfoPanel.MARGIN));
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
113
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
114 if (height < 0) {
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
115 height = 0;
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
116 }
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
117
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
118 gaugetree.setHeight("" + height + "px");
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
119 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
120
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
121
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
122 /**
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
123 * Hide the section stack section.
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
124 */
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
125 public void hide() {
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
126 GWT.log("GaugePanel - hide");
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
127 this.sectionStack.setHidden(true);
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
128 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
129
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
130 /**
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
131 * Show the section stack section.
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
132 */
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
133 public void show() {
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
134 GWT.log("GaugePanel - show");
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
135 this.sectionStack.setHidden(false);
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
136 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
137
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
138 class RiverInfoPanel extends HorizontalPanel {
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
139
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
140 public final static int HEIGHT = 30;
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
141 public final static int BORDER_WIDTH = 3;
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
142 public final static int PADDING = 8;
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
143 public final static int MARGIN = 10;
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
144
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
145 public RiverInfoPanel(RiverInfo riverinfo) {
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
146 setStyleName("riverinfopanel");
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
147 setHeight("" + HEIGHT + "px");
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
148 setVerticalAlignment(ALIGN_MIDDLE);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
149
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
150 NumberFormat nf = NumberFormat.getDecimalFormat();
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
151
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
152 addLabel(riverinfo.getName(), false);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
153
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
154 String kmtext = "";
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
155 Double start = riverinfo.getKmStart();
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
156 Double end = riverinfo.getKmEnd();
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
157
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
158 if (!riverinfo.isKmUp()) {
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
159 Double tmp = end;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
160 end = start;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
161 start = tmp;
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
162 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
163 if (end != null) {
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
164 kmtext += nf.format(end);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
165 kmtext += " - ";
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
166 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
167 if (start != null) {
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
168 kmtext += nf.format(start);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
169 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
170 kmtext += " km";
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
171
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
172 addLabel(kmtext, false);
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
173
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
174 String qtext = "";
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
175 Double qmin = riverinfo.getMinQ();
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
176 Double qmax = riverinfo.getMaxQ();
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
177 if (qmin != null) {
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
178 qtext += nf.format(qmin);
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
179 qtext += " " + MSG.gauge_q_unit();
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
180 qtext += " - ";
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
181 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
182 if (qmax != null) {
3828
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
183 qtext += nf.format(qmax);
9cbc8311e820 Improve the GaugePanel
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3825
diff changeset
184 qtext += " " + MSG.gauge_q_unit();
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
185 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
186
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
187 addLabel(qtext, false);
3839
509ef6ec93af Add html links for the additinal river and gauge info pages
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3837
diff changeset
188
3847
f3b821735e39 Calculate the info url via i18n
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3842
diff changeset
189 Long number = riverinfo.getOfficialNumber();
f3b821735e39 Calculate the info url via i18n
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3842
diff changeset
190 String url = number != null ?
f3b821735e39 Calculate the info url via i18n
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3842
diff changeset
191 MSG.gauge_river_url() + number :
f3b821735e39 Calculate the info url via i18n
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3842
diff changeset
192 MSG.gauge_river_url();
f3b821735e39 Calculate the info url via i18n
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3842
diff changeset
193 Anchor anchor = new Anchor(MSG.gauge_river_info_link(), url);
3839
509ef6ec93af Add html links for the additinal river and gauge info pages
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3837
diff changeset
194 add(anchor);
3825
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
195 }
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
196
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
197 private void addLabel(String text, boolean wordwrap) {
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
198 Label label = new Label(text, wordwrap);
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
199 add(label);
e91c5112d67c Implement a scrolling gauge info tree
Bjoern Ricks <bjoern.ricks@intevation.de>
parents: 3716
diff changeset
200 setCellHeight(label, "" + HEIGHT + "px");
3715
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
201 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
202 }
8d3e48f189d2 Add first draft for the gauge overview info ui
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
203 }

http://dive4elements.wald.intevation.org