我是prefuse可视化工具包的新手,我有几个一般性的问题。出于我的目的,我想使用prefuse (graphview / graphml)执行一个初始可视化。渲染完成后,在用户单击节点时,我希望为新的可视化完全重新加载一个新的xml文件。我想这样做是为了让我可以“预打包”图形进行显示。
例如。如果我去找泰德。我想有一个xml文件与Ted相关的加载和渲染显示。现在,在显示中,我看到Ted有关联的节点,名为Bill和Joe。当我单击Joe时,我想要清除显示并加载一个与Joe关联的xml文件。诸若此类。
我已经研究过加载一个包含所有节点和节点关系信息的非常大的xml文件,并允许prefuse使用从一个级别到另一个级别的跃点来处理此问题。然而,最终我确信系统性能问题将会由于数据的大小而出现。
预先感谢你的帮助,约翰
发布于 2010-01-10 09:46:23
当然,正如您所说,一种选择是加载所有节点,然后将不需要的节点设置为不可见。Prefuse的伸缩性相当好,但当然也有其局限性。第二种选择是创建一个全新的面板并替换旧面板。我使用了选项2,它工作得很好。
发布于 2012-11-14 07:00:02
我不是Prefuse性能问题的专家,但我认为一次加载一个巨大的xml文件肯定比只重新加载必要的节点的处理更耗费资源。
我不知道您使用的是哪种类型的图形,但我会放置一个'refreshGraph‘,它将图形从可视化对象中删除,取消活动,取消布局,刷新ActionList并重新开始。结果可能是这样的:
public void refresh(clickedNode){
visualization.removeGroup(GRAPH);
visualization.removeGroup(AGGR);
activity.cancel();
actionList.cancel();
visualization.reset();
// process the XML and reload your graph here
}https://stackoverflow.com/questions/176973
复制相似问题