ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter PortalおよびOracle JDeveloperでのポータルの開発
11gリリース1 (11.1.1.8.3)
E49666-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

26 コンテンツ・データ・コントロールの使用

この章では、ドキュメントやリレーショナル・コンテンツなどのコンテンツにアクセスするためのJCRデータ・コントロールの使用方法について説明します。

JCR APIは、基礎となるリポジトリまたはコンテンツのタイプに関係なく、コンテンツへの独立したアクセスを可能にします。JSR 170で定義されているJCR 1.0 APIは、コンテンツの読取り、書込み、参照および検索のための一連の基本機能を提供しています。JCRデータ・コントロールでは、他のJCR 1.0リポジトリとの接続および読取りも可能です。コンテンツ・サーバー、Oracle Portal、SharePoint用Oracle WebCenterアダプタおよびファイル・システムで使用可能なコンテンツをJSFページに追加するには、まずリポジトリへの接続を作成した後、その接続を使用してリポジトリに基づいてデータ・コントロールを作成します。詳細は、第24章「コンテンツの統合と公開の概要」を参照してください。

この章には次の項が含まれます。

26.1 コンテンツ・データ・コントロールの概要

コンテンツ・データ・コントロールとは、すべてのデータ・オブジェクト、コレクション、メソッドおよび操作のコンテナであり、Portal Frameworkアプリケーション内にユーザー・インタフェース(UI)コンポーネントを作成するために使用されます。データ・コントロールでは、簡単に使用できるメソッドが提供され、これをJSFページにドラッグ・アンド・ドロップして、URL、ファイルおよびフォルダなどのADFコンポーネントとしてコンテンツを公開できます。コンテンツを公開するためのメソッド、パラメータおよびデフォルト属性は、すべてのJCRデータ・コントロール間で類似していますが、コンテンツ統合モジュールによって、要件に応じた属性のカスタマイズを柔軟に行えます。

どのタイプのコンテンツ・データ・コントロールにも、コンテンツをリンク、表、ファイルおよびフォルダとして公開しコンテンツに検索機能と拡張検索機能を追加するためのメソッドおよびパラメータが含まれています。パラメータには、2つのタイプの属性(デフォルトおよびカスタム)が含まれます。デフォルト属性は、ファイル・システム、Oracle Portal、Oracle WebCenter Content: Content ServerおよびSharePoint用Oracle WebCenterアダプタに基づくデータ・コントロールで共通です。カスタム属性は、リポジトリに固有であり、コンテンツ・データ・コントロールの作成中に追加できます。

次の各項で、ファイル・システム、Oracle Portal、コンテンツ・サーバーおよびSharePoint用Oracle WebCenterアダプタに基づくデータ・コントロールで共通のメソッド、パラメータおよびデフォルト属性について説明します。

26.1.1 getItemsメソッド

getItemsメソッドは、リポジトリ内の特定位置を開始点として格納されているファイルおよびフォルダを返します。このメソッドを使用すると、フォーム、表および階層ツリー内にコンテンツを公開できます。また、このメソッドを使用すると、ナビゲーション・リストおよびボタンも作成できます。

表26-1に、getItemsメソッドのパラメータを示します。

表26-1 getItemsメソッドのパラメータ

パラメータ 説明

path

getItemsの開始ポイントを定義します。

type

返される要素(ファイルのみ、フォルダのみ、またはオブジェクト)を指定します。


getItemsメソッドは、表26-2に示された属性を返します。

表26-2 getItemsメソッドの戻り属性

パラメータ 説明

icon16

ドキュメントでアイテムに使用するアイコンへのURIを指定します。

icon32

ドキュメントでアイテムに使用するアイコンへのURIを指定します。

ID

IDが必要なドキュメント・タスク・フローへのパラメータです。

lastModified

アイテムの最終変更日に関する説明です。

name

返されるファイルまたはフォルダの名前を指定します。

path

コンテンツ・リポジトリ内での、返されるファイルまたはフォルダの場所を指定します。

URI

ファイルまたはフォルダのダイレクト・アクセスURL。

primaryType

返されるオブジェクトがファイルかフォルダまたはそれ以外のタイプであるかを指定します。


26.1.2 searchメソッド

searchメソッドを使用すると、名前パターンまたはキーワードでの標準検索を作成できます。

表26-3に、searchメソッドのパラメータを示します。

表26-3 searchメソッドのパラメータ

パラメータ 説明

path

検索の開始パス。

isRecursive

指定されたフォルダのみを検索する(=false)か、指定されたパスから始まるツリー全体を検索する(=true)かを指定します。

デフォルト値はfalseです。つまり、このフィールドを空白のままにすると、指定したフォルダでsearchが実行されます。この値がtrueの場合にのみ、階層全体でsearchが実行されます。

keyword

全文検索の検索キーワード。

namePattern

名前でのパターン検索。ワイルドカード%は任意の数の文字に対して、ワイルドカード_は1文字に対して使用します。


searchメソッドは、表26-4に示す属性を返します。

表26-4 searchメソッドの戻り属性

パラメータ 説明

icon16

ドキュメントでアイテムに使用するアイコンへのURIを指定します。

icon32

ドキュメントでアイテムに使用するアイコンへのURIを指定します。

ID

IDが必要なドキュメント・タスク・フローへのパラメータです。

lastModified

アイテムの最終変更日に関する説明です。

name

返されるファイルまたはフォルダの名前を指定します。

path

コンテンツ・リポジトリ内での、返されるファイルまたはフォルダの場所を指定します。

URI

ファイルまたはフォルダのダイレクト・アクセスURL。

primaryType

返されるオブジェクトがファイルかフォルダまたはそれ以外のタイプであるかを指定します。


26.1.3 advancedSearchメソッド

advancedSearchメソッドを使用すると、使用可能な属性から検索基準セットを作成することにより、拡張検索を実行できます。

表26-5に、advancedSearchメソッドのパラメータを示します。

表26-5 advancedSearchメソッドのパラメータ

パラメータ 説明

path

検索の開始パス。

isRecursive

指定されたフォルダのみを検索する(=false)か、指定されたパスから始まるツリー全体を検索する(=true)かを指定します。

デフォルト値はfalseです。つまり、このフィールドを空白のままにすると、指定したフォルダでsearchが実行されます。この値がtrueの場合にのみ、階層全体でsearchが実行されます。

keyword

全文検索の検索キーワード。

namePattern

名前でのパターン検索。ワイルドカード%は任意の数の文字に対して、ワイルドカード_は1文字に対して使用します。

matchAny

すべての述語が一致する必要がある(=false)か、いずれかの述語が一致すればよい(=true)かを指定します。

predicates

属性、コンパレータおよび値から構成されるSimplePredicateパラメータのコレクション。

type

返される要素(ファイルのみ、フォルダのみ、またはオブジェクト)を指定します。


advancedSearchメソッドは、表26-6に示す属性を返します。

表26-6 advancedSearchメソッドの戻り属性

パラメータ 説明

icon16

ドキュメントでアイテムに使用するアイコンへのURIを指定します。

icon32

ドキュメントでアイテムに使用するアイコンへのURIを指定します。

ID

IDが必要なドキュメント・タスク・フローへのパラメータです。

lastModified

アイテムの最終変更日に関する説明です。

name

返されるファイルまたはフォルダの名前を指定します。

path

コンテンツ・リポジトリ内での、返されるファイルまたはフォルダの場所を指定します。

URI

ファイルまたはフォルダのダイレクト・アクセスURL。

primaryType

返されるオブジェクトがファイルかフォルダまたはそれ以外のタイプであるかを指定します。


26.1.4 getURIメソッド

getURIメソッドは、ファイルまたはフォルダのダイレクト・アクセスURLであるURI属性を返します。そのpathパラメータによりオブジェクトへのパスを指定します。このメソッドを使用すると、コンテンツへのリンクを作成したり、ページでコンテンツをインライン表示できます。getURIメソッドは、URI属性を返します。

26.1.5 getAttributesメソッド

getAttributesメソッドは、特定のファイルまたはフォルダの属性および値のリストを返します。そのpathパラメータによりオブジェクトへのパスを指定します。

表26-7に、getAttributesメソッドにより返される属性を示します。

表26-7 getAttributesメソッドの戻り属性

パラメータ 説明

name

属性の名前

value

属性の値


26.2 JCRアダプタ対応のコンテンツ・データ・コントロールの構成

この項では、コンテンツのリポジトリ接続に基づくコンテンツ・データ・コントロールを作成する方法について説明します。

26.2.1 コンテンツ・リポジトリ・データ・コントロールの構成

コンテンツ・リポジトリ・データ・コントロールの作成手順は、データ・コントロールの作成に使用した接続のタイプに関係なく同じです。コンテンツ・リポジトリへの接続を作成していない場合、第25.2項「コンテンツ・リポジトリ接続の構成」を参照してください。この項では、コンテンツ・サーバーベースの接続を使用してコンテンツ・データ・コントロールが作成されます。

既存のコンテンツ・リポジトリ接続を使用してコンテンツ・データ・コントロールを作成するには:

  1. アプリケーション・ナビゲータで、新しいデータ・コントロールのプロジェクト・エントリを作成するポータル・プロジェクトを選択します。

    これは、データ・コントロールの定義とデータ・コントロールの使用を分離するために必要です。ポータル・プロジェクトを選択した場合、ユーザー・インタフェースが作成されるViewControllerプロジェクト内ではなく、「アプリケーション・ソース」サブ・フォルダ内にデータ・コントロール定義ファイルが作成されます。

  2. 「アプリケーション・リソース」パネルで、リポジトリ接続を作成した「接続」フォルダを開きます。

  3. 新規データ・コントロールに使用するリポジトリ接続をドラッグし、「データ・コントロール」パネルにドロップします。

    または、「ファイル」メニューから「新規」を選択します。「新規ギャラリ」で、「ビジネス層」を開き、「コンテンツ・リポジトリ」「コンテンツ・リポジトリのデータ・コントロール」の順に選択し、「OK」をクリックします。

    「接続名」リストで接続の名前が選択された状態で、「コンテンツ・リポジトリのデータ・コントロールの作成」ダイアログが表示されます。


    注意:

    リソース・パレットでリポジトリ接続を作成した場合、リソース・パレットで接続を右クリックし「データ・コントロールの作成」を選択します。リソース・パレットから「データ・コントロール」パネルに、必要な接続をドラッグ・アンド・ドロップできます。

    新しい接続を追加するには、「コンテンツ・リポジトリ接続を新規に作成します」アイコンをクリックし、「コンテンツ・リポジトリ接続の作成」ダイアログ・ボックスを表示します。詳細は、第25.2項「コンテンツ・リポジトリ接続の構成」を参照してください。


  4. 「データ・コントロール名」フィールドに、MyDataControlなどのデータ・コントロールの名前を入力します。

  5. カスタム属性を追加するには、「追加」アイコンをクリックします。次に、「データ・コントロール」パネルに表示する属性の名前を入力し、そのタイプを選択して、JCRパスを入力します。

    Content Serverで、次に示すようにdPropertyNameという名前のメタデータ属性がアダプタにマップされます。

    jcr:content/idc:metadata/idc:dPropertyName
    

    たとえば、プロパティ名がdWorkflowStateである場合、jcr:content/idc:metadata/idc:dWorkflowStateとしてマップされます。

    Oracle Portalで、次に示すようにメタデータ属性がアダプタにマップされます。

    portal:name of the attribute in Oracle Portal
    

    注意:

    アイテム属性のJCRパスを取得するには、必要なアイテムに対してgetAttributesメソッドを実行します。次に、「データ・コントロール」パネルで各データ・コントロールを右クリックし、「定義の編集」を選択して、パスが含まれるようウィザードに再度入力します。


  6. 「OK」をクリックします。


    注意:

    データ・コントロールには、事前定義されたJCRのノード・タイプが含まれます。これらの基本的なノード・タイプは、フォルダ(nt:folder)およびファイル(nt:file)を表します。これらは、nt:baseスーパータイプの子であるnt:hierarchyNodeから導出されます。特定リポジトリの操作性をカスタマイズするために、基本タイプから追加ノード・タイプを導出できます。


26.2.2 コンテンツ・リポジトリのデータ・コントロールを構成する場合の処理

データ・コントロールが正常に構成されると、「データ・コントロール」パネルにノードとして表示されます。このノードを開くと、図26-1に示すような新しいデータ・コントロールのメソッド、パラメータおよび操作の階層リストが表示されます。「データ・コントロール」パネルの使用方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のFusion WebアプリケーションでのADFモデルの使用に関する項を参照してください。

図26-1 「データ・コントロール」パネル - Content Server

図26-1の説明が続きます
「図26-1 「データ・コントロール」パネル - コンテンツ・サーバー」の説明

表26-8に、データ・コントロールのアイコンおよびオブジェクト階層を示します。

表26-8 「データ・コントロール」パネルのアイコンおよびオブジェクト階層

アイコン 名前 説明 使用方法

データ・コントロール・アイコン


データ・コントロール

データ・コントロールを表します。UIコンポーネントを作成するためにデータ・コントロール自体を使用できませんが、その下のリストに含まれるいずれかの子オブジェクトを使用できます。ビジネス・サービスの定義方法に応じて、複数のデータ・コントロールが存在する場合があります。

他のオブジェクトのコンテナとして機能するもので、何かを作成するためには使用されません

メソッドのアイコン


メソッド

パラメータを受け入れ、ビジネス・ロジックを実行し、オプションで単一の値、構造体またはそれらのコレクションを返すことができるデータ・コントロールまたはその公開された構造体の操作を表します

コマンドのコンポーネント

パラメータを受け入れるメソッド(コマンド・コンポーネントおよびパラメータ化されたフォーム)

メソッドの戻りオブジェクトのアイコン。


メソッドの戻りオブジェクト

カスタム・メソッドによって返されるオブジェクトを表します。返されるオブジェクトは、単一の値またはコレクションです。

メソッドの戻りオブジェクトは、それを返すメソッドの下の子として示されます。メソッドの戻りオブジェクトの下の子として表示されるオブジェクトは、該当コレクションの属性、親コレクションに関連するアクションを実行する他のメソッド、および親コレクション上で実行可能な操作です。

単一値(テキスト・フィールドおよび選択リスト)

コレクション(フォーム、表、ツリーおよび範囲ナビゲーション・コンポーネント)

単一値のメソッド戻りオブジェクトがドロップされた場合、メソッドはフレームワークによって自動的に起動されません。またユーザーは、実行可能プログラムとして起動アクションを作成するか、メソッドを起動するボタンとして対応メソッドをドロップする必要があります。

属性のアイコン


属性

オブジェクト内の個別データ要素を表します(行内の属性など)。属性は、それが属するコレクションまたはメソッド戻りオブジェクトの下に子として示されます。

ビュー・オブジェクトに含まれていた属性のみがコレクションの下に表示されます。ビュー・オブジェクトが1つ以上のエンティティ・オブジェクトに結合する場合、そのビュー・オブジェクトのコレクションには基礎となるすべてのエンティティ・オブジェクトからの選択された属性が含まれます。

ラベル、テキスト・フィールド、日付および選択リストのコンポーネント

データ・コントロール操作のアイコン


操作

親オブジェクト上でアクションを実行する組込みデータ・コントロール操作を表します。データ・コントロール操作は、コレクションまたはメソッドの戻りオブジェクト、およびルート・データ・コントロール・ノードの下にある「操作」フォルダに位置します。特定のコレクションまたはメソッドの戻りオブジェクトの子である操作はそのオブジェクトに対してのみ動作するのに対して、データ・コントロール・ノード下にある操作はデータ・コントロール内のすべてのオブジェクトに対して動作します。

操作に1つ以上のパラメータが必要である場合、操作の下にある「パラメータ」フォルダに示されます。

ボタンやリンクなどのUIコンポーネント

パラメータのアイコン


パラメータ

パラメータが示されているメソッドまたは操作によって宣言されたパラメータ値を表します。パラメータは、メソッドまたは操作の下にある「パラメータ」フォルダに示されます。

ラベル、テキストおよび選択リストのコンポーネント


ポータル・プロジェクトの下に次のファイルが作成されます(図26-2)。

  • DataControls.dcx: Oracle JDeveloperは、データ・コントロールが最初に作成されたときにこのファイルを作成します。このファイルには、現在のプロジェクトの下で作成されたすべてのOracle ADFデータ・コントロールが含まれます。このファイルは、データ・コントロールの初期化に必要です。

  • datacontrolname.xml: このファイルには、データ・コントロールの属性、アクセッサおよび操作が含まれます。

  • advancedSearch_return.xml: このファイルには、advancedSearchメソッドの戻り型定義が含まれます。

  • getAttributes_return.xml: このファイルには、getAttributesメソッドの戻り型定義が含まれます。

  • getItems_return.xml: このファイルには、getItemsメソッドの戻り型定義が含まれます。

  • getURI_return.xml: このファイルには、getURIメソッドの戻り型定義が含まれます。

  • search_return.xml: このファイルには、searchメソッドの戻り型定義が含まれます。

  • Return.xml: このファイルは、コレクションに対する標準操作を定義します。

図26-2 プロジェクト・パネル - ポータル・プロジェクト

図26-2の説明が続きます
「図26-2 プロジェクト・パネル - ポータル・プロジェクト」の説明

26.3 コンテンツ・リポジトリ・データ・コントロールの編集

この項では、第26.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って構成したコンテンツ・データ・コントロールを編集するための一般的な手順を示します。

コンテンツ・データ・コントロールを編集するには:

  1. Oracle JDeveloperで、コンテンツ・データ・コントロールが含まれるアプリケーションに移動します。

  2. 「データ・コントロール」ペインで、編集するデータ・コントロールを右クリックし、図26-3に示すように「定義の編集」を選択します。図26-4に示す「コンテンツ・リポジトリのデータ・コントロールの編集」ダイアログが表示されます。

    図26-3 データ・コントロールの編集

    図26-3の説明が続きます
    「図26-3 データ・コントロールの編集」の説明

    図26-4 「コンテンツ・リポジトリのデータ・コントロールの編集」ダイアログ

    図26-4の説明が続きます
    「図26-4 「コンテンツ・リポジトリのデータ・コントロールの編集」ダイアログ」の説明

  3. 別の接続を選択するには、「接続名」リストを使用します。

  4. 接続を追加するには、「コンテンツ・リポジトリ接続を新規に作成します」アイコンをクリックし、「コンテンツ・リポジトリ接続の作成」ダイアログを表示します。作成する接続タイプ固有の構成パラメータの詳細は、第25.2項「コンテンツ・リポジトリ接続の構成」を参照してください。

  5. 既存の接続を編集するには、「選択したコンテンツ・リポジトリ接続を編集します」アイコンをクリックし、「コンテンツ・リポジトリ接続の編集」ダイアログを表示します。構成パラメータの詳細は、変更する接続のタイプに応じて、第25.2項「コンテンツ・リポジトリ接続の構成」で対応する項を参照してください。

  6. カスタム属性を追加するには「カスタム属性」ボックスの「新規属性の追加」アイコンを、削除するには「選択された属性の削除」アイコンを使用します。

  7. 「OK」をクリックして変更を適用します。

26.4 コンテンツ・リポジトリのデータ・コントロールの保護

コンテンツ・リポジトリ接続のセキュリティを有効にできます。詳細は、第74章「WebCenter Portal Frameworkアプリケーションの保護」を参照してください。

26.5 コンテンツ・データ・コントロールを使用したコンテンツの統合

この項では、データ・コントロールのgetURIメソッド、getItemsメソッド、searchメソッドおよびadvancedSearchメソッドを使用します。データ・コントロール・メソッドを使用する基本手順は、そのメソッドをページにドラッグ・アンド・ドロップすることです。メソッドをドロップすると、そのADF Facesタグがページのソースに追加され、タグが「構造」ウィンドウに表示されます。たとえば、getURIのURI属性を実行リンクとしてドロップすると、af:goLinkがページに追加されます。af:goLinkの宛先は、EL式#{bindings.URI.inputValue}に設定されます。このEL式は、af:goLinkの宛先値をバインディング・コンテナのURI値に関連付けます。

ページ定義ファイルでは、methodIteratorexecutables要素に追加され、methodActionbindings要素に追加されます。methodIterator要素およびmethodAction要素は、使用されるデータ・コントロールおよびメソッドを定義します。methodActionNamedData属性は、このメソッドのコールで提供する必要がある入力パラメータ値を定義します。pathパラメータおよびtypeパラメータは、すべてのデータ・コントロール・メソッドで共通です。ただし、searchおよびadvancedSearchNamedDataには、それぞれのメソッドに固有の追加パラメータが含まれます。たとえば、advancedSearchメソッドでは、検索の条件、検索が再帰的であるかどうかなどを定義するためにNamedDataを使用することもできます。

ページ定義には、ADFに対するバインディング・コンテナで使用可能なアイテムの属性を定義するAttrNames要素が含まれます。こうしたアイテムは、データ・コントロールの作成時に定義されたデフォルト属性およびカスタム属性に基づきます。

「データ・コントロール」パネルおよびページ定義ファイルの使用の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のFusion WebアプリケーションでのADFモデルの使用に関する項を参照してください。

この項の例では、次のデータ・コントロール・メソッドを使用しています。

この項には次のサブセクションが含まれます:

26.5.1 リンクとしてのコンテンツの公開

この項では、ファイル・システムに格納されたファイルへのハイパーリンクの作成方法およびそれらをテキストおよびイメージ・リンクに変換する方法について説明します。「ADF実行リンク」およびgetURIメソッドを使用してテキスト・リンクを作成し、「ADF Faces」のイメージを使用してイメージ・リンクを作成します。

この項では、次の手順について説明します。

始める前に:

  1. 第25.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。

  2. 第26.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。

  3. 第15.2項「WebCenter Portal Frameworkアプリケーションでのページの作成」の説明に従ってページを作成します。

26.5.1.1 テキスト・リンクとしてのコンテンツの公開

この項では、getURIメソッドのOracle ADF実行リンク・オプションを使用して、コンテンツをテキスト・リンクとして公開します。また、リポジトリの特定アイテムを表示するためのリンクを作成します。

テキスト・リンクとしてコンテンツを公開するには:

  1. アプリケーション・ナビゲータで、ページ(myPage.jspxなど)をダブルクリックしてビジュアル・エディタ内に開きます。

  2. 「データ・コントロール」パネルで、リポジトリ接続の下の「getURI (String)」メソッドを開き、「Return」を開きます。図26-5に示すように、URI属性が表示されます。

    図26-5 getURIメソッドのURI属性

    図26-5の説明が続きます
    「図26-5 getURIメソッドのURI属性」の説明

  3. テキスト・リンクを作成するには、「URI」属性を選択し、「構造」ウィンドウのh:formの下またはページ上にドロップします。図26-6に示すように、「作成」メニューから「リンク」を選択し、次に「ADF実行リンク」を選択します。

    最初にノードをページにドロップした場合、「アクション・バインディングの編集」ダイアログが表示されます。

    図26-6 getURIメソッドのOracle JDeveloperポップアップ・メニュー

    図26-6の説明が続きます
    「図26-6 getURIメソッドのOracle JDeveloperポップアップ・メニュー」の説明

  4. 図26-7に示すように、pathパラメータの「値」フィールドに、リンクを作成するファイルのパスを入力します。/PlasmaNews.htmlなどのように、必ずスラッシュ(/)を入力してください。このパスを後で変更または削除するには、設計モードでノードの隣にある矢印アイコンをクリックし、ポップアップ・メニューから「バインディングに移動」を選択します。

    図26-7 アクション・バインディングの編集

    図26-7の説明が続きます
    「図26-7 アクション・バインディングの編集」の説明


    注意:

    編集、パーソナライズ、カスタマイズおよび表示の権限を属性レベルで付与するには、第26.4項「コンテンツ・リポジトリのデータ・コントロールの保護」を参照してください。


  5. 「OK」をクリックします。

  6. ページを右クリックし、「実行」を選択します。ブラウザに、「アクション・バインディングの編集」ダイアログに入力したファイル・パスのURLが書式設定なしで表示されます。

  7. デフォルトでは、リンクにはテキストgoLink1が表示されます。「構造」ウィンドウで、「af:goLink - goLink1」を選択し、「プロパティ・インスペクタ」のプロパティを表示します。

  8. 図26-8に示すように、「Text」フィールドにPlasma Newsなどのリンク名を入力します。

    図26-8 「実行リンク」のプロパティ

    図26-8の説明が続きます
    「図26-8 「実行リンク」のプロパティ」の説明

  9. ページを右クリックし、「実行」を選択します。図26-9に示すように、ブラウザ・ウィンドウに新しいリンクを備えたページが表示されます。

    図26-9 ブラウザでのADF実行リンク

    図26-9の説明が続きます
    「図26-9 ブラウザでのADF実行リンク」の説明

  10. リンクをクリックして、適切なファイルが表示されることを確認します。

第26.5.1.2項「ドキュメントへリンクするクリック可能イメージの作成」で、このテキスト・リンクを拡張してイメージ・リンクにします。

同じJSFページに別のアイテムへのリンクを追加するには:

  1. アプリケーション・ナビゲータで、ADF実行リンクを作成したページを右クリックし、「ページ定義に移動」を選択します。図26-10に示すように「設計」ビューに「ページ・データ・バインディング定義」が表示されます。

    図26-10 ページ・データ・バインディング定義

    図26-10の説明が続きます
    「図26-10 ページ・データ・バインディング定義」の説明

  2. ページ定義の「ソース」ビューに移動します。

  3. 次の例に太字で示したように、executables要素で、別のmethodIteratorを追加し、methodIterator idおよびBindsの値を変更します。

    <executables>
      <variableIterator id="variables"/>
      <methodIterator Binds="getURI.result" DataControl="MyDataControl"
         RangeSize="25" BeanClass="portal.MyDataControl.getURI_return"
         id="getURIIterator"/>
      <methodIterator Binds="getURI1.result" DataControl="MyDataControl"
        RangeSize="25" BeanClass="portal.MyDataControl.getURI_return"
        id="getURIIterator1"/>
      </executables>
    
  4. 次の例に太字で示したように、Bindings要素で、別のmethodActionを追加し、methodAction idReturnNameおよびNDValueを変更します。

    <methodAction id="getURI" 
      RequiresUpdateModel=true Action="invokeMethod" MethodName="getURI"
      IsViewObjectMethod="false" DataControl="MyDataControl"
      InstanceName="MyDataControl" 
      ReturnName="MyDataControl.methodResults.getURI_MyDataControl_getURI_result">
      <NamedData NDName="path" NDValue="/PlasmaNews.html"
        NDType="java.lang.String"/>
    </methodAction>
    <methodAction id="getURI1" 
      RequiresUpdateModel="true" Action="invokeMethod" MethodName="getURI"
      IsViewObjectMethod="false" DataControl="MyDataControl"
      InstanceName="MyDataControl" 
      ReturnName="MyDataControl.methodResults.getURI_MyDataControl_getURI1_result">
      <NamedData NDName="path" NDValue="/FusionOrderDemoLogo.jpg"
        NDType="java.lang.String"/>
    </methodAction>
    
  5. 次の例に太字で示したように、Bindings要素で、別のattributeValuesタグを追加して新しいIdを指定します。

    <attributeValues 
          IterBinding="getURIIterator" 
          id="URI">
       <AttrNames>
          <Item Value="URI"/>
       </AttrNames>
    </attributeValues>
    <attributeValues 
            IterBinding="getURIIterator1" 
            id="URI1">
      <AttrNames>
            <Item Value="URI"/>
      </AttrNames>
    </attributeValues>
      
    
  6. 「データ・コントロール」パネルで、リポジトリ接続の下の「getURI (String)」メソッドを開き、「Return」を開きます。URI属性が表示されます。

  7. テキスト・リンクを作成するには、「URI」属性を選択し、「構造」ウィンドウのh:formの下またはページ上にドロップします。図26-11に示すように、「作成」メニューから「リンク」を選択し、次に「ADF実行リンク」を選択します。

    図26-11 getURIメソッドのOracle JDeveloperポップアップ・メニュー

    図26-11の説明が続きます
    「図26-11 getURIメソッドのOracle JDeveloperポップアップ・メニュー」の説明

  8. 「構造」ウィンドウで、新しいgoLink(「af:goLink2」など)をダブルクリックして、「実行リンクのプロパティ」ウィンドウを表示します。

  9. 「テキスト」フィールドに、新規リンクの表示名(FOD Logoなど)を入力します。

  10. 「リンク先」フィールドで下矢印をクリックして「式ビルダー」ダイアログを表示します。次に、「ADFバインディング」「バインディング」および「URI1」を開きます。

  11. 「inputValue」変数をダブルクリックして#{bindings.URI1.inputValue}式を作成し、「OK」をクリックします。この式は、executablesおよびbindingsに追加した新しい要素に基づいています。

  12. ページを実行します。新しいリンクに、手順4で指定した新しいパス(NDValue)からのコンテンツが表示されます。図26-12に、第26.5.1.1項「テキスト・リンクとしてのコンテンツの公開」の冒頭で追加した「Plasma News」リンクとともに、新しいリンク「FOD Logo」が表示されています。

    図26-12 新しいテキスト・リンク

    図26-12の説明が続きます
    「図26-12 新しいテキスト・リンク」の説明

    この手順に従うことで、必要なだけいくつでもリンクを追加できます。

26.5.1.2 ドキュメントへリンクするクリック可能イメージの作成

この項では、ADF FacesのImageオプションを使用してクリック可能イメージ(イメージ・オブジェクトをクリックすると、ドキュメントが表示される)としてドキュメントを公開します。

コンテンツをクリック可能イメージとして公開するには:

  1. アプリケーション・ナビゲータで、ADF実行リンクを作成したページをダブルクリックして開きます。

  2. 第26.5.1.1項「テキスト・リンクとしてのコンテンツの公開」の冒頭で作成したテキスト・リンクを変換するには、「構造」ウィンドウで「af:goLinkの中に挿入」を選択し、「参照」を選択します。「項目の挿入」ダイアログが表示されます。

  3. 図26-13に示すように、「作成する項目を選択します」リストから「イメージ」を選択します。

    図26-13 ADF Faces項目の挿入

    図26-13の説明が続きます
    「図26-13 ADF Faces項目の挿入」の説明

  4. 「OK」をクリックします。「イメージの挿入」ダイアログが表示されます。

  5. イメージ・リンクとして表示するイメージ・ファイル(plasma.jpgなど)を参照します。

  6. 「終了」をクリックします。

  7. ページを右クリックし、「実行」を選択します。図26-14に、サンプル出力を示します。

    図26-14 ブラウザでのADFオブジェクト・イメージ・リンク

    図26-14の説明が続きます
    「図26-14 ブラウザでのADFオブジェクト・イメージ・リンク」の説明

26.5.2 実行時の処理

前の例では、ADF実行リンクを使用して、ファイル・システムに格納されたファイルに対するハイパーリンクを作成し、ADF FacesgetURIメソッドおよびイメージ・コンポーネントを使用してテキストおよびイメージのリンクに変換しました。

実行時にADFフレームワークは、ページで必要になるデータ・コントロール・メソッドを起動するためにページ定義ファイルの情報を使用します。ページのライフサイクルの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusionページのライフサイクルの理解」の章を参照してください。

実行時にgetURIデータ・コントロール・メソッドが起動され、指定したパスがデータ・コントロールが構成されたコンテンツ・リポジトリの有効なHTTP URIに変換されます。戻されるURLは、ターゲット・リポジトリへの構文的に正しいURLですが、リソースの検出を保証するものではありません。つまり、getURIメソッドでは、既存のJCRノードに対応するパスは検証されません。ページがレンダリングされ、クリック可能イメージまたはリンクがクリックされると、アプリケーションのゲット・ハンドラによってHTTP URLがJCRパスに変換され、そのJCRパスのコンテンツの取得が試行されます。ゲット・ハンドラはまた、リポジトリから情報が取得できる場合は、レスポンスContent-Typeヘッダー内のmimeType情報を提供します。JCRでは、jcr:mimeTypent:resourceノード・タイプのオプションのプロパティのためです。

26.5.3 表でのコンテンツの公開

この項では、getItemsデータ・コントロール・メソッドを使用して、表でファイルおよびフォルダ情報を公開します。この項では、次の手順について説明します。

始める前に:

  1. 第25.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。

  2. 第26.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。

  3. 第15.2項「WebCenter Portal Frameworkアプリケーションでのページの作成」の説明に従ってページを作成します。

26.5.3.1 読取り専用形式でのファイルおよびフォルダの表示

ここで、getItemsメソッドを使用して読取り専用のADF表を作成します。

読取り専用表でフォルダ・コンテンツを表示するには:

  1. ページをビジュアル・エディタで開くために、アプリケーション・ナビゲータでダブルクリックします。

  2. 図26-15に示すように、「データ・コントロール」パネルで、データ・コントロールの下の「getItems」メソッドおよび「Return」ノードを開きます。

    図26-15 getItemsメソッドの「Return」ノード

    図26-15の説明が続きます
    「図26-15 getItemsメソッドの「Return」ノード」の説明

  3. このデータ・コントロールを介して使用可能なすべてのファイルおよびフォルダがリストされる表を作成するには、「Return」ノードをページまたは「構造」ウィンドウの「af:form」の下にドロップします。図26-16に示すように、「作成」メニューから「表」を選択し、次に「ADF読取り専用表」を選択します。

    図26-16 getItemsメソッドの「コンテキストの作成」メニュー

    図26-16の説明が続きます
    「図26-16 getItemsメソッドの「コンテキストの作成」メニュー」の説明

  4. 図26-17に示すように、「表の列の編集」ダイアログで、「getItems.name値バインディング」の行を選択し、「ラベルの表示」に適切な値(Nameなど)を入力します。

    pathURIprimaryTypeおよびlastModified属性に対してこの手順を繰り返します。nameLocationURLなどの新しい表示ラベルを入力し、「OK」をクリックします。

    図26-17 表の列の編集

    図26-17の説明が続きます
    「図26-17 表の列の編集」の説明

  5. 最初にノードをページにドロップした場合、「アクション・バインディングの編集」ダイアログが表示されます。

    図26-18に示すように、「アクション・バインディングの編集」ダイアログで、コンテンツ・ディレクトリのパスをpathパラメータとして入力します。必ずスラッシュ(/)を入力してください。このパスを後で変更または削除するには、設計モードでノードの隣にある矢印アイコンをクリックし、ポップアップ・メニューから「バインディングに移動」を選択します。

    typeパラメータは空白のままにしておきます。これは、表にファイルとフォルダの両方を表示することを示します。

    図26-18 アクション・バインディングの編集

    図26-18の説明が続きます
    「図26-18 アクション・バインディングの編集」の説明

  6. 「OK」をクリックします。図26-19に示すような表が、ページに表示されます。

    図26-19 フォルダ・コンテンツを公開するための読取り専用表

    図26-19の説明が続きます
    「図26-19 フォルダ・コンテンツを公開するための読取り専用表」の説明


    注意:

    ページ・キャッシュのオンとオフを切り替えることができます。このためには、ページ定義を開き、「構造」ウィンドウで「実行可能ファイル」を開き、「getItemsIterator」を選択します。次に、プロパティ・インスペクタで、CacheResultstrueまたはfalseに適宜設定します。


  7. ページを実行します。コンテンツ・ディレクトリで使用可能なすべてのファイルおよびフォルダのリストが表示されます。図26-20は、実行時にファイルとフォルダの両方を示す読取り専用表です。

    図26-20 読取り専用表に表示されたファイルおよびフォルダ

    図26-20の説明が続きます
    「図26-20 読取り専用表に表示されたファイルおよびフォルダ」の説明

    デフォルトでは、表にはファイルまたはフォルダの属性が読取り専用テキスト(af:outputText)として表示されます。次の項で、Name属性(name)を実行リンク(af:goLink)として表示する方法を説明します。

26.5.3.2 実行リンクとしてのName属性の表示

この項では、第26.5.3.1項「読取り専用形式でのファイルおよびフォルダの表示」で作成した表のName属性を、ADF実行リンク・コンポーネントを使用してリンクに変換します。また、「名前」列のみを表示するように表を構成します。

実行リンクとしてName属性を表示するには:

  1. 「構造」ウィンドウ(図26-21)で、表の最初の列(af:column - Name)を開いて、デフォルトの表示形式「af:outputText - #{row.name}」を表示します。

    図26-21 「名前」列のデフォルト書式設定

    図26-21の説明が続きます
    「図26-21 「名前」列のデフォルト書式設定」の説明

  2. ページのリンク元ビューで、実行リンクを使用する「名前」列を変更します。リンクには名前が表示されますが、エントリのURIにリンクされています。

    太字af:outputTextを置き換えます。

    <af:column sortProperty="#{bindings.Return.hints.name.name}"
          sortable="false" headerText="Name" id="c7">
         <af:outputText value="#{row.name}" id="ot3"/>
    </af:column>
    

    太字に示すようにaf:goLinkに置き換えます。

    <af:column sortProperty="#{bindings.Return.hints.name.name}"
           sortable="false" headerText="Name" id="c7">
      <af:goLink text="#{row.name}" id="goLink2"      destination="#{row.bindings.URI.inputValue}"/> 
    </af:column> 
    
  3. 「構造」ウィンドウで、「af:column - URI」を右クリックし、「削除」を選択します。

  4. アプリケーション・ナビゲータでページを右クリックし、「実行」を選択します。図26-22に示すような、ハイパーリンク付きのファイルおよびフォルダ名のリストが表示されます。この図では、name属性がリンクとして示されています。「URI」列のリンクをクリックすると、対応するファイルまたはフォルダが開き、そのコンテンツが表示されます。

    図26-22 ハイパーリンクとして表示されたフォルダ・コンテンツ

    図26-22の説明が続きます
    「図26-22 ハイパーリンクとして表示されたフォルダ・コンテンツ」の説明

  5. ファイル名をクリックします。選択したファイルが、ブラウザ・ウィンドウに表示されます。

  6. フォルダの名前をクリックすると、図26-23に示すように、フォルダのコンテンツが表示されます。

    図26-23 フォルダのコンテンツ

    図26-23の説明が続きます
    「図26-23 フォルダのコンテンツ」の説明

「名前」列のみを表示するよう表を構成するには:

  1. 「構造」ウィンドウの「af:table - t1」ノードで、「名前」列以外のすべての列を削除します。

  2. 「af:table - t1」ノードをダブルクリックし、プロパティ・インスペクタを表示します。

  3. 図26-24に示すように、「共通」タブの「ID」フィールドに名前(myFilesなど)を入力します。

    図26-24 表のプロパティ - 「共通」タブ

    図26-24の説明が続きます
    「図26-24 表のプロパティ - 「共通」タブ」の説明

  4. ページを実行して出力を表示します。他の行は設計時に「構造」ウィンドウから削除されたため、図26-25には表の列のみを表示しています。表の作成時にtypeパラメータを空白のままにしたため、この表はファイルとフォルダの両方を表示しています。

    図26-25 1列のみの表に表示されたファイルおよびフォルダ

    図26-25の説明が続きます
    「図26-25 1列のみの表に表示されたファイルおよびフォルダ」の説明

次の項では、ファイルのみが表示されるように「名前」列を構成します。

26.5.3.3 ファイルのみが表示される表の構成

フォルダではなく、ファイルのみが表示されるように表を構成するには、type属性を使用します。

ファイルを表示するように表を構成するには:

  1. ページを右クリックし、「ページ定義に移動」を選択します。


    注意:

    ページに表示されるアイテムの数を制御するために使用されるRangeSizeバインディング設定は、ページ定義ファイル内で、デフォルトで10に設定されています。この設定は、プロパティ・インスペクタで適宜変更できます。


  2. 「概要」タブで、「バインディング」「getItems」をダブルクリックします。「アクション・バインディングの編集」ダイアログが表示されます。

  3. 「type」オプションは、nt:filent:folderです。ファイルのみが表示されるように指定するには、図26-26に示すように、「値」列にnt:fileを入力し、「OK」をクリックします。

  4. 図26-26 ファイルのみの表示

    図26-26の説明が続きます
    「図26-26 ファイルのみの表示」の説明

  5. ここで、ページを実行します。図26-27では、列タイプがnt:fileであるので、1列の表にファイルのみが表示されています。

    図26-27 1列の表に表示されたファイル

    図26-27の説明が続きます
    「図26-27 1列の表に表示されたファイル」の説明

26.5.4 実行時の処理

JCRデータ・コントロールのgetItemsメソッドは、JCRフォルダの子アイテム(タイプnt:folder)を取得します。このメソッドは、フォルダへのパスを指定してコールされます。オプションで、戻される子ノードを制限するタイプも指定できます。

pathパラメータは、フォルダのパスであることが必要です。このルールの例外としては、リポジトリのルートはフォルダにする必要はないことです。このため、getItemsメソッドでは、フォルダに対応するパスやリポジトリのルートであるパスの子アイテムを取得できます。それ以外の場合、getItemsメソッドでは子アイテムの取得を試行しないので、結果セットは移入されません。

実行時に、JCRデータ・コントロールはSession.getItemメソッドをコールします。このメソッドはJCRノードを返します。次にデータ・コントロールは、子ノードを取得するためにnode.getNodesをコールします。子ノードは、指定のタイプ(nt:fileタイプなど)に従ってフィルタ処理されます。データ・コントロールは、これらの子ノードをADFに渡します。バインディング・コンテナを通じてデータ・コントロール・アイテム属性としてJCRプロパティを利用できるように、データ・コントロールはJCRノード・オブジェクトをADFに適合させます。

この例では、データ・コントロールによって返されたコレクションの各行が行としてaf:table表に格納されます。ただし、データ・コントロールによって返される使用可能なすべてのADFアイテム属性についてではなく、af:tableで定義された各af:columnについてのみ、列が表示されます。この例の冒頭部分では、ドラッグ・アンド・ドロップ・アクションにより、データ・コントロールによって返された各ADFアイテムで使用可能な各ADF属性について、af:columnが作成されます。

名前のaf:columnのみを含めるようにaf:tableが変更されている場合、実行時にADFアイテムの名前のみを要求します。つまり、データ・コントロールは、JCRノードの名前をフェッチするメソッドを実行します。設計時に名前列がaf:goLinkに変換されている場合、次の構文に示すように、実行リンクのリンク先はアイテムのURI値に設定されます。

<af:goLink text="#{row.name}" destination="#{row.URI}"/>

実行時にデータ・コントロールは、表の各ADFアイテムについて、アイテムのJCR名とそのHTTP URLの両方を返すメソッドを実行します。

26.5.5 ツリーでのフォルダ・コンテンツの公開

この項では、getItemsメソッドを使用して、コンテンツを階層ツリー形式で公開します。この項では、次の手順について説明します。

始める前に:

  1. 第25.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。

  2. 第26.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。

  3. 第15.2項「WebCenter Portal Frameworkアプリケーションでのページの作成」の説明に従ってページを作成します。

26.5.5.1 読取り専用形式でのファイルおよびフォルダの表示

この項では、コンテンツをツリー形式で表示します。

コンテンツをツリー形式で表示するには:

  1. アプリケーション・ナビゲータで、ページをダブルクリックしてデザイン・ビューで開きます。

  2. 図26-28に示すように、「データ・コントロール」で、該当するデータ・コントロールの下のgetItemsメソッドを展開します。

    図26-28 getItemsメソッドのパラメータ

    図26-28の説明が続きます
    「図26-28 getItemsメソッドのパラメータ」の説明

  3. コンテンツをADFツリーとして表示するには、「Return」ノードを選択してページにドラッグします。図26-29に示すように、「作成」メニューから「ツリー」を選択し、次に「ADFツリー」を選択します。

    最初にノードをページにドロップした場合、「アクション・バインディングの編集」ダイアログが表示されます。

    図26-29 Oracle JDeveloperのgetItemsの「作成」メニュー

    図26-29の説明が続きます
    「図26-29 Oracle JDeveloperのgetItemsの「作成」メニュー」の説明

  4. ベース・パスの下の要素をすべて表示するツリーを作成するには、図26-30に示すように、pathパラメータにスラッシュ(/)を入力します。このパスを後で変更または削除するには、設計モードでノードの隣にある矢印アイコンをクリックし、ポップアップ・メニューから「バインディングに移動」を選択します。

    ファイルとフォルダの両方を表示するために、typeは空白にしておきます。

    図26-30 「アクション・バインディングの編集」ダイアログ

    図26-30の説明が続きます
    「図26-30 「アクション・バインディングの編集」ダイアログ」の説明

  5. 「OK」をクリックします。「ツリー・バインディングの編集」ダイアログが表示されます。

  6. 実行時のアイテムの名前、パスおよびタイプを表示するには、「使用可能な属性」で適切な属性を選択し、「表示属性」リストに移動します。

  7. 図26-31に示すように、「ツリー・レベル・ルール」ボックスで、「ルールの追加」アイコンをクリックして「アイテム」を選択し、ルールを作成します。これによって、ツリーでその子アイテムを検索できます。

    図26-31 ツリー・バインディングの編集

    図26-31の説明が続きます
    「図26-31 ツリー・バインディングの編集」の説明

  8. 「OK」をクリックします。図26-32に示すように、ツリーがページに表示されます。

    図26-32 フォルダ・コンテンツをナビゲートするためのツリー

    図26-32の説明が続きます
    「図26-32 フォルダ・コンテンツをナビゲートするためのツリー」の説明

  9. ページを実行して、結果を表示します。

    ページがブラウザ・ウィンドウに表示されると、データ・コントロールを介して使用可能なファイルおよびフォルダのリストが表示されます。図26-33は、JSFページにドロップされたADFツリーに基づく読取り専用形式のファイルおよびフォルダのツリーを示しています。ブランチを開くと、このサブディレクトリ内のコンテンツが表示されます。


    注意:

    デフォルトでは、レンジ・サイズは10です。ツリーに表示されるアイテムの数を変更するには、ページ定義ファイル(namePageDef.xml)でデータ・コントロールに対するRangeSizeプロパティを編集します。


    図26-33 ツリーで表示されたフォルダ・コンテンツ

    図26-33の説明が続きます
    「図26-33 ツリーで表示されたフォルダ・コンテンツ」の説明

デフォルトでは、ツリーにはファイルおよびフォルダの名前が読取り専用テキストとして表示されます。次の項では、ファイル名へのハイパーリンクを作成する方法について説明します。また次の項では、ツリーでの移動に必要になるので、フォルダ名は読取り専用テキストのままにします。

26.5.5.2 ハイパーリンクとしてのファイル名の表示

フォルダ名を読取り専用にしたまま、ファイル名にハイパーリンクを作成するには、2つのファセット(フォルダ用とファイル用に1つずつ)を持つaf:switcherコンポーネントが必要です。

フォルダおよびファイルにSwitcherコンポーネントを使用するには:

  1. 「構造」ウィンドウで、「f:facet - nodeStamp」に移動し、af:outputText-#{node}を削除します。

  2. 「nodeStamp」を右クリックし、「f:facet - nodeStampの中に挿入」を選択し、「参照」を選択します。

  3. 「項目の挿入」ダイアログで、カテゴリを選択するためのドロップダウン・リストから「ADF Faces」を選択します。

  4. 「作成する項目を選択します」リストから「スイッチャ」を選択し、「OK」をクリックします。

    図26-34に示すように、「構造」ウィンドウの「f:facet - nodeStamp」の下にスイッチャが追加されます。

    図26-34 Switcherコンポーネントに変換された出力テキスト

    図26-34の説明が続きます
    「図26-34 Switcherコンポーネントに変換された出力テキスト」の説明

  5. プロパティ・インスペクタが表示されていない場合、「af:switcher」をダブルクリックして表示します。

  6. 「共通」タブの「FacetName」フィールドで、式#{node.primaryType}を入力します。

  7. 「構造」ウィンドウで、スイッチャのファセットを2つ挿入します。「af:switcher」を右クリックし、「af:switcherの中に挿入」「ファセット」の順に選択します。「ファセットの挿入」ダイアログが表示されます。

  8. 最初のファセットにnt:folderという名前を付け、「OK」をクリックします。フォルダ名に追加の書式設定は必要ないので、ノード名はプレーン・テキストとして表示できます。2番目のファセットnt:fileに名前を付けます。このファセットは、図26-35のように表示されます。

    図26-35 2つのファセットを持つSwitcherコンポーネント

    図26-35の説明が続きます
    「図26-35 2つのファセットを持つSwitcherコンポーネント」の説明

  9. 「f:facet - nt:folder」を右クリックし、「f:facet - nt:folderの中に挿入」を選択して「参照」を選択します。

  10. 「項目の挿入」ダイアログで、ドロップダウン・リストから「ADF Faces」を選択します。

  11. 「作成する項目を選択します」リストから「出力テキスト」を選択し、「OK」をクリックします。

  12. プロパティ・インスペクタが表示されていない場合は、「af:outputText - outputText1」をダブルクリックして表示します。「共通」タブの「値」フィールドで、式#{node.name}を入力します。

  13. 「f:facet - nt:file」を右クリックし、「f:facet - nt:folderの中に挿入」を選択して「参照」を選択します。

  14. 「項目の挿入」ダイアログで、ドロップダウン・リストから「ADF Faces」を選択します。

  15. 「作成する項目を選択します」リストから「実行リンク」を選択し、「OK」をクリックします。

  16. プロパティ・インスペクタが表示されていない場合は、構造ウィンドウで、「af:goLink - goLink」をダブルクリックして表示します。

  17. 「共通」タブの「テキスト」フィールドで、#{node.name}式を入力します。

  18. 「リンク先」フィールドに、式#{node.URI}を入力します。

  19. 「ターゲット・フレーム」リストから、「空白」を選択します。

  20. ページを実行します。図26-36では、af:treeの下にあるスイッチャのnt:fileファセットがリンク(node.URI)に変換されたので、ファイル名がハイパーリンクとして表示されています。リンクをクリックすると、対応するアイテムが表示されます。

    図26-36 ハイパーリンクとしてのファイル名で構成されたツリー

    図26-36の説明が続きます
    「図26-36 ハイパーリンクとしてのファイル名で構成されたツリー」の説明

26.5.6 実行時の処理

JCRデータ・コントロールのgetItemsメソッドは、JCRフォルダの子アイテム(タイプnt:folder)を取得するために設計されました。このメソッドは、フォルダへのパスを指定して起動されます。オプションで、戻される子ノードを制限するタイプも指定できます。pathパラメータには、子アイテムを取得するgetItemsメソッドのフォルダへのパスを指定する必要があります。このルールの例外としては、リポジトリのルートはフォルダにする必要はないことです。このため、getItemsメソッドでは、フォルダに対応するパスやリポジトリのルートであるパスの子アイテムを取得できます。それ以外の場合、getItemsメソッドでは子アイテムの取得を試行しないので、結果セットは移入されません。パスが有効な場合、データ・コントロールはこのパス上のJCR Session.getItem()を起動してJCRノードを返します。その後、node.getNodes()を起動してすべての子ノードを取得します。子ノードは、nt:fileタイプの子ノードのみを返すなど、提供されるタイプに応じてフィルタ処理されます。これは、データ・コントロールがADFに提供する結果です。バインディング・コンテナを通じてデータ・コントロール・アイテム属性としてJCRプロパティを利用できるように、データ・コントロールはJCRノード・オブジェクトをADFに適合させます。

af:treeは、ツリーでノードとしてデータ・コントロールによって返されるコレクションで各ノードをレンダリングします。この例の冒頭部分では、各ノードのnametypeおよびURIを表示します。これらの各値は、データ・コントロールを通じて取得されます。スイッチャをaf:treeに追加した場合、ノードのレンダリング方法を区別するためにノードのprimaryType値が使用されます。ノードのプライマリ・タイプがnt:folderである場合、その名前のみがツリー・ノードに表示されます。ただし、ノードのタイプがnt:fileである場合、ノードはgo:Linkをレンダリングし、リンク先はノードのURIになります。ツリーのフォルダ・ノードの子ノードを取得するために、データ・コントロールのgetItemsメソッドが再度起動されます。

26.5.7 コンテンツ・リポジトリへの検索機能の追加

この項では、2つの例をあげて、統合されたコンテンツに対して標準検索機能および拡張検索機能を追加する方法を示します。標準検索では、ユーザーは、名前や特定の場所にあるコンテンツ・フラグメントに基づいてコンテンツを検索できます。拡張検索では、ユーザーはコンテンツの属性値によって検索できます。

この項の内容は、次のとおりです。

始める前に:

  1. 第25.2項「コンテンツ・リポジトリ接続の構成」の説明に従って、リポジトリ接続を構成します。

  2. 第26.2項「JCRアダプタ対応のコンテンツ・データ・コントロールの構成」の説明に従って、データ・コントロールを構成します。

  3. 第15.2項「WebCenter Portal Frameworkアプリケーションでのページの作成」の説明に従ってページを作成します。

26.5.7.1 標準検索機能の追加

この項では、標準検索機能をページで有効にします。これによって、ワイルドカード(%)検索が行えるようになります。

検索機能を有効にするには:

  1. アプリケーション・ナビゲータで、ページをダブルクリックして開きます。

  2. 「データ・コントロール」パネルで、「search」ノードを開きます。

  3. ユーザーがボタンをクリックして検索を実行できるようにするには、「search」ノードをページにドラッグ・アンド・ドロップします。「作成」メニューから、「パラメータ」「ADFパラメータ・フォーム」の順に選択します。「フォーム・フィールドの編集」ダイアログが表示されます。

  4. 「OK」をクリックします。図26-37に示すように、ADFパラメータ・フォームがページに追加されます。

    図26-37 「デザイン・ビュー」での「ADFパラメータ・フォーム」

    図26-37の説明が続きます
    「図26-37 「デザイン・ビュー」での「ADFパラメータ・フォーム」」の説明

  5. 検索結果を読取り専用表に表示できるようにするには、「Return」ノードをページにドラッグ・アンド・ドロップします。「作成」メニューで「表」を選択し、「ADF読取り専用表」を選択します。「表の列の編集」ダイアログが表示されます。

  6. 「OK」をクリックします。図26-38のような表が表示されます。

    図26-38 4つの列が含まれる表 - 検索

    図26-38の説明が続きます
    「図26-38 4つの列が含まれる表 - 検索」の説明

  7. このページを実行し、「search_path」/を指定し、「namePattern」%jpg%を指定します。図26-39に示すように、リポジトリのルートに格納されているすべての.jpgファイルが表示されます

    図26-39 .jpgファイルの検索結果

    図26-39の説明が続きます
    「図26-39 .jpgファイルの検索結果」の説明

26.5.7.2 拡張検索機能の追加

この項では、ファイル・システム・リポジトリに含まれるアイテムの最終変更日に基づいて検索を実行することを可能にする拡張検索機能をページに追加します。

拡張検索機能を有効にするには:

  1. アプリケーション・ナビゲータで、拡張検索機能を作成するページを開きます。ページは、新規マネージドBean内に自動的に公開される必要があります(name=advancedSearch、class=AdvancedSearch、package=view)。(「JSFページの作成」ダイアログ→「ページの実装」→「新規マネージドBeanでのUIコンポーネントの自動公開」)

    この例では、ページ名はadvancedSearch.jspxです。

  2. ページをダブルクリックして開きます。

  3. コンポーネント・パレットで「ADF Faces」を選択します。

  4. 「ADF Faces」「レイアウト・コンポーネント」のリストから、「パネル・フォーム・レイアウト」をページにドラッグします。

  5. コンポーネント・パレットから、「入力日」「パネル・フォーム・レイアウト」にドラッグします。

  6. プロパティ・インスペクタの「共通」タブで、「ラベル」「Modified after」に設定します。

  7. アプリケーション・ナビゲータの「portal.backing」で、AdvancedSearch.javaをダブルクリックして開きます。

  8. 次のインポート宣言を追加します。こうした宣言は、次の手順で追加するgetPredicatesメソッドで必要になります。

    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import oracle.vcr.datacontrol.search.Predicate;
    import oracle.vcr.datacontrol.search.Operator;
    
  9. リポジトリに格納されたアイテムの最終変更日に基づく拡張検索を有効にするために、次のメソッドを追加します。

    public List<Predicate> getPredicates() {
            ArrayList<Predicate> predicates = new ArrayList<Predicate>();
            if (id1.getValue() != null && !id1.getValue().equals(""))
    {
                Calendar cal = Calendar.getInstance();
                cal.setTime((Date)id1.getValue());
                predicates.add(new Predicate("jcr:content/jcr:lastModified"
                                             , Operator.GREATER_THAN
                                             , cal));
            }
            // ... other predicates
            if (predicates.size()>0)
                return predicates;
            return null;
        }
    
  10. 「データ・コントロール」パネルで、「advancedSearch」ノードをページにドラッグ・アンド・ドロップします。「作成」メニューから、「メソッド」「ADFボタン」の順に選択します。「アクション・バインディングの編集」ダイアログが表示されます。

  11. 「パス」では、検索を行うディレクトリのパス(/など)を指定します。isRecursiveではtrueを指定し、matchAnyではfalseを指定します。

  12. 条件として、「値」フィールドの隣にある矢印を選択して、「EL式ビルダーの表示」を選択します。「変数」ダイアログが表示されます。

  13. 「ADFマネージドBean」「backingBeanScope」および「advancedSearch」を開き、「述語」を選択します。これによって、式${backingBeanScope.advancedSearch.predicates}が、図26-40に示すように追加されるので、「OK」をクリックします。

    図26-40 「変数」ダイアログ - 条件

    図26-40の説明が続きます
    「図26-40 「変数」ダイアログ - 条件」の説明

  14. 「アクション・バインディングの編集」ダイアログで「OK」をクリックします。

  15. 「データ・コントロール」パネルで、「advancedSearch」ノードを開きます。「Return」をドラッグし、ページの「advancedSearch」ADFボタンの後にドロップします。「作成」メニューで「表」を選択し、「ADF読取り専用表」を選択します。

  16. 「表の列の編集」ダイアログで、必要に応じて列のラベルを編集します。次に、「OK」をクリックします。図26-41のような「設計」ビューが表示されます。

    図26-41 拡張検索 - 「設計」ビュー

    図26-41の説明が続きます
    「図26-41 拡張検索 - 「設計」ビュー」の説明

  17. プロパティ・インスペクタの「動作」タブで、ContentDeliveryプロパティをimmediateに設定します。

  18. ブラウザでページを表示するには、アプリケーション・ナビゲータでページを右クリックし、「実行」を選択します。ブラウザにadvancedSearchページが表示されます。

  19. 「最終変更」日付を入力して「advancedSearch」ボタンをクリックします。図26-42に示すように、該当日の後に変更されたファイルが表示されます。

    図26-42 拡張検索の結果

    図26-42の説明が続きます
    「図26-42 拡張検索の結果」の説明

26.5.8 実行時の処理

実行時に「検索」ボタンをクリックすると、searchメソッドが起動し、UIを通じて提供された値がパラメータとして検索に使用されます。実行時に、ワイルドカード(%)検索を実行できます。たとえば、.jpg拡張子を持つファイルを検索するには、「search_path」フィールドに/を入力し、「namePattern」フィールドに%jpgを入力して、「検索」をクリックします。.jpg拡張子を持つすべてのファイルが読取り専用表に表示されます。

実行時に、JCRデータ・コントロールでは指定パラメータを使用して、指定パラメータのXPath問合せを構成します。標準検索の例では、問合せは次のとおりです。

Non-recursive:
XPath query /jcr:root/element(*, nt:file)[jcr:like(ojcr:local-name(), '%jpg%')]

Recursive:
XPath query /jcr:root//element(*, nt:file)[jcr:like(ojcr:local-name(), '%jpg%')]

拡張検索の例では、advancedSearchメソッドのpredicateパラメータ値を構成するのにバッキングBeanが必要であるので、まずバッキングBeanをページに追加します。次に、「パネル・フォーム・レイアウト」UIコンポーネントをページにドロップします。このコンポーネントで、日付ベースの検索条件を提供するために実行時に使用されるInputDateコンポーネントをドロップします。advancedSearchメソッドの条件パラメータでは、searchメソッドに条件の組合せを指定できます。それぞれのパラメータでは、検索に適用する必要があるアイテムのプロパティ値を指定できます。この例では、条件で変更日のみがテストされますが、変更日付とmimeTypeなど、複数のテストを含めることもできます。

バッキングBeanのgetPredicatesメソッドは、実行時にページにより提供される日付からpredicatesメソッドを構成するためにハードコーディングされています。設計時に、predicatesメソッドの戻り値は、条件のadvancedSearchメソッドのパラメータにバインドされます。これによって、実行時に正しいpredicate値を構成するために、advancedSearchメソッドを起動する前にgetPredicatesメソッドを起動します。

実行時に、JCRデータ・コントロールでは指定パラメータを使用して、指定パラメータのXPath問合せを構成します。この例では、問合せは次のとおりです。

/jcr:root//element(*, nt:hierarchyNode)[jcr:content/@jcr:lastModified >
xs:dateTime('2009-02-15T00:00:00.000+05:30')]

26.5.9 検索機能の使用

検索機能を追加するときは、次の点を考慮してください。

  • 特定の操作の使用方法は、アダプタと、基礎となるリポジトリの実装によって異なります。読取り操作と問合せ操作は似ていますが、全文検索の動作は異なります。また別の例として、ファイル・システムおよびOracle Portalのアダプタでは、primaryType属性に基づいた検索はサポートされていません。typeに基づく検索方法でサポートされているのは、要素(*, type)構成を介した検索のみです。

  • Oracle Portalアダプタを使用する場合、検索機能の動作は、「Oracle Text」が有効であるか、または無効であるかによって異なります。「Oracle Text」が無効である場合、検索はOracle Portalコンテンツのメタデータ内で実行されます。「Oracle Text」を有効にすると、ファイルのコンテンツを含めて、すべての索引付きコンテンツが検索されます。これはまた、Content Serverにも該当します。つまり、Content Serverベースのアダプタは、「Oracle Text」を使用してドキュメントに対して全文索引操作を実行します。

  • Oracle Portalアダプタでは翻訳はサポートされていないため、コンテンツはページ・グループの基本言語でのみ返されます。基本言語が異なる複数のページ・グループにわたる検索は、サポートされていません。