您好我是Eclipse GEF的新手,我遇到缩放问题。
基本上我想拥有这个功能: 每当我关闭编辑器视图时,我希望编辑器使用之前的比例进行缩放,最重要的是放大到同一位置。
我试图通过Viewport实现这样的功能,但我陷入困境。
答案 0 :(得分:3)
最后,我通过setViewLocation(Position p)
方法找到了解决方案。
棘手的部分在于其他地方 - 在执行此类方法之前,视口必须处于有效状态,
所以最好的方法是在视口的UpdateManager上执行performUpdate()
。如果您在GEF编辑器中设置此类位置,则可能会出现另一种棘手的情况,因为必须在initializeGraphicalViewer()
方法的configureGraphicalViewer()
方法 NOT 中执行设置位置。
所以最后代码应该是这样的:
@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());
}