[Wicket-ja-user 343] Converterに関して質問です。

Back to archive index

古川 烈 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 



Wicket-ja-user メーリングリストの案内
Back to archive index