博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
透视图扩展 Perspective Extensions
阅读量:5286 次
发布时间:2019-06-14

本文共 3289 字,大约阅读时间需要 10 分钟。

eclipse中的一些元素如图所示:

透视图?

透视图 是一系列Views和Editors等元素的 可视化容器。透视图 定义了  Workbench Page 中 Window action bars(menu and toolbar) 的初始化内容 和  包含的视图(views)与它们的布局方式。

WorkbenchWindow是书本的话,Perspective就是其中的一页,并且同一时刻只显示一页。一个Perspective所包含的Views,Editors等元素不与其它Perspective共享

透视图与其它元素的关系如下:

class relationship

扩展eclipse现有的perspective

eclipse包含有多种类型perspective

perspectives

一个扩展perspective的代码示例:

1 
2
4
5
6
7
8
11
15
16

In the example above, an action set, view shortcut, new wizard shortcut, and perspective shortcut are contributed to the initial contents of the Resource Perspective. In addition, the Package Explorer view is stacked on the Resource Navigator and the Type Hierarchy View is added beside the Resource Navigator.

 自定义一个Perspective

 参考学习:

 1.create a plug-in

1 
5
6
7
8
9
10
11
12
13

2.Add a perspective extension to the plugin.xml file

1 
2
6 7

3.Define a perspective class(org.eclipse.ui.articles.perspective.TestPerspective.TestPerspective in this case) for the extension within the plug-in.

这里的TestPerspective 必须实现org.eclipse.ui.IPerspectiveFactory接口。

TestPerspective 会实现IPerspectiveFactory中的createInitialLayout(IPageLayout layout)方法:

1 public void createInitialLayout(IPageLayout layout) { 2     defineActions(layout); 3     defineLayout(layout); 4 } 5  6 public void defineActions(IPageLayout layout) { 7         // Add "new wizards". 8         layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder"); 9         layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");10 11         // Add "show views".12         layout.addShowViewShortcut(IPageLayout.ID_RES_NAV);13         layout.addShowViewShortcut(IPageLayout.ID_BOOKMARKS);14         layout.addShowViewShortcut(IPageLayout.ID_OUTLINE);15         layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET);16         layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST);17 }18 19 public void defineLayout(IPageLayout layout) {20         // Editors are placed for free.21         String editorArea = layout.getEditorArea();22 23         // Place navigator and outline to left of24         // editor area.25         IFolderLayout left =26                 layout.createFolder("left", IPageLayout.LEFT, (float) 0.26, editorArea);27         left.addView(IPageLayout.ID_RES_NAV);28         left.addView(IPageLayout.ID_OUTLINE);29 }

对于 line 25,一个Folder是好几个views的栈集(stacks),也就是views以标签的形式集成在一个folder下。

新Perspective的效果如下:

newPerspective

我们可以在Perspective > Open中打开Test perspective,这个过程是这样实现的:

----------------------------------------------------------------------------------------------

1.一个IWorkbenchPage对象被创建,参数是id = "org.eclipse.ui.articles.perspective.Test";

2.利用这个id, 找到IWorkbench中注册的对应该id的perspective的具体描述,返回IPerspectiveDescriptor类。所有注册信息包含在IPerspectiveRegistry里,并调用findPerspectiveWithid方法查找。

3.从IPerspectiveDescriptor中得到相应的perspective class(org.eclipse.ui.articles.perspective.TestPerspective.TestPerspective in this case) ,创建一个实例。

4.该类中的createInitialLayout方法将被调用。

5.IWorkbenchPage被激活。Perspective将在用户UI中呈现。

转载于:https://www.cnblogs.com/JosephLiao/p/4194151.html

你可能感兴趣的文章
派遣函数
查看>>
教程6--配置ssh
查看>>
C#串口扫描枪的简单实现
查看>>
SharePoint各版本信息
查看>>
Python数据结构——散列表
查看>>
.Net学习笔记----2015-07-08(基础复习和练习03)
查看>>
IDEA 中Spark SQL通过JDBC连接mysql数据库
查看>>
组合数学之母函数问题
查看>>
JavaScript创建对象之单例、工厂、构造函数模式
查看>>
CodeForces1154F
查看>>
TLS 9.2C
查看>>
CodeForces1214A
查看>>
LuoGuP4551最长异或路径
查看>>
CodeForces1214C
查看>>
CodeForces1214B
查看>>
CodeForces1214D
查看>>
CodeForces727C
查看>>
LuoGuP1351联合权值
查看>>
CodeForces1165
查看>>
【期外】(三)Linux下集成开发环境Geany
查看>>