annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/PointRecord.java @ 7597:fca46ce8e4f5

(issue1225) Implement Magic labels. There is now a new value in the chartsettings "Suggested Label" which is hidden in the property editor. A suggested label is the label that combines the label's of all processors that wrote data to an axis. This suggested label is set as the label when the user has not overwritten the label.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 25 Nov 2013 14:58:14 +0100
parents ea9eef426962
children e062d3afd682
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui.chart;
3983
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
10
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
11 import com.google.gwt.json.client.JSONArray;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
12 import com.google.gwt.json.client.JSONBoolean;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
13 import com.google.gwt.json.client.JSONNumber;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
14 import com.google.gwt.json.client.JSONString;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
15 import com.google.gwt.json.client.JSONValue;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
16
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.grid.ListGridRecord;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
18
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
19 /** Simple record to store points. */
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
20 public class PointRecord extends ListGridRecord {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
21 protected static final String ATTRIBUTE_X = "X";
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
22 protected static final String ATTRIBUTE_Y = "Y";
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
23 protected static final String ATTRIBUTE_NAME = "name";
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
24 protected static final String ATTRIBUTE_ACTIVE = "active";
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
25
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
26 /** From a JSON-encoded point, create a PointRecord. */
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27 public static PointRecord fromJSON(JSONArray jsonArray) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
28 JSONValue x = jsonArray.get(0);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
29 JSONNumber y = (JSONNumber) jsonArray.get(1);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
30 JSONString s = (JSONString) jsonArray.get(2);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
31 JSONBoolean b = (JSONBoolean)jsonArray.get(3);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
32
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
33 if(x instanceof JSONNumber) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
34 return new PointRecord(
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
35 b.booleanValue(), ((JSONNumber)x).doubleValue(),
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
36 y.doubleValue(), s.stringValue());
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
37 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
38 else {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
39 return new PointRecord(
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
40 b.booleanValue(), ((JSONString)x).stringValue(),
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
41 y.doubleValue(), s.stringValue());
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
42 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
43 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
44
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
45 protected boolean isTimeseriesPoint = false;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
46
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
47 public PointRecord(boolean isActive, double x, double y, String name) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
48 setActive(isActive);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
49 setName(name);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
50 setX(x);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
51 setY(y);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
52 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
53
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
54 /**
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
55 * Constructor taking the x axis value as String representing a Date value.
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
56 * @param isActive
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
57 * @param x
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
58 * @param y
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
59 * @param name
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
60 */
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
61 public PointRecord(boolean isActive, String x, double y, String name) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
62 setActive(isActive);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
63 setName(name);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
64 setX(x);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
65 setY(y);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
66
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
67 this.isTimeseriesPoint = true;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
68 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
69
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
70 public void setActive(boolean isActive) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
71 setAttribute(ATTRIBUTE_ACTIVE, isActive);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
72 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
73
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
74 public boolean isActive() {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
75 return getAttributeAsBoolean(ATTRIBUTE_ACTIVE);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
76 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
77
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
78 public boolean isTimeseriesPoint() {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
79 return this.isTimeseriesPoint;
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
80 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
81
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
82 public void setName(String name) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
83 setAttribute(ATTRIBUTE_NAME, name);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
84 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
85
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
86 public String getName() {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
87 return getAttributeAsString(ATTRIBUTE_NAME);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
88 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
89
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
90 public void setX(double x) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
91 setAttribute(ATTRIBUTE_X, x);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
92 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
94 public void setX(String date) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95 setAttribute(ATTRIBUTE_X, date);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
96 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
97
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
98 public void setY(double y) {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99 setAttribute(ATTRIBUTE_Y, y);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
102 public double getX() {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
103 return getAttributeAsDouble(ATTRIBUTE_X);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
106 public String getXAsDate() {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
107 return getAttributeAsString(ATTRIBUTE_X);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
108 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
110 public double getY() {
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
111 return getAttributeAsDouble(ATTRIBUTE_Y);
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
112 }
65e369ac4f99 ManualPointsEditor supports Date x axis values.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 }

http://dive4elements.wald.intevation.org