/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.charts.client;
import java.util.Collection;
import java.util.Map;
import com.extjs.gxt.ui.client.core.FastMap;
/**
* Maintains a list of all attached charts.
*/
public class ChartManager {
private static ChartManager instance;
static {
instance = new ChartManager();
}
public static ChartManager get() {
return instance;
}
private Map<String, Chart> charts = new FastMap<Chart>();
private ChartManager() {
init();
}
public Chart getChart(String id) {
return charts.get(id);
}
public Collection<Chart> getCharts() {
return charts.values();
}
public void registerChart(Chart chart) {
charts.put(chart.getSwfId(), chart);
}
public void unregisterChart(Chart chart) {
charts.remove(chart.getSwfId());
}
@SuppressWarnings("unused")
private String handleGetData(String id) {
Chart chart = charts.get(id);
if (chart != null) {
return chart.onGetChartData();
}
return "";
}
@SuppressWarnings("unused")
private void handleOnClick(String id, int chartIndex, int dataIndex) {
Chart chart = charts.get(id);
if (chart != null) {
chart.onClick(chartIndex, dataIndex);
}
}
@SuppressWarnings("unused")
private void handleOnReady(String id) {
Chart chart = charts.get(id);
if (chart != null) {
chart.onReady();
}
}
private native void init() /*-{
var x = this;
$wnd.ofc_ready = function (id) {
x.@com.extjs.gxt.charts.client.ChartManager::handleOnReady(Ljava/lang/String;)(id);
};
$wnd.open_flash_chart_data = function (id) {
return x.@com.extjs.gxt.charts.client.ChartManager::handleGetData(Ljava/lang/String;)(id);
};
$wnd.ofc_onclick = function (id, config, data) {
return x.@com.extjs.gxt.charts.client.ChartManager::handleOnClick(Ljava/lang/String;II)(id, config, data);
};
}-*/;
}