-Outlineの自動設定表示
KijimunaのOutlineで、自動セッターインジェクション、自動コンストラクタ引数インジェクション、自動メソッド引数インジェクションについて、表示するようになりました。図のとおりです。以下のDiconファイルを食わせてます。
<?xml version="1.0" encoding="MS932"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components.dtd"> <components namespace="main"> <component class="java.util.ArrayList"/> <component class="java.util.HashMap"/> <component class="tutorial.org.seasar.console.TestCImpl"> <initMethod name="injectArg"/> </component> </components>
package tutorial.org.seasar.console; import java.util.List; import java.util.Map; public class TestCImpl implements TestC { public TestCImpl() { } public void setInjectProperty(Map map) { } public void injectArg(List list) { } }
sugaさんには五月雨でお願いして申し訳ないですが、以下のアイコン、お願いできますと幸いです。
- 自動設定のargでインジェクションされたもの
- 自動設定のargでnullがセットされたもの
- 自動設定のargでTooManyでエラー
- 自動設定のpropertyでインジェクションされたもの
- 自動設定のpropertyでnullがセット
- 自動設定のpropertyでTooManyでエラー
それぞれ、argやpropertyのアイコンを微妙にアレンジしていただいたものが溶け込みそうです。
マーカー設定デフォルトではnullがセットされた場合はWarning、TooManyがセットされたときにはErrorとしたいと思います。インジェクション成功の場合は、Ignoreです。
追記
その後、実装を完了してみると、結構アイコンデザイン大変だなあと気がつきました。NotFoundやTooManyについては、自動設定に限らず、他のエレメントでもありえることなのです。OGNL中で名前でコンポーネントを検索したらTooManyRegistrationExceptionが出ることもあるでしょう。ちょっと仕組みを考えます。いたずらにリソース種を増やすのは大変ですから。それこそ、Decoratorを検討するときが来たかも。でも、Decoratorメカニズムは重いんですよ。EclipseのCVSデコレーターやJavaのエラーデコレーターの表示が遅延しがちなのはそれです。非力なマシンだとDecoratorの設定を全部はずすと結構体感速度がかわります。
前提の情報はKijimuna内部では全部取れています。propertiesも対応してますので、あとはアイコンの表示を区分するだけです。Problemsビューのマーカーメッセージでは文言をすでに分けています。
再度、追記
- argのインジェクションエラー(NofFound or TooMany)
- aspectのインジェクションエラー(NofFound or TooMany)
- componentのインジェクションエラー(NofFound or TooMany)
- destroyMethodのインジェクションエラー(NofFound or TooMany)
- initMethodのインジェクションエラー(NofFound or TooMany)
- propertyのインジェクションエラー(NofFound or TooMany)
先のに加えて、これらもアイコンでできるといまのところの機能で提供している全部を表現できます。微妙にちょこまか違うものたくさんで、sugaさんには申し訳ないですが、お願いします!!作ってください!!!0.6.10をリリースしますので、まずはご覧ください。アイコン切り替え以外実装してあります。