当自述文件编辑器具有焦点时,将显示名为“自述文件”的下拉菜单。此菜单包含前面描述的操作:“自述文件编辑器操作 1”、“自述文件编辑器操作 2”和“自述文件编辑器操作 3”。
在扩展名为 .readme 的文件中,可以将文件内容分为多个以数字开头的小节。例如,如果在自述文件编辑器中输入了以下文本,则自述文件工具将检测到两个小节。要了解自述文件工具是如何检测小节的,请在自述文件编辑器中输入一些文本,并通过按 CTRL-S 或选择“文件”->“保存”来保存该文件。在“导航器”视图中打开“自述文件小节”视图并选择该 .readme 文件。
示例文本:
99.1 This is my first section
This is some text in my first section.
99.1.1 This is a sub section
This is some text in my sub-section.
通过在“大纲”视图中选择一个小节并将所选内容拖动到某个文本文件上,您可以体验“拖放”功能。所选内容将被追加到该文件中。
此示例还提供了插件中声明的扩展点。对于任何使用了此示例所定义的 org.eclipse.ui.examples.readmetool.sectionParser 扩展的插件来说,类 IReadmeFileParser 是必需的。类 DefaultSectionParser 是 IReadmeFileParser 的实现示例。
类 ReadmeEditor 实现了 IEditorPart。并且,在 plugin.xml 中,已使用 org.eclipse.ui.editors 扩展点将其定义成扩展名为 .readme 的文件的编辑器。类 ReadmeSectionsView 实现了 IViewPart,并使用 org.eclipse.ui.views 扩展点定义为视图。此扩展点还定义了视图类别,以便在进行视图选择时使用。
在此示例中定义了两类首选项设置,即工作台首选项和资源属性。工作台首选项是在实现了 IWorkbenchPreferencePage 的类 ReadmePreferencePage 中定义的,因此它将被添加到“窗口”->“首选项”对话框中。该类是在 plugin.xml 中的扩展点 org.eclipse.ui.preferencePages 中定义的。ReadmeFilePropertyPage 和 ReadmeFilePropertyPage2 是两个资源属性页,它们都实现了 IWorkbenchPropertyPage。在 plugin.xml 中,org.eclipse.ui.propertyPages 扩展点中的 objectClass 标记将它们定义成对 IFile 类型进行调用。
类 ReadmeCreationWizard 实现了 INewWizard,并且是在 plugin.xml 中的 org.eclipse.ui.newWizards 扩展点中定义的。此扩展点还定义了当用户选择“文件”->“新建”->“示例...”时显示的向导的类别。
在此示例中添加了几个操作存根。操作集通过扩展点 org.eclipse.ui.actionSets 声明要在工作台窗口菜单栏中包括标签为自述文件编辑器的菜单。它还使用 toolbarPath 和 menubarPath 标记定义了工作台工具栏和菜单栏的操作。它使用实现了 IWorkbenchWindowActionDelegate 的 WindowActionDelegate 类来实现该操作。扩展点 org.eclipse.ui.popupMenus 中的 PopupMenuActionDelegate 类将弹出菜单的操作定义为 objectContribution。PopupMenuActionDelegate 实现了 IObjectActionDelegate,并使用提供的 IWorkbenchPart 来打开消息对话框。视图操作 ViewActionDelegate 是在扩展点 org.eclipse.ui.viewActions 中定义的,它实现了 IViewActionDelegate。显示它时使用的视图由 targetID 标记定义,在本示例中,该标记是 org.eclipse.ui.views.ResourceNavigator。编辑器操作由实现了 IEditorActionDelegate 的类 EditorActionDelegate 定义,并且,使用了 org.eclipse.ui.editorActions 扩展点来添加该编辑器操作。要应用此操作的编辑器由 targetID 标记定义,在本示例中,此标记是在 org.eclipse.ui.examples.readmetool.ReadmeEditor 中定义的。
类 ReadmeDropActionDelegate 实现了 IDropDelegate。每次在工作台中执行放下操作时,都会通知 IDropDelegates。此操作的扩展点是 org.eclipse.ui.dropActions。