annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/OverviewOutputTab.java @ 2982:d2a54ae0016b

Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview. flys-client/trunk@4981 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 13 Jul 2012 10:09:20 +0000
parents 5161e25392ea
children e746e57c65c0
rev   line source
2977
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.chart;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import java.util.Date;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.HashMap;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import java.util.Map;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 import java.util.Set;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import com.google.gwt.core.client.GWT;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.Canvas;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.Img;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.events.ResizedEvent;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.events.ResizedHandler;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.layout.HLayout;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.layout.VLayout;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.client.client.Config;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.client.client.ui.CollectionView;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.client.client.ui.OutputTab;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.shared.model.Collection;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.client.shared.model.OutputMode;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 /**
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 * An overview output tab. This tab displays an overview of all charts
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 * integrated in the current calculation mode.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 *
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 */
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 public class OverviewOutputTab
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 extends OutputTab
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 implements ResizedHandler
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 /** The collection view.*/
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 protected CollectionView view;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 /** The root layout. */
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 protected HLayout root;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 /** The columns */
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 protected VLayout[] columns;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 /** The chart container.*/
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 protected Canvas[][] charts;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 /** All relevant output modes. */
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 protected Map<String, OutputMode> relModes;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 public OverviewOutputTab(
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 String title,
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 Collection collection,
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 OutputMode mode,
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 CollectionView collectionView)
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 super(title, collection, collectionView, mode);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 relModes = new HashMap<String, OutputMode>();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 Map<String, OutputMode> modes = collection.getOutputModes();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 Set<String> keys = modes.keySet();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 // Get all relevant outputs.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 for (String key: keys) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 OutputMode m = modes.get(key);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 if (m.getType().equals("chart")) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 relModes.put(key, m);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 root = new HLayout();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 setPane(root);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 root.addResizedHandler(this);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 // Get the column and row count and initialize the grid.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 int width = getColumnCount(relModes.size());
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 int height = getRowCount(relModes.size());
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 charts = new Canvas[width][height];
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 columns = new VLayout[width];
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 for (int i = 0; i < width; i++) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 columns[i] = new VLayout();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 root.addMember(columns[i]);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 for (int j = 0; j < height; j++) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 charts[i][j] = new Canvas();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 // This is for 3, 6 or 9 charts only!
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 // TODO: Calculate the height.
2982
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
91 charts[i][j].setHeight("50%");
2977
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 String type =
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 ((OutputMode)relModes.values()
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 .toArray()[j + i * height]).getName();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 columns[i].addMember(charts[i][j]);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 charts[i][j].addChild(
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 new Img(getImgUrl(
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 charts[i][j].getWidth(),
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 charts[i][j].getHeight(), type)));
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 /**
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 * Resize handler.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 *
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 * @param event The resize event.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 */
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 @Override
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 public void onResized(ResizedEvent event) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114 for (int i = 0; i < charts.length; i++) {
2982
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
115 // This is for 3, 6 or 9 charts only!
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
116 // TODO: Calculate the width.
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
117 columns[i].setWidth(root.getWidth()/3);
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
118
2977
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 for (int j = 0; j < charts[i].length; j++) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 String type =
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 ((OutputMode)relModes.values()
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 .toArray()[j + i * charts[i].length]).getName();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 Canvas[] children = charts[i][j].getChildren();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 for (int k = 0; k < children.length; k++) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 charts[i][j].removeChild(children[k]);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 charts[i][j].addChild(new Img(
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 getImgUrl(
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 charts[i][j].getWidth(),
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 charts[i][j].getHeight(),
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131 type),
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 charts[i][j].getWidth(),
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 charts[i][j].getHeight()
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 ));
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 /**
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 * Returns the column count for the grid.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 *
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 * @param count all fields
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144 * @return the column count
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 */
2982
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
146 protected int getRowCount(int count) {
2977
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 if (count <= 3) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148 return 1;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 else if (count > 3 && count < 9) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 return 2;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 else {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 return 3;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 /**
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 * Returns the row count for the grid.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 *
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 * @param count all fields
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 * @return the row count
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 */
2982
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
165 protected int getColumnCount(int count) {
2977
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166 if(count <= 3) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 return count;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169 else if(count > 3 && count < 9) {
2982
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
170 return ((count + (count % 2))/getRowCount(count));
2977
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 else {
2982
d2a54ae0016b Switched from 2 columns and 3 rows to 3 columns and 2 rows in sq chart overview.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2977
diff changeset
173 return (count + (3 - (count % 3))/getRowCount(count));
2977
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
174 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
175 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178 /**
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 * Builds the URL that points to the chart image.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 *
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 * @param width The width of the requested chart.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 * @param height The height of the requested chart.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 * @param xr Optional x range (used for zooming).
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 * @param yr Optional y range (used for zooming).
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 *
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186 * @return the URL to the chart image.
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 */
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 protected String getImgUrl(int width, int height, String type) {
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 Config config = Config.getInstance();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191 String imgUrl = GWT.getModuleBaseURL();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 imgUrl += "chart";
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
193 imgUrl += "?uuid=" + collection.identifier();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 imgUrl += "&type=" + type;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 imgUrl += "&locale=" + config.getLocale();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 imgUrl += "&timestamp=" + new Date().getTime();
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 imgUrl += "&width=" + Integer.toString(width);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 imgUrl += "&height=" + Integer.toString(height);
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
199
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
200 return imgUrl;
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
201 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202 }
5161e25392ea Added chart overview to sq relation in minfo module.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org