• 2007-08-03

    我的RCP之旅(一) -- My First RCP - [技术]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://canyousee.blogbus.com/logs/7353445.html

    一直觉得RCP很好玩.特别是Europa发布后,可以看到Eclipse.orgRCP的重视.RCP大有可为啊.可前段时候比较忙,没时间研究这个,现在空了点,照着RCP的教程做了我的第一个RCP程序..嘿嘿

     

    1.         新建一个RCP工程(实际上就是一个plug-in工程啦).这个不用我说了吧.记得在Would you like to create a rich client application?上勾上勾.然后为了简单,可以选一个已存在的模板.来新建工程..我选了Hello world .

    2.         工程起来了,如果你选了模板,那直接run as a eclipse application就可以跑起来了.虽然只有简单的一个试图而已,但至少起来了么..hoho

    3.         接下来就是丰富这个RCP.我搞了个Designer 6.4.可视化编程就是爽.现在先介绍一下RCP最基本的构成.

    a)         Application:这个就是整个RCP的启动程序了,里面有public Object start(IApplicationContext context)方法和public void stop() 方法.用来启动和关闭RCP应用的.

    b)         Perspective:这个就是透视图了.透视图里可以包含视图和编辑器.每个RCP至少要有一个Perspective,不然没啥好显示了.

    c)         各类Advisor:最主要的有ApplicationActionBarAdvisor:用于定义菜单和工具条上的操作; ApplicationWorkbenchAdvisor:用户定义工作台默认的透视图.等工作台上的信息; ApplicationWorkbenchWindowAdvisor:主要定义窗口上的事件如最大化,关闭等等的操作;

    4.         有了以上的构成,就下去的基本上就是在Perspective里添加vieweditor来实现功能了.

    5.         实现了view.editor等等,别忘了实现他们的扩展点,不然RCP是不认识他们的.RCP主要是通过ID来找这些view什么的..plugin.xml中定义:

    a)         扩展一个application:

           <extension  id="application" point="org.eclipse.core.runtime.applications">

             <application> 

             <run class="com.rcp.test.Application"> </run> 

            </application> 

          </extension>

    b)         扩展一个Perspective:

         <extension point="org.eclipse.ui.perspectives"> 

           <perspective name="RCP Perspective" class="com.rcp.test.Perspective"  id="com.rcp.test.perspective">      </perspective>

         </extension>

    c)         扩展一个view:

         <extension point="org.eclipse.ui.views">

           <view class="com.rcp.test.view.BrowserView" id="com.rcp.test.view.BrowserView" name="Simple Browser">

        </view>

        </extension> 

    6.         Eclipse能跑起应用了,那怎么让他脱离Eclipse成为单独的应用呢.那就要product

    新建一个product文件.输入相关的信息,用导入向导一导…ok,一个应用出来了.

     

    收藏到:Del.icio.us




发表评论

您将收到博主的回复邮件
记住我