我编写了以下代码(代码的一些摘录)以将节点显示为矩形,但它无效。它只是显示一个简单的节点。
代码摘录:
...
ShapeAction nodeShape = new NodeShapeAction(treeNodes); // treeNodes is a datagroup representing the tree nodes
m_vis.putAction("nodeShape", nodeShape); // m_vis is referring the visualization object
m_vis.run(nodeShape);
....
/**
* Set node shapes
*/
public static class NodeShapeAction extends ShapeAction {
public NodeShapeAction(String group) {
super(group);
add("type == 'APPLICATION'", Constants.SHAPE_RECTANGLE);
add("type == 'DATABASE'", Constants.SHAPE_STAR);
add("type == 'INTERFACE'", Constants.SHAPE_ELLIPSE);
}
} // end of inner class NodeShapeAction
答案 0 :(得分:1)
我得到了答案,所以我在这里回答。
在prefuse
中,将Action
s(在我们的案例中为ShapeAction
)添加到可视化文件中只会设置VisualItem
的显示属性。
要显示反映这些显示属性的VisualItem
,我们需要将renderers
设置为Visualization
。
ShapeRenderer m_nodeRenderer = new ShapeRenderer();
DefaultRendererFactory rf = new DefaultRendererFactory(m_nodeRenderer);
m_vis.setRendererFactory(rf);