Swing Application Frameworkの今後
JSR-296: Swing Application FrameworkのスペックリードだったHans Muller氏が、SunからAdobeに移ってしまったそうです。ショックだなあ。
ところで彼は、MLに残した『遺言』の中で、現在のSwing Application Frameworkにおける"several major design questions"を以下のように指摘しています。S2Swingの開発を進める上でも、これらの点は押さえておきたいと思います。
- アプリケーションタイプの追加
現在サポートされているSingleFrameApplication(メインフレームのクローズ時にアプリケーションを終了)以外に、MultiFrameApplication(マルチフレーム型。最後のフレームのクローズ時にアプリケーションを終了)やServiceApplication(タスクトレイ常駐型)、AppletApplication(JAppletのライフサイクルに連動)といったアプリケーションタイプをサポートするべき。
- Singletonの見直し
現在はApplicationのインスタンスにSingletonパターンでアクセスする方式だが、テスト時などに問題が多いのでやめるべき。
- サービスをカスタマイズ可能に
現状では、ApplicationとApplicationContextの作成タイミングに問題があってサービスのカスタマイズが難しいので、これを改善するべき。
- SwingWorkerの使用見直し
現状では、非同期アクションに使われるTaskクラスがSwingWorkerのサブクラスになっているため、Java 1.5環境下ではSwingWorkerのバックポートjarファイルが必要。これを見直すべき。