java rcp教程_Eclipse RCP教程 - 13 - 练习:创建Eclipse RCP程序 | JavaFX中文资料

Eclipse RCP教程 – 13 – 练习:创建Eclipse RCP程序

13. 练习:创建Eclipse RCP程序

13.1 创建Eclipse插件

在接下来的练习中,你将会创建一个标准的Eclipse插件。下一步会将该Eclipse插件转化为一个Eclipse RCP程序。

在下面的描述中将该“插件”称为“应用程序插件”,因为该插件将会包含主要的程序逻辑。

13.1.1 创建插件工程

在Eclipse中选择菜单File->New->Other…->Plug-in Development->Plug-in Project。

c55c309592546c20a6f98295f8156ad7.png

在Project Name处填写插件名称为com.example.e4.rcp.todo,然后点击Next按钮。

956e493e3cb652dd2ab047706a0811a8.png

在下一个向导页面中进行如下设置:在提示“Would you like to create a rich client application?”处选择“No”选项。取消“This plug-in will make contributions to the UI”选项的勾选。取消“Generate an activator, a Java class that controls the plug-in’s life cycle”选项的勾选。

51ed778938d0b725fff12b1457821c74.png

点击Finish按钮。如果你点击了Next按钮,该向导将会向你展示一个模板选择页面,你可以不进行选择并跳过该页面。

13.1.2 验证结果

打开工程并确定src文件夹下没有生成Java类。

在manifest编辑器中切换到Dependencies选项卡并确定没有任何条目。

13.2 从插件转为Eclipse4应用程序

在本章中你会将生成的插件转化为Eclipse RCP应用程序。

13.2.1 创建基于产品配置文件的工程

创建一个名为com.example.e4.rcp.todo.product的工程,依次选择菜单File->New->Others…->General->Project。

cf3ee377c88fc3f8ffc110c62d353abc.png

输入工程名称,点击Finish。

8a149b24fd8361bd56d5de81de92db93.png

13.2.2 创建产品配置文件

在创建好的工程好点击鼠标右键,选择菜单File->New->Others…->Plug-in Development->Product Configuration。

3270bcf6c028f22372c728e729050cd9.png

在com.example.e4.rcp.todo.product文件夹下创建一个名为todo.product的产品配置文件。

007a31af195c1c727058c864bfadfeca.png

点击Finish按钮。将会创建并在编辑器中打开该文件。

点击产品编辑器Overvidw选项卡上的New…按钮。

5ad3da6f9e8eb701eacd60d25eef8302.png

在Product Name处输入to-do,在Defining Plug-in处填写你的插件,在Product ID处填写product,在Application下拉列表处选择org.eclipse.e4.ui.workbench.swt.E4Application。

fad3ab6a28c39c21f3ab35ee681f8de5.png

13.2.3 配置启动级别

在产品编辑器中切换到Configuration选项卡,点击Add Recommended…按钮。这些设置是使用Maven/Tycho构建系统的样例,因此配置这些是一个很好的实践。

0debecd42e86f356c74ae0f95194b19e.png

13.2.4 创建一个feature工程

通过菜单File->New->Other…->Plug-in Development->Feature Project来创建一个新的feature工程,命名为com.example.e4.rcp.todo.feature。

你可以在第一个向导页就点击Finish按钮。

9bb31af36a6cff7065c18a35d0ddc775.png

然后选择feature.xml文件的编辑器中选择Included Plug-ins选项卡。点击Add…按钮来将com.example.e4.rcp.todo插件引入本feature。

8b45cfeba1fee809fde7fdd33f61a050.png

确保是在Included Plug-ins选项卡中添加插件,不要在Dependencies选项卡中。

13.2.5 将feature作为内容加入到产品中

打开todo.product产品文件,修改产品配置文件为使用feature。

此操作需要在产品编辑器的Overview选项卡中选择features选项。

cce32cbedc95a957956420c97128541f.png

选择Contents选项卡,使用Add…按钮添加如下features。

· example.e4.rcp.todo.feature

· eclipse.e4.rcp

· eclipse.emf.ecore

· eclipse.emf.common

ad8774d04f2118a93cd824cbd397245e.png

如果你不能添加列表中的features到你的产品中,请确定你已将产品修改为基于features。

13.2.6 移除产品中features的版本依赖

为了避免features的不同版本导致的问题,你可以从产品中删除版本号。你可以通过点击产品配置编辑器里的Contents选项卡中的Properties…按钮来完成该操作。

e9e4907dff3c1cb8fcc88bded1d69fda.png

772e7e63fa1cd0cfd6cb449f65956089.png

移除所有features的版本依赖,操作结果看起来跟下面的截图类似。

8bc88a87e7d12ec7a7589495896fd0df.png

13.2.7 创建应用程序模型

现在在com.example.e4.rcp.todo插件中创建一个应用程序模型文件。选择File->New->Other->Eclipse 4->Model->New Application Model来打开向导对话框。

9e17a8c43542b5eb1632312a26d5ddc2.png

输入你的com.example.e4.rcp.todo插件作为容器,并使用向导所建议的文件名。

cffa20802ecc478b808fdeb2b3d2404d.png

点击Finish按钮,将会在com.example.e4.rcp.todo插件中新建一个Application.e4xmi文件并打开之。

13.2.8 给应用程序模型增加一个窗口

给应用程序模型添加一个窗口,因此你就会有一个可视化的组件。

在Windows and Dialogs节点上单击右键,像下面的截图中一样选择Trimmed Window选项。

cb14c2507b4019be497cec075ed9d48e.png

根据下面的截图输入一个以taskmanager为后缀的ID,窗口的位置、大小和一个Label。

059b7c62f2ce256a969204ec8a642017.png

13.2.9 确保在启动时删除持久化的用户界面状态

如果你启动和关闭应用程序,应用程序的最后状态会被框架持久化,并在下次启动此应用程序时恢复。这在开发期间是不期望的,因为应当使用来自应用模型文件的最新状态。为确保始终使用应用程序模型的最新版本,请将-clearPersistedState参数添加到产品配置文件中。

以下屏幕截图显示了产品配置文件中的此设置。

ccef73585c2e010b792c50f452af1aa9.png

确保您使用了 – 符号,并且参数输入正确。 该参数必须为:-clearPersistedState

13.2.10 启动程序

打开产品文件并选择Overview选项卡。 点击Testing部分中的“Launch an Eclipse application”超链接。

db0a4fa6f48fdf1e7e3c0f8faa6bb7d8.png

确认你的应用程序正常启动了。 你应该看到一个空的窗口,可以对它进行移动、调整大小、最小化、最大化和关闭操作。

13.3 定义UI模型

在本部分练习中,您将创建基本的应用程序用户界面。 在本练习结束时,您的用户界面应类似于以下屏幕截图。

ca67d3581ff27e95cabe801693d36903.png

13.3.1 打开Application.e4xmi 文件

在Eclipse 4 model editor中双击Application.e4xmi文件,或者从右键菜单中选择Open With->Eclipse 4 model editor菜单,打开Application.e4xmi file文件。

13.3.2 添加part sash和part stack容器

选择window下的Controls,添加一个Part Sash Container元素。

3d76bb50f7a1cb5592b6859c32290900.png

将其Orientation属性更改为Horizontal,并在ID字段中输入com.example.e4.rcp.todo.partsashcontainer.main。

39d6e8a680bab22189667a8f6c69f4ad.png

添加一个Part Stack,作为你的Part Sash 容器的第一个子元素。

重新选择part sash 父容器,然后再添加一个Part Sash Container元素,给这个容器元素再添加两个Stack。

修改完毕以后,你的程序模型看起来应该与下图类似。

64baf0025dfee4491da79cd4e77d4d88.png

13.3.3 创建Part

给每个Stack添加一个Part。使用下面表格中的ID和Label。

先输入name,如果label为空,ID会随name调整。

表3 Parts的Label和ID

ID后缀

Label

com.example.e4.rcp.todo.part.todooverview

Overview

com.example.e4.rcp.todo.part.tododetails

Details

com.example.e4.rcp.todo.part.playground

Playground

你的应用程序模型的最终结构应该与下面的截图类似。该截图还显示了应用程序模型编辑器中的详细信息面板中Overview Part的详细数据。

5777d522833c2fa7b602eb858b416f55.png

13.3.4 检查UI

启动你的产品并检查UI是否按计划显示。如果有必要就重新调整模型元素。模型编辑器支持通过拖拽操作来进行重新布局。

请注意,即便到现在你还没有创建任何Java类,但你已经看到了结构。

13.4 引入依赖项

为了在你的插件代码中使用其它插件(它的API),你需要在MANIFEST.MF文件中进行声明。在本部分练习中,你将会学到处理API依赖。

13.4.1 添加插件依赖

在你的新插件的源代码中,将会使用到其它Eclipse插件中的API。Eclipse编程模型需要你在新插件中定义对这些插件或者包(package)的依赖。

为了叙述方便,下文将com.example.e4.rcp.todo插件简称为应用程序插件(application plug-in)。

打开应用程序插件的META-INF/MANIFEST.MF文件,选择Dependencies选项卡。使用Required Plug-ins部分的Add…按钮,将以下插件添加为依赖项。

· eclipse.core.runtime

· eclipse.swt

· eclipse.e4.core.di

· eclipse.e4.ui.workbench

· eclipse.e4.ui.di

· eclipse.e4.core.di.extensions

13.4.2 检查

你的操作结果应该与下面的截图类似。

3ed2a95de1fe33380b49b2a999f720c7.png

13.5 关联Part与Java类

13.5.1创建一个新包和若干Java类

在应用程序插件中创建com.example.e4.rcp.todo.parts包。

在这个包中创建3个Java类,名为TodoOverviewPart、TodoDetailsPart和PalygroundPart。这些类都不需要继承任何类或者实现任何接口。

你也可以通过在模型编辑器中点击detail pane里的 Class URI 超链接来创建Java类。这样也会将创建的类与模型对象联系起来。如果你这样做了,那就可以跳过下面的“关联你的Part和Java类”步骤。

下面的代码显示了TodoDetailsPart类。

Java

package com.example.e4.rcp.todo.parts;

public class TodoDetailsPart {

}

1

2

3

4

5

packagecom.example.e4.rcp.todo.parts;

publicclassTodoDetailsPart{

}

13.5.2关联你的Part和Java类

打开Application.e4xmi文件并将Java类与相应的Part模型元素关联起来。你通过Part模型元素的Class URI 属性来完成此操作。

Eclipse4模型编辑器允许你通过Find…按钮来搜索已存在的类。Contribution Classes的初始列表是空的,在Class Name字段处输入内容就会看到相关结果。

50de38d4a3a9f8df3875fd919df95b83.png

下面的表格列出了哪些元素需要被关联起来。

表4 Java类与Part 模型元素的映射

类名

Part ID后缀

TodoOverviewPart

*.todooverview

TodoDetailsPart

*.tododetails

PlaygroundPart

*.playground

下面的截图展示了Overview Part的结果。

6578bb6c72ec33456b6c5cae66c8a829.png

13.5.3 校验

启动你的应用程序。它应该会启动,但在UI上你将看不出任何区别。

为了验证Eclipse运行时已经创建了若干模型对象,可以为其中的某个类创建一个无参构造方法,并在其中加入一句System.out.println()语句。以此来验证在程序启动时该构造方法是否被调用了。

打赏一下

支付宝

微信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值