快速业务通道

使用Eclipse BIRT扩展点:聚合 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
plates 页面上,清除 Create a plug-in using one of the templates 复选框,然后单击 Finish。如 果现在还未处于 Plug-In 开发透视图中,系统将提示您打开它。

设置扩展点

创建好新项目之后,就可以设置扩展点了。为此,执行以下操作:

在打开的清单窗口中,单击 Extensions 选项卡,然后单击 Add。

在 Extension Point Selection 窗口中(如图 2 所示),清除 Show only extension points from the required plug-ins 复选框。

图 2. 创建新扩展

在 Extension Point filter 字段中,键入 org.eclipse.birt.data。将会出 现聚合扩展点。当添加此扩展点时,系统将提示您添加依赖关系。

使用Eclipse BIRT扩展点:聚合(3)

时间:2011-09-04 IBM John Ward

创建必要的聚合类

现在您已经添加了聚合扩展点,接下来需要添加一个新 AggregationFactory 。为此,右键单击刚才添加的聚合扩展点,指向 New,然后单击 AggregationFactory,如图 3 所示。注意,您并未添加聚合,聚合是以前的扩展 方法,这种方法现在已被淘汰。AggregationFactory 是此插件的主要入口点,负 责注册可用的聚合类型,并在运行时创建这些聚合的实例。

图 3. 创建新 AggregationFactory

添加了工厂的定义之后,您将获得一个文本项,其中包含工厂的完全限定包和 类名。从图 4 可以看到,该工厂名为 com.digiassn.blogspot.birt.aggregators.wordcount.WordCountFactory。请记 住,此工厂可以注册和创建多个聚合类型,但这需要在代码体中操作。在 Extension Element Details 区域,键入或浏览到工厂类的名称,然后单击文本 框旁边的 class 超链接。

图 4. 创建新工厂类

使用Eclipse BIRT扩展点:聚合(4)

时间:2011-09-04 IBM John Ward

New Java Class 向导已经拥有了合适的包和类信息。确认 Java Class 页面 上的设置(如图 5 所示),然后单击 Finish。

图 5. 工厂类属性

打开类的源代码,如图 6 所示。如果无法找到 org.eclipse.birt.* imports ,请返回并保存清单窗口中的更改。请记住,您需要为类添加必要的继承抽象方 法。

图 6. 工厂类框架

使用Eclipse BIRT扩展点:聚合(5)

时间:2011-09-04 IBM John Ward

您的类包含 3 个函数:一个构造函数、一个 getAggregations() 方法(返回 一个 IAggrFunction),以及一个 getAggregations() 方法(返回一个列表)。 getAggregations() 方法向调用者返回一个 IAggrFunction 类型列表,使调用者 知道此工厂可以生成的各个聚合的类型。调用者负责在列表上进行迭代,并调用 IAggrFunctions 方法来获得描述。对于我们创建的工厂,我们不关心这些描述, 工厂将负责返回和维护此列表。

向 getAggregation() 方法传入聚合的名称。该方法获取一个名称并提供一个 IAggrFunction 结果,清单 1 显示了示例工厂。

清单 1. 完成之后的工厂类

public class WordCountFactory implements  IAggregationFactory {   HashMap<String, IAggrFunction> aggregateMap;   public WordCountFactory() {   aggregateMap = new HashMap<String, IAggrFunction> ();   BasicWordcount wordCountAggregation = new BasicWordcount ();   aggregateMap.put(wordCountAggregation.getName(),  wordCountAggregation);   }   public IAggrFunction getAggregation(String aggregationName)  {   return aggregateMap.get(aggregationName);   }   public List getAggregations() {   return new ArrayList<IAggrFunction>(aggregateMap.values ());   } }

创建单独的聚合描述类

接下来,在 src 文件夹中创建一个新包,将其命

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号