使用JsInterop,我已经包装了以下JavaScript代码:
var voronoi = d3.geom.voronoi()
.clipExtent([[0, 0], [width, height]]);
如下:
private Voronoi voronoi;
...
voronoi = d3.geom().voronoi()
.clipExtent(new Double[][] {{0.D, 0.D}, {width, height}});
这似乎很有效。
稍后,在JavaScript方面,他们会进行以下调用:
path = path
.data(voronoi(vertices), polygon);
我很难搞清楚如何调用我的voronoi实例,好像它是这样的功能。
在本文档中:https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/edit#,我看到以下一行:
@JsFunction JsInterop的另一个强大功能是能够表示Java和JavaScript之间的JavaScript函数契约。这意味着可以从Java轻松调用JavaScript函数,或者可以像在JavaScript中的函数一样调用Java对象:
现在我的Voronoi对象如下:
@JsType(isNative = true)
public interface Voronoi extends Geometry {
<D> Voronoi clipExtent(D[][] bounds);
}
我需要做些什么来调用我的Voronoi实例,好像它是一个函数?
谢谢
答案 0 :(得分:0)
@JsType(isNative = true)
public interface Voronoi extends Geometry {
@JsMethod
static native [TheTypeItReturns] call(Voronoi self, [ParameterTypes]... args);
<D> Voronoi clipExtent(D[][] bounds);
}
查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply。