編集画面を実装します。初期状態はエラー表示を隠しておきます。
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
public void init(){ super.init(); // モックアップHTMLの内容と異なる内容で初期化したい場合は // super.init()の後に変更用の処理を記述して下さい。 // このメソッドは上記コンストラクタの中から呼ばれます。 // インスタンス発生はバックグラウンドで非同期に処理していますので // HTTPリクエスト発生よりずっと過去に初期化されます。 // このため、ユーザーのトランザクションに応じた条件分岐を設けても // 意図した振る舞いになりません。 getErrorFont().setVisible( false ); }
一覧画面から遷移された時の動作を outputMain に実装します。
編集するUserクラスは、SeekHtml の押下ボタンから直接取得します。
そのメソッドを追加します。
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
/** * 編集対象を取得。 * @param page 一覧画面。 * @return 編集対象。 */ private User getEditUser( SeekHtml page ) { SeekHtml.Action action = (SeekHtml.Action)page.getClickedButton().getUserData(); return action.user; }
出力処理を追加します。
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
public Page outputMain( Page from, RequestParameter req ) throws PageException { // 出力内容を設定します。 // 初期化したい場合は、init()をコールして下さい。 if ( from.getID() == PageType.USER_SEEK_HTML ) { User user = getEditUser( (SeekHtml)from ); if ( user != null ) { getUserIdInput().setReadOnly( true ); getUserIdInput().setValueString( user.user_id ); getNameInput().setValueString( user.name ); CheckBox.setRadio( getSexTags(), user.sex ); getAddressInput().setValueString( user.address ); } } return this; }