首页 > 代码库 > 6.16 图形的缩放实现zoomManager
6.16 图形的缩放实现zoomManager
http://blog.csdn.net/evilinside/article/details/5153657
实现图形缩放的步骤:
1 protected void configureGraphicalViewer() { 2 super.configureGraphicalViewer(); 3 4 viewer = getGraphicalViewer(); 5
1.提供缩放能力。 设置根图形的RootEditPart为ScalableRootEditPart:
6 ScalableRootEditPart rootEditPart = new ScalableRootEditPart(); 7 viewer.setRootEditPart(rootEditPart); 8
2.实际缩放的实现。ScalableRootEditPart 提供了一个 ZoomManager
类,可以被用来管理图形的最大化,最小化等操作。对图形的缩放操作实际上是通过这个
ZoomManager 实现的。
9 ZoomManager zoomManager = rootEditPart.getZoomManager(); //获得ZoomManager
//注册放大Action10 IAction action = new ZoomInAction(zoomManager);11 getActionRegistry().registerAction(action);
//注册缩小Action12 action = new ZoomOutAction(zoomManager);13 getActionRegistry().registerAction(action);14 15 viewer.setEditPartFactory(new GraphicalPartFactory());这个是用来干嘛的??16 17 ContextMenuProvider provider = new DiagramContextMenuProvider(viewer,18 getActionRegistry());19 viewer.setContextMenu(provider);20 getSite().registerContextMenu(provider, viewer);21 22 KeyHandler keyHandler = new KeyHandler();23 keyHandler.put(KeyStroke.getPressed(SWT.DEL, 127, 0),24 getActionRegistry().getAction(ActionFactory.DELETE.getId()));25 getGraphicalViewer().setKeyHandler(26 new GraphicalViewerKeyHandler(getGraphicalViewer())27 .setParent(keyHandler));28 29 }
1 package ttcn3.gft.editor.ui.actions; 2 3 import org.eclipse.gef.ui.actions.ActionBarContributor; 4 5 import org.eclipse.gef.ui.actions.DeleteRetargetAction; 6 import org.eclipse.gef.ui.actions.GEFActionConstants; 7 import org.eclipse.gef.ui.actions.RedoRetargetAction; 8 import org.eclipse.gef.ui.actions.UndoRetargetAction; 9 import org.eclipse.gef.ui.actions.ZoomInRetargetAction; 10 import org.eclipse.gef.ui.actions.ZoomOutRetargetAction; 11 import org.eclipse.jface.action.IToolBarManager; 12 import org.eclipse.jface.action.Separator; 13 import org.eclipse.ui.IEditorPart; 14 import org.eclipse.ui.actions.ActionFactory; 15 import org.eclipse.ui.actions.RetargetAction; 16 17 import ttcn3.gft.editor.action.FilterAction; 18 import ttcn3.gft.editor.editor.DiagramEditor; 19 import ttcn3.gft.editor.ui.helper.IImageKey; 20 21 /** 22 * action bar for diagram editor 23 * 24 * @author user 25 * 26 */ 27 28 public class TTCNActionBarContributor extends ActionBarContributor { 29 3.添加缩放工具按钮 30 @Override 31 protected void buildActions() { 32 // TODO Auto-generated method stub 33 RetargetAction retargetAction = new RetargetAction(ActionFactory.SAVE.getId(), "SAVE"); 35 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_SAVE)); 37 addRetargetAction(retargetAction); 38 39 retargetAction = new RetargetAction(ActionFactory.COPY.getId(), "COPY"); 40 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_COPY)); 42 addRetargetAction(retargetAction); 43 44 retargetAction = new RetargetAction(ActionFactory.PASTE.getId(),"PASTE"); 46 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_PASTE)); 48 addRetargetAction(retargetAction); 49 50 retargetAction = new UndoRetargetAction(); 51 addRetargetAction(retargetAction); 52 53 retargetAction = new RedoRetargetAction(); 54 addRetargetAction(retargetAction); 55 56 retargetAction = new DeleteRetargetAction(); 57 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_DELETE)); 59 addRetargetAction(retargetAction); 60 61 addRetargetAction(new ZoomInRetargetAction()); 62 addRetargetAction(new ZoomOutRetargetAction()); 63 64 retargetAction = new RetargetAction(GenerateAction.getID(), "Generate"); 65 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_GENERATE)); 67 addRetargetAction(retargetAction); 68 69 retargetAction = new RetargetAction(FilterAction.getID(), "Filter"); 70 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_FILTER)); 72 addRetargetAction(retargetAction); 73 74 retargetAction = new RetargetAction(CompileAction.getID(), "Compile"); 75 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_COMPILE)); 77 addRetargetAction(retargetAction); 78 79 retargetAction = new RetargetAction(ActionFactory.PRINT.getId(),"Print"); 81 retargetAction.setImageDescriptor(IImageKey.getImageDescriptor(IImageKey.KEY_PRINT)); 83 addRetargetAction(retargetAction); 84 85 } 86 87 @Override 88 protected void declareGlobalActionKeys() { 89 // TODO Auto-generated method stub 90 91 } 92 93 @Override 94 public void contributeToToolBar(IToolBarManager toolBarManager) { 95 toolBarManager.add(getAction(ActionFactory.SAVE.getId())); 96 toolBarManager.add(new Separator()); 97 98 toolBarManager.add(getAction(ActionFactory.COPY.getId())); 99 toolBarManager.add(getAction(ActionFactory.PASTE.getId()));100 toolBarManager.add(new Separator());101 102 toolBarManager.add(getAction(ActionFactory.UNDO.getId()));103 toolBarManager.add(getAction(ActionFactory.REDO.getId()));104 toolBarManager.add(getAction(ActionFactory.DELETE.getId()));105 toolBarManager.add(new Separator());106 107 toolBarManager.add(getAction(GEFActionConstants.ZOOM_IN));108 toolBarManager.add(getAction(GEFActionConstants.ZOOM_OUT));109 toolBarManager.add(new Separator());110 111 toolBarManager.add(getAction(FilterAction.getID()));112 toolBarManager.add(getAction(GenerateAction.getID()));113 toolBarManager.add(getAction(CompileAction.getID()));114 toolBarManager.add(getAction(ActionFactory.PRINT.getId()));115 116 // toolBarManager.add(new ZoomComboContributionItem(getPage()));117 }118 119 @Override120 public void setActiveEditor(IEditorPart editor) {121 // TODO Auto-generated method stub122 super.setActiveEditor(editor);123 124 if (editor instanceof DiagramEditor) {125 getActionBars().getStatusLineManager().setMessage(126 ((DiagramEditor) editor).getPartName());127 }128 }129 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。