到目前为止,我们已经查看了由自述文件工具提供的不同扩展。让我们考察自述文件工具插件的一般定义。
自述文件工具插件是在 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-Name、Bundle-SymbolicName(插件标识)、Bundle-Version 和 Bundle-Vendor。我们以前在 Hello World 插件中看到过这些参数中的大部分。自述文件工具还定义专用插件类 ReadmePlugin。
还提供了 JAR 文件的名称。Bundle-ClassPath 中指定的文件名相对于插件的目录。因此,自述文件工具的 JAR 文件应该直接在插件的目录中。
Require-Bundle 元素将自述文件工具的依赖项告知平台。工作台 UI 插件是作为必需的插件与各种核心、jface 和文本插件一起列示的。
ReadmePlugin 类表示自述文件工具插件,它负责管理插件的生命周期。正如我们在 Hello World 示例中看到的,不需要指定插件类。平台将为您提供一个插件类。在此情况下,插件在启动时需要初始化与 UI 相关的数据。平台类 AbstractUIPlugin 提供了用于管理 UI 资源的结构,并由 ReadmePlugin 扩展。
在插件的生存期内,AbstractUIPlugin 使用通用的启动和关闭方法来管理图像、对话框设置和首选项资源库。在我们处理对话框和首选项时,需要了解 ReadmePlugin 类的具体细节。