# 共通ドキュメント

## Form作成手順

### InputForm実装クラスの作成

対象エンティティ(モデル)を配置する
  エンティティのフィールド毎にInputElementを配置する
以下の抽象メソッドを実装

  メソッド | 内容
  --- | ---
  SetDataSource | 受け取ったエンティティの保持 全てのInputElementに対して値をセット
  GetDataSource | 保持しているエンティティを返す
  UpdateDataSource | 各InputElementからエンティティに値をセット
  UpdateFields | 各InputElementに対してUpdateFieldを呼び出す
  RenderView | 各InputElementに対してRenderを呼び出す
  Validate | 各InputElementに対してValidate()を呼び出す 検証結果を保持する

### InputForm初期化コード作成

実フォーム内でInputForm実装クラスを初期化する
  各InputElementを元になるコントロール、フィルター、検証、出力フォーマットなどで初期化

### データアクセスコード作成

エンティティ保存コード
エンティティ読み込みコード
エンティティ削除コード

### イベント処理作成

- #### ■エンティティを外部から受け取る場合 (既存データ編集など)

  - アクセスオブジェクトからエンティティを受け取る
  - エンティティをInputFormにセットする
  - InputForm#RenderViewを呼び出す
  - エンティティ#IsModifiedをfalseに設定

- #### ■エンティティを新規作成する場合 (新規データ追加など)

  - 新しいエンティティを生成する
  - 生成したエンティティをInputFormにセットする
  - InputForm#RenderViewを呼び出す
  - エンティティ#IsModifiedをfalseに設定

- #### ■保存する場合

  - InputForm#Bindを呼び出す
  - InputFormの検証結果をチェックしてvalidならばInputFormからEntityを取り出して保存
  - InputFormの検証結果をチェックしてinvalidならばInputFormの各InputElementからエラー内容を取り出して表示

- #### ■削除

  - エンティティを削除する

- #### ■エンティティ#IsModifiedの設定

  - textbox#changeなどのイベントでIsModified= trueを設定

- #### ■終了

  - エンティティ#IsModifiedをチェックしてtrueならば確認メッセージ表示
  - キャンセルされたら元に戻る

###

$Revision: 626 $