如何在图形流中使用静态布局 [英] how to use static layout in graphstream
问题描述
我想用GraphStream生成静态图。是否有任何建议解决方案?
我从DGS文件读取输入数据(从其他模型生成)。由于每次都不修复节点数量,我不想手动指定每个节点的每个位置。目前,我可以使用自动布局功能放置节点,结果正常,但问题是:如果单击节点并将其拖动,每个节点都可以移动。有什么方法可以生成图形使用自动布局,并且节点同时不可拖动?
预先感谢!
为了防止用户与默认查看器进行交互,您需要指定一个新的
MouseManager
,其中默认查看
,那实际上什么都不做。 由于您无法设置 null
MouseManager
会产生默认的),你需要创建一个基本上什么都不做的新类,并将它赋给 View
。
这样做的一个肮脏的方式:
$ $ p $ graph.display )
.getDefaultView()
.setMouseManager(new MouseManager(){
@Override
public void mouseClicked(MouseEvent e){}
@Override
public void mousePressed(MouseEvent e){}
@Override
public void mouseReleased(MouseEvent e){}
@Override
public void mouseEntered(MouseEvent e){}
@Override
public void mouseExited(MouseEvent e){}
@Override
public void mouseDragged(MouseEvent e){}
@Override
public void mouseMoved(MouseEvent e){}
@Override
public void init(GraphicGraph graph,View view){}
@Override
public void release(){}
});
I would like to generate static graph use GraphStream. Is there any suggestion solutions?
I read input data from DGS file (generated from other model). Because the number of nodes is not fix every time and I don't want to manually specify each position of each node. Currently I can use the autolayout function to place the nodes and the result is OK, but the problem is: each node can be moved if you click the node and drag it. Is there any way to generate the graph use autolayout, and the node is un-draggable at the same time?
Thanks in advance!
In order to prevent user interaction with the default viewer, you need to specify a new MouseManager
, in the default View
, that actually does nothing.
Since you cannot set a null
MouseManager
(it would spawn the default one), you need to create a new class that basically does nothing and give it to the View
.
A dirty way of doing it:
graph.display()
.getDefaultView()
.setMouseManager(new MouseManager(){
@Override
public void mouseClicked(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mouseDragged(MouseEvent e) {}
@Override
public void mouseMoved(MouseEvent e) {}
@Override
public void init(GraphicGraph graph, View view) {}
@Override
public void release() {}
});
这篇关于如何在图形流中使用静态布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!