All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.gwt.charts.client.controls.DashboardObject Maven / Gradle / Ivy

/*
 * 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.controls;

import com.google.gwt.core.client.JsArray;
import com.google.gwt.core.client.JsArrayMixed;
import com.google.gwt.dom.client.Element;

import com.googlecode.gwt.charts.client.ChartWrapperObject;
import com.googlecode.gwt.charts.client.DataSource;
import com.googlecode.gwt.charts.client.HasListeners;
import com.googlecode.gwt.charts.client.util.ChartHelper;

/**
 * Represents a collection of collaborating controls and charts that share the same underlying data.
 */
public class DashboardObject extends HasListeners {

	/**
	 * Creates a new DashboardObject
	 * 
	 * @param container A reference to a valid container element on the page that will hold the dashboard contents.
	 * @return a new DashboardObject
	 */
	public static native DashboardObject create(Element container) /*-{
		return new $wnd.google.visualization.Dashboard(container);
	}-*/;

	protected DashboardObject() {
	}

	/**
	 * Binds one Control to a dashboard participant (either a chart or other control), so that
	 * all of the latter are redrawn whenever any of the former collects a programmatic or user interaction that affects
	 * the data managed by the dashboard.
	 * 
	 * @param controlWrapper
	 * @param chartWrapper
	 * @return the dashboard instance itself for chaining multiple bind() calls together.
	 */
	public final native DashboardObject bind(ControlWrapperObject controlWrapper, ChartWrapperObject chartWrapper) /*-{
		return this.bind(controlWrapper, chartWrapper);
	}-*/;

	/**
	 * Binds one or more Controls to one or more other dashboard participants (either charts or other controls), so
	 * that all of the latter are redrawn whenever any of the former collects a programmatic or user interaction that
	 * affects the data managed by the dashboard. Returns the dashboard instance itself for chaining multiple bind()
	 * calls together.
	 * 
	 * @param controlWrappers
	 * @param chartWrappers
	 * @return the dashboard instance itself for chaining multiple bind() calls together.
	 */
	public final native DashboardObject bind(JsArray> controlWrappers,
			JsArray> chartWrappers) /*-{
		return this.bind(controlWrappers, chartWrappers);
	}-*/;

	/**
	 * Draws the dashboard.
	 * @param dataSource a DataTable or a DataView object
	 */
	public final native void draw(DataSource dataSource) /*-{
		this.draw(dataSource);
	}-*/;

	/**
	 * Draws the dashboard.
	 * @param dataArray an array following the syntax of {@link ChartHelper#arrayToDataTable(JsArrayMixed)}
	 */
	public final native void draw(JsArrayMixed dataArray) /*-{
		this.draw(dataArray);
	}-*/;

	/**
	 * Draws the dashboard.
	 * @param json a JSON representation of a DataTable
	 */
	public final native void draw(String json) /*-{
		this.draw(json);
	}-*/;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy