ウィザードを使用して、アプリケーションとプロジェクト、空白のJSFページを素早く作成します。簡単なBeanオブジェクトを作成するには、初期Javaクラスを生成してからソース・エディタを使用して、2つのStringプロパティと、getterメソッドおよびsetterメソッドをプロパティに追加します。 また、サービスBeanを作成して、名前と電子メール・アドレスのリストを返すビジネス・メソッドを追加します。
メイン・メニューから「File」→「New」を選択します。New Galleryで、「General」カテゴリを開き、「Applications」を選択します。Itemsリストで「Custom Application」を選択し、「OK」をクリックします。
JDeveloperアプリケーションは、組織構造の最上位レベルです。アプリケーションの開発中に、操作しているオブジェクトの情報がここに格納されます。
詳細表示同時に、プロジェクトとすべての環境設定が追跡記録されます。
JDeveloperアプリケーションでは、作成するアプリケーションのタイプ(WebアプリケーションやJavaアプリケーションなど)に応じて、あらかじめ構築されたテンプレートに基づいて、事前定義された環境のタイプを指定できます。アプリケーション・テンプレートには適切な機能の組合せが事前に指定されているため、標準アプリケーションのプロジェクト構造を素早く作成できます。また、使用している機能に合った選択肢のみが使用できるように、JDeveloperで実行する処理がアプリケーション・テンプレートによりフィルタリングされます。
このチュートリアルでは、Custom Applicationテンプレートを使用します。このテンプレートでは、1つのプロジェクトでJDeveloperがサポートするすべての機能に関連するオブジェクトを使用できます。
適切なテンプレートを使用してアプリケーションを作成した後も、新しいプロジェクトをアプリケーションに追加し、使用できるようにする機能を指定できます。これを実行するには、アプリケーション・ナビゲータでアプリケーション名を右クリックして、「New Project」を選択します。New Galleryでは、Itemsリストから任意のタイプのプロジェクトを選択できます。
この例に合わせるため、アプリケーション名としてDataBoundAppと入力し、「Next」をクリックします。
初期プロジェクト構造(アプリケーションの作業領域内の名前付きプロジェクト・フォルダ)および追加されるアプリケーション・ライブラリは、選択したアプリケーション・テンプレートによって決まります。
詳細表示関連する機能は、アプリケーション内のプロジェクトで定義します。
JDeveloperプロジェクトは、関連するファイルを論理的にグループ化するときに使用します。ここでは、ソース・ファイル、パッケージ、クラス、イメージ、およびプログラムで必要になるその他の要素が管理されます。プロジェクトでは、プログラムのコンパイル時や実行時に使用するソース・パスや出力パスなどの環境変数を管理します。また、プロジェクトには、コンパイラ、ランタイム、デバッグに関するオプションが用意されており、プロジェクトごとにこれらのツールの動作をカスタマイズできます。
ソース・コードのアクセス、変更、再利用を簡単にするために、複数のプロジェクトをアプリケーションに追加できます。それぞれのプロジェクトに含まれるファイルは、たとえば多層アプリケーションにおける各層に相当する場合もあれば、複雑なアプリケーションにおける各サブシステムに相当する場合もあります。これらのファイルはどのディレクトリに配置されていても、1つのプロジェクトに含めることができます。
プロジェクト名にModelと入力します。

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

先ほど作成したプロジェクトをアプリケーション・ナビゲータで右クリックし、「New」→「General」→「Java Class」の順に選択して、「OK」をクリックします。

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

ソース・エディタで、コードを追加して簡単なJavaBeanクラスを作成します。
たとえば、生成された次のコードの後に、
public Contact() {
super();
}
次のコードを使用して、2つのプロパティを追加します。
private String name;
private String email;
エディタでファイルを右クリックし、「Generate Accessors」を選択します。

ソース・エディタで、編集中に使用できる他の機能には次のものがあります。
詳細表示
Javaコード・インサイト(コンプリーション・インサイトのJava固有の実装)
一般的な問題を修正するコード・アシスト
インポート文の支援およびソート
自動ドキュメント・コメント・テンプレート
Structureウィンドウのカスタマイズ可能なソートおよび展開
構文エラーおよびセマンティック・エラーの明確なハイライト
カスタマイズ可能なコード・セパレータ
これらの機能の詳細を参照するには、ソース・エディタで[F1]を押します。
Generate Accessorsダイアログで「Contact」を選択します。 Scopeドロップダウン・リストでpublicが選択されていることを確認し、「OK」をクリックします。

-
ソース・エディタで、引数として渡された値を使用して、新しいオブジェクトをインスタンス化するコンストラクタを追加します。
たとえば、生成された次のメソッドの後に、
public String getEmail() {
return email;
}
次のメソッドを追加します。
public Contact(String name, String email) {
this.name = name;
this.email = email;
}
「
」Save Allをクリックして作業内容を保存します。
アプリケーション・ナビゲータでは、Application Sourcesフォルダの下のacme.beanパッケージにContact.javaが表示されます。
エディタ・ウィンドウ上部にある各タブは、ドキュメント・タブです。
詳細表示
ドキュメント・タブを選択するとそのファイルにフォーカスが移り、現在のエディタ内ウィンドウの前面にファイルが表示されます。特定のファイルをエディタ・ウィンドウで開いたときに表示されるウィンドウ下部の各タブは、エディタ・タブです。 エディタ・タブを選択すると、そのエディタまたはビューア内でファイルが開きます。
アプリケーション・ナビゲータで「Model」プロジェクトを右クリックし、「New」→「General」→「Java Class」の順に選択して、「OK」をクリックします。
Create Java Classダイアログで、クラス名にAddressBookと入力します。 acme.beanというパッケージ名、その他のデフォルト値を受け入れ、「OK」をクリックします。

ソース・エディタで、コードを追加してJavaコレクション・クラスを作成します。
たとえば、最初の行の後に、
package acme.bean;
生成されたすべてのコードを削除し、次のコードに置き換えます。
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
public class AddressBook {
// Return all contacts
List<Contact> contacts = new ArrayList();
public List<Contact> findAllContacts() {
return contacts;
}
// Return all contacts matching name (case-insensitive)
public List<Contact> findContactsByName(String name) {
String namePattern = ".*" + (name != null ? name.toUpperCase() : "") + ".*";
List<Contact> matches = new ArrayList();
for (Contact c : contacts) {
if (Pattern.matches(namePattern, c.getName().toUpperCase())) {
matches.add(c);
}
}
return matches;
}
public AddressBook() {
contacts.add(new Contact("Steve", "steve@acme.org"));
contacts.add(new Contact("Charles", "cyoung@acme.org"));
contacts.add(new Contact("Karl", "kheint@acme.org"));
contacts.add(new Contact("Mik", "mik_meir@acme.org"));
contacts.add(new Contact("Yvonne", "yvonne_yvonne@acme.org"));
contacts.add(new Contact("Sung", "superstar001@acme.org"));
contacts.add(new Contact("Shailyn", "spatellina@acme.org"));
contacts.add(new Contact("John", "jjb@acme.org"));
contacts.add(new Contact("Ricky", "rmartz@acme.org"));
contacts.add(new Contact("Shaoling", "shaoling@acme.org"));
contacts.add(new Contact("Olga", "olga077@acme.org"));
contacts.add(new Contact("Ron", "regert@acme.org"));
contacts.add(new Contact("Juan", "jperen@acme.org"));
contacts.add(new Contact("Uday", "udaykum@acme.org"));
contacts.add(new Contact("Amin", "amin@acme.org"));
contacts.add(new Contact("Sati", "sparek@acme.org"));
contacts.add(new Contact("Kal", "kalyane.kushnane@acme.org"));
contacts.add(new Contact("Prakash", "prakash01@acme.org"));
}
}
「
」Save Allをクリックして作業内容を保存します。
サービス・クラスの作成ステップが完了すると、Application Navigatorの表示は次のようになります。
詳細表示
ビジネス・オブジェクトを公開し、ビジネス・オブジェクトの操作を行うメソッドを提供するJavaBeanはすべて、ビジネス・サービスとして定義されます。 ビジネス・サービスの例には、Webサービス、EJB Session Bean、または特定の機能へのインタフェースとして使用されるすべてのJavaクラスがあります。 この例のAddressBookサービス・クラスは、連絡先の集合を返します。
アプリケーション・ナビゲータで「AddressBook.java」を右クリックし、「Create Data Control」を選択します。

Oracle ADFデータ・コントロールは、ビジネス・サービスのデータ・モデルを抽象化して、ADFバインド層からサービス層へのアクセスを提供します。
詳細表示 ユーザー・インタフェースを設計する際、Oracle ADFデータ・コントロールによって、コードを作成せずにページUIコンポーネントをデータにバインドできます。
Oracle ADFデータ・コントロールにより、クライアントとWebアプリケーション・コントローラは一貫性のあるメカニズムを使用して、次のデータ提供テクノロジーで定義されたデータとアクションにアクセスできます。
JavaBeansテクノロジーをビジネス・サービス・テクノロジーとして使用する場合、モデル情報は、オラクル独自のアダプタ・クラス(シン)によって実装されるOracle ADFデータ・コントロール・インタフェースを介して、ビュー・レイヤーおよびコントローラ・レイヤーに公開されます。
-
Bean Data Control Interface Chooserダイアログで、オプションを選択せずに「OK」をクリックします。
プロジェクトにデータ・コントロール定義ファイル(DataControls.dcx)が追加され、概要エディタでファイルが開きます。

DCX定義ファイルは、クライアントと利用可能なビジネス・サービス間のやり取りを可能にするOracle ADFモデル層アダプタ・クラスを識別します。
詳細表示
プロジェクトごとに1つのDCXファイルがあり、このファイルはデータ・コントロールをビジネス・サービスに初めて登録するときに作成されます。 DCXファイルは"目次"の役割を果たし、プロジェクトのすべてのデータ・コントロールをリストします。 DCXは、プロジェクトにあるすべての利用可能なサービス・クラスから、データ・バインド・オブジェクトとして利用できるように設計時に要求したクラスを登録します。
アプリケーション・ナビゲータで、「Data Controls」パネルを開き、「AddressBook」を開きます。
作成したデータ・コントロールが表示されない場合は、パネル・ツールバーの「
」Refreshをクリックします。
展開すると、
AddressBookノードにビジネス・サービスの構造が表示されます。
詳細表示 AddressBookデータ・コントロール・ノード自体はユーザーが使用できる項目ではありませんが、表示されているサポート対象オブジェクトから選択できます。
ビジネス・サービスの階層構造は、以下によって決定されます。
Projectsパネルですべてのノードを展開すると、ファイルadfm.xmlも追加されていることがわかります。
実行時には使用されないこのファイルは、データ・モデル・プロジェクトで表示されるデータ・コントロールを特定するために、JDeveloperのData Controlパネルにより使用されるレジストリです。
メイン・メニューから、「File」→「New」→「General」→「Projects」→「Custom Project」を選択して、「OK」をクリックします。

プロジェクト名にViewと入力します。 次に、Availableリストと
から「ADF Faces」を選択して、Selectedリストに移動します。

プロジェクト用の機能を選択すると、New Galleryによって提示される選択肢をフィルタで選別することが可能になり、実行している作業の種類に適した選択肢だけを表示できます。
詳細表示 機能はプロジェクトごとに設定されます。機能は作業を支援する目的でJDeveloperの中だけで使用されるので、プロジェクト自体のデータに影響を与えることはありません。 Oracle ADF Facesを追加すると、必要な関連機能がSelectedペインに自動的に伝播されます。
「Finish」をクリックします。
アプリケーション・ナビゲータにViewプロジェクトが表示されます。

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

-
Create JSF Pageダイアログで、ファイル名としてContactList.jsfを入力します。ドキュメント・タイプとしてFaceletsが選択されていることを確認します。
JavaServer Facesを使用するアプリケーション向けに作成するJSFページには、Faceletsドキュメント(ファイル拡張子は
.jsf)、またはXML構文で記述されたJSPドキュメント(ファイル拡張子は
.jspx)を使用できます。
詳細表示
どちらのJSFページもCreate JSF Pageダイアログを使用して作成できます。次のいずれかの方法でJSFページを開きます。
Page Layoutページで「Blank Page」を選択します。Managed Beanページで、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。
Create JSF Pageダイアログでは、新しいページのルック・アンド・フィールの一部を任意で定義でき(
PageLayoutタブ)、また、ページ上のコンポーネントをマネージドBeanで公開するかどうかを指定できます(
Managed Beanタブ)。
詳細表示
デフォルトでは、コンポーネントはマネージドBeanに対して公開されません。コンポーネントをマネージドBeanにバインドする場合は、このダイアログのManaged Beanページでいずれかの自動バインディング・オプションを選択します。 自動バインディング・オプションを使用すると、JDeveloperは、新規のJSFページを作成するたびに自動的にバッキングBeanを作成し、ページ内の各UIコンポーネントをバッキングBeanの対応するプロパティに関連付けて、プログラムで操作できるようにします。
ただし、ページにOracle ADFバインディングを追加する場合は、自動バインディング機能を使用しないでください。 自動バインディング機能を使用した場合は、Oracle ADFバインディングを追加した後でマネージドBeanバインディングを削除することが必要になります。
「OK」をクリックします。
デフォルトでは、ビジュアル・エディタに新しい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>
コンポーネント・パレットのADF FacesページのLayoutパネルで、「
」Panel Stretch Layoutをドラッグして、ビジュアル・エディタの空白ページにドロップします。
ビジュアル・エディタにコンポーネントをドラッグすると、Formという名前の長方形の領域が表示されます。これは、今ドラッグしているコンポーネントがそのターゲット・コンポーネント内に挿入されることを意味しています。

「
」Save Allをクリックして作業内容を保存します。
JSFページの作成ステップが完了すると、アプリケーション・ナビゲータには
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機能を構成するファイルです。
Data Controlsパネルで、「AddressBook」を展開してから、「findAllContacts()」を展開します。

Oracle ADFデータ・コントロールは、データ・コレクション、属性、メソッド、
詳細表示 ならびにすべてのデータ・コレクションで一般的に実行される特定の組込みの処理などの形でData Controlsパネルに表示されます。 パネル内のオブジェクトは、データバインドUIコンポーネントとしてビューやWebページに追加したり、処理としてコントローラに追加したりすることができます。
Data Controlsパネルからコンポーネントを挿入すると、EL(式言語)構文を使用することで、新しいOracle ADFバインディングがページのUIモデルで定義され、挿入されたコンポーネントには、Oracle ADFバインディングへの参照が含まれます。
Data Controlsパネルにより、Webページまたはクライアント・ドキュメントに生成されるコード、作成されるバインディングは、ビジュアル・エディタに表示されるドキュメントのタイプ、ユーザーが選択して、オープン・ドキュメントにドロップするビジネス・サービスとビジュアル要素の組合せによって決まります。
-
「Contact」をクリックして、ビジュアル・エディタのページのcenterファセットにドラッグします。 Createコンテキスト・メニューから、「Table」→「ADF Read-only Table」を選択します。

Edit Table Columnsダイアログで「Enable Sorting」を選択します。

デフォルト値はそのままにして、「OK」をクリックします。
ビジュアル・エディタには次のようなページが表示されます。

Data Controlsパネルを使用してUIコンポーネントを作成すると、選択したデータ・コントロールにコンポーネントをバインドするための各種コードとオブジェクトがJDeveloperによって自動作成されます。
詳細表示 ページ用に定義されたOracle ADFデータ・バインディングを表示するには、エディタ・ウィンドウ下部の「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という列見出しが表に作成されます。
アプリケーション・ナビゲータで「ContactList.jsf」を右クリックし、「Run」を選択します。
Create Default Domainダイアログが表示されたら、PasswordフィールドとConfirm Passwordフィールドにデフォルト・パスワード(例:weblogic1)を入力し、「OK」をクリックします。
次のようなページがブラウザに表示されます。

デフォルトでJDeveloperは、IDEにバンドルされたOracle WebLogic Serverのユーザー固有のインスタンスを参照する、Integrated WebLogic Serverという名前の統合サーバーを自動的に構成します。
詳細表示Integrated WebLogic Serverは、パッケージ化されたアーカイブ・デプロイメント用のJava EEランタイム・サービスです。ゼロコピー・デプロイメントに基づき、Integrated WebLogic Serverでは、アプリケーションとそのプロジェクトのJava EEアプリケーションとしての実行とテストをJava EEコンテナ内で行えます。Integrated WebLogic Serverの使用に際し、特別な接続設定は必要ありません。アプリケーション全体、プロジェクト、または個別のJSFページを実行できます。
IDEでJSFアプリケーションを実行すると、次の処理が自動的に実行されます。
まだ実行中でない場合は、Integrated WebLogic Serverを起動します。
アプリケーションをコンパイルして、Integrated WebLogic Serverにデプロイします。
-
次のデフォルトのアドレスを使用して、デフォルトのブラウザ内でアプリケーションを起動します。http://<your_machine_IP_address>:<http_port>/<your_application_name>-<your_project_name>-context-root>/faces/<path_to_the_page>
アプリケーションを終了する場合は、JDeveloperで「
」Terminateをクリックし、ドロップダウン・メニューからアプリケーション・バウンド・インスタンス「DataBoundApp」を選択します。
注:アプリケーションを終了すると、アプリケーションは停止し、Integrated WebLogic Serverからアンデプロイされますが、Integrated WebLogic Serverは終了されません。
データ・コントロールをJSFページに追加するステップを完了すると、アプリケーション・ナビゲータのViewプロジェクトは次のように表示されます。
ViewプロジェクトのApplication Sourcesフォルダに追加された新しいファイルには、次のものがあります。 ContactListPageDef.xml: JSFページのページ定義ファイル。 ページ定義ファイルは、実行時にUIコンポーネントにデータを移入するOracle ADFバインディング・オブジェクトを定義して、ViewプロジェクトのページのUIコンポーネントとModelプロジェクトのビジネス・サービス・コンポーネントが互いに通信できるようにします。
Oracle ADFバインディングを使用するすべてのページに、そのページで使われるバインディング・オブジェクトを定義した、対応するページ定義ファイルが存在する必要があります。 したがって、Data Controlsパネルとビジュアル・エディタを使用して新しいページを設計するたびに、新しいページ定義ファイルが作成されます。 ビュー・ページからバインディング式を削除した場合は、ページ定義ファイルのバインディング定義を編集する必要があります。
ページ定義ファイルにより、設計時にすべてのOracle ADFバインディングにアクセスできます。 実行時、ページ定義ファイルで定義されたバインディング・オブジェクトは、バインディング・コンテナでインスタンス化され、ページ定義ファイルのランタイム・インスタンスになります。
DataBindings.cpx: このファイルは、アプリケーション全体のOracle ADFバインディング・コンテキストを定義し、実行時にOracle ADFバインディング・オブジェクトが作成されるメタデータを提供します。 バインディング・コンテキストは、利用可能なデータ・コントロールとデータ・バインディング・オブジェクトのリストを持つコンテナ・オブジェクトです。 個々のページをページ定義ファイル内のバインディング定義にマッピングして、これらのページで使用されるデータ・コントロールを登録します。 実行時、DataBindings.cpxファイルにあるデータ・コントロールのみを現在のアプリケーションで使用できます。
エディタ・ウィンドウで、「DataControls.dcx」タブをクリックして、DCX概要エディタを前面に表示します。
DCXファイルがまだ開いていない場合は、アプリケーション・ナビゲータのModelプロジェクトの「DataControls.dcx」をダブルクリックして、ファイルを開きます。
-
「AddressBook」→「findAllContacts()」と展開します。 次に、「Contact」を選択し、「
」Editをクリックして、概要エディタを別に開きます。

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

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

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(有効)に設定すると、ユーザー・インタフェースで値が変更されたときに、部分的な送信をトリガーします。
-
この手順を繰り返して、ラベル・テキストEmail Addressを使って、属性emailのラベルを追加します。
ビジネス・サービス・レベルでコントロール・ヒントを追加すると、プロジェクトのテキスト・リソースを含んだ
.propertiesファイルが作成されます。
詳細表示
設定するコントロール・ヒントの値を定義するファイルは、プロジェクトで使用される特定のビジネス・サービスによって決まります。 Beanベースのビジネス・サービス(JavaBeans、Enterprise JavaBeans、Oracle TopLinkを含む)の場合、デフォルトにより、プロジェクトのテキスト・リソース用の標準.propertiesファイルが生成され、コントロール・ヒント定義は変換可能な文字列として保存されます。
アプリケーション・ナビゲータでは、ファイルModelBundle.propertiesが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
-
アプリケーション・ナビゲータで「ContactList.jsf」を右クリックし、「Run」を選択します。
ブラウザのページに新しいラベルが表示されます。

ブラウザ・ページで、列ヘッダーの片端をドラッグして表の列の幅を広げることができます。
詳細表示 データバインド表を設計時に追加した際、Enable Sortingチェック・ボックスを選択すると、列ヘッダー上のSort Ascending、またはSort Descendingアイコンを選択して、列のコンテンツをソートできます。
パラメータを取り込むメソッドにバインドされたコマンド・ボタン、メソッド・パラメータにバインドされた入力テキスト・フィールドを作成します。
詳細表示 ボタンを実行時にクリックすると、パラメータ値に一致するオブジェクトのみがメソッドによって返されます。 一致したオブジェクトは読取り専用の表に表示されます。
-
アプリケーション・ナビゲータで「View」プロジェクトを右クリックし、「New」→「Web Tier」→「JSF/Facelets」→「Page」の順に選択して、「OK」をクリックします。
-
Create JSF Pageダイアログで、ファイル名としてContactLookup.jsfを入力します。ドキュメント・タイプとしてFaceletsが選択されていることを確認します。

Page Layoutページで「Blank Page」を選択します。Managed Beanページで、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。
コンポーネント・パレットのADF FacesページのLayoutパネルで、「
」Decorative Boxをドラッグして、ビジュアル・エディタの空白ページにドロップします。
-
Data Controlsパネルで、パネル・ツールバー上の「
」Refreshをクリックして、「AddressBook」を展開し、次に、「findContactsByName(String)」を展開します。

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

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

プロパティ・インスペクタのCommonセクションで、Layoutの値をscrollに変更します。
-
コンポーネント・パレットで、別の「
」Panel Group Layoutを、先ほど追加したPanel Group Layoutにドラッグ・アンド・ドロップします。プロパティ・インスペクタで、Layoutの値をhorizontalに変更します。
コンテンツを拡張しない場合は、
layout="scroll"でパネル・グループ・レイアウト・コンポーネントのコンテンツをラップすることで、
詳細表示 非拡張コンテンツを個別に作成することを推奨します。 パネル・グループ・レイアウト・コンポーネントは拡張可能でありながら、子は拡張しないため、非拡張コンテンツに最適なコンポーネントです。 次に、
layout="horizontal"に設定した2つ目のパネル・グループ・レイアウト・コンポーネントを使用して、コンテンツ・コンポーネントを水平方向にレイアウトします。
Data Controlsパネルで、findContactsByName(String)の下の「Parameters」を展開します。

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

プロパティ・インスペクタのCommonセクションで、デフォルトのLabel値を削除し、Enter part of name:に置き換えて、2つのスペースを追加します。
-
Data Controlsパネルで、「findContactsByName(String)」をドラッグして、Structureウィンドウのaf:panelGroupLayout - horizontalにドロップします。 コンテキスト・メニューから「Method」→「ADF Button」を選択します。

プロパティ・インスペクタで、デフォルトのText値を削除して、Findに置き換えます。
-
Structureウィンドウで、「af:panelGroupLayout - scroll」を選択します。 プロパティ・インスペクタのStyleセクションで、InlineStyleフィールドにpadding:5.0pxと入力します。
ビジュアル・エディタで、ページは次のように表示されます。

-
アプリケーション・ナビゲータで「ContactLookup.jsf」を右クリックし、「Run」を選択します。
次のようなページがブラウザに表示されます。

入力フィールドに
shと入力してボタンをクリックすると、
詳細表示 名前に'sh'がある連絡先が表に返されます。
コントロール・ヒントを使用して、連絡先のemail属性とaddress属性のラベル・テキストをすでに入力してあるため、ModelBundle.propertiesファイルに保存されているラベル・テキストがこの表の列ヘッダーにも適用されます。
このチュートリアルでは、Oracle ADFデータ・コントロールとOracle ADF Facesコンポーネントを使用して、データバインド・ページを作成しました。このチュートリアルで学習した内容は、以下のとおりです。
- JDeveloperのウィザードおよびダイアログを使用して、アプリケーション、初期ページ、および初期Javaクラスを作成する
- ビジュアル・エディタ、コンポーネント・パレット、プロパティ・インスペクタを使用して、UIページを作成する
- 簡単なJavaBeanオブジェクトからデータ・コントロールを作成する
- Data Controlsパネルを使用して、コードを作成せずに、データバインドUIコンポーネントを作成する
- ビジネス・サービスの中央ロケーションでラベルを設定する
- Integrated WebLogic Serverを使用してOracle ADF Facesアプリケーションを実行する
Oracle ADFデータ・バインディングとデータバインド・アプリケーションの開発について詳しくは、以下を参照してください。
すべて表示 |
すべて非表示
Copyright © 2011, Oracle and/or its affiliates.All rights reserved.