Oracle ADFが提供するデータ・コントロールには、多くのソースに基づくものがあります。このチュートリアルでは、Java Beanクラスに基づくデータ・コントロールを作成して使用します。ウィザードを使用して、アプリケーションとプロジェクト、空白のJSFページを素早く作成します。簡単なBeanオブジェクトを作成するには、初期Javaクラスを生成してからソース・エディタを使用して、2つのStringプロパティと、getterメソッドおよびsetterメソッドをプロパティに追加します。その後、サービスBeanを作成して、名前と電子メール・アドレスのリストを返すビジネス・メソッドを追加します。

次に、サービスBeanからデータ・コントロールを生成します。生成後、Data Controlsパネルからオブジェクトをドラッグして、2つの簡単なデータバインド・ページを設計します。最初のページには、名前と電子メール・アドレスが表形式で表示されます。2つ目のページでは、エンドユーザーは名前の一部をフィールドに入力し、ボタンをクリックして、入力した値に一致する部分を含む名前のリストを表示できます。ページをテスト実行すると、ブラウザ内に次のような最初のページが表示されます。

ブラウザ・ページの表
目的 所要時間 アプリケーション
このチュートリアルでは、JavaBeansとOracle ADF Facesを使用して、簡単なデータバインド・アプリケーションを作成する方法について説明します。これから作成するアプリケーションの完成版を確認するには、「Download」ボタンをクリックして、最終的なアプリケーションのzipファイルをダウンロードし、JDeveloperのmyworkフォルダに解凍してください。 40分 databoundapp.zipのダウンロード
ステップ1:新規アプリケーションとプロジェクトの作成
  1. メイン・メニューから「File」→「New」→「From Gallery」を選択します。New Galleryで、「General」カテゴリを開き、「Applications」を選択します。Itemsリストで「Custom Application」を選択し、「OK」をクリックします。

    New Gallery、Applications
  2. JDeveloperアプリケーションは、組織構造の最上位レベルです。アプリケーションの開発中に、操作しているオブジェクトの情報がここに格納されます。同時に、プロジェクトとすべての環境設定が追跡記録されます。

    JDeveloperアプリケーションでは、作成するアプリケーションのタイプ(WebアプリケーションやJavaアプリケーションなど)に応じて、あらかじめ構築されたテンプレートに基づいて、事前定義された環境のタイプを指定できます。アプリケーション・テンプレートには適切な機能の組合せが事前に指定されているため、標準アプリケーションのプロジェクト構造を素早く作成できます。また、使用している機能に合った選択肢のみが使用できるように、JDeveloperで実行する処理がアプリケーション・テンプレートによりフィルタリングされます。

    このチュートリアルでは、Custom Applicationテンプレートを使用します。このテンプレートでは、1つのプロジェクトでJDeveloperがサポートするすべての機能に関連するオブジェクトを使用できます。

    適切なテンプレートを使用してアプリケーションを作成した後も、新しいプロジェクトをアプリケーションに追加し、使用できるようにする機能を指定できます。これを実行するには、アプリケーション・ナビゲータでアプリケーション名を右クリックして、「New Project」を選択します。New Galleryでは、Itemsリストから任意のタイプのプロジェクトを選択できます。

  3. アプリケーション名としてDataBoundAppと入力し、「Next」をクリックします。

    カスタム・アプリケーションの作成
  4. 初期プロジェクト構造(アプリケーションの作業領域内の名前付きプロジェクト・フォルダ)および追加されるアプリケーション・ライブラリは、選択したアプリケーション・テンプレートによって決まります。関連する機能は、アプリケーション内のプロジェクトで定義します。

    JDeveloperプロジェクトは、関連するファイルを論理的にグループ化するときに使用します。ここでは、ソース・ファイル、パッケージ、クラス、イメージ、およびプログラムで必要になるその他の要素が管理されます。プロジェクトでは、プログラムのコンパイル時や実行時に使用するソース・パスや出力パスなどの環境変数を管理します。また、プロジェクトには、コンパイラ、ランタイム、デバッグに関するオプションが用意されており、プロジェクトごとにこれらのツールの動作をカスタマイズできます。

    ソース・コードのアクセス、変更、再利用を簡単にするために、複数のプロジェクトをアプリケーションに追加できます。それぞれのプロジェクトに含まれるファイルは、たとえば多層アプリケーションにおける各層に相当する場合もあれば、複雑なアプリケーションにおける各サブシステムに相当する場合もあります。これらのファイルはどのディレクトリに配置されていても、1つのプロジェクトに含めることができます。

  5. プロジェクト名としてModelと入力し、「Finish」をクリックします。

    カスタム・アプリケーションの作成、プロジェクト名の入力

    アプリケーション・ナビゲータのProjectsパネルは、次のようになります。

  6. アプリケーション・ナビゲータ

    テンプレートから作成された新規アプリケーションは、プロジェクト階層に分割されてアプリケーション・ナビゲータに表示されます。各プロジェクトには関連する機能が設定されています。アプリケーション・ナビゲータでは、プロジェクトは階層内の最上位レベルとして表示されます。アプリケーションで使用したCustom Applicationテンプレートによって、1つのプロジェクトが作成されています。このプロジェクトには、デフォルトのプロジェクト名または事前に入力されたプロジェクト名が指定されています。

    アプリケーション・ナビゲータのパネルはいずれも開閉できます。2つのパネルの間のスプリッタをドラッグすれば、パネルのサイズを調整できます。Projectsパネルで項目のグループ化やソートを行う場合は、「Navigator Display OptionsアイコンNavigator Display Optionsドロップダウン・メニューを使用します。アプリケーションを操作するには、「ApplicationアイコンApplication Menuをクリックして、ドロップダウン・メニューからオプションを選択します。

    JDeveloperには多種多様なファイル・タイプを識別する機能が備わっており、アプリケーション・ナビゲータでファイルをダブルクリックすると、適切なビューアまたはエディタでファイルが表示されます。アプリケーションまたはプロジェクトを終了すると、そのアプリケーションまたはプロジェクトのファイルを表示していたすべてのエディタまたはビューアが閉じられ、メモリからファイルがアンロードされます。

    注:アプリケーション・ナビゲータのイタリック体のノードは、これらの要素が保存されていないことを示しています。プロジェクトに含まれるファイルが選択されている場合、プロジェクト・ノードは太字で表示されます。

    メイン・メニューから「Application」→「Show Overview」を選択します。エディタ・ウィンドウ領域にApplication Overviewウィンドウが開きます。

    Application Overviewウィンドウの一部

    Application Overviewのファイル概要ページには、JDeveloper内で作成されるすべてのオブジェクトがオブジェクト・タイプごとに分類されて表示されます。新規作成したファイルとアーチファクトは、ステータスやプロジェクトでフィルタして表示できます。

    Application Overviewウィンドウは、このアプリケーションのオブジェクトを作成する際には使用しないので、任意で閉じることができます。

ステップ2:簡単なJavaBeanクラスの作成
  1. 先ほど作成したプロジェクトをアプリケーション・ナビゲータで右クリックし、「New」→「From Gallery」の順に選択します。New Galleryで、「General」→「Java」→「Class」の順に選択し、「OK」をクリックします。

    New Gallery、Generalカテゴリ項目

  2. Create Java Classダイアログで、クラス名にContactと入力し、パッケージ名にacme.beanと入力します。デフォルト値のまま、「OK」をクリックします。

    Create Java Classダイアログ

  3. ソース・エディタで、2つのプライベート変数の宣言を追加します。宣言は、生成された次のコードのすぐ後に追加する必要があります。

    public Contact() {
      super();
    }



    次のコードを使用して2つの変数を追加します。

  4. エディタでファイルを右クリックし、「Generate Accessors」を選択します。

    Javaソース・エディタ、Generate Accessors
  5. ソース・エディタで、編集中に使用できる他の機能には次のものがあります。

    • Javaコード・インサイト(コンプリーション・インサイトのJava固有の実装)

    • 修正アイコン一般的な問題を修正するコード・アシスト

    • インポート文の支援およびソート

    • 自動ドキュメント・コメント・テンプレート

    • Structureウィンドウのカスタマイズ可能なソートおよび展開

    • 構文エラーおよびセマンティック・エラーの明確なハイライト

    • カスタマイズ可能なコード・セパレータ

    これらの機能の詳細を参照するには、ソース・エディタで[F1]を押します。

  6. Generate Accessorsダイアログで「Contact」を選択します。Scopeドロップダウン・リストでpublicが選択されていることを確認し、「OK」をクリックします。

    Generate Accessorsダイアログ

  7. ソース・エディタで、引数として渡された値を使用して、新しいオブジェクトをインスタンス化するコンストラクタを追加します。

    生成されたメソッドの後に、

    public String getEmail() {
      return email;
    }



    次のメソッドを追加します。

  8. Save AllアイコンSave Allをクリックして作業内容を保存します。

    アプリケーション・ナビゲータでは、Application Sourcesフォルダの下のacme.beanパッケージにContact.javaが表示されます。

    アプリケーション・ナビゲータの新しいクラス
  9. エディタ・ウィンドウ上部にある各タブは、ドキュメント・タブです。

    ソース・エディタのサンプル・コード

    ドキュメント・タブを選択するとそのファイルにフォーカスが移り、現在のエディタ内ウィンドウの前面にファイルが表示されます。特定のファイルをエディタ・ウィンドウで開いたときに表示されるウィンドウ下部の各タブは、エディタ・タブです。エディタ・タブを選択すると、そのエディタまたはビューア内でファイルが開きます。

ステップ3:サービス・クラスの作成
  1. アプリケーション・ナビゲータで「Model」プロジェクトを右クリックし、「New」→「Java Class」の順に選択します。

  2. Create Java Classダイアログで、クラス名にAddressBookと入力します。acme.beanというパッケージ名、その他のデフォルト値を受け入れ、「OK」をクリックします。

    Create Java Classダイアログ

  3. ソース・エディタで、コードを追加してJavaコレクション・クラスを作成します。

    次の最初の行の後に、

    package acme.bean;

    生成されたすべてのコードを削除し、次のコードに置き換えます。

  4. Save AllアイコンSave Allをクリックして作業内容を保存します。

  5. サービス・クラスの作成ステップが完了すると、Application Navigatorの表示は次のようになります。

    アプリケーション・ナビゲータ、2つのクラス

    ビジネス・オブジェクトを公開し、ビジネス・オブジェクトの操作を行うメソッドを提供するJavaBeanはすべて、ビジネス・サービスとして定義されます。ビジネス・サービスの例には、Webサービス、EJB Session Bean、または特定の機能へのインタフェースとして使用されるすべてのJavaクラスがあります。この例のAddressBookサービス・クラスは、連絡先の集合を返します。
ステップ4:サービス・クラスのデータ・コントロールの作成
  1. アプリケーション・ナビゲータで「AddressBook.java」を右クリックし、「Create Data Control」を選択します。

    Create Data Controlコンテキスト・メニュー
  2. Oracle ADFデータ・コントロールは、ビジネス・サービスのデータ・モデルを抽象化して、ADFバインディング・レイヤーからサービス・レイヤーへのアクセスを提供します。ユーザー・インタフェースを設計する際、Oracle ADFデータ・コントロールによって、コードを作成せずにページUIコンポーネントをデータにバインドできます。

    Oracle ADFデータ・コントロールにより、クライアントとWebアプリケーション・コントローラは一貫性のあるメカニズムを使用して、次のデータ提供テクノロジーで定義されたデータとアクションにアクセスできます。

    • JavaBeans(TopLink対応オブジェクトを含む)

    • Oracle ADF Business Components

    • EJB Session Bean

    • Webサービス

    JavaBeansテクノロジーをビジネス・サービス・テクノロジーとして使用する場合、モデル情報は、オラクル独自のアダプタ・クラス(シン)によって実装されるOracle ADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます。

  3. Create Bean Data Controlダイアログで「Next」をクリックし、デフォルト値はそのままにして「Finish」をクリックします。

    プロジェクトにデータ・コントロール定義ファイル(DataControls.dcx)が追加され、概要エディタでファイルが開きます。

    DataControls.dcxの概要エディタ
  4. DCX定義ファイルは、クライアントと利用可能なビジネス・サービス間のやり取りを可能にするOracle ADFモデル・レイヤーのアダプタ・クラスを識別します。

    プロジェクトごとに1つのDCXファイルがあり、このファイルはデータ・コントロールをビジネス・サービスに初めて登録するときに作成されます。DCXファイルは"目次"の役割を果たし、プロジェクトのすべてのデータ・コントロールをリストします。DCXは、プロジェクトにあるすべての利用可能なサービス・クラスから、データ・バインド・オブジェクトとして利用できるように設計時に要求したクラスを登録します。

  5. アプリケーション・ナビゲータで、「Data Controls」パネルを開き、「AddressBook」を開きます。

    アプリケーション・ナビゲータ、Data ControlsパネルとProjectsパネル

    作成したデータ・コントロールが表示されない場合は、パネル・ツールバーの「RefreshアイコンRefreshをクリックします。

  6. 展開すると、AddressBookノードにビジネス・サービスの構造が表示されます。AddressBookデータ・コントロール・ノード自体はユーザーが使用できる項目ではありませんが、表示されているサポート対象オブジェクトから選択できます。

    アプリケーション・ナビゲータ、Data Controlsパネル

    ビジネス・サービスの階層構造は、以下によって決定されます。

    • モデル・プロジェクトでデータ・コントロールに登録したビジネス・サービス。Data Controlsパネルには、登録した各ビジネス・サービスの個別のルート・ノードが表示されます。

    • Beanのデータ・コントロールを作成する際に生成されるBean設計時の記述定義ファイル。Bean定義ファイルは、Beanのプロパティ・アクセッサとメソッドを各種カテゴリに分類します。

    Projectsパネルですべてのノードを展開すると、ファイルadfm.xmlも追加されていることがわかります。実行時には使用されないこのファイルは、データ・モデル・プロジェクトで表示されるデータ・コントロールを特定するために、JDeveloperのData Controlパネルにより使用されるレジストリです。

    アプリケーション・ナビゲータ、Projectsパネル
ステップ5:JSFページの作成
  1. メイン・メニューから「File」→「New」→「Project」を選択します。New Galleryで、「General」→「Projects」→「Custom Project」の順に選択し、「OK」をクリックします。

    New Gallery、Custom Project

  2. プロジェクト名にViewと入力します。次に、Availableリストから「ADF Faces」を選択し、「shuttleアイコン」を選択してSelectedリストに移動し、「Finish」をクリックします。

    Create Custom Projectウィザード
  3. プロジェクト用の機能を選択すると、New Galleryによって提示される選択肢をフィルタで選別することが可能になり、実行している作業の種類に適した選択肢だけを表示できます。

    機能はプロジェクトごとに設定されます。機能は作業を支援する目的でJDeveloperの中だけで使用されるので、プロジェクト自体のデータに影響を与えることはありません。Oracle ADF Facesを追加すると、必要な関連機能がSelectedペインに自動的に伝播されます。

    アプリケーション・ナビゲータにViewプロジェクトが表示されます。

    アプリケーション・ナビゲータ、Viewプロジェクト

  4. アプリケーション・ナビゲータで「View」プロジェクトを右クリックし、「New」→「Page」の順に選択します。

    New Gallery、JSF/Faceletsページ

  5. Create JSF Pageダイアログで、ファイル名としてContactList.jsfを入力します。ドキュメント・タイプとしてFaceletsが選択されていることを確認します。

    Create JSF Pageダイアログ
  6. JavaServer Facesを使用するアプリケーション向けに作成するJSFページには、Faceletsドキュメント(ファイル拡張子は.jsf)、またはXML構文で記述されたJSPドキュメント(ファイル拡張子は.jspx)を使用できます。

    どちらのJSFページもCreate JSF Pageダイアログを使用して作成できます。次のいずれかの方法でJSFページを開きます。

    • New Gallery

    • JSFナビゲーション・ダイアグラマ

    • Oracle ADFタスク・フロー・ダイアグラマ(JDeveloperのStudio Editionでのみ使用可能)

  7. Page Layoutタブで「Blank Page」を選択します。Managed Beanタブで、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。「OK」をクリックして、ページを作成します。

    Create JSF Pageダイアログ
  8. デフォルトでは、ビジュアル・エディタに新しいJSF Faceletsページが表示されます。

    ビジュアル・エディタ

    新しいJSFページをFaceletsドキュメント・タイプ(ファイル拡張子は.jsf)にすると、初期ページ構造が自動的に作成されます。JSF Coreタグ・ライブラリ用のxmlns属性とADF Facesタグ・ライブラリ用のxmlns属性が1つずつ含まれます。初期ファイルに含まれるその他の要素には、ページのレイアウト用要素、特に<f:view></f:view>で囲まれた他のすべての要素が挙げられます。

    ページ・コードを表示するには、「Source」タブをクリックしてビジュアル・エディタからXMLエディタに切り替えます。たとえば、新規ページには次のコードが生成されます。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <f:view xmlns:f="http://java.sun.com/jsf/core"
            xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <af:document title="ContactList.jsf" id="d1">
        <af:form id="f1"></af:form>
      </af:document>
    </f:view>
  9. コンポーネント・パレットのADF FacesページのLayoutパネルで、「borderlayoutアイコンPanel Stretch Layoutをドラッグして、ビジュアル・エディタの空白ページにドロップします。

    ビジュアル・エディタにコンポーネントをドラッグすると、Formという名前の長方形の領域が表示されます。これは、今ドラッグしているコンポーネントがそのターゲット・コンポーネント内に挿入されることを意味しています。

    ビジュアル・エディタ、フォームに挿入

  10. Save AllアイコンSave Allをクリックして作業内容を保存します。

  11. JSFページの作成ステップが完了すると、アプリケーション・ナビゲータにはViewプロジェクトが次のように表示されます。

    アプリケーション・ナビゲータ、Viewプロジェクト

    プロジェクト内で、Java EE Webモジュール・ディレクトリ構造に準拠するフォルダとファイルは次のとおりです。
    • Web Contentフォルダ:作成したページ、およびアプリケーションのクライアント・ブラウザに表示される必要があるその他のファイル(スタイルシート・ファイルや画像など)が格納されます。

    • /WEB-INF/フォルダ:必要なWebアプリケーション・デプロイメント・ディスクリプタ(web.xml)とJSF構成ファイル(faces-config.xml)が格納されます。

    • web.xmlファイル:アプリケーションのWebアプリケーション・デプロイメント・ディスクリプタです。これは、アプリケーションの構成コンポーネントを記述したXMLファイルです。初期化パラメータと、サーバーによって実施されるコンテナ管理のセキュリティ制約も、このファイルに記述されています。

    • faces-config.xmlファイル:バリデータ、コンバータ、マネージドBean、ナビゲーション・ルールといった、JSFアプリケーションの構成リソースを登録する場所です。

    • trinidad-config.xmlファイル:スキン・ファミリーやページ・アクセシビリティ・サポートのレベルといったOracle ADF Faces機能を構成するファイルです。

ステップ6:サービスBeanへのADF Faces表コンポーネントのバインド
  1. Data Controlsパネルで、「AddressBook」を展開してから、「findAllContacts()」を展開します。

    Data Controlsパネルの展開
  2. Oracle ADFデータ・コントロールは、データ・コレクション、属性、メソッド、ならびにすべてのデータ・コレクションで一般的に実行される特定の組込みの処理などの形でData Controlsパネルに表示されます。パネル内のオブジェクトは、データバインドUIコンポーネントとしてビューやWebページに追加したり、処理としてコントローラに追加したりすることができます。

    Data Controlsパネルからコンポーネントを挿入すると、EL(式言語)構文を使用することで、新しいOracle ADFバインディングがページのUIモデルで定義され、挿入されたコンポーネントには、Oracle ADFバインディングへの参照が含まれます。

    Data Controlsパネルにより、Webページまたはクライアント・ドキュメントに生成されるコード、および作成されるバインディングは、ビジュアル・エディタに表示されるドキュメントのタイプ、およびユーザーが選択して、オープン・ドキュメントにドロップするビジネス・サービスとビジュアル要素の組合せによって決まります。
  3. Contact」をクリックして、ビジュアル・エディタのページのcenterファセットにドラッグします。Createコンテキスト・メニューから、「Table」→「Table」を選択します。

    Createコンテキスト・メニュー、Table

  4. Edit Table Columnsダイアログで、「Enable Sorting」と「Read-Only Table」を選択し、「OK」をクリックして表を作成します。

    Edit Table Columnsダイアログ

    ビジュアル・エディタには次のようなページが表示されます。

    ビジュアル・エディタの新しい表
  5. Data Controlsパネルを使用してUIコンポーネントを作成すると、選択したデータ・コントロールにコンポーネントをバインドするための各種コードとオブジェクトがJDeveloperによって自動作成されます。ページ用に定義されたOracle ADFデータ・バインディングを表示するには、エディタ・ウィンドウ下部の「Bindings」をクリックします。

    JSFページのBindingsエディタ

    Contactツリー・バインディング・オブジェクトは、イテレータ・バインディング・オブジェクトfindAllContactsIteratorを使用して値を取得します。イテレータは、AddressBookデータ・コントロールのメソッドfindAllContacts()にアクセスして、集合を返します。

    Data Controlsパネルを使用してデータバインド表を作成すると、JDeveloperによって、次のOracle ADF Facesタグがページに追加されます。
    • <af:messages>:ユーザーに重要なメッセージ情報を提供するためにアプリケーション・ページ上部で使用されます。

    • <af:table>:表データを表示するために使用されます。

    • <af:column>:表内で個々の列を作成するために使用されます。

    • <af:outputText>:書式設定されたテキストをサポートします。

    Oracle ADFデータ・バインディングの式は、バインディング・オブジェクトのデータまたは参照プロパティのいずれかを表示する各コンポーネント属性に追加されます。エディタ・ウィンドウの「Source」をクリックすると、コンポーネント属性とOracle ADFデータ・バインディングの式をXMLエディタで確認できます。EL(式言語)を使用するバインディング式は、実行時に評価されます。

    典型的なOracle ADFデータ・バインディングのEL式は次の構文を使用して、バインディング・コンテナの各種バインディング・オブジェクトのタイプのいずれかを参照します。

    #{bindings.BindingObject.propertyName}

    ここで、bindingsは、式によって参照されるバインディング・オブジェクトが現在のページのバインディング・コンテナ内にあることを特定する変数です。Oracle ADFデータ・バインディングのEL式はすべて、bindings変数で始める必要があります。

    :また、data.<PageDefName>.<binding>を使用して、バインディングを参照することもできます。bindings.の表記は、ページ上のバインディングを参照するためのショートカットです。

    実行時にEL式が評価されて、値がバインディング・オブジェクトから引き出され、ページが表示されるときにコンポーネントにデータが移入されます。

    たとえば、データバインド表の第1列を考えてみてください。第1列のheaderText属性にはバインディング式#{bindings.Contact.hints.name.label}があり、実行時にnameという列見出しが表に作成されます。
  6. アプリケーション・ナビゲータで「ContactList.jsf」を右クリックし、「Run」を選択します。

    Create Default Domainダイアログが表示されたら、PasswordフィールドとConfirm Passwordフィールドにデフォルト・パスワード(例:weblogic1)を入力し、「OK」をクリックします。

    次のようなページがブラウザに表示されます。

    ブラウザ・ページの表

  7. デフォルトでJDeveloperは、IDEにバンドルされたOracle WebLogic Serverのユーザー固有のインスタンスを参照する、Integrated WebLogic Serverという名前の統合サーバーを自動的に構成します。詳細を表示/非表示詳細表示
ステップ7:ラベルの設定
  1. エディタ・ウィンドウで、「DataControls.dcx」タブをクリックして、DCX概要エディタを前面に表示します。

    DCXファイルがまだ開いていない場合は、アプリケーション・ナビゲータのModelプロジェクトの「DataControls.dcx」をダブルクリックして、ファイルを開きます。

    概要エディタ、DataControls.dcxファイル

  2. AddressBook」→「findAllContacts()」と展開します。次に、「Contact」を選択し、「EditアイコンEditをクリックして、概要エディタを別に開きます。

    DataControls.dcxの概要エディタ

  3. Contact.xml概要エディタで、左側の「Attributes」をクリックします。

    概要エディタ、Contact.xml

  4. Attributes表でnameを選択した状態で、「UI Hints」タブをクリックします。次に、LabelフィールドにContact Nameと入力します。

    Contact.xmlの概要エディタ、UI Hints
  5. Oracle ADFコントロール・ヒントは、JavaBeansベースのビジネス・サービス・データ項目をあらゆるクライアント・タイプに一貫した方法でレンダリングするための一元メカニズムを提供します。詳細を表示/非表示詳細表示コントロール・ヒントとして知られるこのメカニズムを使用すると、アプリケーション開発者は特定のUI設定を複数のクライアントで統一して、UIとデータ項目のやり取りを多肢にわたって制御できます。コントロール・ヒントはビジネス・サービスのレベルで設定されるため、UIコーディングの数も減らせます。

    Oracle ADFコントロール・ヒント・メカニズムは、カスタマイズ可能な次のコントロール・ヒント・プロパティをサポートします。
    • Display Hint:属性の表示/非表示を決定します。

    • Label:データ項目の値の前に表示されるプロンプトまたは表見出しで使用されるテキストです。

    • Tooltip:ツールチップまたはフライオーバー・テキストで使用されるテキストです。Webアプリケーションでは、HTML ALT属性の値として表示されます。

    • Format Type:データ項目が表示されるときに使用されるフォーマッタを定義します。フォーマッタは基本的に、<JDeveloper_Install>/jdeveloper/systemn.n.n.../o.BC4J/formatinfo.xmlファイルで定義できるフォーマット・マスクの集合です。

    • Format:選択したフォーマッタで使用される特定のフォーマット・マスクです。

    • Control Type:クライアントUIでデータ項目を表示するために使用されるコントロール・タイプです。Editはコントロールを編集可能にし、Dateはカレンダ・ピッカーを表示し、Defaultは、もっとも適切なコントロールを選択するためにクライアントによって解析されます。

    • Display Width:データ項目を表示するコントロールの文字幅を定義します。

    • Display Height:データ項目を表示するコントロールの文字の行数を定義します。

    • Form Type:属性をDetailモードまたはSummaryモードで表示するかを決定します。Detailモードでは長いフォームが、Summaryモードでは短いフォームが生成されます。このプロパティはOracle ADF Swingアプリケーションのみでサポートされ、Oracle ADF Business Components Webアプリケーションでは利用できません。

    • Field Order:カテゴリ内で属性のレンダリングを実行する順序を定義します。

    • Category:属性をグループ化して表示するために、動的なレンダリング・ユーザー・インタフェースによって使用される識別子です。このユーザー・インタフェースにより、属性は同じカテゴリの他の属性とともにレンダリングされます。カテゴリ・ヒントを使用すると、ユーザー・インタフェースで、大規模リストのビュー・オブジェクト属性をカテゴリ別に小さいグループに分けることができます。このコントロール・ヒントは、属性を表示するすべての動的なレンダリング・ユーザー・インタフェースによって利用されます。

    • Auto Submit:true(有効)に設定すると、ユーザー・インタフェースで値が変更されたときに、部分的な送信をトリガーします。

  6. この手順を繰り返して、ラベル・テキストEmail Addressを使って、属性emailのラベルを追加します。

  7. ビジネス・サービス・レベルでコントロール・ヒントを追加すると、プロジェクトのテキスト・リソースを含んだ.propertiesファイルが作成されます。
    設定するコントロール・ヒントの値を定義するファイルは、プロジェクトで使用される特定のビジネス・サービスによって決まります。Beanベースのビジネス・サービス(JavaBeans、Enterprise JavaBeans、Oracle TopLinkを含む)の場合、デフォルトにより、プロジェクトのテキスト・リソース用の標準.propertiesファイルが生成され、コントロール・ヒント定義は変換可能な文字列として保存されます。

    アプリケーション・ナビゲータでは、ファイルModelBundle.propertiesmodelパッケージのModelプロジェクトに追加されています。

    アプリケーション・ナビゲータ、Modelプロジェクト

    コントロール・ヒントを保存するためにJDeveloperによって使用されるプロジェクト・レベルのリソース・バンドル・オプションは、Project PropertiesダイアログのResource Bundleページによって決まります。デフォルトでは、Resource Bundle TypeオプションはProperties Bundleに設定されて、.propertiesファイルが生成されます。

    プロジェクトでコントロール・ヒントを初めてカスタマイズすると、ModelBundle.propertiesファイルが作成されます。ModelBundle.propertiesファイルには、追加したコントロール・ヒント定義の変換可能なキー文字列が含まれています。たとえば、ソース・エディタでModelBundle.propertiesを開くと、変換可能な文字列を識別する次のコードが表示されます。

    #
    acme.bean.Contact.name_LABEL=Contact Name
  8. アプリケーション・ナビゲータで「ContactList.jsf」を右クリックし、「Run」を選択します。

    ブラウザのページに新しいラベルが表示されます。

    ブラウザ・ページの表

  9. ブラウザ・ページで、列ヘッダーの片端をドラッグして表の列の幅を広げることができます。データバインド表を設計時に追加した際、Enable Sortingチェック・ボックスを選択すると、列ヘッダー上のSort Ascending、またはSort Descendingアイコンを選択して、列のコンテンツをソートできます。

    列ヘッダー上のSortingアイコン
ステップ8:パラメータ化メソッドとパラメータへのバインド
パラメータを取り込むメソッドにバインドされたコマンド・ボタン、およびメソッド・パラメータにバインドされた入力テキスト・フィールドを作成します。ボタンを実行時にクリックすると、パラメータ値に一致するオブジェクトのみがメソッドによって返されます。一致したオブジェクトは読取り専用の表に表示されます。
  1. アプリケーション・ナビゲータで「View」プロジェクトを右クリックし、「New」→「Page」の順に選択します。

  2. Create JSF Pageダイアログで、ファイル名としてContactLookup.jsfを入力します。ドキュメント・タイプとしてFaceletsが選択されていることを確認します。

    Create JSF Pageダイアログ

  3. Page Layoutページで「Create Blank Page」を選択し、Managed Beanタブで「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。「OK」をクリックして、ページを作成します。

  4. コンポーネント・パレットのADF FacesページのLayoutパネルで、「decorativeboxアイコンDecorative Boxをドラッグして、ビジュアル・エディタの空白ページにドロップします。

  5. Data Controlsパネルで、パネル・ツールバー上の「RefreshアイコンRefreshをクリックして、「AddressBook」を展開し、次に、「findContactsByName(String)」を展開します。

    Data Controlsパネル、findContactsByName
  6. パラメータ化メソッドにバインドされた表を作成するには、Data ControlsパネルのfindContactsByName(String)の下にある「Contact」メソッド・リターンをドラッグします。パラメータ化メソッドには1つのパラメータ、nameがあります。
  7. Contact」をビジュアル・エディタのページのcenterファセットにドラッグします。Createコンテキスト・メニューから、「Table/List View」→「ADF Table」を選択します。Create Tableダイアログで「Enable Sorting」と「Read-Only Table」を選択します。その他のデフォルト値はそのままにして、「OK」をクリックします。

  8. Edit Action Bindingダイアログで、デフォルト値を受け入れて「OK」をクリックします。

    Edit Action Bindingダイアログ

  9. コンポーネント・パレットのLayoutパネルで、「flowlayoutアイコンPanel Group Layoutをページ上のtopファセットにドラッグ・アンド・ドロップします。

    ビジュアル・エディタ、topファセット

  10. プロパティ・インスペクタのCommonセクションで、Layoutの値をscrollに変更します。

  11. コンポーネント・パレットで、別の「flowlayoutアイコンPanel Group Layoutを、先ほど追加したPanel Group Layoutにドラッグ・アンド・ドロップします。プロパティ・インスペクタで、Layoutの値をhorizontalに変更します。

  12. コンテンツを拡張しない場合は、layout="scroll"でパネル・グループ・レイアウト・コンポーネントのコンテンツをラップすることで、非拡張コンテンツを個別に作成することを推奨します。パネル・グループ・レイアウト・コンポーネントは拡張可能でありながら、子は拡張しないため、非拡張コンテンツに最適なコンポーネントです。

    次に、layout="horizontal"に設定した2つ目のパネル・グループ・レイアウト・コンポーネントを使用して、コンテンツ・コンポーネントを水平方向にレイアウトします。
  13. Data Controlsパネルで、findContactsByName(String)の下の「Parameters」を展開します。

    Data Controlsパネル、Parametersの展開

  14. name」をドラッグして、先ほど追加したパネル・グループ・レイアウト・コンポーネント(水平方向)にドロップします。コンテキスト・メニューから「Text」→「ADF Input Text w/ Label」を選択します。

    Create Textコンテキスト・メニュー

  15. プロパティ・インスペクタのCommonセクションで、デフォルトのLabel値を削除し、Enter part of name:に置き換えて、2つのスペースを追加します。

  16. Data Controlsパネルで、「findContactsByName(String)」をドラッグして、Structureウィンドウのaf:panelGroupLayout - horizontalにドロップします。コンテキスト・メニューから「Method」→「ADF Button」を選択します。

    Create Methodコンテキスト・メニュー

  17. プロパティ・インスペクタで、デフォルトのText値を削除して、Findに置き換えます。

  18. Structureウィンドウで、「af:panelGroupLayout - scroll」を選択します。プロパティ・インスペクタのStyleセクションで、InlineStyleフィールドにpadding:5.0pxと入力します。

    ビジュアル・エディタで、ページは次のように表示されます。

    ビジュアル・エディタ、ContactLookupページ

  19. アプリケーション・ナビゲータで「ContactLookup.jsf」を右クリックし、「Run」を選択します。

    次のようなページがブラウザに表示されます。

    初回実行時のブラウザ・ページ

  20. 入力フィールドにshと入力してボタンをクリックすると、名前に'sh'がある連絡先が表に返されます。

    ブラウザ・ページ、名前で検出された連絡先

    コントロール・ヒントを使用して、連絡先のemail属性とaddress属性のラベル・テキストをすでに入力してあるため、ModelBundle.propertiesファイルに保存されているラベル・テキストがこの表の列ヘッダーにも適用されます。
まとめ
このチュートリアルでは、Oracle ADFデータ・コントロールとOracle ADF Facesコンポーネントを使用して、データバインド・ページを作成しました。このチュートリアルで学習した内容は、以下のとおりです。 Oracle ADFデータ・バインディングとデータバインド・アプリケーションの開発について詳しくは、以下を参照してください。

ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る

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



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