精华网络内容 :http://www.qqread.com/network/
Eclipse 组件样例本节我们给出一个由纯粹 Eclipse 组件构成的复合应用,其功能是将当前北京时间换算为世界其它时间,通过此样例,可以详细了解基于 Lotus Expeditor 客户端的复合应用的构建过程。
此样例由两个组件组成,com.ibm.rcp.samples.cityselection 是用户选取世界城市,并显示当前的北京时间(当前系统时间),另外一个组件 com.ibm.rcp.samples.citytime 是显示选中城市的当前当地时间。如图 3:
图 3. 实例界面:世界城市时间与北京时间换算
消息的触发是由 com.ibm.rcp.samples.cityselection 中,用户点击 Send 后,组件 com.ibm.rcp.samples.cityselection 通过 Property Broker 向组件 com.ibm.rcp.samples.citytime 广播所选择的城市名字,组件 com.ibm.rcp.samples.citytime 收到消息事件后,启动一个动作,以计算并显示当前该城市的当地时间。
消息动作及属性的定义
通过 Property Broker,我们可以声明组件的属性(property)、动作(action)以及线接(wire),以便当松散耦合的某个组件的数据发生变化时,与之线接的组件获得变化的数据并触发相应的动作。 Expeditor 的 Property Broker 提供了一套机制,仅仅通过配置即可将消息动作及属性进行定义,并自动注册到 Property Broker。这种做法的好处是,开发人员可以不必了解 Property Broker 的 API,甚至不必需要 Property Broker 的知识。
Expeditor 客户端 Property Broker 允许有不同类型的组件与之协同工作,当前 Expeditor 有三类动作处理程序:SWT_ACTION,PORTLET 和 AWT_ACTION,开发人员可以根据需求实现这三种动作的一种,Broker 通过动作类型将变化了的数据传递给相应的动作处理程序。
如果一个组件没有 UI 界面,可以通过 org.eclipse.core.commands.IHandler 接口来实现自己的动作,这时动作类型为 COMMAND。如果组件依赖于 Eclipse 的界面,如 SWT 视图,可以用 org.eclipse.core.commands.IHandler 接口来实现动作,并且是 SWT_ACTION 类型,也可以继承 org.eclipse.jface.action.Action 来实现动作。用 SWT_ACTION 类型的好处是当组件所在的透视图隐藏时,复合应用 XML 定义的线接(wire)就会失效。
下面我们讨论如何在组件 com.ibm.rcp.samples.cityselection 中创建一个动作。首先将插件依赖于com.ibm.rcp.propertybroker 和 com.ibm.rcp.propertybroker.swt, 然后创建一个 com.ibm.rcp.propertybroker.PropertyBrokerDefinitions 的扩展,这一扩展可自动注册动作以及对应的输入输出数据。Lotus Expeditor Toolkit 提供了一个工具为 Property Broker 定义模板,利用这一导航式工具,可定义出扩展、WSDL 文件及动作的 Java 类文件。在 Property Broker 定义的模板中,可选取模板 SWT Handler,如图 4:
在模板的导航页面中,可输入动作的包名,动作的处理 Java 类以及类型的命名空间(如图 5),并按 Finish 按钮。
生成器会自动生成类的代码和 WSDL 文件 wsdl\Sample.wsdl。我们需要将自动生成的 WSDL 文件进行重新命名以满足我们的命名规则,我们将文件名命名为 CityName.wsdl,与之关联的扩展点的细节也需相应的改变,如图 6:

图 6. PropertyBrokerDefinition 扩展点中 wsdl 文件的指定
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Wlan组网----家庭专题 (4206篇文章)
- 程序员如何保证代码正确 (3次浏览)
- 配置管理变更的关键路径 (1次浏览)
- 关于tomcat配置文件 (0次浏览)
- 构架SOA应用的10条原则 (0次浏览)
- 访IBM副总裁:飞向SOA (0次浏览)
- 发挥 Tomcat 在 Geronimo 中强大功能 (0次浏览)
- 处理OpenOffice.org基于XML的文档格式 (0次浏览)
- XFire:轻松简单地开发Web Services (0次浏览)
- Windows或开源:企业级OS之争趋势如何? (0次浏览)
- 浅析软件项目进度管理中的积习流弊 (0次浏览)






