2014年8月14日 透视图

    继续上次的话题,这次说说透视图(Perspective)。

一个RCP程序一启动,首先进入人眼帘的是启动图片,之后便是透视图了。在写这篇随笔的时候去找了下透视图的资料,随手搜到了一些好玩的工具,windowsbuilder。想必会插件开发的程序员对这个工具一定不陌生,这是一个可以对jface、swt控件、布局等进行可视化操作。之前只是用这个工具来做一些jface dialog的界面,复杂的界面和一些简单的值绑定,包括对EMF元素的支持都是非常不错的。但是今天意外的发现新建向导里面还有RCP这个目录,点开一看,里面还有今天要说的透视图(Perspective)。

 

一顿无脑拖拽,一个简单的透视图生成,预览一下,效果如图

 

仿照的Eclispe的透视图,左边是package explorer,右边是outline,底下是properties。

之后我们来看看生成的代码是怎么样的

 1 package test;
 2 
 3 import org.eclipse.ui.IPageLayout;
 4 import org.eclipse.ui.IPerspectiveFactory;
 5 import org.eclipse.ui.IFolderLayout;
 6 
 7 //实现的接口为IPerspectiveFactory
 8 public class TestPerspective implements IPerspectiveFactory {
 9 
10     /**
11      * Creates the initial layout for a page.
12      */
13     //透视图初始化方法
14     public void createInitialLayout(IPageLayout layout) {
15         //编辑区域
16         String editorArea = layout.getEditorArea();
17         addFastViews(layout);
18         addViewShortcuts(layout);
19         addPerspectiveShortcuts(layout);
20         
21         {
22             //创建FolderLayout(多个视图在一个区域的时候就会用到此类)
23             IFolderLayout folderLayout = layout.createFolder("folder_1", IPageLayout.LEFT, 0.29f, IPageLayout.ID_EDITOR_AREA);
24             folderLayout.addView("org.eclipse.jdt.ui.PackageExplorer");
25             folderLayout.addView("org.eclipse.ui.navigator.ProjectExplorer");
26         }
27         //方法 void org.eclipse.ui.IPageLayout.addView(String viewId, int relationship, float ratio, String refId)
28         //参数 viewId:视图ID relationship:视图所在方位(上、下、左、右) ratio:占用空间 范围0.05f到0.95f refId:参考ID 视图、编辑区
29         layout.addView("org.eclipse.ui.views.ContentOutline", IPageLayout.RIGHT, 0.68f, IPageLayout.ID_EDITOR_AREA);
30         {
31             IFolderLayout folderLayout = layout.createFolder("folder", IPageLayout.BOTTOM, 0.79f, IPageLayout.ID_EDITOR_AREA);
32             folderLayout.addView("org.eclipse.ui.views.PropertySheet");
33             folderLayout.addView("org.eclipse.wst.server.ui.ServersView");
34         }
35     }
36 
37     /**
38      * Add fast views to the perspective.
39      */
40     //添加fast views
41     private void addFastViews(IPageLayout layout) {
42         layout.addFastView("org.eclipse.pde.runtime.RegistryBrowser");
43         layout.addFastView("org.eclipse.wst.server.ui.ServersView");
44     }
45 
46     /**
47      * Add view shortcuts to the perspective.
48      */
49     //添加快捷视图
50     private void addViewShortcuts(IPageLayout layout) {
51         layout.addShowViewShortcut("org.eclipse.wst.server.ui.ServersView");
52     }
53 
54     /**
55      * Add perspective shortcuts to the perspective.
56      */
57     //添加快捷透视图
58     private void addPerspectiveShortcuts(IPageLayout layout) {
59         layout.addPerspectiveShortcut("org.eclipse.jst.j2ee.J2EEPerspective");
60     }
61 
62 }

 

一个透视图的主要方法就是createInitialLayout,通过此方法可以初始化透视图,之后就是对各个视图的位置控制了。

之后进入plugin.xml文件的扩展点标签页添加透视图拓展点并指定透视图的class类即可,不过windowsbuilder这一步已经帮你做了。

另外提一下,fixed这个属性,默认是false,这个属性是设置这个透视图里的视图是否可被关闭和移动。

那透视图就说到这里了。

转载于:https://www.cnblogs.com/demonrain/p/3913544.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值