Java tutorial
/** * @file GraphDemo3_offline.java * * @brief * A demo for the Graph GWT wrapper. * * @license * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. * * Copyright 2010-2012 Almende B.V. * * @author Jos de Jong, <jos@almende.org> * @date 2012-02-28 */ package com.chap.links.client; import java.util.Date; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; import com.google.gwt.user.client.ui.RootPanel; /** * GraphDemo1 */ public class GraphDemo3_offline implements EntryPoint { Graph chart = null; /** * This is the entry point method. */ public void onModuleLoad() { DateTimeFormat dtf = DateTimeFormat.getFormat("yyyy-MM-dd"); JSONArray dataA = new JSONArray(); JSONArray dataB = new JSONArray(); // create data Date d = dtf.parse("2012-08-23"); int n = 200; // number of datapoints for (int i = 0; i < n; i++) { JSONObject pointA = new JSONObject(); pointA.put("date", new JSONNumber(d.getTime())); pointA.put("value", new JSONNumber(customFunctionA(i))); dataA.set(i, pointA); JSONObject pointB = new JSONObject(); pointB.put("date", new JSONNumber(d.getTime())); pointB.put("value", new JSONNumber(customFunctionB(i))); dataB.set(i, pointB); d.setTime(d.getTime() + 1000 * 60); // steps of one minute } JSONObject dataSetA = new JSONObject(); dataSetA.put("label", new JSONString("Function A")); dataSetA.put("data", dataA); JSONObject dataSetB = new JSONObject(); dataSetB.put("label", new JSONString("Function B")); dataSetB.put("data", dataB); Graph.Options options = Graph.Options.create(); options.setHeight("400px"); options.setLineStyle(Graph.Options.LINESTYLE.DOT, 1); options.setLineColor("blue", 1); options.setLineLegend(false, 0); JSONArray data = new JSONArray(); data.set(0, dataSetA); data.set(1, dataSetB); // create the graph, with data and options chart = new Graph(data.getJavaScriptObject(), options); RootPanel.get("mygraph").add(chart); } double customFunctionA(double x) { return Math.sin(x / 20) * Math.cos(x / 10) * 50 + Math.sin(x / 200) * 50; } double customFunctionB(double x) { return Math.sin(x / 20) * 25 + 40; } }