org.eclipse.debug.core.launchConfigurationTypes 拡張ポイント その 4
昨日はいいところで時間切れ。ということで、昨日の続きです。
昨日の plugin.xml で実行すると、なぜか Java Application のアイコンが変更されてしまったのでした。
で、ドキュメント (Launch configuration type images) をちゃんと読んでみると、plugin.xml の例の前に
The markup for the Java application image is as follows:
と書いてあるのでした ^^;;
さて、どこが Java Application に結びつけているところなのか
<extension point="org.eclipse.debug.ui.launchConfigurationTypeImages"> <launchConfigurationTypeImage configTypeID="org.eclipse.jdt.launching.localJavaApplication" icon="icons/ukulele.gif" id="jp.gr.java_conf.skrb.lg3d.wrpe.launchConfigurationTypeImage"/> </extension>
怪しいのは、1 つしかありません。そう、configTypeID です。そういえば、configType ってどこかで聞いたことがあります。
そうか拡張ポイントの launchConfigurationTypes ですね。もしかして、launchConfigurationType の ID を launchConfigurationTypeImage の configTypeID に指定するのでしょうか。
考える前に、試してみます。plugin.xml を次のように変更してみました。
<extension point="org.eclipse.debug.ui.launchConfigurationTypeImages"> <launchConfigurationTypeImage configTypeID="jp.gr.java_conf.skrb.lg3d.wrpe.launchConfigutaionType" icon="icons/ukulele.gif" id="jp.gr.java_conf.skrb.lg3d.wrpe.launchConfigurationTypeImage"/> </extension>
これで、実行してみます。
今度はうまく、LG3D Application がウクレレマークになりました。やっぱり configTypeID は launchConfigurationType の ID と一致させる必要があるのですね。
今は launchConfigurationTypeImages の configTypeID を変更しましたが、もう 1 つ launchConfigurationTabGroup の type も変えてみました。
<extension point="org.eclipse.debug.ui.launchConfigurationTabGroups"> <launchConfigurationTabGroup class="org.eclipse.jdt.internal.debug.ui.launcher.LocalJavaApplicationTabGroup" id="jp.gr.java_conf.skrb.lg3d.wrpe.launchConfigurationTabGroup" type="jp.gr.java_conf.skrb.lg3d.wrpe.launchConfigutaionType"> <launchMode description="Run LG3D Application " mode="run"/> <launchMode description="Debug LG3D Application" mode="debug"/> </launchConfigurationTabGroup> </extension>
実行すると、ちゃんと LG3D Application を選択しても、エラーダイアログは表示されなくなりました。[New] で作成することもできます。
でも、まだ実行はできません。[Run] をクリックしても何も起きません。まぁ、当然ですね。
それにしても launchConfigurationTypeImage では configTypeID で、launchConfigurationTabGroup では type。何でもいいけど、同じものを入れるのであれば用語は統一してほしいなぁ。
明日からは実行の処理の部分を実装していきたいと思います。