画面を構成する入出力ページにあわせて以下のデータBeanを作成します。これらは直接入出力ページと関連付けがされます。データBean作成においては、データBean生成ウィザードを用います。この項では以下の4つのデータBeanを作成します。
TitleBean
ScheduleBean
UserScheduleBean
ProfileBean
最初にScheduleBeanを例にとり、以下の手順で作成します。
Interstage Studioのメイン画面で、[ファイル]メニューの[新規] > [データBean(Apcoordinator)]を選択します。
以下のダイアログが表示されます。
設定する項目は以下のとおりです。
設定項目 | 設定内容 |
---|---|
プロジェクト名 | "board"(必須・デフォルトで設定されています) |
参照ファイル名 | 設定しません |
パッケージ名 | "board"データBeanのパッケージ名 |
クラス名 | "ScheduleBean"データBeanになるクラス名(必須) |
項目名 | 入出力ページが表示に用いる項目名(入力フィールドの横でラベルとなる) |
プロパティ名 | データBeanおよび入出力ページがデータ入出力に使用するプロパティ名(必須) |
型 | 実際に入出力を行うデータ型(必須)ユーザ定義型も扱うことができます |
次にScheduleBeanに関するプロパティ名一覧を作成します。
プロパティ名 | データBean名 | I/O | データ型 | データの意味 |
---|---|---|---|---|
scheduleTable | ScheduleBean | O | TableView | スケジュール一覧 |
上表に基づきScheduleBeanの項目の定義を行います。
右側にある[追加]ボタンを押すことにより、項目名、プロパティ名、型のそれぞれを追加します。項目名に関しては、あとで入出力ページのひな型作成時に、ここで入力した名前がそのまま項目になります。項目名は、入出力ページの項目名にそのまま使われますが、あとで入出力ページを編集して修正できます。以下はプロパティ名scheduleTableの入力です。
ここで設定する項目は以下のとおりです。
項目 | 入力する文字列 |
---|---|
項目名 | スケジュール一覧 |
プロパティ名 | scheduleTable(最初の文字は小文字で始まること) |
型 | TableView |
新しいインスタンスを作る | チェックしてください。(デフォルトではチェック状態です) |
プロパティ名を入力したあとに[追加]を押すとプロパティが追加されます。
[閉じる]を押すと、以下の画面になります。
[完了]ボタンを押してひな型を作成します。Interstage Studioの左側に、"ScheduleBean.java"が追加されていることを確認してください。
上記を残り3つのBean(TitleBean, ProfileBean, UserScheduleBean)に対して行い、データBeanを作成します。
設定する項目は以下のとおりです。プロパティの項目名には、以下の表の「データの意味」欄の内容を指定してください。
プロパティ名 | データBean名 | I/O | データ型 | データの意味 |
---|---|---|---|---|
today | TitleBean | O | String | 今日の日付 |
username | ProfileBean | I/O | ComboBox | 課員一覧 |
name | UserScheduleBean | O | FieldString | 課員名 |
destination | UserScheduleBean | I/O | FieldString | 行き先 |
hour | UserScheduleBean | I/O | FieldLong | 帰社時間(時) |
minute | UserScheduleBean | I/O | FieldLong | 帰社時間(分) |
memo | UserScheduleBean | I/O | FieldTextArea | メモ |
各データBeanのソースコードは以下のようになります。赤字はひな型作成後に追加した部分です。
TitleBean.java
/* * TitleBean.java * * Copyright(c) */ package board; import java.text.SimpleDateFormat;
import java.util.Date; import com.fujitsu.uji.DataBean; /** * データBeanクラスです。 * * @author * @version */ public class TitleBean extends DataBean { //{{UJIWIZ_GENERATE(DATADEF) //@@UJI-Wizard Information(Bean) //@@今日の日付,today,String //}}UJIWIZ_GENERATE //内部変数 //{{UJIWIZ_GENERATE(DATA) /** todayの変数です。 */ protected String today; private static SimpleDateFormat df = new SimpleDateFormat("M月d日 E曜日"); //}}UJIWIZ_GENERATE // //{{UJIWIZ_GENERATE(GETSET) /** * todayを取得します。 * @return today */ public String getToday() { //return today; synchronized(df) {
return df.format(new Date()); } } /** * todayを設定します。 * @param todya today */ public void setToday(String today) { //this.today = today; throw new UnsupportedOperationException(); } //}}UJIWIZ_GENERATE }
ScheduleBean.java
/* * ScheduleBean.java * * Copyright(c) */ package board; import com.fujitsu.uji.DataBean; import com.fujitsu.uji.compo.*; /** * データBeanクラスです。 * * @author * @version */ public class ScheduleBean extends DataBean { //{{UJIWIZ_GENERATE(DATADEF) //@@UJI-Wizard Information(Bean) //@@スケジュール一覧,scheduleTable,TableView //}}UJIWIZ_GENERATE // //{{UJIWIZ_GENERATE(DATA) /** scheduleTableの変数です。*/ protected TableView scheduleTable = new TableView(); //}}UJIWIZ_GENERATE // コンストラクタ
public ScheduleBean(DataManager dm){
update(dm);
}
public void setScheduleTable(TableView scheduleTable){
this.scheduleTable = scheduleTable;
}
// //{{UJIWIZ_GENERATE(GETSET) /** * scheduleTableを取得します。 * @return scheduleTable */ public TableView getScheduleTable() { return scheduleTable; } //}}UJIWIZ_GENERATE public void update(DataManager dm){
scheduleTable = new TableView();
scheduleTable.setHeader(new String[]{"名前","行き先","帰社時間","メモ"});
for(int i=0; i < dm.getRecordCount() ; i++){
scheduleTable.setValueAt(dm.getRecord(i).getName(),i,0);
scheduleTable.setValueAt(dm.getRecord(i).getDestination(),i,1);
String time = getTime(dm.getRecord(i));
if(time == null){
scheduleTable.setValueAt("",i,2);
} else {
scheduleTable.setValueAt(time.toString(),i,2);
}
scheduleTable.setValueAt(dm.getRecord(i).getMemo(),i,3);
}
}
private String getTime(UserRecord ur){
StringBuffer buf = new StringBuffer();
if(ur.getHour().equals("")){
return null;
}
buf.append(ur.getHour());
buf.append("時");
if(ur.getMinute().equals("") || ur.getMinute().equals("0")){
buf.append("00");
} else {
buf.append(ur.getMinute());
}
buf.append("分");
return buf.toString();
} }
ProfileBean.java
/* * ProfileBean.java * * Copyright(c) */ package board; import com.fujitsu.uji.DataBean; import com.fujitsu.uji.compo.*; public class ProfileBean extends DataBean { //{{UJIWIZ_GENERATE(DATADEF) //@@UJI-Wizard Information(Bean) //@@課員一覧,username,ComboBox //}}UJIWIZ_GENERATE // //{{UJIWIZ_GENERATE(DATA) protected ComboBox username = new ComboBox(); //}}UJIWIZ_GENERATE // //{{UJIWIZ_GENERATE(GETSET) public ComboBox getUsername() { return username; } //}}UJIWIZ_GENERATE // コンストラクタ
public ProfileBean(DataManager dm){
int userCount = dm.getRecordCount();
String[] users = new String[userCount];
for(int i=0; i < userCount; i++){
users[i] = dm.getRecord(i).getName();
}
username = new ComboBox(users);
}
public void setUsername(ComboBox username){
this.username = username;
} }
UserScheduleBean.java (変更なし)
/* * UserScheduleBean.java * * Copyright(c) */ package board; import com.fujitsu.uji.DataBean; import com.fujitsu.uji.compo.*; /** * データBeanクラスです。 * * @author * @version */ public class UserScheduleBean extends DataBean { //{{UJIWIZ_GENERATE(DATADEF) //@@UJI-Wizard Information(Bean) //@@課員名,name,FieldString //@@行き先,destination,FieldString //@@帰社時間(時),hour,FieldLong //@@帰社時間(分),minute,FieldLong //@@メモ,memo,FieldTextArea //}}UJIWIZ_GENERATE // //{{UJIWIZ_GENERATE(DATA) /** nameの変数です。 */ protected FieldString name = new FieldString(); /** destinationの変数です。 */ protected FieldString destination = new FieldString(); /** hourの変数です。 */ protected FieldLong hour = new FieldLong(); /** minuteの変数です。 */ protected FieldLong minute = new FieldLong(); /** memoの変数です。 */ protected FieldTextArea memo = new FieldTextArea(); //}}UJIWIZ_GENERATE // //{{UJIWIZ_GENERATE(GETSET) /** * nameを取得します。 * @return name */ public FieldString getName() { return name; } /** * destinationを取得します。 * @return destination */ public FieldString getDestination() { return destination; } /** * hourを取得します。 * @return hour */ public FieldLong getHour() { return hour; } /** * minuteを取得します。 * @return minute */ public FieldLong getMinute() { return minute; } /** * memoを取得します。 * @return memo */ public FieldTextArea getMemo() { return memo; } //}}UJIWIZ_GENERATE }