在RCP中,view是张贴于perspective之上的。传统的方式是直接在perspective的createInitialLayout方法中按照类似如下的方式添加view并设置布局:
但是,这样的配置把view就写死在了该perspective上了。我们可以通过perspectiveExtensions扩展点来进行配置。
假设现在我又两个view 分别是:
com.client.cki.selectedPsrInfoView和
com.client.cki.selectedFltInfoView
那么,如何将这两个view通过perspectiveExtensions的方式配置到指定的某个perspective上呢?看看下面这段plugin.xml的配置文件:
将该段代码拷贝至plugin.xml中,就可以完成配置了。
此时,perspective中就的createInitialLayout方法就非常简单了,基本上什么都不用写。
是不是很简单呢?运行一下,看一下效果吧,perspective中有两个view,两个view在一个tabfolder中,其中前一个是selectedPsrInfoView后一个是selectedFltInfoView。
当然,所有的这些配置都可以在eclipse中plugin.xml的图形化界面完成。看完了这个配置文件,我相信图形化界面大家都会做了。
希望对没有采用perspectiveExtensions配置过的人能有所帮助。
- public void createInitialLayout(IPageLayout layout) {
- String editorArea = layout.getEditorArea();
- layout.setEditorAreaVisible(false);
- layout.addView(SelectedPsrInfoView.ID, IPageLayout.LEFT, IPageLayout.RATIO_MAX, IPageLayout.ID_EDITOR_AREA);
- }
但是,这样的配置把view就写死在了该perspective上了。我们可以通过perspectiveExtensions扩展点来进行配置。
假设现在我又两个view 分别是:
com.client.cki.selectedPsrInfoView和
com.client.cki.selectedFltInfoView
那么,如何将这两个view通过perspectiveExtensions的方式配置到指定的某个perspective上呢?看看下面这段plugin.xml的配置文件:
- <extension
- point="org.eclipse.ui.perspectiveExtensions">
- <perspectiveExtension
- targetID="com.client.cki.perspective">
- <!-- 指定两个view要张贴在那个perspective之上,用ID标识该perspective-->
- <view
- closeable="false"
- id="com.client.cki.selectedPsrInfoView"
- minimized="false"
- moveable="false"
- ratio="0.5f"
- relationship="top"
- relative="org.eclipse.ui.editorss"
- showTitle="true"
- standalone="false"
- visible="true">
- </view>
- <!--
- 注意:该段注释不要拷贝到配置文件中
- 第一个view: com.client.cki.selectedPsrInfoView
- closeable="false"表明该view无关闭按钮。
- id="com.client.cki.selectedPsrInfoView"指定view的id
- minimized="false"表明初始时不是最小化状态
- moveable="false"表明在运行中该view不可拖动
- ratio="1f"表明其所占的比例 1f表明占据整个参照空间
- relationship="top"表明位于参照的上方
- relative="org.eclipse.ui.editorss"其参照对象。第一个张贴于perspective上的view其参照对象就是这个。
- 后面几项就不解释了 一看都懂。
- -->
- <view
- closeable="false"
- id="com.client.cki.selectedFltInfoView"
- minimized="false"
- moveable="false"
- relationship="stack"
- relative="com.client.cki.selectedPsrInfoView"
- showTitle="true"
- standalone="false"
- visible="true">
- </view>
- <!--
- 注意:该段注释不要拷贝到配置文件中
- 第二个view: com.client.cki.selectedFltInfoView
- closeable="false"表明该view无关闭按钮。
- id="com.client.cki.selectedPsrInfoView"指定view的id
- minimized="false"表明初始时不是最小化状态
- moveable="false"表明在运行中该view不可拖动
- relationship="stack"表明其位置与参照对象在同一个topfolder里面
- 其他参数:left:在参照对象的左边
- right:参照对象的右边
- top:上边
- bottom:下边
- relative="com.client.cki.selectedPsrInfoView"其参照对象。表明该view的参照对象是前一个view
- -->
- </perspectiveExtension>
- </extension>
将该段代码拷贝至plugin.xml中,就可以完成配置了。
此时,perspective中就的createInitialLayout方法就非常简单了,基本上什么都不用写。
- public void createInitialLayout(IPageLayout layout) {
- layout.setEditorAreaVisible(false);
- }
是不是很简单呢?运行一下,看一下效果吧,perspective中有两个view,两个view在一个tabfolder中,其中前一个是selectedPsrInfoView后一个是selectedFltInfoView。
当然,所有的这些配置都可以在eclipse中plugin.xml的图形化界面完成。看完了这个配置文件,我相信图形化界面大家都会做了。
希望对没有采用perspectiveExtensions配置过的人能有所帮助。