学无止境  
日历
<2005年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
统计
  • 随笔 - 9
  • 文章 - 0
  • 评论 - 2
  • 引用 - 0

导航

常用链接

留言簿(2)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

2005年10月17日

You have implemented your own graphical editor as a new eclipse plugin. You are looking for a way to add zoom functions into the graphical editor. It is very easy!
1. Add the action into the toolbar:
...in Class: ActionBarContributor...
    ...in Method: contributeToToolBar...
        toolBarManager.add(getAction(GEFActionConstants.ZOOM_IN));
        toolBarManager.add(getAction(GEFActionConstants.ZOOM_OUT));
        toolBarManager.add(new ZoomComboContributionItem(getPage()));

2. Connect the Zoom Manager with your edit part:
...in Class: YourEditor...
    ...in Method: configureGraphicalViewer...
        ScalableFreeformRootEditPart rootEditPart= new ScalableFreeformRootEditPart();
        getGraphicalViewer().setRootEditPart(rootEditPart);

        ZoomManager manager = rootEditPart.getZoomManager();
        IAction action = new ZoomInAction(manager);
        getActionRegistry().registerAction(action);
        action = new ZoomOutAction(manager);
        getActionRegistry().registerAction(action);

        //define the zoom possibilities
        double[] zoomLevels = new double[] {0.25,0.5,0.75,1.0,1.5,2.0,2.5,3.0,4.0};
        manager.setZoomLevels(zoomLevels);
   ...in Method: getAdapter...
        if (type == ZoomManager.class)
              return ((ScalableFreeformRootEditPart) getGraphicalViewer().
                        getRootEditPart()).getZoomManager();

That's all! Now you have two buttons to zoom in and zoom out. And you can see the zoom level in percent.  With the example here you  can change  zoom level from 25% to 400%.

posted @ 2005-10-25 23:38 lucia 阅读(1368) | 评论 (0)编辑 收藏
 
There is an example of creating linked resources in code.
IProject project = workspace.getProject("Project");//assume this exists
IFolder link = project.getFolder("Link");
IPath location = new Path("C:\TEMP\folder");
if (workspace.validateLinkLocation(location).isOK()) {
link.createLink(location, IResource.NONE, null);
} else {
//invalid location, throw an exception or warn user
}

This example will create a linked folder called "Link" that is located at "c:\temp\folder".

link.getFullPath() => "/Project/Link"
link.getLocation() => "c:\temp\folder"
link.getRawLocation() => "temp/folder"
link.isLinked() => "true"
IFile child = link.getFile("abc.txt");
child.create(...);
child.getFullPath() => "/Project/Link/abc.txt"
child.getLocation() => "c:\temp\folder\abc.txt"
child.getRawLocation() => "c:\temp\folder\abc.txt"
child.isLinked() => "false"

posted @ 2005-10-17 05:25 lucia 阅读(833) | 评论 (0)编辑 收藏
 
Copyright © lucia Powered by: 博客园 模板提供:沪江博客