ステップ4: ビュー・オブジェクトの作成

Previous topic
前へ
Next topic
次へ

前述したように、ビュー・オブジェクトは通常トップダウンで開発されます。つまり、ビュー・オブジェクトを作成する前に、どのようなUIが存在するかを考えます。このアプリケーションでは、作業の基本となるUIの最終スケッチをデザイン部門がまだ作成していないが、フィールドは表に定義されていると考えます。

「Order Date」などのいくつかのフィールドは読取り専用ですが、「Quantity」のようにいくつかのフィールドはユーザーがデータを入力する必要があります。UIにある各フィールドは、ビュー・オブジェクトの属性にマップされます。これを示すために、次の表にはUIフィールド、ビュー・オブジェクト、属性、属性型に関する注意がリストされています。

UIフィールド ビュー・オブジェクト 属性 属性の説明
Line Item Number OrderItemsView OrderItemId OrderIdと複合主キー
Product ID OrderItemsView ProductID このフォームでは読取り専用の属性
Price OrderItemsView UnitPrice このフォームでは読取り専用の属性
Quantity OrderItemsView Quantity ユーザーにより入力された数値
Order Number OrdersView OrderId DBの順序により生成される主キー
Date OrdersView OrderDate Javaコードで生成された日付
モード OrdersView OrderMode directまたはonlineのいずれかの文字列
CustomerId OrdersView CustomerId Customersエンティティの外部キー
Status OrdersView OrderStatus 0から10の数値
Total OrdersView OrderTotal 計算された属性
First Name OrdersView CustFirstName Customersからの関連フィールド
Last Name OrdersView CustFirstName Customersからの関連フィールド

OrderItemsに対するビュー・オブジェクトを最初に作成し、次にOrdersに対するビュー・オブジェクトを作成します。

OrderItemsViewビュー・オブジェクトを作成するには、次のようにします。

  1. システム・ナビゲータでパッケージ・ノードを右クリックし、ポップアップ・メニューから「新規ビュー・オブジェクト」を選択します。
  2. 「初期画面」ページで、「次へ」をクリックします。
  3. 「名前」ページでOrderItemsViewと入力し、「次へ」をクリックします。
  4. 「エンティティ・オブジェクト」ページで、「使用可能」ペインから「OrderItems」を選択し、「選択済」ペインに移動します。「次へ」をクリックします。
  5. 「使用可能」ペインの「OrderItems」の下のすべての属性を、「選択済」ペインに移動します。
  6. 「終了」をクリックします。

これで、OrderItemsビュー・オブジェクトに、OrderItemsエンティティ・オブジェクトのすべての属性が含まれました。

このトピックの前の演習では、ビュー・オブジェクトとエンティティ・オブジェクトは1:1の関係にあるように説明されていたかもしれません。実際には、そうではありません。ビュー・オブジェクトは、複数のエンティティ・オブジェクトの属性を(またはその他のデータソースの属性でさえ)取得できます。次の演習では、OrdersViewビュー・オブジェクトを作成し、それにCustomersエンティティ・オブジェクトのCustFirstNameおよびCustLastNameが含まれるように指定します。これにより、注文を見ると、ID番号だけでなく、顧客のファースト・ネームとラスト・ネームを得ることができます。

OrdersViewビュー・オブジェクトを作成するには、次のようにします。

  1. システム・ナビゲータでパッケージ・ノード(「onlineOrders」)を右クリックし、ポップアップ・メニューから「新規ビュー・オブジェクト」を選択します。
  2. 「初期画面」ページでその内容を確認し、「次へ」をクリックします。
  3. 「名前」ページの「名前」フィールドにOrdersViewと入力し、「次へ」をクリックします。
  4. 「エンティティ・オブジェクト」ページで、「使用可能」ペインから「Orders」エンティティ・オブジェクトを選択し、「選択済」ペインに移動します。
  5. 「使用可能」ペインから「Customers」を選択し、「選択済」ペインに移動します。「読取り専用」チェックボックスおよび「参照」チェックボックスの両方が選択されていることを確認します。最初のエンティティ・オブジェクトが追加された後、その後のすべてのエンティティ・オブジェクトは、フレームワークによりデフォルトで読取り専用および動的参照に設定されます。これはこのアプリケーションでの好ましい動作なので、何も変更する必要はありません。(これらの機能の詳細は、「ヘルプ」をクリックしてください。)
  6. 「次へ」をクリックします。
  7. 「属性」ページで、「使用可能」ペインから「Orders」の下のすべての属性を、「選択済」ペインに移動します。[Shift]を押しながらクリックすることにより、複数の項目を選択できます。
  8. 「使用可能」ペインから「Customers」ノードの下の「CustFirstName」および「CustLastName」を、「選択済」ペインに移動します。
    主キー属性である「CustomerId」も「選択済」ペインに移動されていることに注意してください。これは、OrdersおよびCustomersの間の結合条件に必要です。
  9. 「終了」をクリックします。
    OrdersViewビュー・オブジェクトが、システム・ナビゲータのパッケージ・ノードの下に表示されます。

ビジネス・ロジック層に、ユーザー・インタフェースからアクセスできる2つのビュー・オブジェクトが追加されました。OrdersViewビュー・オブジェクトには、OrderId、OrderDate、OrderTotal、顧客名など、注文に関する情報が含まれます。OrderItemsViewビュー・オブジェクトには、注文の個々の注文詳細に関する情報が含まれます。このビジネス・ロジック層にアクセスするクライアントを現段階で作成すれば、1件の注文の情報、または注文に含まれる1件の注文詳細の情報を表示することができます。ただし、本当に表示するものは、注文情報および注文に含まれるすべての詳細情報です。これを実装するには、ビュー・リンクを使用して、マスター/ディテール関係を定義する必要があります。

次のステップでは、マスター/ディテール・ビュー・リンクを作成します。