特集
2004/01/20 18:00:00 更新


特集:第3回 サンプルで学ぶCosminexusによる業務指向スタイル開発の流れ (6/7)


画面遷移のシミュレーション

 Application Designerでは、ある程度の画面遷移図を設定し終えると、画面遷移のシミュレーションによって早期にWeb上でのイメージを確認することができます。

 Application Designerのメニューから「画面遷移」→「シミュレーション」を実行すると、画面遷移図の整合性チェックが行われ、開始アイコンが指定する画面がWebブラウザで確認できます(画面11)。

hitachiImage12.gif

画面11■シミュレーション機能により早期に画面遷移やWeb画面イメージを確認できます


 この時点では業務処理プログラムが完全動作をしている必要はありません。ここでは、ユーザー(客先)がイメージする要件定義と異なるようであれば、再度、画面遷移図の定義やWebページレイアウトを見直せばよいのです。

画面連携BeanとJSPファイルの生成

 Webページレイアウトした各画面に対しては、HTMLファイルからJSPファイルへの変換と、画面連携Beanの生成をPage Designerで行います。

 Page Designerのメニューから「Page Designer」→「生成」を選択します。これにより「レポート」パネルが表示されるので、「生成」の項目をチェックして出力先の指定後、「実行」をクリックすると画面連携BeanとJSPファイルが生成されるのです。この出力先はJBuilderのプロジェクトにおける適宜な作業領域を指定しておくと便利です(画面12)。

hitachiImage13.gif

画面12■画面連携Beanとjspファイルが生成されます


画面遷移制御プログラムの生成

 次は、Webアプリケーションの動作を決定づけるプログラムコード実装に移ります。

 画面遷移制御プログラムの生成はApplication Designerを使用します。前述で操作した各Web画面の編集が終了し、シミュレーションで画面遷移図が確定したら、Application Designerのメニューから「画面遷移」→「cFramework用プログラムの生成」を選択します。すると、画面遷移制御プログラムやマッピングファイルが自動的に生成されるのです(画面13)。

hitachiImage14.gif

画面13■画面遷移制御プログラムが自動で生成されます


業務処理プログラム作成その2――画面連携Beanを使う――

 前述の「業務処理プログラムの作成その1」では、Mainクラスを作成し、そのクラスから実行をさせました。その際、実際のWeb上で動作させるためにはMainクラスの代わりになるものが1画面につき(1画面連携Beanにつき)1クラス必要です。このクラスを「業務Bean」と呼びます。追加画面(add)を例にとって業務Beanの記述について説明します(画面14)。

hitachiImage15.gif

画面14■業務Beanのクラス名とメソッド名はPage Designerのプロパティ設定で設定した値に合わせます


 業務Beanに該当するソースを記述します(リスト05-1〜05-04)。この部分こそがプログラミング作業の肝となるわけですが、ここまでの操作では特にJavaの知識を必要とせず、容易にたどり着けたことを思い出してください。

リスト05-1■AddAP.java
package denwa.logic;
import denwa.screen.AddBeanJAVA;
import jp.co.Hitachi.soft.pagedesigner.PageDException;
import java.io.*;
import denwacho.*;

 Page Designerのプロパティ設定で設定したクラス(AddAP)とメソッド(execute)を実装します。

リスト05-2■AddAP.java

public class AddAP {
  public AddAP() {}
  public void execute(AddBeanJAVA accessBean) {
    try {
      if (accessBean.getScreenFlag() == null ||
          accessBean.getScreenFlag().equals("output")) {
        /* メニュー画面から遷移してきたときの処理
        (この画面では何も行わない) */
        accessBean.setScreenFlag("submit");
      } else {
        /* sumbitボタンが押されたときの処理 */
        accessBean.setScreenFlag("output");
        Directory dir = null;
        try {

 Directoryオブジェクトをファイルから復元する部分をコード実装します。

 ここで挙げているコード自体は、要件定義を実現するためにプログラミングされたものです。今回は、開発の流れを感じ取ってもらう目的のため、コード内容各部の詳細は割愛しています。ポイントだけを示しておきましょう。

リスト05-3■AddAP.java
/* Directoryオブジェクトをファイルから復元 */
FileInputStream infile = new FileInputStream("directory.dat");
ObjectInputStream inobject = new ObjectInputStream(infile);
dir = (Directory) inobject.readObject();
inobject.close();
infile.close();
} catch (IOException e) {
/* ファイルがない場合はDirectoryをnewする */
dir = new Directory();
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

 テキストボックスに入力された値は、accessBean(AddBeanJAVAオブジェクト)から取得できます。Page Designerのインタフェース定義で設定した値のアクセサメソッドが作成されるので、入力フィールドから値を取得する場合にはgetXXXX()メソッドを使用します。取得した値を元にEmployeeオブジェクトを作成し、Directoryオブジェクトに追加します。

リスト05-4■AddAP.java

        /* テキストボックスに入力された値の取得 */
        String name = accessBean.getName();
        String ou = accessBean.getOu();
        String tel = accessBean.getTel();
        /* テキストボックスに入力された値を元にEmployeeオブジェクトを作成 */
        Employee emp = new Employee(name, ou, tel);
        /* Directoryオブジェクトに追加 */
        dir.append(emp);
        /* Directoryオブジェクトをファイルに保存 */
        FileOutputStream outfile = new FileOutputStream("directory.dat");
        ObjectOutputStream outobject = new ObjectOutputStream(outfile);
        outobject.writeObject(dir);
        outobject.close();
        outfile.close();
      }
    } catch (PageDException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

前のページ | 1 2 3 4 5 6 7 | 次のページ

[清野泰正,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.