diconファイルにWindowsForm、ApplicationContextの設定、AOPによる画面遷移コントロールを設定します。
WindowsFormの設定は次のように行います。
<component name="frmHoge" class="Seasar.Windows.Examples.FrmHoge" />
WindowsFormをModalessで表示するときには、該当するWindowsFormのinstance属性にはprototypeを指定します。
そうしないと、 WindowsFormを閉じて、再度表示されなくなります。
起動用クラスで使うApplicationContextの設定は次のように行います。
<component name="AppContext" class="Seasar.Windows.S2ApplicationContext" >
<arg>container</arg>
<!-- MainFormを初期起動フォームに変更する -->
<property name="MainForm">frmHoge</property>
</component>
WindowsFormをS2Containerに自動登録したときには、IAutoNamingインターフェイスの実装クラスであるSeasar.Windows.DefaultFormNamingクラスを利用します。このクラスはMainFormNameプロパティで指定したWindowsFormクラスをLabelプロパティ名でs2containerにコンポーネントの自動登録時に登録します。
AOPによる画面遷移の設定は次のように行います。画面遷移用インターフェイスのメソッドに対し、
Seasar.Windows.AOP.Interceptors.FormInterceptorでpointcutを設定します。
<component name="Dispatcher" class="Seasar.Windows.Examples.IFormDispatcher">
<!-- pointcutは命名規則に従ってつけたメソッド名を正規表現で表示する -->
<aspect pointcut="Show.*">
<component class="Seasar.Windows.AOP.Interceptors.FormInterceptor" >
<!-- プロパティPropertyはFormからの返値用プロパティを指定する -->
<property name ="Property">"ReturnValue"</property>
</component>
</aspect>
</component>
上記のWindowsFormを設定したdiconファイルとDao等を設定したS2Unit.NETで使うdiconファイルで分けておいた方が、
S2Unit.NETを使用する場合、テストに不要なWindowsFormのオブジェクトをS2Container.NETが生成しないで済みます。