在RCP中,view是张贴于perspective之上的。传统的方式是直接在perspective的createInitialLayout方法中按照类似如下的方式添加view并设置布局:
Java代码
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); }
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的配置文件:
Xml代码
<extension point=
"org.eclipse.ui.perspectiveExtensions"> <perspectiveExtension targetID=
"com.client.cki.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>
<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方法就非常简单了,基本上什么都不用写。
Java代码
public void createInitialLayout(IPageLayout layout) { layout.setEditorAreaVisible(
false); }
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
}
是不是很简单呢?运行一下,看一下效果吧,perspective中有两个view,两个view在一个tabfolder中,其中前一个是selectedPsrInfoView后一个是selectedFltInfoView。
当然,所有的这些配置都可以在eclipse中plugin.xml的图形化界面完成。看完了这个配置文件,我相信图形化界面大家都会做了。
希望对没有采用perspectiveExtensions配置过的人能有所帮助。
转载:
http://javeye.iteye.com/blog/241196
转载于:https://www.cnblogs.com/wuhenke/archive/2011/11/09/2242008.html
相关资源:数据结构—成绩单生成器