Как показать форму прямоугольника для узла с помощью инструментария визуализации PREFUSE для JAVA? - PullRequest
0 голосов
/ 17 февраля 2010

Я кодировал следующий код (некоторые выдержки из кода), чтобы отобразить узел в виде прямоугольника, но он не работает. Это просто отображение простого узла.

выдержки из кода:

...
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

1 Ответ

1 голос
/ 17 февраля 2010

Я получил ответ, поэтому отвечаю здесь.

В prefuse добавление Action s (в нашем случае ShapeAction) к визуализации просто устанавливает свойства отображения VisualItem s.

Чтобы отобразить VisualItem s, которые отражают эти свойства отображения, нам нужно установить renderers для Visualization.

.
ShapeRenderer m_nodeRenderer = new ShapeRenderer();
DefaultRendererFactory rf = new DefaultRendererFactory(m_nodeRenderer);
m_vis.setRendererFactory(rf);
...