使用针对D3.js的GWT包装器创建节点链接图

时间:2017-05-29 14:42:33

标签: d3.js gwt force-layout

我正在尝试使用D3.js(github.com/gwtd3/gwt-d3)的GWT布局来创建一个带有力模型的节点链接图。首先,比this examplethis one更简单的东西就足够了。

但是我真的有问题使用GWT包装器创建更简单的图形。我找不到如何使用等效的力,节点和链接对象。

我从:

开始
Force force = D3.layout().force();

但是,我不知道节点“节点”和“链接”应该是什么对象以及如何初始化它们。他们的构造者不可见。

force.nodes(nodes).links(links);

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

作为解决方法,添加其他JSNI便捷方法以创建Force.Node和Force.Link实例。

/**
 * Convenience function to overcome API limitation. 
 */
static final native <T> Node<T> newNode(T userDatum)/*-{
    return {
        datum : userDatum
    };
}-*/;

/**
 * Convenience function to overcome API limitation. 
 */    
static final native <T> Link<T> newLinkIndex(int source, int target, T userDatum) /*-{
    return {
        source : source,
        target : target,
        datum: userDatum
    };
}-*/;
  1. 创建GWT D3&#39;节点&#39;包含所有Node实例的数组
  2. 初始化GWT D3&#39;链接&#39;使用来自&#39;节点&#39;的索引(int)的数组指向相应的Node实例
  3. 通过调用:force.nodes(nodes).links(links)
  4. 来应用

    您可以在MobilePatentSuits.java中看到完整的工作示例!