关于 java:Add custom text to Google Visualization tooltip (使用 GWT API)

Add custom text to Google Visualization tooltip (using GWT API)

以下问题几乎完全描述了我试图...

将自定义文本添加到 Google 可视化工具提示

... 基本上是为 google-viz 工具提示添加额外信息。接受的答案看起来不错,但我正在使用 GWT API。从最新版本(1.1)数据表看不支持这个...

http://gwt-google-apis.googlecode.com/svn/javadoc/visualization/1.1/com/google/gwt/visualization/client/DataTable.html

...

是否有人知道对此有任何修复或解决方法?

谢谢。


根据 ??mit 的回答,我可以使用 JSNI 轻松完成此操作,我想我会为遇到此问题的其他人发布一些示例代码。

为了让事情变得超级简单,而不是扩展 DataTable 类,我将以下内容添加到生成图表的客户端类中:

1
2
3
private native void addTooltipColumn(DataTable data) /*-{
    data.addColumn({type:'string', role:'tooltip'});
}-*/
;

注意这是 JNSI,因此注释 / 括号对未启动的人来说似乎很奇怪。

然后我可以在数据表上调用它:

1
    addTooltipColumn(dataTable);

工具提示可以与每一行的数据一起添加,如下所示:

1
2
    data.setValue(row, col, data);
    data.setValue(row, col,"Tool Tip Text");


Google 图表工具中的新功能还没有分别进入 GWT 可视化 API 和package器。
我实际上不确定 GWT API 是否会更新。
但是,您始终可以自己实现这些功能。

根据您创建 DataTable 的方式(以编程方式或通过后端),您可以:

  • 以编程方式:您可以扩展 DataTable 或 AbstractDataTable 类并通过 JSNI 实现缺少的特性和功能(即 addColumn(type, role) 等。查看 AbstractDataTable 的源代码)。
  • 来自后端的 JSON:您可以在后端创建适当的 DataTable JSON 结构,然后调用 DataTable.create() 并将其传递给 draw() 方法,无需任何代码修改。 (我还没有测试过,但它应该可以工作,因为 DataTable 只是一个 JavaScriptObject)

顺便说一句:GWT Visualization API 的最新版本实际上是 (1.1.2)


您还可以使用

向工具提示添加更多信息

1
2
3
4
double value = 50.0;
data.setCell(row, col, value, Double.toString(value) +"\
Extra information\
 On several rows"
,null);

而不是 data.setValue(...).