2012-09-20 48 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中爲它打開一張票。 –