GWT Highcharts使用JSNI调用Javascript
我正在编写一个GWT应用程序并使用highcharts。有些功能不能在Java中实现,但可以在javascript中实现。我得到了一个如何实现我可以使用的东西的例子,但是,我不知道如何包含在我的代码中 我的代码包括一个声明为GWT Highcharts使用JSNI调用Javascript,gwt,highcharts,jsni,gwt-highcharts,Gwt,Highcharts,Jsni,Gwt Highcharts,我正在编写一个GWT应用程序并使用highcharts。有些功能不能在Java中实现,但可以在javascript中实现。我得到了一个如何实现我可以使用的东西的例子,但是,我不知道如何包含在我的代码中 我的代码包括一个声明为图表的变量 我想实施一个如本答案所示的事件 或 但我不确定如何将两者联系起来。感谢您的帮助 首先创建这样一个本机方法 private native void foo(JavaScriptObject chart)/*-{ var legend = chart.lege
图表的变量代码>
我想实施一个如本答案所示的事件
或
但我不确定如何将两者联系起来。感谢您的帮助 首先创建这样一个本机方法
private native void foo(JavaScriptObject chart)/*-{
var legend = chart.legend;
for (var i = 0, len = legend.allItems.length; i < len; i++) {
var item = legend.allItems[i].legendItem;
item.on('mouseover', function (e) {
//show custom tooltip here
console.log("mouseover");
}).on('mouseout', function (e) {
//hide tooltip
console.log("mouseout");
});
}
}-*/;
chart.setLoadEventHandler(new ChartLoadEventHandler() {
@Override
public boolean onLoad(ChartLoadEvent chartLoadEvent) {
foo(chart.getNativeChart());
return true;
}
});
就这些!希望这能对你有所帮助。你说的“使用高图”是什么意思?您是否使用moxiegroup的GWT包装版本?它只是包含在JS资源中,而您自己只包装必要的调用吗?项目中的highcharts API是否完全用java公开?是的,我使用的是moxiegroup的GWT包装版本。据我所知,highcharts API完全是用java公开的,但我想补充一些不在其中的东西。
private native void foo(Chart c)/*-{
}-*/;
private native void foo(JavaScriptObject chart)/*-{
var legend = chart.legend;
for (var i = 0, len = legend.allItems.length; i < len; i++) {
var item = legend.allItems[i].legendItem;
item.on('mouseover', function (e) {
//show custom tooltip here
console.log("mouseover");
}).on('mouseout', function (e) {
//hide tooltip
console.log("mouseout");
});
}
}-*/;
chart.setLoadEventHandler(new ChartLoadEventHandler() {
@Override
public boolean onLoad(ChartLoadEvent chartLoadEvent) {
foo(chart.getNativeChart());
return true;
}
});