Developer Tools
JDeveloper
目的
このチュートリアルでは、ページ・ナビゲーションを完成さ せるためのページのリンク方法や、ユーザー・インタフェースの強化について解説します。
所要時間
約30分
このチュートリアルでは、以下のトピックについて説明します。
スクリーンショットの表示
|
このアイコンの上にカーソルを置くか、[Alt]を押しながら[A](Firefoxでは [Alt]と[Shift]を押しながら[A])を押すと、すべ てのスクリーンショットがロードし、表示されます。 各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。 |
アプリケーションのページの一部を構築してページ・フローを設計しましたが、ページはほかのページ に対し、まだ独立して(関連づけられていない状態で)存在しています。 そこで、ページ・フロー・ダイアグラムを使用して、前に設計したページ・フローのナビゲーション・ケースと同じ名前をもつページにアクションを追加し、 ページ・フローを実装します。 ナビゲーション・ケースは、その名前のイベントがページ内で発生したとき、どこにナビゲートするかをアプリケーションに伝えるものです。 このほか、カスタマを作成および編集する機能や、カスタマ・データをコミットまたはロールバックする機能を追加します。 また、いくつかのテキスト入力フィールド、チェック・ボックス、ラジオ・ボタン、およびドロップダウン・リストに変更を加え、ユーザー・インタフェースを 強化します。
すでに基本的な機能はページに配置されているため、利便性の高いインタフェースの開発に専念するこ とにします。 まず、データのコミットやロールバックなどの特別な機能を追加します。 また、データ入力作業を簡単にするため、いくつかGUI制御を追加することにしました。 さらに、新規カスタマが追加されない限り、CustomerIDフィールドを編集不可にします。これは、CustomerIDがカスタマ・データの重要な 鍵であり、既存のCustomerIDが変更されることがあってはならないからです。
このチュートリアルを始める前に次のことを確認してください。
前のハンズオン・チュートリアルにある前提条件を満たしていること。
このチュートリアルの前のハンズオン・チュートリアルを終了していること。
このアプリケーショにおいて、browseCustomersページは、ユーザーの開始ポイン トとしての役割を果たします。このページからは編集する行を選択できます。 editCustomersページでは、行の編集と挿入の両方をおこなうことが可能です。
このチュートリアルのセクションでは、ページ・フロー・ダイアグラムですでに作成した、ナビゲー ション・ケースに対応するイベントを起動するボタンを、browseCustomersページに追加します。
1.1. 新規ページを起動するための編集アクションを追加する
Submitリンクに編集アクションを追加するには、次の手順を実行しま す。
ビジュアル・エディタで「 browseCustomers」を開き、新しく リンクを 追加します。
プロパティ・インスペクタで、Textプロパティの値として Edit Customerを入力します。 「 Action」プロパティを選択して、ドロップダウン・リストから「 editCustomers」 を選択します。
注:フィールドにActionプロパティ値を入力するだけでも構いませんが、Actionプロパティのテキストはかならず adfc-config.xmlファ イルのナビゲーション・ケースに対応する From Outcomeプロパティのテキストと一致していなければなりませ ん。
Webページをテストするには、「 browseCustomers」を選択して右クリックし、コンテキ スト・メニューから「 Run」を選択します。
ブラウザで編集する列をクリックして顧客を選択し、「 Edit Customers」をクリックしま す。
新規ページがbrowseCustomersページで選択した CustomerIdを返すことを確認し てください。
終了したら、ブラウザを閉じます。
1.2. マスター/ディテール・ページを起動するShow Ordersボタンを追加する
ページにあるShow Ordersボタンは、選択したカスタマの順番を表示するために、browseCustomerOrdersページをコールします。 ナビゲーション・プロパティに対応するボタンを追加するには、次の手順を実行します。
ビジュアル・エディタでbrowseCustomersページが開かれていることを確認してください。 「 Component Palette」タブに切り替えて、ドロップダウン・リストから「 ADF Faces」を選択しま す(コンポーネント・パレットが表示されていない場合は、「 View」→「 Component Palette」を選択してください)。
「 Link」コンポーネントを選択して、ページ内の Edit Customerリ ンクの真横へドラッグします。
作成したリンクを選択します。
プロパティ・インスペクタで、Textプロパティを Show Ordersに設定します。 「 Action」 プロパティを選択して、ドロップダウン・リストから「 browseOrders」を選択します。 前回と同様に、 Actionプ ロパティのテキストは、ページ・フロー・ダイアグラムのナビゲーション・コントロールで入力したものと一致している必要があります。
Save All「
」をクリックするか、「
File」→ 「
Save All」を選択して作業内容を保存します。
browseCustomersページを実行して、変更をテストします。
CustomerId 101を検索して選択します(CustomerIdは、列ヘッダーをクリッ クして順序を変更したり、101と入力して[Return]キーを押すことでフィルタリングしたりすることができます)。
「 Show Orders」をクリックします。
終了したら、ブラウザを閉じます。
ラジオ・グループは、フィールドに入力できる有限値のセットを制限することで、データ・エラー を防ぎます。 editCustomersページのGenderフィールドは、M値およびF値のみを受けつけるので、ラジオ・ボタン・グループへ変換するのに最適です。
Genderフィールドをラジオ・ボタン・グループに変更するには、次の手順を実行します。
ビジュアル・エディタで editCustomersページを開きます。
ビジュアル・エディタで「 Gender」フィールドを選択します。 右クリックして、「 Delete」 を選択します。
これによって、Genderのテキスト・フィールドは削除されます。
ビジュアル・ページ・エディタで選択した各アイテムは、Structureウィンドウでも選択されることに注意してください。 ビジュアル・ページ・エディタで「 DateOfBirth」を選択します。これによって、Structureウィンド ウでもハイライトされます。 データ・コントロール・パレットに戻り、「 CustomersView1」を選択しま す。
「 Gender」を選択し、Structureウィンドウにドラッグして、DateOfBirthの 下にドロップします。 プロンプトが表示されたら、コンテキスト・メニューで「 Single Selections」 →「 ADF Select One Radio」を選択します。
リスト・バインド・エディタが開きます。 「 Fixed List」を選択します。
基本データソース属性で、「 Gender」を選択します。
Mおよび Fを、Set of Valuesの下の行にそれぞれ入力します。 "No Selection" Itemドロップダウン・リストから「 Selection Required」を選択します。
「 OK」をクリックします。
editCustomersページに、ラジオ・アイコンが1つ含まれました。
ページをテストするには、editCustomersページを実行します。 Genderは、ラジオ・ボタン・グループとして表示されます。
終了したら、ブラウザを閉じます。
チェック・ボックスは、簡単なブール値を選択するようユーザーを制限します。 editCustomersページの Marital Statusフィールドは、既婚または未婚のブール値を示すもの で、チェック・ボックスへ変換するのに最適です。
MaritalStatusフィールドをチェック・ボックスへ変更するには、次の手順を実行します。
ビジュアル・エディタの editCustomersページに戻ります。
ビジュアル・エディタで「 Marital_status」フィールドを選択します。 右クリックして、「 Delete」を選択します。
データ・コントロール・パレットで「 CustomersView1」を選択し、展開します。 MaritalStatusを選択し、Structureウィンドウにドラッグして、Genderラジオ・アイテムの下にドロップします。 プロンプトが表示されたら、コンテキスト・メニューで「 Single Selections」→「 ADF Select Boolean Checkbox」を選択します。
ブール・バインド・エディタが開きます。
データ・コレクションで CustomersView1、 属性で MaritalStatusが それぞれ選択されていることを確認してください。
State ValueおよびUnselected State Valueで、 Marriedおよび Unmarried をそれぞれ追加し、「 OK」をクリックします。
Save All「
」をクリックするか、「
File」→ 「
Save All」を選択して作業内容を保存します。
ページをテストするには、editCustomersページを実行し、選択した顧客の Marital statusを 確認します。
終了したら、ブラウザを閉じます。
ドロップダウン・リストは、選択可能な値のリストをユーザーに提供する便利な機能です。 IncomeLevelの場合、可能な値の定義セットが用意されています。 値の入力は面倒な作業で、入力間違いや無効値の設定などを招くことがあります。そのため、ドロップダウン・リストから値を選択したり更新したりできること が理想的です。 この場合、ハードコード値に基づいてリストを作成します。
IncomeLevelフィールドをドロップダウン・リストに変更するには、次の手順を実行しま す。
ビジュアル・エディタの editCustomersページに戻ります。 ほかの2つのフィールドと同様に、ビジュアル・エディタで「 IncomeLevel」フィールドを選択します。
データ・コントロール・パレットから「 CustomersView1」を選択して展開し、「 IncomeLevel」 を選択してStructureウィンドウにドラッグします。 MaritalStatusの直下にドロップして、プ ロンプトが表示されたら「 Single Selections」→「 ADF Select One Choice」を選択します。
リスト・バインド・エディタが開きます。 「 Fixed List」を選択します。
Base Data Source Attributeで、「 IncomeLevel」を選択します。
"No Selection" Itemドロップダウン・リストから「 Selection Required」 を選択します。
Set of Valuesには、以下の値をそれぞれ別の行に入力します。
A: Below 30,000
B: 30,000 - 49,999
C: 50,000 - 69,999
D: 70,000 - 89,999
E: 90,000 - 109,999
F: 110,000 - 129,999
G: 130,000 - 149,999
H: 150,000 - 169,999
I: 170,000 - 189,999
J: 190,000 - 249,999
K: 250,000 - 299,999
L: 300,000 and above
「 OK」をクリックします。
注:この作業をオンライン上で実施している場合、 コピーおよび 貼 付け機能を利用して上記のリストを活用できます。
アプリケーションをテストするには、 editCustomersページを実行します。 IncomeLevelが、 ドロップダウン・リストとして表示されます。
終了したら、ブラウザを閉じます。
editCustomersページを作成した際に、デフォルトのボタンは作成しませんでした。 ここでは、Createボタンなどのデフォルト・ボタンを追加して、ページの機能を拡張する方法を学習します。 最終的には、前項と同様にCommitボタンとRollbackボタンを追加します。
Createボタンをページに追加するには、次の手順を実行します。
ビジュアル・エディタの editCustomersページに戻ります。
ボタンを作成するには、まず「 PanelGroup Layout」コンポーネントをドラッグしてフッ ター・ファセットにドロップし、ボタンを配置します。
既存のSubmitボタンを Panel Group Layout内に配置します。
データ・コントロール・パレットで「 CustomersView1」を選択し、展開します。 CustomerView1の子ノードである「 Operations」ノードを展開します。 「 Create」 操作を選択します。
ページのSubmitボタンの前に Create操作をドラッグします。 プロンプトが表示されたら、コンテキスト・メニューから「 ADF Button」を選択します。
データ・コントロール・パレットに戻り、「 CustomersView1」を閉じてから、 CustomersView1と 同じレベルにある「 Operations」ノードを展開します。
「 Commit」操作を選択してページにドラッグし、Submitボタンの隣にドロップします。 プロンプトが表示されたら、コンテキスト・メニューから「 ADF Button」を選択します。
Rollbackボタンについても同様の作業をおこない、Commitボタンの隣にドロップします。
Save All「
」をクリックして作業内容を保存します。
ユーザーから"Submit"よりも"Apply Changes"の方が好ましいという要望があったので、Submitボタンのテキストを変更します。 変更するには、「 Submit」 ボタンを選択して、プロパティ・インスペクタでTextプロパティを Apply Changesに変更します。
アプリケーションをテストするには、editCustomersページを実行します。
従業員の名前を変更して、変更を取り消すために「 Rollback」をクリックします。
新規カスタマを作成し、「 Apply Changes」をクリックしてデータベースに変更を送信しま す。 「 Commit」をクリックして、データベースのレコードを更新します。
終了したら、ブラウザを閉じます。
ここまでで、新しい制御やボタンの追加によるeditCustomersページの強化が終了し ました。 次は、この画面の使用を終了したユーザーが、browseCustomersページへ戻れるように設定します。 このためには、Cancelボタンを追加するか、Commitボタンにナビゲーション・アクションを追加することで送信後に戻るよう設定できます。
browseCustomersページに戻るためのナビゲーションを有効にするには、次の手順を実 行します。
このチュートリアルの前半で、ボタンのActionプロパティ値は、ページ・フロー・ダイアグラムのナビゲーション・ケースにおけるテキス トと一致しなければならないと説明しました。
adfc-config.xmlファイルからページ・フロー・ダイアグラムを開きます(Applicationツリーで「 ViewController」ノードを開き、ファイルを検索します)。
editCustomerページからbrowseCustomersページに戻るための cancelお よび commitナビゲーション・フローがあることを確認します。
ビジュアル・エディタの editCustomersページに戻ります。 コンポーネ ント・パレットのドロップダウン・リストで、「 ADF Faces」が選択されていることを確認し ます。
Buttonを選択して、ページ内の Rollbackボタンのすぐ 隣へドラッグします。
新規ボタンが選択されていることを確認します。 プロパティ・インスペクタで、Textプロパティの値として Cancelを 入力します。
Actonプロパティを選択し、ドロップダウン・リストから「 cancel」を選択します。
ビジュアル・エディタで「 Commit」ボタンを選択して、プロパティ・インスペクタのActionプ ロパティ値とナビゲーション・フローの値が一致していることを確認します。 ドロップダウン・リストの値は、ナビゲーション・フローの値です。 データを送信してbrowseCustomersページに戻るには、フロー値を選択する必要があります。 同様の方法で、Action Cancelを Cancelボ タンに割り当てます。
アプリケーションをテストするには、browseCustomersページをページ・フロー・ダイアグラムから実行します。
カスタマを選択し、「 Edit Customers」をクリックします。 従業員の名前を変更して、「 Cancel」 をクリックします。 これにより、カスタマ・ページに戻り、変更が加えられていないことを確認します。
再度カスタマを変更し、今度は「 Apply Changes」をクリックしてから「 Commit」 をクリックします。 データが送信され、 Customersページに戻ります。
終了したら、ブラウザを閉じます。
カスタマを編集する際、 CustomerIDも編集可能に なります。 一般的に、このフィールドは新規レコードに対してのみ編集可能となることが望まれます。 これはアプリケーションのモデル内で設定でき、ユーザー・インタフェースに自動的に反映されます。
新規レコードでのみCustomerIDを編集可能にするには、次の手順を実行します。
作業中のOrderEntryアプリケーションで、「 Model」プロジェクトを展開し、エンティ ティ・オブジェクトを表示します。
Customersダイアログのエンティティ・オブジェクトをダブルクリックし、エンティティ・オブ ジェクト・エディタを開きます。
属性ツリーを開き、「 CustomerId」を選択します。
Updatableフィールドで While Newと設定し、「 OK」 をクリックします。
Save All「
」をクリックするか、「
File」→ 「
Save All」を選択して作業内容を保存します。
アプリケーションをテストするには、browseCustomersページを実行します。
カスタマを選択し、「 Edit Customers」をクリックします。
editCustomersページで、CustomerIDフィールドの編集ができないことを確認します。
「 Create」をクリックして、新しいカスタマ・レコードを追加します。 新規レコードのCustomerIDフィールドが編集可能であることを確認します。
終了したら、ブラウザを閉じます。
このチュートリアルでは、ユーザー・インタフェースを拡張しました。 チェック・ボックス、ラジオ・グループ、ドロップダウン・リストなどの制御機能を使用してユーザー・インタフェース を拡張する方法と、アクションをナビゲーション・イベントとリンクさせる方法について学習しました。
また、データベースの編集、更新、変更を適用するための小さなWebアプリケーションの構築をおこないました。 このほかにも、ページ間の簡単な移動や、選択した特定のレコードのパラメータの受け渡しが可能になりました。
このアイコンの上にカーソルを置くか、または[Shift]と[Alt]を押しながら[H]を押 すと、すべてのスクリーンショットが非表示になります。 アイコンをクリックして、ナビゲーション・バーを表示します。
| |
|
|