Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/PointRecord.java @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-client/src/main/java/org/dive4elements/river/client/client/ui/chart/PointRecord.java@821a02bbfb4e |
children | 172338b1407f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/chart/PointRecord.java Thu Apr 25 15:23:37 2013 +0200 @@ -0,0 +1,105 @@ +package org.dive4elements.river.client.client.ui.chart; + +import com.google.gwt.json.client.JSONArray; +import com.google.gwt.json.client.JSONBoolean; +import com.google.gwt.json.client.JSONNumber; +import com.google.gwt.json.client.JSONString; +import com.google.gwt.json.client.JSONValue; + +import com.smartgwt.client.widgets.grid.ListGridRecord; + +/** Simple record to store points. */ +public class PointRecord extends ListGridRecord { + protected static final String ATTRIBUTE_X = "X"; + protected static final String ATTRIBUTE_Y = "Y"; + protected static final String ATTRIBUTE_NAME = "name"; + protected static final String ATTRIBUTE_ACTIVE = "active"; + + /** From a JSON-encoded point, create a PointRecord. */ + public static PointRecord fromJSON(JSONArray jsonArray) { + JSONValue x = jsonArray.get(0); + JSONNumber y = (JSONNumber) jsonArray.get(1); + JSONString s = (JSONString) jsonArray.get(2); + JSONBoolean b = (JSONBoolean)jsonArray.get(3); + + if(x instanceof JSONNumber) { + return new PointRecord( + b.booleanValue(), ((JSONNumber)x).doubleValue(), + y.doubleValue(), s.stringValue()); + } + else { + return new PointRecord( + b.booleanValue(), ((JSONString)x).stringValue(), + y.doubleValue(), s.stringValue()); + } + } + + protected boolean isTimeseriesPoint = false; + + public PointRecord(boolean isActive, double x, double y, String name) { + setActive(isActive); + setName(name); + setX(x); + setY(y); + } + + /** + * Constructor taking the x axis value as String representing a Date value. + * @param isActive + * @param x + * @param y + * @param name + */ + public PointRecord(boolean isActive, String x, double y, String name) { + setActive(isActive); + setName(name); + setX(x); + setY(y); + + this.isTimeseriesPoint = true; + } + + public void setActive(boolean isActive) { + setAttribute(ATTRIBUTE_ACTIVE, isActive); + } + + public boolean isActive() { + return getAttributeAsBoolean(ATTRIBUTE_ACTIVE); + } + + public boolean isTimeseriesPoint() { + return this.isTimeseriesPoint; + } + + public void setName(String name) { + setAttribute(ATTRIBUTE_NAME, name); + } + + public String getName() { + return getAttributeAsString(ATTRIBUTE_NAME); + } + + public void setX(double x) { + setAttribute(ATTRIBUTE_X, x); + } + + public void setX(String date) { + setAttribute(ATTRIBUTE_X, date); + } + + public void setY(double y) { + setAttribute(ATTRIBUTE_Y, y); + } + + public double getX() { + return getAttributeAsDouble(ATTRIBUTE_X); + } + + public String getXAsDate() { + return getAttributeAsString(ATTRIBUTE_X); + } + + public double getY() { + return getAttributeAsDouble(ATTRIBUTE_Y); + } +} \ No newline at end of file