插件类

到目前为止,我们已经查看了由自述文件工具提供的不同扩展。让我们考察自述文件工具插件的一般定义。

插件定义

自述文件工具插件是在 MANIFEST.MF 文件中定义的。

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.ui.examples.readmetool; singleton:=true
Bundle-Version: 3.2.0.qualifier
Bundle-ClassPath: readmetool.jar
Bundle-Activator: org.eclipse.ui.examples.readmetool.ReadmePlugin
Bundle-Vendor: %Plugin.providerName
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.resources,
 org.eclipse.core.runtime,
 org.eclipse.ui.views,
 org.eclipse.ui.ide,
 org.eclipse.jface.text,
 org.eclipse.text,
 org.eclipse.ui.workbench.texteditor,
 org.eclipse.ui.editors
Eclipse-AutoStart: true
Eclipse-AutoStart-comment: Use Eclipse-AutoStart instead of Eclipse-LazyStart because the readme example should run against 3.1 as well as 3.2.

插件定义包含插件的 Bundle-NameBundle-SymbolicName(插件标识)、Bundle-VersionBundle-Vendor。我们以前在 Hello World 插件中看到过这些参数中的大部分。自述文件工具还定义专用插件类 ReadmePlugin

还提供了 JAR 文件的名称。Bundle-ClassPath 中指定的文件名相对于插件的目录。因此,自述文件工具的 JAR 文件应该直接在插件的目录中。

Require-Bundle 元素将自述文件工具的依赖项告知平台。工作台 UI 插件是作为必需的插件与各种核心、jface 和文本插件一起列示的。

AbstractUIPlugin

ReadmePlugin 类表示自述文件工具插件,它负责管理插件的生命周期。正如我们在 Hello World 示例中看到的,不需要指定插件类。平台将为您提供一个插件类。在此情况下,插件在启动时需要初始化与 UI 相关的数据。平台类 AbstractUIPlugin 提供了用于管理 UI 资源的结构,并由 ReadmePlugin 扩展。

在插件的生存期内,AbstractUIPlugin 使用通用的启动和关闭方法来管理图像、对话框设置和首选项资源库。在我们处理对话框和首选项时,需要了解 ReadmePlugin 类的具体细节。