我有一个Cytoscape图,某些用户操作可以向该图添加节点。发生这种情况时,我想对新节点应用布局,以便它们出现在合理的位置。但是,我想将以前存在的节点保留在它们的当前位置,因为用户可能已经将它们手动定位在那里。
我在Stack Overflow上发现了两个相关的问题,但它们与稍有不同的事情有关:
1)How to dynamically add nodes to cytoscape graph是关于添加节点的,但是建议的方法将布局应用于所有节点,而不仅仅是新节点。
2)Cytoscape dynamically style last added node only是关于将样式应用于新节点,但是我对节点的 positioning 感兴趣,而不是样式。
一个明显的解决方法是手动指定新节点的位置。但是,首先存在布局的全部原因是要有一种方法来计算外观不错的位置。我很确定这是可能的,只是在Cytoscape文档的任何地方都找不到。
答案 0 :(得分:2)
您可以使用 def outer(otherStuff:String*): Unit ={
if(someCondition)
methodInThirdPartyLibrary(otherStuff)
// other code....
}
def methodInThirdPartyLibrary(stuff:String*): Unit ={
println(stuff.mkString(","))
}
在specific elements上应用布局。还有eles.layout()
event在添加新节点时触发。