2014年8月8日

  上次讲了一些概念性的东西,想想还是别做这种教程类东西了,毕竟自己也是学得很一般,网上好的教程也是一大堆,还是写着自己稳固知识了,这次就直接按插件点开始往下说吧。

  

先创建一个RCP程序,想了半天还是从RCP开始讲了,好处是干净,不会和eclipse的功能混在一起,那样看着也比较累。

模板的话直接就选email的模板了,可以看出这个模板使用了这些插件拓展点:

org.eclipse.core.runtime.application

org.eclipse.core.runtime.products

org.eclipse.ui.commands

org.eclipse.ui.perspectives

org.eclipse.ui.views

先不管这些,我们先运行起来看效果:

双击项目根目录中的plugin.xml,在overview的标签页中右侧部分Test部分中点击Launch an Eclipse application或者下面的Launch an Eclipse application in Debug mode.

运行起来界面如下,然后和之前的那些扩展点对应起来,是以下的关系:

org.eclipse.core.runtime.application

这个拓展点就是规定了这个rcp程序的入口,也就是上篇文章中提到的,实现

  • org.eclipse.equinox.application.IApplication 这个接口的类。

org.eclipse.core.runtime.products

这个拓展点的作用是把你做的RCP程序产品化,包括启动图标、程序图标、关于等一系列产品化的东西都在这定义。

org.eclipse.ui.commands

这个拓展点可以用在menu、toolbar等按钮操作上,以前menu通常都是用actionsets这个扩展点去做,不过现在eclipse官方推荐command,因为它的定义和实现(handlers)完全分离,而且可以把定义好的command放到任意想放到的位置去,很方便。

org.eclipse.ui.perspectives

这个拓展点定义了透视图,就是整个程序的“视窗展示”,它可以规定编辑区域(editorarea)、视图(view)的位置,我们平时用的eclipse,右上角的open perspective就是透视图,不同的透视图显示不同的界面布局,方便用户去使用。

org.eclipse.ui.views

这个拓展点定义了视图,我们看到的可以拖动、最大化最小化的部分(当然也可以设置不可动),除了中部的编辑区域的编辑器,都是视图。

这样看来,一个简单的RCP程序基本上都有以下几个部分组成:

1、透视图:规定程序的布局

2、菜单:规定菜单选项

3、工具条:规定各种工具按钮及其功能

4、视图:展示各种各样的内容

5、编辑器(很可惜以上的例子中没有,不过以后慢慢就讲到了):用来编辑数据。

还有产品风格化、首选项等等一系列的“功能组件”组成。

之后会一个个拓展点细细的回顾一下使用方法及注意事项,今天先写到这了。

2014年8月8日

时间: 2024-10-12 16:52:38

2014年8月8日的相关文章

2014年4月23日 10:22:08

step 1 : 做tcp网络编程,要解析一批批的数据,可是数据是通过Socket连接的InputStream一次次读取的,读取到的不是需要转换的对象,而是要直接根据字节流和协议来生成自己的数据对象. 按照之前的编程思维,总是请求然后响应,当然Socket也是请求和响应,不过与单纯的请求响应是不同的. 这里Socket连接往往是要保持住的,也就是长连接,然后设置一个缓冲区,网络流不断的追加到缓冲区.然后后台去解析缓冲区的字节流. http://cuisuqiang.iteye.com/blog/

2014年6月6日22:35:21

sln:使用解决方案文件(后缀为sln的文件)表示一个项目组,他通常包含一个解决方案中所有的项目信息.一个sln文件通常由三部分组成:1. 文件版本.2. 工程信息.3. 全局设置. csproj:它是"C Sharp Project"的缩写...net 开发环境中建立项目时,会产生 .csproj 文件,这是C#的项目文件,其中记录了与项目有关的相关信息,例如包含的文件,程序的版本,所生成的文件的类型和位置的信息等. 1 //换行.看起来是两个,其实\和后面的是一体的 2 char

字符串2014年6月7日15:56:54

商业银行 具有创造活期存款的垄断经营特权,并主要发放工商业贷款的金融中介机构 混业经营 银行业.证券业和保险业的相互渗透与一体化经营 分业经营 银行业.证券业和保险业的业务严格分开,禁止业务交叉,彼此的资金不许相互融通 商业银行的流动性 商业银行满足存款人提取现金.支付到期债务和借款人正常贷款需求的能力 现金头寸 现金资产是指现金与现金等值的可随时变现流动性资产 贷款承诺 为借款人提供一定的贷款额度,在承诺期间借款人有权在任何时间使用这笔贷款 贷款出售 商业银行在贷款形成之后,将贷款债权出售给第

2014年4月28日 乱侃人际关系,反思学习方式

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

微信公众号智能绑定功能实现(2014年10月24日 更新)

微信公众号智能绑定功能实现(2014年10月24日 更新) 继微信企业号公布后,腾讯改动了公众号的接入方式,在之前的基础上加入了2个表单,之前版本号的智能绑定失效了! 在文章 微信公众号之智能绑定实现初始版本号  的基础上改动,新增腾讯这次添加的表单,本次新增的表单有: encoding_aeskey :EncodingAESKey(消息加解密密钥.长度43位!) callback_encrypt_mode: 消息加解密方式(0:明文模式.1:兼容模式.3:安全模式(推荐)) operation

从头到尾彻底理解KMP(2014年8月22日版)

从头到尾彻底理解KMP 作者:July 时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进. 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱.所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文. 然近期因在北京开了个算法班,专门讲解数据结构.面试.算法,才再次仔细回顾了这个KMP,在综合了一些网友的理解.以及跟我一起讲算法的两位讲师朋友曹博

【每日圣经日历】2014年9月30日

Mardi le 30 Septembre 2014 礼拜二 2014年9月30日 Ainsi en est-il de la résurrection des morts. Le corps est semé corruptible; il ressuscite incorruptible;il est semé méprisable, il ressuscite glorieux; il est semé infirme, il ressuscite plein de force.    

【每日圣经日历】2014年10月1日

Mercredi le 1 Octobre 2014 礼拜三 2014年10月1日 Car il viendra un temps où les hommes ne supporteront pas la saine doctrine; mais, ayant la démangeaison d'entendre des choses agréables, ils se donneront une foule de docteurs selon leurs propres désires, dé

2014年8月17日

这周我们在后半周,学习了SASS LESS和Jquery 学习了jquery之后才发现他的强大之处,可以将我们之前使用JS时候,多行代码缩短至几行代码,并且不用考虑兼容性问题,IE  谷歌等浏览器都可以支持, 可是可能是由于新接触jquery,对于jquery还不能熟练的掌握,需要慢慢练习才能熟能生巧. 还有就是自己代码命名和排列太随意了,这个以后要改正,命名不能随意,太随意容易让自己和别人在阅读代码时候,有些不明白代码的含义. 2014年8月17日,布布扣,bubuko.com

2014年5月27日中国大陆封锁Google事件解决的方法

2014年5月27日中国大陆封锁Google事件指自2014年5月27日后,Google公司的各项服务遭到疑似来自防火长城的恶意干扰,导致中国大陆地区的用户无法正常使用其服务的事件.自当天起,来自中国大陆的用户发现Google旗下的各个分站以及Google的其它服务(Google Play.Gmail.Google Docs等)均无法正常訪问与使用,甚至无法登陆Google账户.谷歌中国旗下的谷歌地图.谷歌翻译依然能够使用,但部分地区仍有连接被重置.连接超时等情况 最新谷歌镜像git网址:htt