Prefuse で SpecifiedLayout を使用すると問題が発生します。すでに定義済みの位置にいくつかのノードを設定したいと考えています。AxisLayout を使用してみました。ノードは正しい位置に設定されていますが、DragControl または ZoomControl のオプションを実際に使用することはできません。そこで、SpecifiedLayout を使用してみました。ここでの問題は、最初に指定した位置ではなく、すべてのノードが同じ位置に設定されていることです。誰かがこの問題で私を助けてくれることを願っています。
コードは次のとおりです。
private static Visualization vis;
graph = new Graph();
graph.addColumn("positionx", Integer.class);
graph.addColumn("positiony", Integer.class);
次に、定義済みの位置を「positionx」と「positiony」に追加します。その後:
ActionList layout = new ActionList(ActionList.INFINITY);
SpecifiedLayout l = new SpecifiedLayout("graph.nodes","positionx","positiony");
layout.add(l);
layout.add(new RepaintAction());
vis.putAction("layout", layout);
前述したように、SpecifiedLayout の代わりに AxisLayout を使用すると、次のようになります。
layout.add(new AxisLayout("graph.nodes","positionx",Constants.X_AXIS));
layout.add(new AxisLayout("graph.nodes","positiony",Constants.Y_AXIS));
ノードは正しい位置に設定されていますが、ドラッグやズームはできません。
助けていただければ幸いです。
どうも