2012-09-20 22 views
1

由于将Zest从1.4更新为2.0,我对布局算法有问题。防止Zest 2.0 GraphViewer执行刷新的布局算法

在1.4中,布局算法仅通过调用applyLayout来执行。可以设置布局,执行布局并在此之后更改Graph并刷新GraphViewer而不再执行它。

在2.0中,每更新一次,在更改图表后更新查看器都会导致执行布局算法。因此添加一个新节点会导致GraphViewer中每个节点的每个位置都发生变化。

这是我的用例不能接受的。是否有可能阻止GraphViewer使用刷新执行LayoutAlgorithm?

我需要的是只有在点击“布局”按钮时,才能在查看器中布置图形。不应该有任何自动布局。

我想在调用之后取消设置LayoutAlgorithm,以便在以后的刷新过程中没有算法,但这似乎也不可能。在GraphViewer上使用null作为参数调用setLayoutAlgorithm会导致NullPointerException。

有没有可能让2.0的Zest GraphViewer的“旧行为”?

谢谢!

克里斯蒂娜

回答

1

该图窗口小部件有一个public void setDynamicLayout(boolean enabled)方法,根据的Javadoc可能只是你需要的伎俩。

要从GraphViewer获取小部件,请使用GraphViewer#getGraphControl方法。

+1

我已经尝试过,但它不起作用。该属性似乎不会干扰刷新方法。 – user1027581

+1

然后很遗憾,我认为,这个选项缺失。也许你应该在Eclipse Bugzilla中为它打开一张票。 –