如何在图形流中使用静态布局 [英] how to use static layout in graphstream

查看:141
本文介绍了如何在图形流中使用静态布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆