ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

Wicket(16)wickt-exmamplesを解析する(abacadabra)(5)

Wicket (9)wicket-examplesをTomcatに導入してみるEclipseに取り込んだ
Wicketのサンプル「wicket-examples」を解析してみます。

引き続き「abacadabra」exampleです。
今回は3つ目のステップである「UserRolesStep」を見ていきます。

◆画面
f:id:UnderSourceCode:20130504112315j:plain

まず画面です。前の画面(UserDetailStep)の「Department」で入力した値が
一番上のUserRoles欄に表示されます。
またUser Roleを入力するテキストボックス、およびRoleのリストを表示しています。

この画面の.htmlファイルが、以下のものです。

◆UserRolesStep.html
f:id:UnderSourceCode:20130504112330j:plain

テキストボックス、リストを定義し、それぞれに「wicket:id」を付与しています。
また「wicket:message」で始まるmessageを表示するためのコントロールも配置しています。
次にこの.htmlファイルに対応する.javaファイルです。

◆UserRolesStep(NewUserWizard.java)
f:id:UnderSourceCode:20130504112345j:plain

コンストラクタで今回のステップの定義をしています。
titleの定義は「ResourceModel」、Summaryの定義「StringResourceModel」を使用しているのは、前回と同じです。

Roleのリストを表示するのに「ListMultipleChoice」コントロールを使用しています。
このリストの表示値として「allRoles」リストを指定しています。
「allRoles」リストの具体的な定義は、以下のとおりです。

f:id:UnderSourceCode:20130504112357j:plain

このリストの値として定義されている文字列が、画面のRoleのリストに表示されています。

エラーチェックについては「AbstractFormValidator」クラスを追加することで実装しています。
「AbstractFormValidator」の匿名クラス内にある「validate」メソッドが、
エラーチェックのロジックとなっています。