Package org.timepedia.chronoscopesamples.client

Source Code of org.timepedia.chronoscopesamples.client.ChartDemoMutate

package org.timepedia.chronoscopesamples.client;

import java.util.Date;

import org.timepedia.chronoscope.client.Datasets;
import org.timepedia.chronoscope.client.MutableDataset;
import org.timepedia.chronoscope.client.XYPlot;
import org.timepedia.chronoscope.client.browser.Chronoscope;
import org.timepedia.chronoscope.client.browser.json.JsonDatasetJSO;
import org.timepedia.chronoscope.client.canvas.View;
import org.timepedia.chronoscope.client.canvas.ViewReadyCallback;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.RootPanel;

/**
* @author Manolo Carrasco <manolo@timepedia.org>
*/
public class ChartDemoMutate implements EntryPoint {

  public static native JsArray<JsonDatasetJSO> getJsons(String a) /*-{
     return $wnd[a];
  }-*/;

 
  public static native JavaScriptObject getDomainVal(double d) /*-{
     return [d];
  }-*/;

  public static native JavaScriptObject getRangeVal(double a, double b, double c) /*-{
    return [[a],[b],[c]];
  }-*/;
 
  Chronoscope chrono;
  View theview;
  XYPlot<?> theplot;

  int maxyear = 1996;
  double r1 = 100;
  double r2 = 200;
  double r3 = 400;
 
  public double d(double value) {
    return Math.floor(1.4 * value - 0.3 * value * Math.random());
  }
 
  public void  mutate() {
    Datasets<?> datasets= theplot.getDatasets();
    datasets.beginMutation();
   
    MutableDataset<?> dataset = (MutableDataset<?>)datasets.getById("jenga");
   
    int year = maxyear - (int)Math.floor(6 * Math.random());
    r1 = d(r1);
    r2 = d(r2);
    r3 = d(r3);
   
    @SuppressWarnings("deprecation")
    JavaScriptObject domain_val =  getDomainVal(new Date(year, 0, 1).getTime() / 1000);
    JavaScriptObject range_val =  getRangeVal(r1, r2, r3);
   
    dataset.mutateArray(domain_val, range_val);
    datasets.endMutation();
   
    theview.getChart().redraw();
  }

  public void onModuleLoad() {
    Chronoscope.setErrorReporting(true);
    Chronoscope.setAnimationPreview(false);
    chrono = Chronoscope.getInstance();
   
    chrono.createTimeseriesChart("chartdemo", getJsons("__datasets"), 480, 320,
        new ViewReadyCallback() {
          public void onViewReady(View view) {
            ChartDemoMutate.this.theview = view;
            theplot = view.getChart().getPlot();
          }
        });
   
    Button b1 = new Button("Mutate", new ClickHandler() {
      public void onClick(ClickEvent event) {
        mutate();
      }
    });
    RootPanel.get("buttons").add(b1);
  }
}
TOP

Related Classes of org.timepedia.chronoscopesamples.client.ChartDemoMutate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.