古川 烈
r_f_315****@hotma*****
2009年 6月 26日 (金) 15:23:54 JST
古川です、 Converterの取り扱いについて悩んでおります。 あるデータ型について、アプリケーション全体でコンバータを差し替えたい時は、Applicationクラスにて @Override protected IConverterLocator newConverterLocator() { /* Wicket標準のコンバータ実装を生成する */ ConverterLocator locator = new ConverterLocator(); /* Boolean.classのコンバータを独自コンバータで上書き */ locator.set( Boolean.class, new YesNoConverter() ); /* ロケータを返す */ return locator; } で出来ることはわかるのですが、 例えばある TextField<Boolean> thisFieldで Boolean型の値にしたがって true -> はい false -> いいえ と入出力を切り替えたいとします。 このとき、コンバータを切り替えたいのは、 TextField<Boolean> thisField だけであって、アプリケーション全体のBoolean型についてコンバータを切り替えたいわけではないとします。 この時、この入力フィールドだけコンバータを変える場合、 TextField<Boolean> thisField = new TextField<Boolean> ( "ほげほげ" ) { @Override public IConverter getConverter( Class<?> type ) { if ( Boolean.class == type ) { return new YesNoConverter(); } return getConverter( type ); } } とするのが正しいのでしょうか? 他にも同じタイプの入出力のフィールドがあり、使いまわししたい場合は、 TextFieldクラスを継承した YesNoField でも作って↑の実装を内部に記述して対応する。 というのが正しい方法なのでしょうか? それとも Boolean型を内包するYesNoクラスでも作って、データの取り扱いをYesNo型に変えた後に、 ConverterLocator に コンバータを追加でしょうか? ( 大げさすぎる気がしますが。。。 ) データ型はBooleanなんだけど、画面での表示は様々に変えたいという要件は結構あると思うのですが。 例えば 男:女 既婚:未婚 左:右 等々。 Boolean型に限らず、似たような状況はあると思うのですが、皆様はどうやって対応されていますか? どなたかアドバイスをご教示頂きたく。 以上、よろしくお願い申し上げます。 _________________________________________________________________ Hotmail が進化した!セキュリティーもばっちり! http://clk.atdmt.com/GBL/go/153791838/direct/01/ -------------- next part -------------- HTMLの添付ファイルを保管しました... Download