/* * Copyright 2012 Rui Afonso * * 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. */ package com.googlecode.gwt.charts.client.util; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArrayMixed; import com.googlecode.gwt.charts.client.ChartWrapperSpec; import com.googlecode.gwt.charts.client.DataTable; /** * A set of utility chart methods. * * @see <a href="https://developers.google.com/chart/interactive/docs/reference#assortedmethods">Assorted Static * Methods</a> */ public class ChartHelper { /** * This method takes in a 2-dimensional array and converts it to a DataTable. * * @param array A two-dimensional array, where each row represents a row in the data table.<br> * The first row will be interpreted as header labels.<br> * The data types of each column are interpreted automatically from the data given.<br> * If a cell has no value, specify a null or empty value as appropriate. * @return a new DataTable. */ public static final native DataTable arrayToDataTable(JsArrayMixed array) /*-{ return $wnd.google.visualization.arrayToDataTable(array); }-*/; /** * This method takes in a 2-dimensional array and converts it to a DataTable. * * @param array A two-dimensional array, where each row represents a row in the data table.<br> * The data types of each column are interpreted automatically from the data given.<br> * If a cell has no value, specify a null or empty value as appropriate. * @param firstRowIsData if true, all rows are assumed to be data. * @return a new DataTable. */ public static final native DataTable arrayToDataTable(JsArrayMixed array, boolean firstRowIsData) /*-{ return $wnd.google.visualization.arrayToDataTable(array, firstRowIsData); }-*/; /** * This method takes in a 2-dimensional array and converts it to a DataTable. * * @param array A two-dimensional array, where each row represents a row in the data table.<br> * The first row will be interpreted as header labels.<br> * The data types of each column are interpreted automatically from the data given.<br> * If a cell has no value, specify a null or empty value as appropriate. * @return a new DataTable. */ public static final DataTable arrayToDataTable(Object[][] array) { return arrayToDataTable(array, false); } /** * This method takes in a 2-dimensional array and converts it to a DataTable. * * @param array A two-dimensional array, where each row represents a row in the data table.<br> * The data types of each column are interpreted automatically from the data given.<br> * If a cell has no value, specify a null or empty value as appropriate. * @param firstRowIsData if true, all rows are assumed to be data. * @return a new DataTable. */ public static final DataTable arrayToDataTable(Object[][] array, boolean firstRowIsData) { JsArrayMixed jsTopArray = JavaScriptObject.createArray().cast(); for (Object[] objects : array) { jsTopArray.push(ArrayHelper.createArray(objects)); } return arrayToDataTable(jsTopArray, firstRowIsData); } /** * This method creates a chart in a single call. The advantage of using this method is that it requires slightly * less code, and you can serialize and save visualizations as text strings for reuse. This method does not return a * handle to the created chart, so you cannot assign method listeners to catch chart events. * * @param chartWrapperSpec a property set for defining a chart */ public static final native void drawChart(ChartWrapperSpec<?> chartWrapperSpec) /*-{ return $wnd.google.visualization.drawChart(chartWrapperSpec); }-*/; /** * This method creates a chart in a single call. The advantage of using this method is that it requires slightly * less code, and you can serialize and save visualizations as text strings for reuse. This method does not return a * handle to the created chart, so you cannot assign method listeners to catch chart events. * * @param jsonLiteral a String representation of a chart */ public static final native void drawChart(String jsonLiteral) /*-{ return $wnd.google.visualization.drawChart(jsonLiteral); }-*/; }