插件开发—— 通过插件扩展工作台
?? ? ? ?现在,你应该对工作台的操作和怎样使用视图和编辑器展示信息非常熟悉了,如果不熟悉的话,阅读下面关于工作台的快速指南。在此之后的各个章节将会从API 的角度关注工作台用户界面,展示插件如何向平台UI 添加新的功能。
?
1. 工作台快速指南
?? ? ? ?工作台是导航插件提供的各种功能的场所,通过工作台,我们可以导航资源,并且可以查看和便捷这些资源的内容和属性。当打开工作台展示一组项目时,效果如下图所示:

?
工作台就是一个呈现各种可视化部件的窗口,这些部件可以分为两个主要分类:视图和编辑器:
?
编辑器(Editor) 让用户可以在工作台进行编辑,编辑器是以文档为中心的,就像一个文件系统编辑器一样。类似于文件系统编辑器,它们遵循 打开-保存-关闭 的生命周期。和系统编辑器不一样的是,这些编辑器和工作台联系紧密。视图(View) 展示用户在工作台中使用到的一些对象的信息。当用户选择工作台中不同对象时,视图会改变显示的内容。视图通常通为活动编辑器中的内容提供相关信息来支持编辑器。视图工作台提供了一些标准的视图,帮助用户导航或者查看所需要的内容,例如,项目浏览器可以帮助用户导航工作区和选择资源。
更多的插件,例如Java 代码编辑器或者HTML编辑器,可以由插件提供。?
package org.eclipse.examples.helloworld; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.SWT; import org.eclipse.ui.part.ViewPart; public class HelloWorldView extends ViewPart { Label label; public HelloWorldView() { } public void createPartControl(Composite parent) { label = new Label(parent, SWT.WRAP); label.setText("Hello World"); } public void setFocus() { // set focus to my widget. For a label, this doesn't // make much sense, but for more complex sets of widgets // you would decide which one gets the focus. } }?? ? ? ? 请注意,dispose() 方法不是必须要实现的,因为我们除了在?createPartControl(parent) 方法创建了一个标签(Label),没有做任何事情。如果我们创建了任何UI 资源,例如图片或者字体,就应该在dispose() 方法中销毁它们。由于我们扩展了ViewPart 类,就继承了dispose() 方法的空的实现。