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の拡張ポイントの種類は以下のとおり。


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を返却します。

まとめ

ツールバーを表示するためには、ToolBarElementクラスを作成し、MenusBuilderで作成したorg.eclipse.ui.menusのExtensionにセットしてあげればよいかな。