RCP开发总结

总结的网址:

隐藏属性视图

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

你可能感兴趣的:(RCP开发总结)