首页 > 代码库 > 6.16 initial与configure(未完)
6.16 initial与configure(未完)
1 protected void initializeGraphicalViewer() { 2 // TODO Auto-generated method stub 3 4 viewer.setContents(diagram);(2) 5 //添加资源监听器 6 resourceChangeListener = new ResourceChangeListener(this); 7 ResourcesPlugin.getWorkspace().addResourceChangeListener( 8 resourceChangeListener); 9 //添加editorpart监听器10 editorListener = new EditorPartListener(this);11 getSite().getWorkbenchWindow().getPartService().addPartListener(12 editorListener);13 //添加拖曳监听器14 viewer.addDropTargetListener(new EditorDropListener());15 16 }
所以初始化中就是把需要的listener添加进去么?
ps:有关(1)(2)的作用:下面就要在 DiagramEditor 中创建 Viewer 了,用来显示 HelloEditorPart 中绘制的图形的。我们这里创建的是一个 GraphicalViewer。在 GraphicalViewer 通过其 initializeGraphicalViewer()函数接收到内容前,我们要先配置一下 GraphicalViewer。而 configureGraphicalViewer()函数中是配置 GraphicalViewer的好地方。配置 GraphicalViewer 包括为 DiagramEditor 选择合适的 RootEditPart(决定了 editor 的工作区,例如 GEF 包括可缩放 zoomable 和可卷动 scrollable 的工作区,以后会谈到)和 EditPartFactory(我们例子中就是 PartFactory)。我们可以看到配置 GraphicalViewer 就是把模型和控制器在视图 GraphicalViewer 中连接起来。配 置 好 GraphicalViewer 后 , 我 们 就 可 以 设 置 GraphicalViewer 中 显 示 的 内 容 了 , 就 是 在initializeGraphicalViewer()中用 setContents()函数。
1 protected void configureGraphicalViewer() { 2 super.configureGraphicalViewer(); 3 4 viewer = getGraphicalViewer(); 5 ScalableRootEditPart rootEditPart = new ScalableRootEditPart(); 6 viewer.setRootEditPart(rootEditPart);(1) 7 8 ZoomManager zoomManager = rootEditPart.getZoomManager(); 9 IAction action = new ZoomInAction(zoomManager);10 getActionRegistry().registerAction(action);11 action = new ZoomOutAction(zoomManager);12 getActionRegistry().registerAction(action);13 14 viewer.setEditPartFactory(new GraphicalPartFactory());(1)15 16 ContextMenuProvider provider = new DiagramContextMenuProvider(viewer,17 getActionRegistry());18 viewer.setContextMenu(provider);19 getSite().registerContextMenu(provider, viewer);20 21 KeyHandler keyHandler = new KeyHandler();22 keyHandler.put(KeyStroke.getPressed(SWT.DEL, 127, 0),23 getActionRegistry().getAction(ActionFactory.DELETE.getId()));24 getGraphicalViewer().setKeyHandler(25 new GraphicalViewerKeyHandler(getGraphicalViewer())26 .setParent(keyHandler));27 28 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。