/** configure key handler */ private void configureKeyHandler() { GraphicalViewer viewer = getGraphicalViewer(); keyHandler = new KeyHandler(); // keyHandler.put(KeyStroke.getPressed('a', 0x61, SWT.COMMAND), // getActionRegistry().getAction(ActionFactory.SELECT_ALL.getId())); keyHandler.put( KeyStroke.getPressed('s', 0x61, SWT.CTRL), getActionRegistry().getAction(ActionFactory.SAVE.getId())); keyHandler.put( KeyStroke.getPressed('z', 0x7a, SWT.CTRL), getActionRegistry().getAction(ActionFactory.UNDO.getId())); keyHandler.put( KeyStroke.getPressed('z', 0x7a, SWT.CTRL | SWT.SHIFT), getActionRegistry().getAction(ActionFactory.REDO.getId())); keyHandler.put( KeyStroke.getPressed('a', 0x61, SWT.CTRL), getActionRegistry().getAction(ActionFactory.SELECT_ALL.getId())); keyHandler.put( KeyStroke.getPressed(SWT.DEL, 127, 0), getActionRegistry().getAction(ActionFactory.DELETE.getId())); keyHandler.put( KeyStroke.getPressed('+', SWT.KEYPAD_ADD, 0), getActionRegistry().getAction(GEFActionConstants.ZOOM_IN)); keyHandler.put( KeyStroke.getPressed('-', SWT.KEYPAD_SUBTRACT, 0), getActionRegistry().getAction(GEFActionConstants.ZOOM_IN)); viewer.setProperty( MouseWheelHandler.KeyGenerator.getKey(SWT.NONE), MouseWheelZoomHandler.SINGLETON); viewer.setKeyHandler(keyHandler); }
protected void configureGraphicalViewer() { super.configureGraphicalViewer(); GraphicalViewer viewer = getGraphicalViewer(); viewer.setEditPartFactory(createEditPartFactory()); ScalableRootEditPart rootEditPart = new ScalableRootEditPart(); viewer.setRootEditPart(rootEditPart); // ZoomManagerの取得 ZoomManager manager = rootEditPart.getZoomManager(); // ズームレベルの設定 double[] zoomLevels = new double[] {0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 10.0, 20.0}; manager.setZoomLevels(zoomLevels); // ズーム レベル コントリビューションの設定 ArrayList<String> zoomContributions = new ArrayList<String>(); zoomContributions.add(ZoomManager.FIT_ALL); zoomContributions.add(ZoomManager.FIT_HEIGHT); zoomContributions.add(ZoomManager.FIT_WIDTH); manager.setZoomLevelContributions(zoomContributions); // 拡大アクションの作成と登録 getActionRegistry().registerAction(new ZoomInAction(manager)); // 縮小アクションの作成と登録 getActionRegistry().registerAction(new ZoomOutAction(manager)); getGraphicalViewer().setKeyHandler(new GraphicalViewerKeyHandler(getGraphicalViewer())); // コンテクストメニューの作成 String menuId = this.getClass().getName() + ".EditorContext"; MenuManager menuMgr = new MenuManager(menuId, menuId); openPropertyAction = new OpenPropertyViewAction(viewer); openOutlineAction = new OpenOutlineViewAction(viewer); saveAsImageAction = new SaveAsImageAction(viewer); copyAsImageAction = new CopyAsImageAction(viewer); createDiagramAction(viewer); getSite().registerContextMenu(menuId, menuMgr, viewer); PrintAction printAction = new PrintAction(this); printAction.setImageDescriptor(UMLPlugin.getImageDescriptor("icons/print.gif")); getActionRegistry().registerAction(printAction); final DeleteAction deleteAction = new DeleteAction((IWorkbenchPart) this); deleteAction.setSelectionProvider(getGraphicalViewer()); getActionRegistry().registerAction(deleteAction); viewer.addSelectionChangedListener( new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { deleteAction.update(); } }); // Actions // IAction showRulers = new ToggleRulerVisibilityAction(getGraphicalViewer()); // getActionRegistry().registerAction(showRulers); // // IAction snapAction = new ToggleSnapToGeometryAction(getGraphicalViewer()); // getActionRegistry().registerAction(snapAction); // // IAction showGrid = new ToggleGridAction(getGraphicalViewer()); // getActionRegistry().registerAction(showGrid); menuMgr.add(new Separator("edit")); menuMgr.add(getActionRegistry().getAction(ActionFactory.DELETE.getId())); menuMgr.add(getActionRegistry().getAction(ActionFactory.UNDO.getId())); menuMgr.add(getActionRegistry().getAction(ActionFactory.REDO.getId())); // menuMgr.add(getActionRegistry().getAction(ActionFactory.COPY.getId())); // menuMgr.add(getActionRegistry().getAction(ActionFactory.PASTE.getId())); menuMgr.add(new Separator("zoom")); menuMgr.add(getActionRegistry().getAction(GEFActionConstants.ZOOM_IN)); menuMgr.add(getActionRegistry().getAction(GEFActionConstants.ZOOM_OUT)); fillDiagramPopupMenu(menuMgr); menuMgr.add(new Separator("print")); menuMgr.add(saveAsImageAction); menuMgr.add(copyAsImageAction); menuMgr.add(printAction); menuMgr.add(new Separator("views")); menuMgr.add(openPropertyAction); menuMgr.add(openOutlineAction); menuMgr.add(new Separator("generate")); menuMgr.add(new Separator("additions")); viewer.setContextMenu(menuMgr); viewer.setKeyHandler(new GraphicalViewerKeyHandler(viewer).setParent(getCommonKeyHandler())); }