欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RCP开发总结

程序员文章站 2022-06-14 15:00:42
...

总结的网址:

隐藏属性视图

http://www.blogjava.net/sdyjmc/archive/2009/08/03/289555.html

 

继承PageBookView实现自己的“属性视图”

http://www.cnblogs.com/bjzhanghao/archive/2007/07/23/828850.html

 

PageBookView的使用

 

一般Eclipse应用程序在提供一个Editor的同时还提供一些View,这些View监视Editor的activate状态,提供一些上下文相关的信息。当多个editor需要在同一个试图里面显示自己需要的数据时,可以考虑让该view继承PageBookView。

PageBookView它就像一本书,里面可以容纳多个Page,但同一时间只给用户显示一个Page。PageBookView负责根据当前活动的WorkbenchPart切换到合适的Page,实际显示的内容主要由Page提供,这些Page一般是通过WorkbenchPart的getAdapter()方法提供的(实际运用中WorkbenchPart多为一些IEditPart,即一些editor)。如果你的View与WorkbenchPart里的Selection有关(即在PageBookView的isImportant(IWorkbenchPart)方法里面被识别),则继承PageBookView的时候应顺便实现ISelectionListener,然后在init()方法里注册自己为WorkbenchPage的选择监听器,并在selectionChanged()方法里把事件转发给当前显示的Page,相关的代码为:

 public void setSelection(ISelection selection) {
    getSelectionProvider().setSelection(selection);
}

对于”getSelectionProvider()” eclipse原代码里面有解释 :

PageBookViews provide an IPageSite for each of their pages. This site is supplied during the page’s initialization.

The page may supply a selection provider for this site. PageBookViews deal with these selection providers in a similar way to a workbench page’s SelectionService. When a page is made visible, if its site has a selection provider, then changes in the selection are listened for and the current selection is obtained and fired as a selection change event. Selection changes are no longer listened for when a page is made invisible.

另外,察看PageBookViews的源码我们发现,他里面有一个PageBook属性,该属性掌控PageBookViews的操作大权。有时我们会遇到这种情况,项目有很多种类的editor,他们都需要某一个view提供不同的数据,此时这个view已经是PageBookViews的实现类了,而某一种editor是FormEditor的子类(FormEditor里可以添加多个IEditorPart作为其子编辑器),并且该editor里面每个子页也需要那个view给出不同的显示。及达到Book里面又有Book的功能。此时我们就可以让该FormEditor的getAdapter()方法返回的page里添加一个PageBook的属性,然后仿照PageBookViews的做法实现该FormEditor的需求。

 

点击工具栏的“邮箱”---“属性”。在里面有一个“邮箱路径”,把这个文件夹全部复制下来,在新电脑上安装FOXMAIL,然后把内容全部复制进去即可。

 

http://topic.csdn.net/t/20050921/00/4283090.html