Toolbarを表示したい その4
Urumaがplugin.xmlをどうやって出力しているか調査。
ContributionBuilder
Urumaでplugin.xmlの生成はContributionBuilderが行います。
ContributionBuilderはExtensionBuilderからExtensionを作成します。
ExtensionがStringWriterを受け取ってplugin.xmlを生成します。
生成したplugin.xmlをregistryに渡してRCPに反映します。
ExtensionRegistry registry = Platform.getExtensionRegistry();
ExtensionBuilder
ExtensionBuilderの具象クラスは以下のとおり。
- MenusBuilder
- ViewsBuilder
- PerspectivesBuilder
ExtensionBuilderはExtensionFactoryでExtensionの具象クラスを生成します。
例
ExtensionFactory.createExtension(ExtensionPoints.COMMANDS);
Extensionの拡張ポイントの種類は以下のとおり。
- org.eclipse.core.runtime.applications
- org.eclipse.core.runtime.preferences
- org.eclipse.ui.views
- org.eclipse.ui.perspectives
- org.eclipse.ui.actionSets
- org.eclipse.ui.commands
- org.eclipse.ui.handlers
- org.eclipse.ui.bindings
- org.eclipse.ui.menus
- org.eclipse.ui.contexts
ExtensionBuilderは作成したExtensionに関連するElementを作成しExtensionにセットしContributionBuilderに返却します。
各Elementは以下のとおり。
- Extension
- ActionElement
- ActionSetElement
- ApplicationElement
- CategoryElement
- ClassElement
- CommandElement
- ContextElement
- GroupMarkerElement
- HandlerElement
- InitializerElement
- KeyElement
- MenuCommandElement
- MenuContributionElement
- MenuElement
- ParameterElement
- PerspectiveElement
- RunElement
- SchemeElement
- ViewElement
ExtensionFactory
ExtensionFactoryはConfigurationWriterFactoryでExtentionエレメントのConfigurationWriterを作成します。作成したExtentionにElementをセットし、ExtensionBuilderにExtensionを返却します。