首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prefuse:重新加载XML文件

Prefuse:重新加载XML文件
EN

Stack Overflow用户
提问于 2008-10-07 02:08:04
回答 2查看 696关注 0票数 2

我是prefuse可视化工具包的新手,我有几个一般性的问题。出于我的目的,我想使用prefuse (graphview / graphml)执行一个初始可视化。渲染完成后,在用户单击节点时,我希望为新的可视化完全重新加载一个新的xml文件。我想这样做是为了让我可以“预打包”图形进行显示。

例如。如果我去找泰德。我想有一个xml文件与Ted相关的加载和渲染显示。现在,在显示中,我看到Ted有关联的节点,名为Bill和Joe。当我单击Joe时,我想要清除显示并加载一个与Joe关联的xml文件。诸若此类。

我已经研究过加载一个包含所有节点和节点关系信息的非常大的xml文件,并允许prefuse使用从一个级别到另一个级别的跃点来处理此问题。然而,最终我确信系统性能问题将会由于数据的大小而出现。

预先感谢你的帮助,约翰

EN

回答 2

Stack Overflow用户

发布于 2010-01-10 09:46:23

当然,正如您所说,一种选择是加载所有节点,然后将不需要的节点设置为不可见。Prefuse的伸缩性相当好,但当然也有其局限性。第二种选择是创建一个全新的面板并替换旧面板。我使用了选项2,它工作得很好。

票数 1
EN

Stack Overflow用户

发布于 2012-11-14 07:00:02

我不是Prefuse性能问题的专家,但我认为一次加载一个巨大的xml文件肯定比只重新加载必要的节点的处理更耗费资源。

我不知道您使用的是哪种类型的图形,但我会放置一个'refreshGraph‘,它将图形从可视化对象中删除,取消活动,取消布局,刷新ActionList并重新开始。结果可能是这样的:

代码语言:javascript
复制
public void refresh(clickedNode){
    visualization.removeGroup(GRAPH);
    visualization.removeGroup(AGGR);
    activity.cancel();
    actionList.cancel();
    visualization.reset();
    // process the XML and reload your graph here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/176973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档