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

it2024-10-25  15

在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要张贴在那个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>   <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

相关资源:数据结构—成绩单生成器
最新回复(0)