ページの先頭行へ戻る
 Apcoordinator入門ガイド
Interstage

3.2.2 行動予定表アプリケーション詳細

ここでは、行動予定表アプリケーションの実装の詳細に関する説明を行っています。

1 表やコンボボックス形式のデータを扱うクラスの作成

行動予定表アプリケーションでは、行動予定一覧を表示していますが、Apcoordinatorでは表形式、コンボボックス形式、ツリー形式などのデータを表示するための仕組みを用意しています。これらをコンポーネントタグと呼んでいます。コンポーネントタグを使用する手順は以下のとおりです。

  1. コンポーネントの表示に必要なクラスを作成します。

  2. データBeanに上記クラスのインスタンスを設定(set)および取得(get)できるように、内部変数とメソッドの実装をします。

  3. 入出力ページ側にApcoordinatorでサポートしている"uji:comboBox"や"uji:tableView"タグを実装します。

ここでは、ComboBox、TableView、FieldString、FieldLong、FieldTextAreaクラスを使用します。これらのクラスは、それぞれApcoordinatorでサポートしている項目クラスのインタフェースをインプリメントしています。

コンポーネントタグを使用することにより以下の利点があります。

この行動予定表アプリケーションにおいては、次の目的でコンポーネントタグを使用しています。

項目クラス名

使用する利点

ComboBox

コンボボックス形式の表現を容易に実現するためです。

TableView

表形式のデータを容易に容易に実現するためです。

FieldString

文字列入力フィールドを容易に実現するためです。

FieldLong

数値入力フィールドを容易に実現し、値の下限、上限を設定するためです。

FieldTextArea

複数行テキスト入力フィールドを容易に実現するためです。

2 行動予定データを保持するクラスの設計

行動予定表アプリケーションでは課員の行動予定を格納するクラスを考えます。以下の2つのクラスを用います。

DataManagerは、課員情報を管理するクラスです。内部のVector変数で一つ以上のUserRecordクラス(課員一人の予定データを格納するクラス)のインスタンスを保持します。任意のUserRecordのインスタンス書き換えが可能です。

UserRecordは、「名前」、「行き先」、「帰社時間」、「メモ」の一組のデータを保持するクラスです。すべての項目の書き換えが可能です。

DataManagerクラスが各レコード(UserRecord)を要素とするVector型で管理しています。データ保持の主体はUserRecordです。ビジネスクラスでは、全課員の行動予定データの参照・更新はDataManagerに対して行います。

3 行動予定表データの復元と保存

行動予定表アプリケーションは、初期化時に、ファイルからシリアライズ(オブジェクトをストリームに変換する動作のこと)された行動予定表データを読み込み、復元を行います。行動予定表アプリケーションは、「予定表更新」ボタンを押すごとにDataManagerのインスタンスをシリアライズしてファイルに保存します。

この動作により、常に最新の予定が保存されます。上記の処理は、以下のタイミングで行われます。

処理内容

処理が行われるタイミング

行動予定表データの読み込み

ビジネスクラスのstartupメソッドが呼ばれたとき

行動予定表データの保存

ビジネスクラスのupdateUserScheduleメソッドが呼ばれたとき

4 データBeanとScheduleModel, UserModelクラスの関係

データBeanは入出力ページが一覧を表示できるように、ScheduleModelとUserModelを直接入出力ページに渡します。データBeanはこれらクラスをset,getするメソッドを実装する必要があります。データBeanとそれぞれの扱うクラスの関係は以下のとおりです。

データBean

扱うクラス

クラスの説明

ScheduleBean

TableView

行動予定一覧を表示するためのクラス

UserScheduleBean

FieldString,FieldLong,FieldTextArea

行動予定一覧を表示するためのクラス

ProfileBean

ComboBox

課員選択を表示するためのクラス

上記表に基づきデータBeanに対応するクラスの入出力メソッドを実装します。実装方法については、“3.3.4 入出力ページの作成”を参照してください。

5 内部構造の説明

ここでは簡単にデータの流れとデータ形式の説明します。各オブジェクトの関係図は以下のとおりです。矢印の向きはデータの流れをあらわします。

シリアライズはビジネスクラスが保持するDataManagerのインスタンスについて、更新のたびに行われます。以下は上記の図に出てくる各コンポーネントの説明です。

入出力ページの機能説明

入出力ページ名

説明

title.jsp

画面の一番上のタイトルを表示する入出力ページ

usermenu.jsp

課員一覧を表示して選択する入出力ページ

table.jsp

行動予定一覧を表示する入出力ページ

userschedule.jsp

課員ごとの行動予定を表示・編集できる入出力ページ

データBeanの機能説明

データBean名

説明

TitleBean

タイトルに表示する今日の日付を保存するBean

ProfileBean

課員一覧情報を保存するBean

ScheduleBean

行動予定表情報を保存するBean

UserScheduleBean

各課員の項目情報を保存するBean

データの流れは、矢印で表しています。矢印の向きはデータの流れる方向を表しています。両方向の矢印は、データの流れが双方向であることを示し、単方向の矢印は、入力か出力かのどちらかを示しています。

ビジネスクラスである、BoardHandler内では、startup, showUserSchedule,updateUserScheduleの各メソッドが呼ばれるたびに、BoardApplication内部に格納しているDataManagerを用いてデータBeanに値を設定しています。データBeanと入出力ページ間のデータのやり取りは、ページの遷移とともに自動的に行われます。