這裡要介紹的是如何給你的RCP程序或Eclipse插件定義透視圖並向透視圖中添加視圖及對各視圖間的擺放位置給出定義 好進入正題給我們的插件定義一個透視圖先:定義透視圖的方法相信很多人都比較清楚要擴展orgeclipseuiperspectives擴展點好直接在我們的pluginxml文件中加入下面一句代碼就ok了
﹤extension point=orgeclipseuiperspectives>
﹤perspective
class=reuiperspectivePerspective
icon=icons/amc_perspectgif
id=reuiperspectivePerspective
name=%perspectiveamc>
﹤/perspective>
﹤/extension>
上面的代碼中表明我們的透視圖id為orgtalendamcpluginPerspective好記住這個id下面我們就要向這個透視圖中來添加我們的view(視圖)了有兩種方法都可以實現視圖的添加一種是通過代碼直接添加另外一種方法則是直接就在pluginxml裡進行配置
通過代碼向已知透視圖中添加視圖並布局
上面的代碼中已指出該perspective所對應的類為orgtalendamcpluginPerspective該類需要實現IPerspectiveFactory接口並實現它的createInitialLayout(IPageLayout layout) 方法createInitialLayout(IPageLayout layout) 方法就能夠實現對perspective中view的布局詳細代碼如下
package reuiperspective;
import orgeclipseuiIFolderLayout;
import orgeclipseuiIPageLayout;
import orgeclipseuiIPerspectiveFactory;
import reuiviewsdetaillogDetailLogsView; import reuiviewsjobinfoJobInformationView; import reuiviewsstatinfoDetailStatsView; import reuiviewsstatinfoSimpleStatsView;
/** *//** * The class define for the test blog perspective ﹤br/> * * $Id: Perspectivejavav // :: pub Exp $ * */ public class Perspective implements IPerspectiveFactory { public static final String ID = reuiperspectivePerspective; //$NONNLS$ public void createInitialLayout(IPageLayout layout) { //這裡不需要顯示editor故而設置為不可見 layoutsetEditorAreaVisible(false); String editorArea = layoutgetEditorArea(); //下面給出的是各view的位置布局定義這些代碼都可以直接在pluginxml進行配置可以達到相同效果 layoutaddView(JobInformationViewID IPageLayoutLEFT f editorArea); layoutaddView(DetailLogsViewID IPageLayoutBOTTOM f editorArea); String logInfoFolderID = positionstatlog; IFolderLayout bottomFolder = layoutcreateFolder(logInfoFolderID IPageLayoutBOTTOM f JobInformationViewID); bottomFolderaddView(SimpleStatsViewID); bottomFolderaddView(DetailStatsViewID); layoutgetViewLayout(JobInformationViewID)setCloseable(false); layoutgetViewLayout(SimpleStatsViewID)setCloseable(false); layoutgetViewLayout(DetailStatsViewID)setCloseable(false); } }
這裡只是在代碼中直接使用view id 如果真要讓這些id所對應的view顯示出來當然還需要你在自己的插件中給出這些view id的定義
在pluginxml中直接添加視圖並配置布局
Eclipse 為各個view在透視圖的布局也提供了專用的擴展點它就是orgeclipseuiperspectiveExtensions利用這個擴展點我們甚至不需要對orgtalendamcpluginPerspective類進行任何修改就可以按我們的要求向perspective中添加新的視圖(view) 比如要達到上面同效果的視圖布局可向pluginxml中添加以下配置代碼
﹤extension point=orgeclipseuiperspectiveExtensions>
﹤perspectiveExtension
targetID=reuiperspectivePerspective>
﹤view
id=reuiviewsjobinfoJobInformationView
relative=orgeclipseuieditorss
relationship=left
ratio=
closeable=false/>
﹤view
id=reuiviewsdetaillogDetailLogsView
relative=orgeclipseuieditorss
relationship=bottom
ratio=/>
﹤view
id=reuiviewsstatinfoSimpleStatsView
relative=reuiviewsjobinfoJobInformationView
relationship=bottom
ratio=
closeable=false/>
﹤view
id=reuiviewsstatinfoDetailStatsView
relative=reuiviewsstatinfoSimpleStatsView
relationship=stack
closeable=false/>
﹤/perspectiveExtension>
﹤/extension>
運行後各view間的布局關系如下圖所示
Java開源技術免費提供,內容來源於互聯網,本文歸原作者所有。