ビジネス・コンポーネント・クライアントのコントロール・ヒントについて

ビジネス・コンポーネントと対話するアプリケーションは、Oracle ADF Business Componentsテクノロジを使用してデータベースにアクセスします。このタイプのデータ・アクセス・アプリケーションのビジネス・コンポーネント層には、データベースからデータを取得したり、クライアントのアプリケーション層での使用のためにデータベースのデータ型をJavaのデータ型へ変換したりする機能が用意されています。また、あらゆるビジネス・コンポーネントのデータ項目をすべてのクライアントに一貫した方法で表示するための一元化メカニズムも用意されています。コントロール・ヒントと呼ばれるこのメカニズムにより、ビジネス・コンポーネント開発者は次のような利点を得ることができます。

JDeveloperでは、ビジネス・コンポーネントとの対話やコントロール・ヒントの利用が可能なビルトイン機能により、次のような特定のクライアント・アプリケーションをサポートしています。

ビジネス・コンポーネントのコントロール・ヒント・メカニズム

ビジネス・コンポーネント層は、データベースにアクセスするクライアント・アプリケーションのために協調してトランザクション環境を提供するオブジェクトの集合体です。ビジネス・コンポーネントのクライアントは高レベル層のアプリケーション・モジュール・オブジェクトを介してOracle ADF Business Componentsテクノロジと対話します。データベースへのアクセスを開始する場合、クライアントはアプリケーション・データの状態を定義するアプリケーション・モジュール・インスタンスを取得し、データベースへの接続を提供します。ビジネス・コンポーネント開発者は、各アプリケーション・モジュールに対してビジネス・コンポーネント・プロジェクトで次のオブジェクトを作成します。

これらの基本的な機能の他にも、ビジネス・コンポーネントにはビジネス・コンポーネント層で利用できる様々な機能が用意されています。その1つは、特定の属性値をクライアントのUIでどのように表示するかを定義するコントロール・ヒント情報を格納する機能です。

ビジネス・コンポーネント・プロジェクトでのコントロール・ヒントの使用に関して重要なことは、コントロール・ヒントは定義オブジェクトのプロパティで、他のビジネス・コンポーネントがこれを継承できるという点です。たとえば、開発者がエンティティ・オブジェクト・レベルに設定した任意のコントロール・ヒントのプロパティは、そのエンティティ・オブジェクトを参照するビュー・オブジェクトに反映されます。一方、ビュー・オブジェクト・レベルにコントロール・ヒントを設定し、エンティティ・レベルのコントロール・ヒント・プロパティ定義をオーバーライドすることも可能です。ビュー・オブジェクトでコントロール・ヒント・プロパティを継承およびオーバーライドできるため、ビジネス・コンポーネント開発者は次のようにコンポーネントを開発できます。

コントロール・ヒント・プロパティについて

コントロール・ヒント・メカニズムは、次のコントロール・ヒント・プロパティをサポートします。

コントロール・ヒントの設計時のサポートについて

設計時のコントロール・ヒントのサポートは、次のように3つのレベルで用意されています。

ビジネス・コンポーネント設計時のウィザードは、エンティティ・オブジェクトとビュー・オブジェクトの両方の属性にコントロール・ヒントを設定、編集するためのメカニズムを備えています。属性に設定されたコントロール・ヒントを編集するには、任意のエンティティ・オブジェクトまたはビュー・オブジェクトの属性を構造ウィンドウに表示し、右クリックして属性エディタで属性を開きます。

エンティティ属性およびビュー属性エディタでは、コントロール・ヒントは現在の属性のプロパティとして表示されます。「コントロール・ヒント」タブを使用すると、コントロール・ヒント・プロパティを簡単に編集できます。「コントロール・ヒント」タブで設定後、「プロパティ」タブをクリックすると属性に追加されたヒントを表示できます。

次の表は、コントロール・ヒント名と、様々なビジネス・コンポーネント・クライアントがそれらのコントロール・ヒントを使用するかどうかを示しています。

ヒント名 JSPページ(「注意」を参照) ADF UIXページ ADF JClient Java UI
ラベル・テキスト

はい

はい

はい

ヒント・テキスト

はい

いいえ

はい

書式および書式マスク

はい

はい

はい

ヒントの表示

はい

はい

はい

コントロール・タイプ

はい

はい

いいえ

表示幅および表示高さ

はい

はい

はい

フォーム・タイプ

適用しない

適用しない

はい

注意: Strutsタグ・ライブラリとJSTLタグを使用して式を評価する入力フォーム・ページでは、コントロール・ヒントはサポートされていません。詳細は、次のセクションを参照してください。

コントロール・ヒントの実行時のサポートについて

現在のところ、Strutsフォームで表示されるJSTLタグを使用して、他のタグの属性に値を提供することはできません。JSP 1.2にはこの制限があるので、Struts入力フォームでは、コントロール・ヒントを使用して入力要素の表示プロパティを設定できません。たとえば、現在のところ、次のコンストラクションはサポートされていません。

<html:text property="EmpName"
    size='<c:out value="${bindings.EmpName.displayWidth}"/>'
/>

JSPページとADFバインディングを使用する場合、次のようにHTMLタグを使用して、コントロール・ヒントを指定できます。

<textarea name="<c:out value='${bindings.Dname.path}'/>"
          cols="<c:out value='${bindings.Dname.displayWidth}' />"
          rows="<c:out value='${bindings.Dname.displayHeight}' />">
   <c:out value='${bindings.Dname}'/>
</textarea>

ADF UIXページを使用する場合、UIXコンポーネントに対して指定する日付パターン(messageDateFieldなど)は、コントロール・ヒントの中で指定した日付書式に一致している必要があります。同じパターンを使用しない場合、実行時エラーCannot create an object of type:oracle.jbo.domain.Dateが発生します。

実行時のコントロール・ヒントのサポートは、次のように2つのレベルで用意されています。

実行時には、ビジネス・コンポーネント・クライアントは属性値を表示する方法を決定するため自動的にコントロール・ヒントを利用します。コントロール・ヒント・プロパティがビジネス・コンポーネント・クライアントでサポートされている場合は(前述の表を参照)、UIのカスタマイズに必要な処理は特にありません。この場合、UIのカスタマイズはビジネス・コンポーネント自身の一元化されたコントロール・ヒントで行われます。

JClient(Java UI)クライアントの場合、UI開発者はコントロール・ヒントAPIにより、コントロール・ヒント定義に直接アクセスできます。コントロール・ヒントは属性オブジェクトのプロパティですが、特定のコントロール・ヒントを取得するためにgetProperty()メソッドを使用する方法はお薦めできません。かわりに、コントロール・ヒントAPIのメソッドの使用をお薦めします。たとえば、UI開発者は次のようにAttributeHintsインタフェースのメソッドを使用して、ラベル、ヒント・テキストおよびコントロール・タイプにアクセスします。

import oracle.jbo.*

ViewObject vo = am.findViewObject("DeptView");
AttributeDef aDef = vo.findAttribute("DeptNo");
LocaleContext locale = am.getSession().getLocaleContext();

String sLabel = aDef.getUIHelper().getLabel(locale);
String sTooltip = aDef.getUIHelper().getTooltip(locale);
Int nControlType = aDef.getUIHelper().getControlType(locale);

「書式の種類」コントロール・ヒントについて

書式コントロール・ヒントの「書式の種類」および「書式」により、ビジネス・コンポーネント開発者はビジネス・コンポーネントのドメイン・クラスを介して属性フォーマッタを利用できます。ビジネス・コンポーネント・プロジェクトでは、開発者は次の場合にフォーマッタをビジネス・コンポーネントのドメインにマップできます。

各ドメイン・クラスは任意の数のフォーマッタを持つことができます。1つのフォーマッタは任意の数のマスクをサポートできます。属性エディタには、使用可能なフォーマッタと対応する値のマスクのリストが候補として表示されます。使用可能なフォーマッタへのドメイン型のマップは、<jdev_install >/system###/formatinfo.xmlファイルで維持されます。ビジネス・コンポーネント開発者はドメインの作成にドメイン・ウィザードを使用しますが、現在、JDeveloperではformatinfo.xmlファイルでのドメイン・フォーマッタおよびマスクの自動生成はサポートしていません。新規ドメイン型を作成し、その書式を使用可能なフォーマッタのリストに追加する場合、開発者はこのファイルの内容を手作業で編集する必要があります。


ADF Business Componentsクライアントでの表示メタデータの操作
ビジネス・コンポーネント・クライアントUIのカスタマイズ
ビジネス・コンポーネント・クライアント用のフォーマッタと書式マスクの定義

 

Copyright © 1997, 2004, Oracle. All rights reserved.