Toolbarを表示したい その3
Urumaが自動生成するplugin.xmlとEclipsePDEが自動生成するplugin.xmlの見比べ
Urumaでメニューを作成するとこんな感じ。
<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.2"?> <plugin> <extension point="org.eclipse.ui.contexts" > <context id="org.seasar.uruma.example.rss.context" name="Uruma allication local context" /> </extension> <extension point="org.eclipse.ui.commands" > <category id="org.seasar.uruma.example.rss.command.category" name="org.seasar.uruma.example.rss" /> <command id="org.seasar.uruma.example.rss.command.fileDelete" name="削除(D)" categoryId="org.seasar.uruma.example.rss.command.category" /> </extension> <extension point="org.eclipse.ui.handlers" > </extension> <extension point="org.eclipse.ui.bindings" > <scheme id="org.seasar.uruma.keyConfiguration" name="UrumaApplication" /> <key sequence="DELETE" schemeId="org.seasar.uruma.keyConfiguration" commandId="org.seasar.uruma.example.rss.command.fileDelete" /> </extension> <extension point="org.eclipse.ui.menus" > <menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions" > <menu mnemonic="E" label="編集(E)" > <command commandId="org.seasar.uruma.example.rss.command.fileDelete" mnemonic="D" icon="target/main-classes/images/rss.png" > </command> </menu> </menuContribution> </extension> <extension point="org.eclipse.ui.views" > <view id="org.seasar.uruma.example.rss.urumaDebugView" name="デバッグ・ビュー" class="org.seasar.uruma.rcp.ui.GenericViewPart" allowMultiple="false" /> <view id="org.seasar.uruma.example.rss.urumaBundleManagerView" name="バンドルマネージャ・ビュー" class="org.seasar.uruma.rcp.ui.GenericViewPart" allowMultiple="false" /> <view id="org.seasar.uruma.example.rss.feedTreeView" name="フィードツリー・ビュー" class="org.seasar.uruma.rcp.ui.GenericViewPart" allowMultiple="false" /> <view id="org.seasar.uruma.example.rss.feedListView" name="フィード・ビュー" class="org.seasar.uruma.rcp.ui.GenericViewPart" allowMultiple="false" /> <view id="org.seasar.uruma.example.rss.feedBrowserView" name="ブラウザ・ビュー" class="org.seasar.uruma.rcp.ui.GenericViewPart" allowMultiple="false" /> </extension> <extension point="org.eclipse.ui.perspectives" > <perspective id="org.seasar.uruma.example.rss.defaultPerspective" name="RSS" class="org.seasar.uruma.rcp.ui.GenericPerspectiveFactory" icon="uruma" fixed="false" /> </extension> </plugin>
EclipsePDEでアクション(メニューとツールバーボタン)を作るとこんな感じ。
<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.2"?> <plugin> <extension point="org.eclipse.ui.actionSets"> <actionSet id="org.eclipse.contribution.hello.actionSet" label="Sample Action Set" visible="true"> <menu id="sampleMenu" label="Sample &Menu"> <separator name="sampleGroup"> </separator> </menu> <action class="org.eclipse.contribution.hello.actions.SampleAction" icon="icons/sample.gif" id="org.eclipse.contribution.hello.actions.SampleAction" label="&Sample Action" menubarPath="sampleMenu/sampleGroup" toolbarPath="sampleGroup" tooltip="Hello, Eclipse world"> </action> </actionSet> </extension> </plugin>
メニューの部分を比べてみると構造が全然違うなぁ。
PDEでは、メニューもツールバーボタンも区別はなくて、actionがmenubarPathとtoolbarPathをもっているだけ。
をツールバーボタンとして内部で扱えばよいかな。あとは、Urumaの生成するplugin.xmlの方言に合わせたツールバーボタンの記載ができれうまく作れそうだけど、方言がさっぱりわかんないww
extension point="org.eclipse.ui.menus" ← plugin.xmlの書き方のため、ここから追いかけてみる。
まず、EclipseのCSVリポジトリからorg.eclipse.uiのPJをcheckout。
plugin.xmlを見てみると、
<extension-point id="menus" name="%ExtPoint.menus" schema="schema/menus.exsd"/>
で、さらにmenus.exsdを見てみると、サンプルがあった。
<p> A basic extension looks like this. </p> <pre> <extension id="add.item" point="org.eclipse.ui.menus"> <menuContribution locationURI="menu:someorg.somemenu.id?after=additions"> <command commandId="someorg.someid.someCommand" icon="icons/anything.gif" id="someorg.someid.BasicCmdItem" label="Simple Item" mnemonic="S"> </command> </menuContribution> </extension> </pre> <p> This is the simplest example; adding a command contribution after an existing menu's additions group. </p>
Urumaのplugin.xmlに記載しているメニューと似ている。
<p> This extension point allows the plug-in developer to add (contribute) a variety of custom additions to the eclipse framework: <ul> <li>Main Menu</li> <li>Main Toolbars</li> <li>View Menus/Toolbars: <ul> <li>View Dropdown Menu</li> <li>View Toolbar</li> <li>Context Menu(s)</li> </ul> </li> <li>Trim</li> </ul> </p> <p> It provides a common implementation for and acts as a replacement of the following (legacy) eclipse extension points: <ul> <li>org.eclipse.ui.ActionSets</li> <li>org.eclipse.ui.EditorActions</li> <li>org.eclipse.ui.popupMenus (including 'objectContributions')</li> <li>org.eclipse.ui.viewActions</li> </ul> </p>
Extenstionがreplacementされている。
しかも、since 3.3 って明記があって道理でNETで調べても情報がすくないわけだ。
っていうか、APIころころ変わりすぎ>Eclipse。 ついていけんw。
手元のEclipsePlugin本も全滅だー。