0
你好我是Eclipse GEF的新手,我遇到了缩放问题。将Eclipse GEF放大到特定位置
基本上我想要这个功能: 每当我关闭我的编辑器视图时,我想让编辑器缩放前一个缩放比例,最重要的是放到相同的位置。
我试图通过Viewport来实现这样的功能,但我被卡住了。
谢谢你的任何提示。
你好我是Eclipse GEF的新手,我遇到了缩放问题。将Eclipse GEF放大到特定位置
基本上我想要这个功能: 每当我关闭我的编辑器视图时,我想让编辑器缩放前一个缩放比例,最重要的是放到相同的位置。
我试图通过Viewport来实现这样的功能,但我被卡住了。
谢谢你的任何提示。
最后我找到了解决办法,通过setViewLocation(位置p)方法。 棘手的部分在于别处 - 执行此类方法视口必须处于有效状态,因此最佳方法是在视口的UpdateManager上执行performUpdate()。如果你是在GEF编辑器中设置这样的位置上,因为有设置位置必须在initializeGraphicalViewer()方法不是在configureGraphicalViewer()方法执行可能会出现另一个棘手的情况。
所以最后代码应该看起来像这样:
@Override
protected void initializeGraphicalViewer() {
super.initializeGraphicalViewer();
final GraphicalViewer viewer = getGraphicalViewer();
viewer.setContents(getModel());
ScalableFreeformRootEditPart rootEditPart
= (ScalableFreeformRootEditPart) viewer.getRootEditPart();
Viewport viewport = (Viewport) rootEditPart.getFigure();
viewport.getUpdateManager().performUpdate();
viewport.setViewLocation(getModel().getZoomPosition());