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     }

6.16 initial与configure(未完)

时间: 2024-10-01 04:43:42

6.16 initial与configure(未完)的相关文章

16年总结(未完待续)

1.从均值引发的中庸思想:万事最终都会随着一根线波动,这根线就是均值. 2.我中午1点10分休息结束会给大家放音乐(领导要求的),不能让大部分人喜欢没关系,但绝不能让小部分不开心,因为资源是大家的. 3.中国有句古话,有则改之无则加勉,有则改之不为过,我凭什么无则加勉. 4.那要看你是谁,最讨厌那种明明做了对不起你的事情还偏偏说我都是为你好,你在大马路上被个石头撞了,你还要说,石头谢谢你,你让我长长大了. 5.与其说一个人情商高,不如说是洞察力和天然的智慧,去思考理解自己和他人,学习发展出与人相

[daily][optimize] 去吃面 (python类型转换函数引申的性能优化)(未完待续)

前天,20161012,到望京面试.第四个职位,终于进了二面.好么,结果人力安排完了面试时间竟然没有通知我,也没有收到短信邀请.如果没有短信邀请门口的保安大哥是不让我进去大厦的.然后,我在11号接到了面试官直接打来的电话,问我为啥还没到,我说没人通知我我不知道呀.结果我就直接被他邀请去以访客的身份参加面试了.不知道人力的姑娘是不是认识我,且和我有仇,终于可以报复了... 然后,我终于如约到了,面试官带着我去前台登记.前台的妹子更萌...认为我是面试官,面试官是才是来面试的.我气质真的那么合吗?

编译安装MariaDB 未完待续

二进制格式 下载mariadb lftp 172.16.0.1:/pub/Sources/6.x86_64/mariadb>get mariadb-5.5.36-linux-x86_64.tar.gz 解压mariadb tar xvf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local 创建软链接 创建系统用户 创建mysql目录 初始化脚本 查看初始化后的脚本 创建配置文件脚本 复制配置文件脚本 复制服务类脚本 修改配置文件 datadir =

(?)企业部分之corosync【未完缺图】

需要一个纯净的虚拟机,需要重新编译内核:为了提高编译速度,4CPU,2048内存. 内核源码   linux-2.6.32-220.23.1.el6.x86_64 使用dvd.repo做yum源 所需软件包:kernel-2.6.32-220.23.1.el6.src.rpm  Lvs-fullnat-synproxy.tar.gz 解决依赖性:asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm slang-

jdbc14 及 jdbc16 共存所带来的问题【未完待续】

在JAVA中JDK版本与JDBC版本的一致性十分重要,开发都们常常会忽略了这一点导致很多不必要的错误.昨天给客户排查了一个关于EDB在JBoss中使用时关于这方面的问题,希望给大家一点启发. 系统环境: Red Hat Enterpirse Linux 6 JBoss Enterprise Application Server 6 EnterpriseDB Postgres Plus Advanced Server 9 Oracle JDK 1.6 问题症状: 在JBoss日志中间歇性地出现以下

一篇文章让Oracle程序猿学会MySql【未完待续】

一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方面和难度方面都比MySql要高一些,所以精通Oracle的DB在学习MySql的时候,没有必要从头到尾再去搞一遍,只需要掌握两者的用法区别即可.故本篇文章就针对Oracle和MySql的区别来把MySql的知识掌握住,在文章中,实例都是MySql环境下的实例,而Oracle可能知识一句话来概括,所以

Python核心编程(第二版) 第二章习题答案 未完待续

2-2.程序输出.阅读下面的Python脚本.#!/usr/bin/env python1 + 2 * 4(a)你认为这段脚本是用来做什么的?(b)你认为这段脚本会输出什么?(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果.(e)如何改进这个脚本,以便它能和你想象的一样工作?答:(a)这段脚本是用来计算表达式的值(b)脚本会输出9(c)保存为脚本,运行后没有输出.和自己预期不一样.

noip2016复赛模拟 未完(现在160分)

noip2016复赛 Day1 T1: 玩具谜题 题目描述 输入文件:toya.in   输出文件:toya.out 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉小南一个谜題: "眼镜藏在我左数第3个玩具小人的右数第1个玩具小人的左数第2个玩具小人那里. " 小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是

我的Java问题集(1)(重点、难点、疑点)未完待续...

学习Java这么久了,总算也了点笔记,一个一个字码的哟! 1.Java中的int等类型变量既然已经有默认值为0,为什么还会出现没有初始化,编译出错呢? 一个变量作为类成员使用的时候,如果没有被初始化,java会为其分配默认值: Boolean false Char '\u0000'(null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d 如果在一个方法中定义一个变量,java不会给其分配默认值,就必须我们来给他