このチュートリアルでは、Oracle ADF Faces Rich Clientコンポーネントを使用してJSFページを作成する方法について説明します。Oracle ADF Faces Rich Clientは、Ajaxやその他のUIテクノロジーによるインタラクティブ機能が組み込まれている標準JSFコンポーネントのセットです。Ajaxを利用すると、標準インターネット・テクノロジー上でリッチ・クライアントのようなアプリケーションを実行でき、JSFが提供するサーバー側コントロールを利用すると、一般的なAjaxアプリケーションによくみられる大量のJavaScriptへの依存を軽減できます。
詳細を表示/非表示詳細表示
目的 所要時間 アプリケーション

このチュートリアルでは、ページ・テンプレートに基づいてページを開発する方法を説明します。続いてレイアウトの設計、データ・コンポーネントの追加、およびページのルック・アンド・フィールの変更を行います。「Download」ボタンをクリックして、このチュートリアルで使用するスタータ・アプリケーションのzipファイルをダウンロードします。

このファイルには2個のzipファイル(ADF_Faces_Tutorial_Starter.zipとADF_Faces_Tutorial_Solution.zip)が含まれます。1つにはスタータ・アプリケーション、もう1つには完成したソリューションが付属しています。

2~2.5時間 labs.zipのダウンロード
ステップ1:ページ・テンプレートの作成

このセクションでは、スタータ・アプリケーションを開いて、作成予定の追加ページに使用するページ・テンプレートを作成します。ページ・テンプレートを作成するには、以下の手順を実行します。

ページ・テンプレートを使用して、ページ・レイアウト全体(ページの特定の属性値を含む)を定義できます。詳細を表示/非表示詳細表示

  1. Applicationsウィンドウで「Open Application」をクリックします。

    ナビゲータ中の新規アプリケーション
  2. Open Application(s)ダイアログで、アプリケーションの解凍先フォルダを見つけて「ADF_Faces_Tutorial.jws」を選択します。「Open」をクリックします。


    アプリケーション・ウィンドウを開く


  3. Applicationsウィンドウにアプリケーションがロードされます。

  4. Applicationsウィンドウで、「View Controller」プロジェクトを右クリックして、コンテキスト・メニューから「New」→「ADF Page Template」を選択します。

    新しいコンテキスト・メニュー

  5. Create ADF Page Templateダイアログで、テンプレート・ファイル名にstoretemplate.jsfと入力します。「Next」をクリックします。

    ADFテンプレート・ページの作成

    Next」を再度クリックして、空のテンプレートからテンプレートを作成します。

  6. Facet DefinitionsタブでAddSave All」ボタンをクリックし、ファセットのNameにcenterを入力します。

    テンプレート上のファセット定義
  7. Attributes」セクションでAddSave All」ボタンをクリックして、Nameにtitle、Default ValueにDefault Titleを入力します。


    テンプレート上の属性

    Next」、「Finish」の順にクリックしてテンプレートの作成を完了します。

    設計エディタでstoretemplate.jsfテンプレート・ページが開きます。

    設計ビューのsimpleテンプレート

  8. ADF Faces Componentsウィンドウの「Layout」ノードを開いて、「Decorative Box」を設計ビューの空のページにドラッグします。



    Decorative Box

    PropertiesウィンドウのStyle and Themeカテゴリで、Themeプロパティを「light」に設定します。

    プロパティ・インスペクタのスタイル設定

  9. Decorative Boxには2つのファセットがあり、設計ビュー内では破線と'top'、'center'という単語で表示されます。ComponentsウィンドウのLayoutカテゴリから、「Panel Grid Layout」をtopファセットにドラッグ・アンド・ドロップします。

    テンプレートのtopファセット上のパネル・グリッド・レイアウト

  10. Panel Grid Layoutダイアログ・ボックスで、列を「2」、行を「1」に設定して「Next」をクリックします。

    列と行の設定
  11. 列1のグリッド幅を250ピクセル(px)、列2のグリッド幅を100ピクセル(px)に設定して「Finish」をクリックします。

    列幅のプロパティの設定

  12. Applicationsウィンドウで、「Web Content」ノードと「images」ノードを展開します。「branding_logo.jpg」をパネル・グリッド・レイアウトの最初のセルにドラッグします。

  13. ページへのイメージの追加

    メニューで、「ADF Faces Image」を選択します。

    ADF Facesイメージの挿入

  14. ComponentsウィンドウのText and Selectionセクションから、パネル・グリッド・レイアウトの2番目のグリッド・セルに「Output Text」コンポーネントをドロップします。

    テンプレートに追加された出力テキスト

  15. これは、レイアウト内のコンポーネントの配置場所が正確にわからない場合です。出力テキスト・コンポーネントの配置を確認するには、「Structure」ウィンドウを展開し、af:outputTextコンポーネントを見つけます。

    必要に応じてStructureウィンドウ内でドラッグ・アンド・ドロップし、af:outputTextコンポーネントが2番目のaf:gridCellコンポーネント内に配置されていることを確認します。

    Structureウィンドウでの要素の編成

  16. Structureウィンドウまたはビジュアル・エディタで、「outputText」コンポーネントを選択します。PropertiesウィンドウでValueプロパティを見つけます。「Property Menu」アイコンをクリックして、「Expression Builder...」を選択します。

    Expression Builderの起動

  17. Expression Builderダイアログで「Scoped Variables」と「attrs」を展開し、「title」を選択して式を「#{attrs.title}」に設定します。
    OK」をクリックします。

    Expression Builderで値を#{attrs.title}に設定

  18. Componentsウィンドウで「Layout」ノードを展開し、Core Structureセクションまでスクロール・ダウンします。「Facet Definition」をcenterファセットにドラッグ・アンド・ドロップします。

    テンプレートにファセットを追加

    Insert Facet Definitionダイアログで、ファセット名として「center」を選択し、「OK」をクリックします。

    ファセット名を'center'に
  19. JDeveloperメニュー・バーのSave All」アイコンをクリックするか、メニューから「File」→「Save All」を選択してページを保存します。

ステップ2:ページ・テンプレートを使用したページの設計

テンプレートを作成したら、新しいページを作成し、ページのデフォルト構造としてテンプレートを使用できます。次のステップを実行します。

ページ・テンプレートを使用して、JSFページやページ断片を構築できます。詳細を表示/非表示詳細表示
  1. ViewController」プロジェクトを右クリックして、「New」→「Page...」を選択します。

    アプリケーション・ナビゲータからのNew Galleryの起動
  2. Create JSF Pageダイアログで、ファイル名を「products.jsf」に変更し、Document Typeが「Facelets」に設定されていることを確認します。「Reference ADF Page Template」ラジオ・ボタンを選択して、「Storetemplate」テンプレートを選択します。「OK」をクリックします。

  3. テンプレートの使用を含むページ定義の指定

  4. Applicationsウィンドウに新規ノードとしてproducts.jsfが表示され、storetemplate.jsfテンプレートを使用するDesignエディタが開きます。

  5. 設計ビューに表示されるページ

    設計エディタで視覚的にレンダリングされず、一連のネストされたボックスが表示される場合は、ワークスペースを閉じてもう一度開きます。

  6. Componentsウィンドウから、「Layout」ライブラリを展開し、「Panel Splitter」コンポーネントをcenterファセットにドラッグ・アンド・ドロップします。

    panelsplitterのcenterファセットへの追加

    ADF Facesには、Panel Splitterの他にも、ページ上のその他のコンポーネントの配置に使用できるレイアウト・コンポーネントが多数あります。詳細を表示/非表示詳細表示
  7. Panel Accordion」レイアウト・コンポーネントを、パネル・スプリッタの左側の'first'ファセットにドラッグ・アンド・ドロップします。



  8. Panel Accordionを最初のファセットに挿入

    Panel Accordionコンポーネントがファセットに追加され、ネスト化されたShow Detail Itemも作成されて、アコーディオンの最初のペインのコンテンツが保持されます。

  9. 構造ビューまたは設計ビューで「showDetailItem」を選択し、PropertiesウィンドウのCommon領域でshowDetailItemのTextを「My Cart」に設定します。

    Panel Accordionを最初のファセットに挿入

  10. 他のペインをアコーディオンに追加します。この操作を実行するには、構造ビューまたは設計ビューで「My Cart showDetailItem」を右クリックして「Insert After Show Detail Item」→「Show Detail Item」を選択するか、構造ビューまたは設計ビューで「panelAccordion」を右クリックし、「Insert Inside Panel Accordion」→「Show Detail Item」を選択します。

    showDetailItemからのshowDetailItemの挿入

    panelAccordionからのshowDetailItemの挿入

  11. Propertiesウィンドウで、Textプロパティを「Recommendations」に変更します。

    showDetailItemラベルのRecommendationsへの変更

  12. 別の「Panel Splitter」コンポーネントを、パネル・スプリッタのsecondファセットにドラッグ・アンド・ドロップします。Structureウィンドウを使用して、このアクションを実行したい場合もあるかもしれません。

  13. 別のパネル・スプリッタの追加

  14. Propertiesウィンドウを使用して、このネストされたパネル・スプリッタのOrientationを「vertical」に設定します。

    Orientaionをverticalに設定

  15. Panel Collection」コンポーネントを、ネストされた垂直パネル・スプリッタのfirstファセットにドラッグ・アンド・ドロップします。ADF Faces Componentsウィンドウでコンポーネントが見つからない場合は、ウィンドウ上部の検索ボックスを使用して検索できます。

    Panel Collectionをfirstファセットに追加

  16. Panel Tabbed」コンポーネントを、パネル・スプリッタのsecondファセットにドラッグ・アンド・ドロップします。このコンポーネントは、LayoutカテゴリのInteractive Containers and Headersグループに表示されます。

     

  17. Structureウィンドウで、Panel Tabbedコンポーネントに自動的に追加された「af:showDetailItem」コンポーネントを選択し、PropertiesウィンドウのTextプロパティにProduct Detailsと入力します。

    Panel TabbedのTextをProduct Detailsに設定
  18. 「Product Details」タブを右クリックし、ビジュアル・エディタで、コンテキスト・メニューから「Insert After Show Detail Item」→「Show Detail Item」を選択します。

    新しいaf:showDetailItemコンポーネントが選択された状態で、PropertiesウィンドウのTextプロパティにRatingを入力します。

    TextプロパティをRatingに設定

  19. products.jsf」タブをダブルクリックして、設計ビューを最大化します。ページは次のイメージのように表示されます。

    ページの設計ビュー

  20. すべての作業内容を保存します。次にページの設計ビューの任意の場所を右クリックし、コンテキスト・メニューから「Run」を選択します。最大化されたビューを切り替えるには、「products.jsf」タブを再度ダブルクリックします。

    設計ビューからページを実行

  21. このページは、統合されたOracle WebLogic Serverにデプロイされると、ブラウザにロードされます(統合されたWebLogic Serverは、JDeveloperからアプリケーションを初めて実行している場合に、インストールおよび構成されます)。タブを選択したり、Recommendationsパネルを開いたりして、操作を試します。終了したら、ブラウザを開いたままJDeveloperに戻ります。

    ブラウザにロードしたページ

  22. 次のステップでは、ページ・タイトルをカスタマイズして、既存ページでどのように使用されるかを確認します。このプロセスを開始するには、設計エディタでstoretemplate.jsfテンプレート・ページを開きます。

    JDeveloperでsimpleページを表示

  23. 設計ビューまたは構造ウィンドウで、タイトルが含まれる「outputText」コンポーネントを選択します。PropertiesウィンドウのStyleノードで、Font Colorプロパティを任意の色(例ではオレンジ色)に設定します。

    タイトルをAquaカラーに設定

  24. Font Sizeプロパティで、ドロップダウン・リストから「large」を選択します。

    titleコンポーネントのサイズをlargeに設定
  25. すべての作業内容を保存します。ブラウザに戻り、ページを再ロードして新しい特性を表示します。

    JDeveloperアプリケーションを保存した後、ブラウザ・ウィンドウをリフレッシュすると、バインディング・コンポーネントを更新していない限り、アプリケーションに加えた新しい変更内容が反映されます。ブラウザに変更内容を反映させるには、JDeveloperから、そのページを再実行する必要があります。

    ブラウザにページを再ロードして、タイトルの新しい特性を表示

  26. 設計エディタで「products.jsf」ページを開きます。Structureウィンドウで「af:pageTemplate」タグを選択し、PropertiesウィンドウでTitleプロパティを「Store Front」に設定します。

    Titleテンプレート属性の更新

  27. すべての作業内容を保存します。次にブラウザにページを再ロードして、新しい特性を表示します。

    ページを再ロードして変更を表示

ステップ3:入力コンポーネントと出力コンポーネントの使用

ページ・レイアウトが完了したら、データを追加します。このプロセスの最初のステップは、Products POJO(Plain Old Java Object)からのデータ・コントロールの作成です。次のステップを実行します。

アプリケーション・サービスの準備ができたら、JDeveloperを使用して、UIコンポーネントとこれらのサービスの宣言的バインドに必要な情報を提供するデータ・コントロールを作成できます。詳細を表示/非表示詳細表示
  1. ADFデータ・バインディング機能を使用して、既存のPOJOクラスからデータ・コントロールを作成します。
    Applicationsウィンドウで「Model」プロジェクトを展開します。「Application Sources」ノードと「model」ノードを展開します。「Products.java」を右クリックして、コンテキスト・メニューから「Create Data Control」を選択します。

    POJOからのデータ・コントロールの作成

  2. Bean Data Controlダイアログの最初のページで、データ・コントロール名を「StoreProducts」に変更して「Next」をクリックします。


    データ・コントロール名の定義

  3. Choose ADF Data Control Featuresページで、「Transactions」と「Custom CRUD」の機能を選択し、「Finish」をクリックします。

    ADF Data Control Featuresの指定

  4. DataControls.dcxファイルが作成され、エディタで開かれます。このレイヤーでUIのヒントと検証を定義できますが、ここではデフォルトのままにして引き続きユーザー・インタフェースを作成します。

    datacontrols.dcxファイル

    products.jsf」タブをクリックして、エディタの前面に移動します。

  5. Applicationsウィンドウで、「Data Controls」アコーディオンを展開し、「StoreProducts」ノードを展開します。Data Controlsパネルの更新アイコンをクリックして、StoreProductsノードを有効化することが必要な場合もあります。

    データ・コントロールの表示

  6. StoreProductsデータ・コントロールの「products」コレクションを、設計エディタのaf:panelCollectionの中央領域にドラッグ・アンド・ドロップします。ポップアップ・メニューから「ADF Table...」を選択します。

  7. ADF Faces表コンポーネントを使用して、行/列で構成される表として構造化データを表示できます。詳細を表示/非表示詳細表示


    ページへの読取り専用の表の追加

  8. Create Tableダイアログで、「Row Selection (Single Row) 」オプションを選択し、「Enable Sorting」と「Read-Only Table」のオプションをクリックします。
    OK」をクリックします。

    Edit Table Columnsダイアログ・ウィンドウ

  9. Structureウィンドウで「af:table」コンポーネントを選択し、Propertiesウィンドウで「Behavior」ノードを展開します。EdtingModeプロパティを「clickToEdit」に設定します。Appearanceノードで、ColumnStretchingプロパティを「last」に設定します。

    ヒント:
    プロパティを名前で簡単に見つけるには、Propertiesウィンドウの上部にある検索フィールドにプロパティ名を入力します。

    EditingModeをclickToEditに変更

    作業内容を保存します。

  10. products.jsfページの設計ビューで、「Product Details」タブを選択して前面に表示します。StoreProductsデータ・コントロールからProduct Detailsタブ・コンポーネントに、「products」コレクションをドラッグ・アンド・ドロップします。ポップアップ・メニューで「ADF Form ...」を選択します。

    Product DetailsタブにADF Formを追加

  11. Create Formダイアログで「Submit」チェック・ボックスを選択して、送信アクションのコントロールを含めます。


    Edit Form Fieldsダイアログ

    OK」をクリックします。

  12. ここで、ADF List Viewコンポーネントを追加します。ListViewコンポーネントでは、oracle.adf.view.rich.model.CollectionModelを使用して基盤となるリストのデータにアクセスします。他のモデル・インスタンス(java.util.List、配列、javax.faces.model.DataModelなど)も使用する場合があります。listViewでは、インスタンスが自動的にCollectionModelに変換されます。

    設計ビューの「Recommendations」アコーディオン・ペインを展開します。Data ControlsウィンドウからRecommendationsアコーディオンに、「products」ノードをドラッグ・アンド・ドロップします。ポップアップ・メニューで「Table/List View」→「ADF List View...」を選択します。

    productsリスト・ビューの作成

  13. Create List Viewダイアログで、「Panel Grid Layout」レイアウトを選択して「Next」をクリックします。

    リスト・ビューのPanel Grid Layoutの指定

  14. Columnsの行あたりのセル数を「2」に、Rowsの数を「1」に設定します。

    グリッド・レイアウトの行の設定

    Next」をクリックします。

  15. Column 1の幅を「auto」、Column 2の幅を「50 px(ピクセル)」に設定します。

    グリッド・レイアウトの列幅の設定


    Next」をクリックします。

  16. 最初の列の値バインディングをクリックして、「name」項目を選択します。2番目の列の値バインディングを「rating」に設定します。

    List Item Dataの設定

    Finish」をクリックします。

  17. このページには、productsデータ・コントロールからのデータが3つの異なるバインディング・スタイルで表示されています。すべての行を使用可能にして、3つのバインディングすべてが同期されるようにするには、productsIteratorの範囲サイズを変更します。products.jsfページの「Bindings」タブをクリックします。Executablesセクションで、「productsIterator」を選択します。

    List Item Dataの設定

  18. Propertiesウィンドウで、RangeSizeプロパティを「-1」に設定します。

    List Item Dataの設定

  19. すべての作業を保存し、ページを右クリックして「Run」を選択し、ページを再デプロイして再実行します。
    ページには、Recommendationsアコーディオン、表、フォームに商品データが次のように表示されます。

    ブラウザのページ

  20. 表の列ヘッダーの1つを選択して、表の他の場所に移動します。

    ページ上の列の移動

  21. shortdesc」列を使用して、表で列のサイズ変更を試します。「Detach」メニュー・オプションをクリックして、パネルのコンテンツをブラウザ内に独立表示します。

    表の分離


    Detach」オプションを再度クリックして元の表示に戻します。

  22. Viewメニュー・オプションで一部の列を非表示にします。

    一部の列の非表示

    この列は、再表示するまで非表示のままとなります。非表示列の数が、表の下のメッセージに表示されます。列の並べ替えとサイズ変更はADF Faces表コンポーネントの機能で、Viewメニューとその機能、およびDetachボタンはPanel Collectionコンポーネントの一部です。

  23. 次のいくつかのステップでは、ページにイメージやグラフィカル項目をいくつか追加します。
    Product Detailsタブで、フォーム中の「cost」inputText項目を右クリックし、コンテキスト・メニューから「Convert To...」を選択します。

  24. グラフィカル・コンポーネントを使用して、エンドユーザーがデータを簡単に分析できるようにする、さまざまな方法があります。詳細を表示/非表示詳細表示


    Convert toメニューが選択された状態のcost列

  25. Convertダイアログで、「Input Number Spinbox」を選択して、「OK」をクリックします。


    Input Number Spinboxが選択されている状態

    Confirm Convertボックスで「OK」を再度クリックして、不要な属性を削除します。

  26. imageLocation属性がinputTextコンポーネントとしてレンダリングされていることを確認します。イメージを表示するには、コンポーネント・スタイルを変更します。Product Detailsタブで、「imageLocation」項目を右クリックし、コンテキスト・メニューから「Convert To...」を選択します。Convertダイアログで、「Image」を選択して、「OK」をクリックします。

  27. Convert ToダイアログでImageを選択

    Confirm Convertボックスで「OK」を再度クリックして、不要な要素と属性を削除します。

  28. 新しいimageコンポーネントを選択したまま、Propertiesウィンドウに移動し、sourceプロパティの横でプロパティ・メニュー・アイコンをクリックして、ドロップダウン・リストから「Expression Builder」を選択します。

    Expression Builderのメニュー・オプション

  29. Expression Builderダイアログで、Expressionテキスト領域にimages/products/と入力します。残りの式を作成するには、「ADF Bindings」、「bindings」、「imageLocation」を展開します。inputValue」を選択して式を生成し、「OK」をクリックします。

    Expression Builderで#{bindings.imageLocation.inputValue}を選択

  30. Product Detailsタブで「rating」コンポーネントを右クリックし、コンテキスト・メニューから「Convert To...」を選択します。Convertダイアログで、「Slider (Number)」を選択して、「OK」をクリックします。

    Convert Inputテキスト・ダイアログでスライダを選択


    「Confirm Convert」ボックスで再度「OK」をクリックします。

  31. Product Detailsタブで「shortDesc」コンポーネントを右クリックし、コンテキスト・メニューから「Convert To...」を選択します。Convertダイアログで、「Rich Text Editor」を選択して、「OK」をクリックします。

    ConvertダイアログでRich Text Editorを選択


    「Confirm Convert」ボックスで再度「OK」をクリックします。

  32. StructureウィンドウのProduct Detailsタブで、「panelFormLayout」を選択します。Propertiesウィンドウで、Rowsプロパティに6と入力し、7番目の行項目(imageLocation)がpanelFormLayoutの2番目の列にラップされるようにします。Product Detailsタブは次のように表示されます。

    設計ビューのページ

  33. すべての作業内容を保存します。ブラウザに戻ってページを再ロードします。

    ブラウザ中の再ロードされたページ(新しいウィジェットを含む)

  34. ratingスライダとcostスピンボックスの移動、およびRich Text Editorの使用を試します。商品表のいずれかの行を選択すると、Product Detailsタブの行の通貨が自動的に変わります。これは、ADF Data Bindingレイヤーによって処理されます。

ステップ4:操作コンポーネントの使用

操作コンポーネントとは、アプリケーションに操作機能を提供するコンポーネントです。このセクションでは、メニュー、ポップアップ、および印刷可能なページを作成し、ユーザーがショッピング・カート領域に商品をドラッグ・アンド・ドロップできるようにします。このタイプの機能を実装するには、次の手順を実行します。

ADF Facesフレームワークでは、実行時にページ上のある場所から別の場所に項目をドラッグ・アンド・ドロップできます。詳細を表示/非表示詳細表示
  1. アプリケーションにメニューを実装するには、表のパネル・コレクションにメニューを追加します。products.jsfページの設計エディタで、パネル・コレクションの「menu」ファセット内を右クリックし、コンテキスト・メニューから「Insert inside Facets menus」→「Menu」を選択します。

    メニューが選択され、コンテキスト・メニューにファセット内へのメニュー挿入が表示されている状態
  2. Propertiesウィンドウで、メニューのTextプロパティを「My Options」に設定します。

  3. Behaviorカテゴリで、Detachableプロパティを「true」に設定します。

    プロパティ・インスペクタに変更されたメニュー・プロパティが表示される
  4. My Options」メニューを右クリックして、コンテキスト・メニューから「Insert inside Menu」→「Menu Item」を選択します。

    My OptionsメニューとMenu Itemを示すコンテキスト・メニュー

  5. Propertiesウィンドウで、Textプロパティを「Export to Excel」に設定します。

    プロパティ・インスペクタでTextプロパティをExport to Excelに設定
  6. Structureウィンドウで「af:commandMenuItem」コンポーネントを右クリックして、コンテキスト・メニューから「Insert after Menu Item」→「Menu Item」を選択します。

    他のメニュー項目の挿入

  7. Propertiesウィンドウで、このメニュー項目のTextプロパティを「Show Specials」に設定します。

    プロパティ・インスペクタのShow Specialsメニュー項目

  8. Componentsウィンドウで「Operations」ノードを展開し、Listenersカテゴリを検索します。「Export Collection Action Listener」コンポーネントを、Structureウィンドウのメニュー項目Export to Excelにドラッグします。

    メニュー項目へのリスナーの追加

  9. Insert Export Collectionダイアログで、ExportedIdt1(t1は表のID)を入力し、Typeの「excelHTML」を選択します。

    TypeプロパティがexcelHTMLとなっているInsert Export Collectionダイアログ・ペイン

    OK」をクリックします。

  10. すべての作業を保存し、ブラウザに戻ってページを再ロードします。「My Options」メニュー・オプションをクリックし、メニュー・バーからメニュー・オプションを分離できることを確認します。

    「My Options」メニューの分離

  11. Export to Excel」メニュー・オプションを選択します。

    分離したメニュー・オプションと選択したExport to Excel項目

  12. ブラウザによっては、ダイアログが表示され、このファイルをどうするかを尋ねられます。ファイルをExcelで開くか、保存することができます。

    OpenまたはSave Asオプションでファイル名のペインを開く

    Open with 」を選択してExcelで表を表示し(Excelがインストールされている場合)、「OK」をクリックします。

    表がエクスポートされていることを確認し、必要に応じてExcelを閉じます。

  13. ここで、products.jsfページにポップアップ・ウィンドウを作成します。Structureウィンドウで、一番上の「af:form」コンポーネントを選択します。

    Structureで最高レベルのフォーム・コンポーネントを選択/

  14. Componentsウィンドウで「Layout」カテゴリを展開し、Secondary Windowsセクションを見つけます。Structureウィンドウで「Popup」コンポーネントをformコンポーネントにドラッグします。設計ビューが変更され、ポップアップを視覚的に編集できるようになります。

  15. 他の多くのADF Facesコンポーネントが含まれるポップアップ・コンポーネントを使用して、エンドユーザーからの情報やリクエスト入力を提供するさまざまなダイアログ、メニュー、ウィンドウを作成できます。詳細を表示/非表示詳細表示
    Structureペインのaf:formで選択/ドロップされるポップアップ・コンポーネント


  16. Designビューでポップアップ内を右クリックし、コンテキスト・メニューから「Insert inside Popup」→「Dialog」を選択します。

    ポップアップのコンテキスト・メニューで、ポップアップ内にダイアログを挿入

  17. Componentsウィンドウで「General Controls」カテゴリを展開して、「Image」コンポーネントを「Dialog」にドラッグします。

    DialogペインにドロップされたImageコンポーネント(設計ビューで表示)

  18. Insert Imageダイアログで、ソース・プロパティの横の「Property」メニュー・アイコンをクリックし、「Edit」を選択します。イメージ・ディレクトリを展開して、ソースとして「JDeveloper.gif」イメージを選択します。

    ソースのファイル名を表示するInsert Imageペイン

    OK」をクリックします。「Yes」をクリックしてアプリケーションのリソース・ディレクトリでgifイメージを再配置し、「Save」をクリックしてデフォルトの場所に保存します。
    再度「OK」をクリックします。

  19. ダイアログの外側の灰色の領域をクリックして、メイン・ページの設計ビューに戻ります。Designビューで「My Options」メニュー項目を選択し、Structureウィンドウでコンポーネントを前面に表示します。

  20. Componentsウィンドウで「Operations」カテゴリを展開し、Behaviorセクションで「Show Popup Behavior」コンポーネントをStructureウィンドウの「commandMenuItem」→「Show Specials」コンポーネントにドラッグします。

    メニュー項目にShow Popup BehaviorがドロップされているShow Specialsメニュー・オプション

  21. Propertiesウィンドウで、PopupIdプロパティの横の「Property Menu」アイコンをクリックし、「Edit」を選択します。

    PopupIdフィールドのペインでEditを選択

  22. Edit Propertyダイアログで、「document」ノードと「form」ノードを展開します。「popup - p1」コンポーネントを選択して「OK」をクリックします。

    popup - p1が選択されているペイン

  23. ファイルを右クリックして「Run」を選択し、ページを再実行します。
    My Options」メニューをクリックし、「Show Specials」を選択します。

    ブラウザでページを再ロードし、メニューでShow Specialを選択

    JDeveloperイメージが含まれるポップアップ・ダイアログが表示されます。

    ポップアップにJDeveloperイメージが表示される

  24. ここで、Product DetailsタブとMy Cartアコーディオンの間にドラッグ・アンド・ドロップ機能を追加し、簡単なドラッグ・アンド・ドロップ操作で、Product Detailsから商品を効率的にカートに入れられるようにします。
    Componentsウィンドウで、ADF FacesライブラリからOutput Textコンポーネントを見つけます。このコンポーネントをMy Cartアコーディオン・ペインにドラッグします。

    Output TextコンポーネントをMy Cart上にドラッグ

    Propertiesウィンドウで、Valueプロパティを「No Items」に設定します。

    プロパティ・インスペクタでValueをNo Itemsに設定
  25. 商品表で「name」出力テキスト・コンポーネントを選択し、設計ビューの前面に表示します。Componentsウィンドウで「Operations」カテゴリを展開し、Drag and Dropセクションを見つけます。「Attribute Drag Source」コンポーネントを選択してname出力テキスト・コンポーネントにドロップします。Attribute Drag Sourceが、列ではなくname出力テキストにドロップされていることを確認します。確認できない場合は、Structureウィンドウを使用します。

    Attribute Dragをname項目にドロップする操作

  26. Insert Attribute Drag Sourceダイアログで、ドロップダウン・リストから「value」を選択します。

    Attributeプロパティをvalueに設定

    OK」をクリックします。

  27. Componentsウィンドウから、「Attribute Drop Target」コンポーネントをNo Items出力テキスト・コンポーネントにドラッグ・アンド・ドロップします。

    Attribute Drop TargetをNo Itemsコンポーネントにドロップ

    Insert Attribute Drop Targetダイアログで、Attributeプロパティの「value」を選択します。

    Attributeプロパティをvalueに設定

    OK」をクリックします。

  28. すべての作業を保存し、ブラウザでページを再ロードします。商品表で名前の値を選択し、My CartのNo Itemsテキストにドラッグ・アンド・ドロップします。

    My CartペインのNo Itemsコンポーネントに名前をドラッグ・アンド・ドロップ


    商品名がカートに追加されます。

    My CartにAce Ski Poleが入った状態のブラウザ・ページ

  29. ここで、メニュー・オプションを追加して最新の表情報を取得し、印刷可能なページに表示します。JDeveloperでは、他の「Menu Item」をMy Optionsメニューに追加して、Textプロパティを「Printable Page」に設定します。

    Prinable Pageメニュー項目をMy Optionsメニューに追加

  30. これで、Componentsウィンドウでコンポーネントを見つけて設計ウィンドウやStructureウィンドウにドラッグし、ページの正しい場所にコンポーネントを追加する方法がおわかりになったと思います。また多くの場合、設計ウィンドウやStructureウィンドウでコンポーネントを選択して、コンポーネントを追加する場所を明確にするのが最善であることも理解できたと思います。

    作成したメニュー・コンポーネントにShow Printable Page Behaviorコンポーネントをドロップします。

    Show Printable Page BehaviorをPrintable Pageにドロップする操作

  31. 次のいくつかのステップでは、ポップアップ・ページを追加してカルーセルを使用して商品を表示します。

    回転するカルーセルにイメージを表示できます。詳細を表示/非表示詳細表示


    Popup」コンポーネントを、ComponentsウィンドウからStructureウィンドウの最初のaf:formコンポーネントにドラッグします。

    Popupのフォームへの追加

  32. 新しい「af:popup」を右クリックして、「Insert Inside Popup」→「Dialog」を選択します。

    af:popup内にダイアログを追加

  33. Propertiesウィンドウで、Typeプロパティを「ok」に設定します。

    Typeプロパティをokに設定

  34. Data Controlsウィンドウで「StoreProducts」を展開し、「products」コレクションを設計ビューのダイアログにドロップします。メニューから「Carousel」を選択します。

    ダイアログにデータ・コントロールをCarouselとしてドロップ

  35. Image」コンポーネントをカルーセル項目コンポーネント内にドラッグします。

    Imageコンポーネントをカルーセルにドロップ

    Insert Imageダイアログで、Sourceプロパティの値として/images/products/#{item.imageLocation}と入力します。

    Insert Imageダイアログで、Sourceプロパティを#{item.imageLocation}に設定

    OK」をクリックします。

  36. ポップアップの外側の灰色の領域をクリックして、products.jsfのメイン設計ビューに戻ります。
    Structureウィンドウで、panelCollectionの「viewMenu」ファセットを見つけます(panelCollectionは商品表コンポーネントの親コンポーネント)。
    viewMenu」ファセットを右クリックして、「Insert inside f:facet - viewMenu」→「Menu Item」を選択します。

    「Menu Item」をviewMenuファセットに挿入

  37. Propertiesウィンドウで、Textプロパティを「View As Carousel」に設定します。

    TextをView As Carouselに設定

  38. Show Popup Behavior」コンポーネントをView As Carouselメニュー項目にドロップします。

    「Show Popup Behavior」コンポーネントをView As Carouselメニュー項目に追加

  39. Propertiesウィンドウで、PopupIdプロパティ・メニューから「Edit」を選択します。

    プロパティ・インスペクタでPopupIdプロパティのEditを選択

  40. Edit Propertyダイアログで「document」ノードと「form」ノードを展開し、「popup - p2」コンポーネントを選択します。


    Edit Propertyウィンドウでpopup - p2ボタンを選択

    OK」をクリックします。

  41. すべての作業を保存し、ページを再実行します。ブラウザに表示されたら、「My Options」→「Printable Page」メニューをクリックします。ページの表コンポーネントがブラウザの別タブに表示され、プリンタに送信できる状態になります。

    My Options→Printable Pageが選択された状態でブラウザで実行されるページ

  42. 印刷可能なビューを閉じて、Viewメニューから「View As Carousel」を選択します。

    ページでPopupボタンを選択

ステップ5:Oracle ADFデータ可視化コンポーネントの使用

ゲージを追加して特定の商品の評価を表示します。このゲージを作成するには、次の手順を実行します。

ADFデータ可視化コンポーネントには、データの表示/分析用の優れたグラフィカル/表形式機能があります。詳細を表示/非表示詳細表示

  1. products.jsfページの設計ビューで、「Rating」タブをクリックします。

    Ratingタブを選択
  2. データ・コントロール・ウィンドウで「StoreProducts」と「products」を展開し、「rating」属性を設計エディタの「Rating」タブにドラッグします。ポップアップ・メニューから「Gauge...」を選択します。

    ゲージをRatingタブにドラッグ

  3. Component Galleryダイアログで「Dial」カテゴリを選択し、ゲージ・タイプとして「Dial with Thresholds」を選択します。一番左の「Quick Start Layouts」を選択します。

    Dial with Thresholdsコンポーネントを選択

    OK」をクリックします。

  4. Create Dial Gaugeダイアログで、Maximum Valueフィールドを「10」に設定します。

    最小しきい値(threshold1)を「1」に設定します。
    中間しきい値(threshold2)を「5」に設定します。
    最高しきい値(threshold3)は「Maximum」のままにします。

  5. ThresholdMaxValueを5に設定

    OK」をクリックします。

  6. Propertiesウィンドウで、GaugeコンポーネントのShortDescプロパティを「rating gauge」に変更します。

    プロパティ・インスペクタで、ShortDescをrating gaugeに設定
  7. 作業を保存し、ブラウザでページを更新します。ゲージに、現在(最初)の商品の現在の評価値が表示されます。

    ブラウザで実行中のページ

  8. Product Details」タブをクリックし、スライダを移動して、評価値を変更します。

    商品詳細で、スライダを新しい値に移動

     

  9. Submit」をクリックしてから「Rating」タブをクリックし、新しい値が表とゲージに反映されていることを確認します。表で別の評価の商品が選択されている場合、ゲージは変更されません。次の手順でこれを修正します。


    商品詳細で、スライダを新しい値に移動
    ステップ6:部分ページ・レンダリングの実装

    表の行の選択時にゲージを更新するには、Partial Page Renderingの操作を明示的に定義する必要があります。このためには、次の手順を実行します。

    部分ページ・レンダリングの目的は、Webページのインタラクティビティ、速度、ユーザビリティの向上です。詳細を表示/非表示詳細表示
    1. JDeveloperで、設計ビューの評価ゲージ・コンポーネントを選択します。Propertiesウィンドウで、「Behavior」カテゴリを展開します。PartialTriggersプロパティの「Property」メニュー・アイコンをクリックし、「Edit」を選択します。



      Partial TriggersプロパティでEditメニューを選択
    2. Edit Propertyダイアログで、「document」、「form」、「pageTemplate」、「facet (center)」、「panelSplitter - ps1」、「facet (second)」、「panelSplitter - ps2」、「facet (first)」、および「panelCollection」コンポーネントを選択します。「table* - t1」コンポーネントを選択し、「Selected」ペインに移動します。これで、ゲージの更新をトリガーするものが定義されます。

      部分トリガーのEdit Propertyペイン(Selected側に表あり)

      OK」をクリックします。

    3. すべての作業を保存し、ブラウザでページを再ロードします。「ratings」タブをクリックし、表の別の行を選択してゲージを更新します。

      表で2番目のレコードが選択されており、Product Detailsタブにすべてのレコードが表示された状態

ステップ7:スキンを使用したアプリケーションのルック・アンド・フィールの変更

最後に、別のスキンを使用して、アプリケーション全体のルック・アンド・フィールを変更する方法について説明します。この機能を実装するには、以下の手順に従います。

ADF FacesおよびADFデータ可視化コンポーネントの外観をカスタマイズできます。詳細を表示/非表示詳細表示
  1. Applicationsウィンドウで「Web Content」→「WEB-INF」ノードを展開し、「trinidad-config.xml」ファイルをダブルクリックしてエディタで開きます。

    アプリケーション・ナビゲータでtrinidad-config.xmlファイルを選択
  2. このファイルでは、スキン・ファミリー要素で使用されるスキンが定義されます。skin-familyを「simple.desktop」に変更します。カスタム・スキン作成を最初に始める際には、simpleスキンがよく選択されます。

    skin-familyをsimpleに変更

  3. すべての作業を保存し、ブラウザでページを更新します。アプリケーションのルック・アンド・フィールが変更されたことに注意してください。


    princessスタイルを適用してページを再ロード


    終了したら、ブラウザ・ウィンドウを閉じます。これでこのチュートリアルは完了です。

まとめ
このチュートリアルでは、ページ・テンプレートの開発、テンプレートに基づくページの作成、ページへのデータ・コントロールの追加、DVTコンポーネントの追加、部分ページ・レンダリングの使用、およびスキンを使用したページのルック・アンド・フィールの変更を行いました。このチュートリアルで学習した内容は、以下のとおりです。 レイアウト・コンポーネント、メニュー、ツールバー、操作コンポーネント、およびデータ可視化コンポーネントの使用について詳しくは、以下を参照してください。
ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る

このページはお役に立ちましたか。



Copyright c 2013, Oracle and/or its affiliates.All rights reserved.