RCP编程:MySql 简易UI

注:本博客代码由网友提供,部分技术细节参考其他网友博客。本文主要做代码分析和技术总结!!!谢谢

1  Eclipse RCP介绍:

富客户端提供给用户高质量的用户体验,能让界面元素更加丰富,用户更容易操作,使应用程序的设计贴近用户,并且,由于富客户端采用了本地接口的调用,而不同于基于Web浏览器的网上作业,也让富客户端的处理速度比起B/S结构的应用速度快。好的富客户端,提供了例如拖拽操作、系统剪切板、导航、用户自定义等UIs元素,让程序的用户界面(UIs)更为人性化。

工具与 Eclipse 无缝集成的关键是插件。除了小型的运行时内核之外,Eclipse 中的所有东西都是插件。从这个角度来讲,所有功能部件都是以同等的方式创建的。从这个角度来讲,所有功能部件都是以同等的方式创建的。Eclipse扩展点顾名思义就是开发者可以对原程序进行功能和界面扩展的地方。扩展点接入的实际上不是代码,而是对接入代码的描述。通过扩展点接入的声明,可以告诉Eclipse平台,使用什么功能的时候调用什么类,新的插件提供了哪些功能,或者扩展了原有的哪些功能等。从这个意义上将,扩展点本质上是配置信息。RCP中强调的是尽量的少写代码。特别是界面这块,因此,大部分的界面相关的东西都是可以通过扩展点实现的。

2.Plugin XML

在plugin.xml中一共有四个主要的标签:plugin,requires,runtime,extension。其中plugin标签的属性提供的是我们要开发的Welcome插件的基本信息,除了name,version,provider-name等,最重要的是id,它要求不能和现有的Eclipse插件id有冲突,因此我们用包名作为插件的id。requires标签中所列出的是需要的插件,这里我们要用到EclipseWorkbench和SWT API,因此导入了org.eclipse.ui插件。runtime标签指明的是我们开发的插件所在JAR包的文件名。extension标签是插件扩展点的信息。extension中还包括category和view两个标签,在后续的启动Welcome插件步骤中,我们就会知道这两个标签的含义。要注意的是category和view标签的id的唯一性,并且在view的属性中声明了Welcome插件的类名。

 

Extension points:声明该插件给平台增加的功能点


plugin.xml的配置文件:该文件是描述该插件项目具体扩展了哪些Eclipse的扩展点

 

创建该扩展点,添加欢迎界面。

 

创建views扩展点。View也称为ViewPart。1实现类:com.java.db.views.ConnectManagerView,显示数据库树形图。2实现类:com.java.db.views.QueryResultView,显示查询结果。Icon为显示的图标。

 

创建action扩展点。

 

3Eclipse Platform实现类

 

1. Application类: 是RCP应用程序的入口点,它所做的就是创建 一个工作台Workbench,同时将其于一个 WorkbenchAdvisor联系起来。

 

2. ApplicationWorkbenchAdvisor类:继承了WorkbenchAdvisor类,提供了两个方法,其中createWorkbenchWindowAdvisor方法将创建窗口的工作交给了ApplicationWorkbenchWindowAdvisor类。

 

3. WorkbenchAdvisor类: 该类不是一个接口,而是一个抽象类,它不包含任何的功能实现,因为将来很有可能在其中添加其它方法。Eclipse的设计者们希望每个RCP应用都实现 它,由平台来调用。

 

4. ApplicationWorkbenchWindowAdvisor类:用来控制状态栏,工具栏,标题和窗口的大小等。但它将创建工具栏的任务交给了ApplicationActionBarAdvisor类。


5.ApplicationActionBarAdvisor类:继承了ActionBarAdvisor类。注册button,加入action。例如,点击工具,就会进入openConnectView类。

 

7. Activator类:是一个单例类,用来存储插件的全局信息,也可以有一些其他类会用到的实用方法。

 

Workbench Window包含了主菜单(Menu Bar),工具条(Tool Bar),状态条(Status Bar)和一个页面Page。这些都是典型的GUI程序锁必备的。


4.系统界面

 

初始界面:

 

  

点击“文件”,弹出建立链接。该界面由NewConnectDialog类实现;

 

连接数据库成功,显示view。ConnectManagerView继承于 ViewPart


右击“mySql”弹出菜单。


在xml处的声明:扩展点为popupMenus, 通过 popupMenus 方式创建的菜单,可以通过objectContribution 的 visibility 和 enablement来设置该 objectContribution 下的 action 的显示 / 隐藏和启用 / 禁用,我们也可以设置 action 的 enablement 来控制该菜单的启用 / 禁用。

1.objectClass="" 此节点主要指定此菜单在哪些对象右击com.java.db.model.ConnectModel对象时弹出菜单。

2.<separatorname="conf"> </separator> 此节点主要设置两个菜单中分隔的那根线,当2个separator的name属性不同时,显示的时候会有一根横线分隔。

3.menubarPath="" 此节点主要指定此菜单是哪个菜单的子菜单

易知,“新建连接”由扩展xml实现,其余菜单项用代码实现(ConnActionGroup

 

 

 

该处由XML实现:

其中画长方形部分实现的是“文件”下面的按钮,圆形部分则是声明一个菜单。



方框内button创建和定义由代码实现:


由图可知,ApplicationActionBarAdvisor类定义和实现了“工具”“窗口”“帮助”button,“文件”没有实现。

 

 

该部分由XML实现,


XML代码如下:


扩展点为*.views,具体实现类是:com.java.db.views.ConnectManagerView。

 

实验总结

       经过本次实验,我基本了解了eclipse插件开发。根据我的学习,插件开发本质上是利用Eclipse平台,利用提供的扩展点实现插件的自定义。因为平台与插件之间用插口链接,所以插件的稳定性不会影响平台的稳定性。Eclipse平台提供了功能强大的扩展点,所以程序员可以充分利用简易的配置文件XML实现丰富界面功能。但是对于某些自定义界面和后台模块(比如数据库连接)仍需要java类实现。总之,利用eclipse插件开发某些丰富界面程序,可以快捷迅速实现且代码量较少。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值