将自定义文本添加到Google Visualization工具提示(使用GWT API)

以下问题几乎完全描述了我想要的…

将自定义文本添加到Google Visualization工具提示

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

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

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

谢谢。

那么谷歌图表工具中的新function并没有分别进入GWT可视化API和包装器。
我实际上不确定GWT API是否会更新。 但是,您始终可以自己实现这些function。

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

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

BTW:最新版本的GWT Visualization API实际上是( 1.1.2 )

根据Ümit的回答,我能够使用JSNI轻松完成这项工作,我想我会为遇到此问题的其他人发布一些示例代码。

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

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

注意这是JNSI,因此注释/括号对于未启动的看似奇怪。

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

  addTooltipColumn(dataTable); 

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

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

您还可以使用工具提示添加更多信息

 double value = 50.0; data.setCell(row, col, value, Double.toString(value) + "\nExtra information\n On several rows",null); 

而不是data.setValue(…)。

Interesting Posts