1

自从将 Zest 从 1.4 更新到 2.0 后,布局算法出现了问题。

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

在 2.0 中,每次刷新(在 Graph 更改后更新查看器所必需的)都会导致执行布局算法。因此,添加新节点会导致更改 GraphViewer 中每个节点的每个位置。

这对我的用例来说是不可接受的。是否有可能阻止 GraphViewer 通过刷新执行 LayoutAlgorithm?

我需要的是仅在单击“布局”按钮时在查看器中布局图表。不应该有任何自动布局。

我想在调用后取消设置 LayoutAlgorithm,这样以后刷新时就没有算法了,但这似乎也不可能。在 GraphViewer 上以 null 作为参数调用 setLayoutAlgorithm 会导致 NullPointerException。

是否有可能使用 2.0 获得 Zest GraphViewers 的“旧行为”?

谢谢!

克里斯蒂娜

4

1 回答 1

1

Graph 小部件有一个 public void setDynamicLayout(boolean enabled)方法,根据 Javadoc 可能只是做你需要的技巧。

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

于 2012-09-20T08:46:00.110 回答