您好,我是 Eclipse GEF 的新手,我在缩放时遇到问题。
基本上我想拥有这个功能:每当我关闭我的编辑器视图时,我想让编辑器以以前的比例缩放,最重要的是到相同的位置。
我试图通过 Viewport 实现这样的功能,但我被卡住了。
您好,我是 Eclipse GEF 的新手,我在缩放时遇到问题。
基本上我想拥有这个功能:每当我关闭我的编辑器视图时,我想让编辑器以以前的比例缩放,最重要的是到相同的位置。
我试图通过 Viewport 实现这样的功能,但我被卡住了。
最后我通过setViewLocation(Position p)
方法找到了解决方案。棘手的部分在于其他地方 - 在执行此类方法之前,视口必须处于有效状态,
所以最好的方法是performUpdate()
在视口的 UpdateManager 上执行。如果您在 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());
}