RCP中采用配置perspectiveExtensions方式配置view的方法介绍(转载)

在RCP中,view是张贴于perspective之上的。传统的方式是直接在perspective的createInitialLayout方法中按照类似如下的方式添加view并设置布局:
Java代码 复制代码  收藏代码
  1. public void createInitialLayout(IPageLayout layout) {   
  2.      String editorArea = layout.getEditorArea();   
  3.     layout.setEditorAreaVisible(false);    
  4.     layout.addView(SelectedPsrInfoView.ID, IPageLayout.LEFT,    IPageLayout.RATIO_MAX, IPageLayout.ID_EDITOR_AREA);   
  5. }  
	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代码 复制代码  收藏代码
  1.   <extension  
  2.          point="org.eclipse.ui.perspectiveExtensions">  
  3.       <perspectiveExtension  
  4.             targetID="com.client.cki.perspective">  
  5. <!-- 指定两个view要张贴在那个perspective之上,用ID标识该perspective-->  
  6.          <view  
  7.                closeable="false"  
  8.                id="com.client.cki.selectedPsrInfoView"  
  9.                minimized="false"  
  10.                moveable="false"  
  11.                ratio="0.5f"  
  12.                relationship="top"  
  13.                relative="org.eclipse.ui.editorss"  
  14.                showTitle="true"  
  15.                standalone="false"  
  16.                visible="true">  
  17.          </view>  
  18. <!--    
  19. 注意:该段注释不要拷贝到配置文件中   
  20. 第一个view: com.client.cki.selectedPsrInfoView   
  21. closeable="false"表明该view无关闭按钮。   
  22. id="com.client.cki.selectedPsrInfoView"指定view的id   
  23. minimized="false"表明初始时不是最小化状态   
  24. moveable="false"表明在运行中该view不可拖动   
  25. ratio="1f"表明其所占的比例 1f表明占据整个参照空间   
  26. relationship="top"表明位于参照的上方   
  27. relative="org.eclipse.ui.editorss"其参照对象。第一个张贴于perspective上的view其参照对象就是这个。   
  28. 后面几项就不解释了 一看都懂。   
  29. -->  
  30.          <view  
  31.                closeable="false"  
  32.                id="com.client.cki.selectedFltInfoView"  
  33.                minimized="false"  
  34.                moveable="false"  
  35.                relationship="stack"  
  36.                relative="com.client.cki.selectedPsrInfoView"  
  37.                showTitle="true"  
  38.                standalone="false"  
  39.                visible="true">  
  40.          </view>  
  41. <!--    
  42. 注意:该段注释不要拷贝到配置文件中   
  43. 第二个view: com.client.cki.selectedFltInfoView   
  44. closeable="false"表明该view无关闭按钮。   
  45. id="com.client.cki.selectedPsrInfoView"指定view的id   
  46. minimized="false"表明初始时不是最小化状态   
  47. moveable="false"表明在运行中该view不可拖动   
  48. relationship="stack"表明其位置与参照对象在同一个topfolder里面   
  49. 其他参数:left:在参照对象的左边   
  50. right:参照对象的右边   
  51. top:上边   
  52. bottom:下边   
  53. relative="com.client.cki.selectedPsrInfoView"其参照对象。表明该view的参照对象是前一个view   
  54. -->  
  55.       </perspectiveExtension>  
  56.    </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代码 复制代码  收藏代码
  1. public void createInitialLayout(IPageLayout layout) {   
  2.     layout.setEditorAreaVisible(false);   
  3. }  
	public void createInitialLayout(IPageLayout layout) {
		layout.setEditorAreaVisible(false);
	}

是不是很简单呢?运行一下,看一下效果吧,perspective中有两个view,两个view在一个tabfolder中,其中前一个是selectedPsrInfoView后一个是selectedFltInfoView。

当然,所有的这些配置都可以在eclipse中plugin.xml的图形化界面完成。看完了这个配置文件,我相信图形化界面大家都会做了。
希望对没有采用perspectiveExtensions配置过的人能有所帮助。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值