RCP中showView方法的说明

来源:互联网 发布:浙江省网络图书馆账号 编辑:程序博客网 时间:2024/05/02 03:09

当我们需要显示一个视图时,一般是通过调用IWorkbenchWindow中的getActivePage().showView方法, 但我们有一个问题,就是一般在透视图中,可能由多个部分构成,那么,这个showView到底是要显示在哪里呢?所以我们需要先解决这个问题.

要解决在哪里进行显示,需要在透视图中进行设置,用到的是IFolderLayout中的addPlaceholder方法,示例代码如下:

IFolderLayout folder =layout.createFolder("messages", IPageLayout.BOTTOM, 0.5f,NavigationView.ID);

                   folder.addPlaceholder(View.ID+ ":*");

这样,当我们调用showView时,就会按这指定的View.ID,将其显示在folder在整个透视图中所占的位置了.

如果我们想在同一个地方允许多个不同的视图进行停靠的话,则继续通过addPlaceholder方法进行设置就行了,示例代码如下:

IFolderLayout folder =layout.createFolder("messages", IPageLayout.BOTTOM, 0.5f,NavigationView.ID);

                   folder.addPlaceholder(View.ID+ ":*");

                   folder.addView(View.ID);

                   folder.addPlaceholder(ViewPart1.ID+ ":*");

Perspective中addPlaceholder的作用表示预留一个视图空间,该方法添加的视图不会显示在界面上,但是当通过操作打开该设定的

视图时,将会在该设定的位置打开,而不是随意打开该视图。简单的说就是为指定的视图预留

一个空间,一旦视图打开就在该空间显示。

只是占个位,以便于同样的视图ID的查找用。

另外,如果允许多个相同的视图进行停靠的话,则需要将对应的视图中的allowMultiple设置为true即可.

 

 

 


原创粉丝点击