annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/sq/SQMultiPeriodPanel.java @ 2953:75e9eab05ee4

Added overview chart to sq relation period input panel. flys-client/trunk@4932 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 11 Jul 2012 11:24:27 +0000
parents
children b7aab14310cb
rev   line source
2953
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.sq;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import com.google.gwt.json.client.JSONObject;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import com.google.gwt.json.client.JSONNumber;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import com.google.gwt.json.client.JSONString;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import com.google.gwt.core.client.GWT;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.types.Alignment;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.Img;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.Canvas;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.layout.VLayout;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.events.ResizedHandler;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.events.ResizedEvent;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.client.client.ui.MultiPeriodPanel;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.client.shared.model.DataList;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.client.Config;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 /**
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 * This UIProvider creates helper panel for sq relation.
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 *
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 */
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 public class SQMultiPeriodPanel
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 extends MultiPeriodPanel
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 implements ResizedHandler
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 protected VLayout chartContainer;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 protected Img chartImg;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 public SQMultiPeriodPanel() {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 chartImg = new Img();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 protected Canvas createHelper() {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 Config config = Config.getInstance();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 String locale = config.getLocale ();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 chartContainer = new VLayout();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 chartContainer.addResizedHandler(this);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 chartContainer.setAlign(Alignment.CENTER);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 return chartContainer;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 protected void updateChart() {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 Config config = Config.getInstance();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 String locale = config.getLocale ();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 int hWidth = chartContainer.getWidth() - 12;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 int hHeight = chartContainer.getHeight() - 12;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 if ((int)(hHeight *4f/3) < hWidth) {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 hWidth = (int)(hHeight * 4f/3);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 else {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 hHeight = (int)(hWidth *3f/4);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 String river = artifact.getArtifactDescription().getRiver();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 JSONObject jfix = new JSONObject();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 JSONObject jfilter = new JSONObject();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 JSONObject jrName = new JSONObject();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 JSONString jrValue = new JSONString(river);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 JSONObject jextent = new JSONObject();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 JSONNumber jwidth = new JSONNumber(hWidth);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 JSONNumber jheight = new JSONNumber(hHeight);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 jrName.put("name", jrValue);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 jfilter.put("river", jrName);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 jextent.put("width", jwidth);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 jextent.put("height", jheight);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 jfilter.put("extent", jextent);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 jfix.put("sq", jfilter);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 String filter = jfix.toString();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 String imgUrl = GWT.getModuleBaseURL();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 imgUrl += "sq-km-chart";
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 imgUrl += "?locale=" + locale;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 imgUrl += "&filter=" + filter;
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 if (chartContainer.hasMember(chartImg)) {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 chartImg.setWidth(hWidth);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 chartImg.setHeight(hHeight);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 chartImg.setSrc(imgUrl);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 else {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 chartImg = new Img(imgUrl, hWidth, hHeight);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 chartContainer.addMember(chartImg);
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 public void onResized(ResizedEvent re) {
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 updateChart();
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 }
75e9eab05ee4 Added overview chart to sq relation period input panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 }

http://dive4elements.wald.intevation.org