2011-03-24 78 views
0

你好我是Eclipse GEF的新手,我遇到了缩放问题。将Eclipse GEF放大到特定位置

基本上我想要这个功能: 每当我关闭我的编辑器视图时,我想让编辑器缩放前一个缩放比例,最重要的是放到相同的位置。

我试图通过Viewport来实现这样的功能,但我被卡住了。

谢谢你的任何提示。

回答

3

最后我找到了解决办法,通过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());