2013-08-29 69 views
3

我有一個用GEF編寫的圖形編輯器。在此編輯器中,可以拖放元素並通過在特定錨點上拖放來創建連接。GEF:拖放過程中的自動滾動

一切工作正常,除了當用戶拖動東西時圖不會自動滾動。

我希望圖表可以在用戶拖動某物時到達側面時自動滾動。

GEF支持這樣的功能嗎?應該調用哪個類/ setter來啓用它?

如果沒有直接支持,如何繼續實現呢?

回答

3

自從我上次與GEF搞混了,已經有一段時間了。

是否拖放不工作或只是在負座標方向? 你使用什麼佈局?

IIRC,有不同的佈局,其中一個(FreeForm?)支持負座標,所以如果您只是在負座標上遇到問題,您可以嘗試更改佈局。

下面是Scrolling Graphical editor(作者說;))這可能會給你一個很好的提示的例子。

還有一個名爲的類,org.eclipse.gef.ui.parts.ScrollingGraphicalViewer也可能有幫助。

只有提示,雖然,因爲我不知道你的代碼。

+1

one more: org.eclipse.gef.editparts.ViewportAutoexposeHelper – Calon

3

第一步是讓您的畫布滾動。這是解釋in this book,頁96 - 101

假設你已經在FigureCanvas繪製你的人物和你使用FreeformFigure S和FreeformLayer,你可以做到以下幾點:

Figure添加MouseMoveListener在其EditPart。每次檢測到拖動時,在mouseDragEvent方法中,用getViewer().reveal(EditPart.this)顯示您的數字。

這會導致您的Figure在被拖動時始終顯示。

+0

你能否也給書名和作者命名?上面的鏈接不再有效。 – Simon

+1

@Simon由Dan Rubel,Jaime Wren和Eric Clayberg編寫的「Eclipse圖形編輯框架(GEF)」。這是「日食系列」的一部分。書的封面是深紫色的白色。 – GGrec