Wicket extension にある Palette の注意点と必須バリデータの方法
org.apache.wicket.extensions.markup.html.form.palette.Palette<T>(
String id
,IModel<List<T>> model
,IModel<? extends Collection<? extends T>> choicesModel
,IChoiceRenderer<T> choiceRenderer
,boolean arrowOrder
)
各パラメータは、、、
id = wicket:id
model = 選択済み要素の List の wicket Model
choicesModel = 全ての選択肢の Collection Model
choiceRenderer = <option> 描画のRenderer
rows = 表示行数
arrowOrder = 順序入れ替えボタン表示指定、true=表示する
初期表示で選択済みを表示させる場合、model に格納したものを
choicesModel から除外してはいけない!
あくまでも「全ての選択肢」であって、model に存在させたものも
含んでなければならない。
Palette に必須選択バリデーションを掛けたい場合は、以下のように Palette 内部
hidden フィールドに当てられているコンポーネントの生成メソッドをオーバーライド
して、require をセットする。
Palette palette = new Palette(...){
@Override
protected Recorder newRecorderComponent() {
Recorder rec = super.newRecorderComponent();
rec.setRequired(true);
return rec;
}
};