Posted on 2006-12-29 13:16
Hexise 閱讀(2594)
評論(2) 編輯 收藏 所屬分類:
Eclipse Plugin 、
GEF/EMF
GEF編輯器是構(gòu)架在Draw2D的FigureCanvas上的,而FigureCanvas是swt中Canvas的子類.
當?shù)玫紽igureCanvas之后,就可以得到GEF編輯器的區(qū)域和GEF編輯器內(nèi)部畫布的大小:
編輯器區(qū)域大小:FigureCanvas.getBounds();
這是運用了FigureCanvas是Canvas子類的特點,調(diào)用SWT的Canvas的getBounds()方法,即調(diào)用Control的getBounds()方法.
畫布大小:FigureCanvas.getContents.getBounds();
這是運用了IFigure的getBounds()方法, 這兩個區(qū)域矩形不可混淆.
若要觸發(fā)GEF編輯器的滾動條操作,僅需調(diào)用FigureCanvas的scrollToX(int hOffset)和scrollToY(int vOffset)即可.
獲取FigureCanvas的方法也比較簡單.通過EditPart.getViewer()獲得EditPartViewer,一般情況下EditPartViewer的Control就是FigureCanvas.
列出代碼如下:
FigureCanvas?canvas?
=
?(FigureCanvas)EditPart.getViewer().getControl();
canvas.scrollToX(
500
);
canvas.scrollToY(
600
);
System.out.println(canvas.getBounds());
System.out.println(canvas.getContents().getBounds());