S2Swing的なものを作りたい

Swing Application Frameworkは、リソースインジェクションや非同期タスクのサポートによって、Swingアプリケーションの開発を支援してくれます。ただし、Swing Application Frameworkの仕組み自体は非常に簡潔で、アプリケーションの「土台中の土台」の部分しか提供しません。Swing Application Frameworkオンリーで開発を進めることは現実的ではなく、実際には、さらにその上にレイヤを被せて抽象化する必要があると思います。

今、自分の頭の中で、S2Swingの妄想がどんどん拡大しています。SWTにとってのS2JFace(Uruma)が、Swingにも必要なんです!

幸いなことに、すでにUrumaというお手本があるし、値のバインディングやバリデーション、コンバータの基礎部分はBeans Binding(JSR 295)に任せられるので、頑張れば自分にも作れそうな気がします。要件は以下のような感じ。

  • Swing Application Frameworkが持っている機能はそのまま活かす。
  • View(画面オブジェクト)とForm(データの入ったPOJO)を分離させる。
  • 名前規約とアノテーションに基づいて、UIの値とFormの値を自動バインディングする。
  • 同様に、UIのイベントとViewのActionメソッドを自動バインディングする。全種類のイベントをサポートする。
  • バリデータとコンバータはアノテーションで指定する。
  • 値の型変換はある程度自動でサポートする。
  • XMLでの画面定義はサポートしない(SWIXMLなど優れたプロダクトがあるので)。

とりあえず、Urumaのソースをじっくり読んでみよう。