GWT HighCharts チャートのエクスポート ボタンで、GWT メソッドを menuitem の onclick メソッドにフックするのに問題があります。
カスタム メニュー項目をエクスポート ボタンに追加できましたが、onclick メソッドを設定するための構文がわかりません。私はもう試した:
setOption("onclick", "window.alert('Test')");
と
setOption("onclick", "function() { window.alert('Test') }");
しかし、次のエラーが表示されます。
Uncaught JavaScript exception [TypeError: a.onclick.apply is not a function]...
そのため、onclick 文字列に入れているものは何でも呼び出そうとしていますが、明らかに、私が使用している正しい構文ではありません。私は JSNI について考えてきましたが、どのように進めてそれを行うのか正確にはわかりません。誰でも助けることができますか?
編集:
明らかに、上記の例では、JavaScript アラートを表示しようとしていますが、可能であれば GWT インスタンス メソッドを呼び出したいと考えています。(静的メソッドも問題ありません)。
編集2:
これは、[エクスポート] ボタンのメニュー項目のコードです。
private class ExportButtonMenuItem extends Configurable<ExportButtonMenuItem> {
public ExportButtonMenuItem(String name, String type) {
setOption("text", name);
if (type.equalsIgnoreCase(EXPORT_EXCEL)) {
// setOption("onclick", "window.alert('Test')");
// does not work!
setOption("onclick", new Command() {
@Override
public void execute() {
GWT.log("export!!!");
}
});
}
}
}
メニュー項目がチャートに追加される方法は次のとおりです。
chart.setOption("/exporting/buttons/exportButton/menuItems",
new ExportButtonMenuItem[] {
new ExportButtonMenuItem("Download PNG", ExportButtonMenuItem.EXPORT_PNG),
new ExportButtonMenuItem("Download JPEG", ExportButtonMenuItem.EXPORT_JPEG),
new ExportButtonMenuItem("Download PDF", ExportButtonMenuItem.EXPORT_PDF),
new ExportButtonMenuItem("Download SVG", ExportButtonMenuItem.EXPORT_SVG),
new ExportButtonMenuItem("Download Excel", ExportButtonMenuItem.EXPORT_EXCEL)});
編集3:
HighCharts JS ソース (exporting.js) では、menuitem の onclick メソッドが次のように呼び出されます。
div[hasTouch ? 'ontouchstart' : 'onclick'] = function () {
hide();
item.onclick.apply(chart, arguments);
};
apply が呼び出されると、次のエラーが発生します。
[java] Uncaught JavaScript exception [TypeError: item.onclick.apply is not a function] in http://127.0.0.1:8888/js/modules/exporting.src.js, line 467
onclick 関数をオーバーライドしようとしましたが、まだ成功していません...