Oracle® Fusion Middleware Oracle WebCenter PortalおよびOracle JDeveloperでのポータルの開発 11gリリース1 (11.1.1.8.3) E49666-03 |
|
![]() 前 |
![]() 次 |
この章では、Oracle WebCenter Portalのコンポーザについて概説し、実行時にサポートする様々なタスクについて説明します。
この章の内容は、次のとおりです。
コンポーザは、アプリケーション実行時にページ・コンテンツを追加および編集するための完全に統合されたページ・エディタです。コンポーザの機能を理解するには、まず、次のステージから構成される、典型的なアプリケーション開発ライフサイクルを確認します。
アプリケーション開発者は、設計時にアプリケーションを作成します。
設計時とは、従来、アプリケーションを作成または編集するためのIDEベースの環境を表します。Oracle WebCenter Portalの場合、Oracle JDeveloperが設計時環境を提供します。
アプリケーション管理者は、これらのアプリケーションをマネージド・サーバーにデプロイします。
エンド・ユーザーは、実行時にデプロイされたアプリケーションにアクセスします。
実行時とは、Webアプリケーションにアクセスするために使用されるブラウザ・ベースの環境を表します。
各ステージに異なるカテゴリのユーザーが関与することがわかります。多くの場合、これらのユーザーの一部またはすべてが実行時にページを変更する必要があります。たとえば、ワークリストやメール・タスク・フローなどの、ログイン・ユーザーに関する情報を表示するダッシュボードのようなアプリケーションについて考えてみます。ページ開発者は、ダッシュボード・ページを作成し、これに必要なコンポーネントおよびタスク・フローを移入します。アプリケーション管理者は、アプリケーションを顧客のサイトにデプロイします。顧客のサイトでは、組織の様々なレベルの人がダッシュボードを表示し、次のリクエストを行います。
部門の管理者は、「部門ニュース」タスク・フローを追加します。
LOB管理者は、「個人/役職者が使用する経費」タスク・フローを追加します。
国のサイト管理者は、それぞれの国の運営または規則を表示するタスク・フローを追加します。
また、コンテンツ・コントリビュータ、モデレータおよびエンド・ユーザーは、ビジネス・ニーズに基づいてページ・アーティファクトを追加、削除または変更します。典型的なアプリケーション開発環境では、これらのリクエストはページ開発者に渡されます。開発者は、開発環境でアプリケーションを変更し、これを顧客のサイトに再デプロイします。
単純な変更を開発者に戻すのではなく、コンポーザはMetadata Services (MDS)とともに、ビジネス・ユーザーが実行時にアプリケーション・ページを編集できる編集ツールを提供します。実行時に行われた変更はメタデータとして保存され、ベースのアプリケーション定義から隔離されます。実行時にアプリケーション・ページを編集するこの概念は、実行時に設計と呼ばれます。これは、設計時にアプリケーションを変更してこれを再デプロイする必要を最小化します。
コンポーザは、実行時にアプリケーション設計を行う動作を制御するコンポーネントを提供します。この章では、コンポーザを有効に使用するために必要な基本的な概念および用語について説明します。
ユーザーが実行時にページを変更すると、通常その変更はそのユーザーのみが使用できます。アプリケーションを構成して、ページにアクセスするすべてのユーザーまたはユーザーのサブセットが実行時の変更を使用できるようにすることができます。LOBのメンバーが使用する経費の詳細を表示するダッシュボード・ページの例について考えてみます。LOB管理者がページを変更し、いくつかの経費に関するガイドラインを追加する場合、その変更はすべてのメンバーに表示される必要があります。そのような要件に対処するために、コンポーザでは、ユーザーはページを異なるモードで編集し、変更をユーザーのカスタマイズ(ページの個々のユーザーの表示のみに影響)またはアプリケーションのカスタマイズ(全員のページの表示に影響)として保存できます。
ユーザーの変更をユーザーのカスタマイズまたはアプリケーションのカスタマイズとして保存するには、これらをバックエンドで別々に保存する必要があります。メタデータ・ドメインでは、MDSは、ベース・アプリケーション定義の上の別々のレイヤーにカスタマイズを保存することを許可しています。ビジネス要件に応じて、単一のレイヤーまたは複数のレイヤーに変更を保存できます。
単一レイヤー構成では、変更は、アプリケーションのカスタマイズとしてすべてのユーザーがアクセスできる共通レイヤーに保存されます。この場合、変更をユーザーのカスタマイズとして保存することはできません。
複数レイヤー構成では、変更は、ページが編集されたモード、ページを編集したユーザー、ユーザー・ロールなどの指定された条件に基づいて個別の場所に保存されます。この種の構成では、各カスタマイズ・レイヤーは他のレイヤーから隔離されますが、レイヤーを相互に積み重ねてアップグレード時に柔軟性を持たせることができます。たとえば、ユーザーが、表示されるページのデフォルトのテーマを変更する必要があるとします。この変更は、ページの他者の表示に影響を与えずに、このユーザーに対してのみ保存されることが期待されているとします。したがって、このページのパーソナライズ権限を持っているエンド・ユーザーによって行われる変更がユーザーのカスタマイズとして保存され、カスタマイズレベル権限を持っているログイン・ユーザーによって行われる変更がアプリケーションのカスタマイズとして保存されるように設定できます。パーソナライズ権限とカスタマイズ/編集権限を持つユーザーが使用できるタスクをそれぞれ決定できます。
MDSおよびカスタマイズ・レイヤーの詳細は、第21.1項「MDSの概要」を参照してください。
ユーザーがブラウザでアプリケーション・ページを開くと、ページは表示モードで開きます。また、コンポーザは編集モードという別のモードへのアクセスを提供し、適切な権限を持つユーザーはアプリケーション・ページを編集できます。これらのモードは次のように説明できます。
編集モード: 通常このモードは、アクセス権限を持つ認証されたユーザーが使用してページ・コンテンツを編集できます。表示モードで実行できるタスクに加えて、コンポーザは、編集モードへの切り替えおよびコンポーネントの追加、コンポーネントの削除、コンポーネントのプロパティの編集などのタスクの実行のための制御を提供します。通常、編集モードでページに対して行われる変更はアプリケーションのカスタマイズとして保存され、そのページにアクセスするすべてのユーザーが使用できます。
表示モード: ブラウザで開いたときに表示されるページのデフォルト・ビュー。このモードでは、ユーザーは、コンポーネントの再配置、コンポーネントの折りたたみと展開およびレイアウトの変更などのタスクを実行できます。通常、表示モードでページに対して行われる変更はそのユーザーのみが使用でき、ユーザーのカスタマイズとして保存されます。
コンポーザの編集モードには、広範なアプリケーションのカスタマイズ機能が用意されています。編集モードでは、ユーザーは、コンテンツの追加、ページとコンポーネントのプロパティの編集、コンポーネントの削除、コンポーネントの再配置、ページ・レイアウトの変更などを行えます。
この章で説明する機能をアプリケーションに提供するには、Change Mode Link
またはChange Mode Button
、Page Customizable
、Panel Customizable
、Show Detail Frame
、Custom Actions
およびLayout Customizable
の各コンポーザ設計時コンポーネントをページに追加します。これらのコンポーネントの詳細は、第16.6項「コンポーザ・コンポーネント」を参照してください。
Change Mode Link
コンポーネントまたはChange Mode Button
コンポーネントをカスタマイズ可能なページに追加すると、コンポーザの表示モードのページに「編集」リンクが表示されます。ユーザーが「編集」リンクまたはボタンをクリックすると、編集モードのコンポーザでページが開きます。図16-1は、表示モードのページの「編集」リンクを示しています。
編集モードでは、デフォルトのコンポーザ・ツールバーに、編集中のページのタイトル、「ページ・プロパティ」アイコン、「ページのリセット」アイコンおよび「閉じる」ボタン(図16-2)が表示されます。
デフォルトでは、編集モードのページには「コンテンツの追加」と「構造」の2つのビューが表示されます。ただし、「デザイン」、「コンテンツの追加」、「構造」、「選択」および「プレビュー」のいずれかまたはすべてのビューを表示するようにページを構成できます。DesignViews
属性を使用して、編集モードで表示するビューを指定します。値をall
と指定すると、「コンテンツの追加」ビューを除くすべてのビューが編集モードで使用可能になります。拡張機能を使用できるように、コンポーザにすべてのビューを表示するようにページを構成することをお薦めします。DesignViews
属性の詳細は、表B-1「Page Customizableコンポーネントの属性」を参照してください。
この項には次のサブセクションが含まれます:
「コンテンツの追加」ビュー(図16-3)は、コンポーザのページを開く際のデフォルト・ビューです。このビューでは、ページとコンテンツがWYSIWYGで表示され、各コンポーネントのコントロールを直接選択できます。
「構造」ビュー(図16-4)は、コンポーネント・ナビゲータのページ・コンポーネントをWYSIWYGおよび階層式にレンダリングします。「コンテンツの追加」、「プロパティ」、「削除」、「切取り」および「貼付け」の各コントロールを「構造」ビューのツールバーで使用でき、これらによりコンポーザで特定の操作が実行されます。「構造」ビューでは、ユーザーは「デザイン」ビューまたは「コンテンツの追加」ビューでは選択できないコンポーネントのプロパティにアクセスし、プロパティを変更できます。たとえば、多くのADF Facesコンポーネントは「構造」ビューでのみ編集できます。ユーザーは、タスク・フロー内のコンポーネントも編集できます。
注意:
詳細は、付録F「式言語式」の第F.13項「コンポーザに関連するEL式」を参照してください。 |
デフォルトでは、コンポーネント・ナビゲータはコンポーザ内でページの右側に表示されます。「ドッキング」メニューを使用して、上、下または左側の表示を選択できます(図16-5)。ユーザーは、コンポーネント・ナビゲータのエッジの境界をドラッグして、その高さまたは幅を変更できます。
コンポーネント・ナビゲーションのルートには、設計時のPage Customizable
コンポーネントの直接の子があります。ノードがコンポーネント・ナビゲーションで選択されると、対応するコンポーネントがページで選択されます。同様に、コンポーネントがページで直接選択されると、対応するノードがコンポーネント・ナビゲータで選択されます。
ページの下部にあるグレーの領域には、選択したコンポーネントのブレッドクラム・トレイルが表示されます(図16-6)。ブレッドクラム・トレイルは、ページでコンポーネントがどのようにネストされているかを示します。コンポーネントが選択されていないと、ブレッドクラム・バーはページ名のみを表示します。コンテナ名は、クリックすると選択したコンポーネントを強調表示するリンクです。
編集可能なタスク・フローには、タスク・フローの横に「タスク・フローの編集」リンクがあります。「タスク・フローの編集」リンクをクリックすると、コンポーネント・ナビゲータにタスク・フローのページまたはフラグメント内のコンポーネントの階層が表示されます。ユーザーは、このページまたはフラグメントを編集し、タスク・フローをズーム・アウトするために「閉じる」をクリックできます。詳細は、第16.5.2項「タスク・フロー内のコンテンツの編集」を参照してください。同様に、宣言コンポーネントに、選択した宣言コンポーネントのファセット内部のコンポーネントをユーザーが編集できる「開く」リンクが表示されます。
注意:
|
「デザイン」ビュー(図16-7)では、ページとコンテンツがWYSIWYGで表示され、各コンポーネントのコントロールを直接選択できます。リソース・カタログがページの右側にインライン表示され、そこからページに追加するコンポーネントを選択できます。
インライン・リソース・カタログを非表示にして、かわりにページの各領域に「コンテンツの追加」ボタンを表示することもできます。これは、コンポーネントを追加できる場所の特定に役立ちます。
「デザイン」ビューは、デフォルトでは編集モードで使用できません。このビューを使用可能にするには、Page Customizable
コンポーネントのDesignViews
属性の値をdesign
またはall
に設定します。詳細は、表B-1「Page Customizableコンポーネントの属性」を参照してください。
「デザイン」ビューの表示を選択した場合は、このビューがデフォルト・ビューとして表示され、「コンテンツの追加」ビューは編集モードで表示されません。
「選択」ビュー(図16-8)は、ページとそのコンテンツのWYSIWYG表示を提供します。このビューでは、コンポーネントを選択して、そのコンポーネントのプロパティまたはその親コンポーネントのプロパティにすばやくアクセスできます。選択ビューでは、コンポーネントを削除できません。
デザイン・ビューの場合と同様に、リソース・カタログがページの右側にインライン表示され、そこからページに追加するコンポーネントを選択できます。
編集モードでは、「選択」ビューはデフォルトでは使用できません。このビューを使用可能にするには、Page Customizable
コンポーネントのDesignViews
属性の値をselect
またはall
に設定します。詳細は、表B-1「Page Customizableコンポーネントの属性」を参照してください。
「プレビュー」ビューは、公開されるページのプレビューを、アプリケーションに表示されるときと同様に表示します。
編集モードでは、「プレビュー」ビューはデフォルトでは使用できません。このビューを使用可能にするには、Page Customizable
コンポーネントのDesignViews
属性の値をpreview
またはall
に設定します。詳細は、表B-1「Page Customizableコンポーネントの属性」を参照してください。
コンポーザより、ユーザーは表示モードと編集モードでページをカスタマイズできます。この項では、ページ表示モードでユーザーが可能なユーザー・カスタマイズ・タスクの概要について説明します。このようなタスクには、コンポーネントの再配置、コンポーネントの折りたたみと展開およびページ・レイアウトの変更などがあります。この項で説明する機能を有効にするには、次のコンポーザの設計時コンポーネントをページに追加します: Panel Customizable
、Show Detail Frame
、Custom Actions
およびLayout Customizable
。これらのコンポーネントの詳細は、第16.6項「コンポーザ・コンポーネント」を参照してください。表示モードのページに対して行われた変更はこれらの変更を行うユーザーのみが使用できます。
この項には次のサブセクションが含まれます:
注意: ページで実行できる編集タスクの詳細は、Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築の「ポータル・ページの作成および編集」の章を参照してください。 |
この機能では、ユーザーは、最も役に立つコンテンツがページの上部に表示されるようにページのコンポーネントを編成できます。ユーザーは、次の2つの方法でコンポーネントを再配置できます。
ドラッグ・アンド・ドロップ
ユーザーは、ページのPanel Customizable
コンポーネント内またはPanel Customizable
コンポーネント間でコンポーネントをドラッグ・アンド・ドロップしてこれを再配置できます。編集モードでPanel Customizable
コンポーネントを識別するのは困難であるため、ユーザーは単純にコンポーネントを配置したい場所にドラッグできます。実線のボックスはドロップできる場所を示します。
「アクション」メニューの使用
Show Detail Frame
コンポーネントまたはポートレット・コンポーネントの移動アクションでは、ユーザーは、これらのコンポーネントを親のPanel Customizable
コンポーネント内で移動できます。Panel Customizable
に複数の子コンポーネントがある場合、子のShow Detail Frame
またはポートレットを他の子コンポーネントの位置に対して左右または上下に移動できます。図16-9は、「上へ移動」アクションおよび「下へ移動」アクションがあるサンプルのShow Detail Frame
コンポーネントを示しています。この例では、「下へ移動」を選択すると、Latest NewsコンポーネントがPress Releaseコンポーネントの真下に移動します。
この機能では、ユーザーは、コンポーザに用意されている一連の事前定義済のレイアウトを切り替えることができます。「レイアウトの変更」アイコンを使用して、ユーザーはニーズや好みに合せて8つの異なるレイアウトから選択できます。コンポーザ・ライブラリのLayout Customizable
コンポーネントは、図16-10に示すようにページの「レイアウトの変更」アイコンの表示を有効にします。
図16-11は、Layout Customizable
コンポーネントで使用可能なレイアウト・オプションを示しています。ページまたは領域に現在適用されているレイアウトは、グレーの境界線で強調表示されています。
ページでコンポーネントの展開と縮小を有効にすることによって、外観を損ねることなくページにより多くの詳細情報を含めることができます。ユーザーは、必要に応じてコンポーネントを縮小したり展開したりできます。
Show Detail Frame
またはポートレットの「縮小」アイコンを使用すると、ユーザーはそのコンポーネントを縮小し、そのヘッダーのみを表示できます。図16-12は、Show Detail Frame
コンポーネントの「縮小」アイコンを示しています。
縮小されたコンポーネントで「展開」アイコンを使用すると、ユーザーはコンポーネントがヘッダーとコンテンツを表示するようにこれを展開できます。図16-13は、2つの閉じられたShow Detail Frame
コンポーネントの「展開」アイコンを示しています。
この項では、コンポーザがページ編集モードで提供する編集機能について説明します。内容は次のとおりです。
注意: アプリケーションを保護し、コンポーネントにカスタマイズ制限を適用することによって、ユーザーがこれらのタスクのすべてまたは一部を実行できないように制限することができます。詳細は、第16.7項「セキュリティおよびコンポーザ」を参照してください。 |
ユーザーがページで実行できる実行時編集タスクの詳細は、Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築のページの編集に関する項を参照してください。
権限のあるユーザーは、ニュースや株式の最新情報を表示するポートレットなどのページにカスタム・コンテンツを追加できます。コンポーザにより、ユーザーは編集モードで任意のコンテナにコンテンツを追加できます。Oracle WebCenter Portalのリソース・カタログ(Oracle Business Dictionaryとも呼ばれる)には、ユーザーがページに追加できるリソースが含まれています。これらには、ドキュメント、Oracle ADFコンポーネント、ポートレットおよびタスク・フローが含まれています。カタログは、ページの編集モードで、次の方法を使用して起動できます。
「コンテンツの追加」ビューと「デザイン」ビューで、ページの任意のコンテナ・コンポーネントの「コンテンツの追加」ボタンをクリックします。
「デザイン」ビューで、デフォルトではインライン・リソース・カタログが使用可能ですが、これを非表示にして、かわりにページの各領域に「コンテンツの追加」ボタンを表示することもできます。これは、コンポーネントを追加できる場所の特定に役立ちます。
「構造」ビューでは、コンテナ・コンポーネントを選択して、「構造」ビューのツールバーの「選択したコンポーネントにコンテンツを追加」アイコンをクリックします。
注意: コンテナ・コンポーネントのカスタマイズを制限している場合、ユーザーは、実行時にこの内部にコンポーネントを追加できません。詳細は、第22.1項「カスタマイズ・ポリシーの定義によるコンポーネント・レベルの制限の適用」を参照してください。 |
図16-14は、Portal Frameworkアプリケーションの「コンテンツの追加」ダイアログを示しています。
「コンテンツの追加」ダイアログにはフォルダとコンポーネントが含まれています。カタログのアイテムの隣にある「開く」リンクは、アイテムがフォルダであることを示しています。権限のあるユーザーは、このリンクをクリックしてフォルダをドリルダウンできます。アイテムの隣にある「追加」リンクは、アイテムをページに追加できることを示しています。「追加」リンクは、コンポーネントまたはフォルダの隣に表示されます。コンポーネントは、「コンテンツの追加」リンクがクリックされたコンテナに最初の子として追加されます。
注意: ダイアログの「上」アイコンを使用すると、ユーザーは最上位フォルダに戻ることができます。 |
リソースをページに追加するためのドロップ・ハンドラを構成した場合、「追加」リンクに、コンポーネントをページに追加するためのものと異なるオプションを含むコンテキスト・メニューが表示されます。詳細は、第19.6項「コンポーザUIイベントのイベント・ハンドラの構成」を参照してください。
構成に応じて、ダイアログは権限のあるユーザーに対して次のコンポーネントのすべてまたはサブセットを公開します。
ADF Facesコンポーネント
「Web開発」フォルダには、JDeveloperの設計時コンポーネントであるPanel Customizable
およびShow Detail Frame
と似ているBox
コンポーネントおよびMovable Box
コンポーネントが用意されています。JDeveloperでは、これらのコンポーネントは、コンポーザ・タグ・ライブラリで使用できます。
注意: 設計時にページに追加された |
このフォルダには、HTML Markup
、Hyperlink
、Image
、Text
およびWeb Page
の各コンポーネントが提供されています。これらはそれぞれ、JDeveloperの設計時コンポーネントOutput Text
、Go Link
、Go Image Link
、Rich Text Editor
およびInline Frame
に類似しています。JDeveloperでは、これらのコンポーネントは、ADF Facesタグ・ライブラリで使用できます。
カタログの「Web開発」フォルダには、図16-15に示すようにこれらのコンポーネントが含まれています。
タスク・フロー
権限のあるユーザーは、カスタム・タスク・フローおよび即時利用可能なWebCenter Portalのツールとサービス・タスク・フローをページに追加できます。ページに追加されるタスク・フローは、Movable Box
コンポーネント内に自動的に含まれます。その結果、タスク・フローは、コンポーネントを移動または削除するためのオプション付きのヘッダーを表示します。
注意: タスク・フローを囲んでいる |
ポートレット
ポートレット・フォルダは、登録済プロデューサをすべてリストします。権限のあるユーザーは必要なポートレットにナビゲートし、これをページに追加できます。ポートレット・フォルダは、Oracle JDeveloperで登録された任意のJava-PDKまたはWSRPプロデューサからポートレットを公開します。ポートレット・プロデューサの登録の詳細は、第63章「ポートレットの消費」を参照してください。
ドキュメント
コンテンツ管理フォルダは、ユーザーがページに追加できるドキュメントおよびフォルダをリストします。
詳細は、Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築のページのWeb開発コンポーネントの使用に関する項を参照してください。
Box
コンポーネントにあるツールバーには、タブまたはタブのセットをBox
コンポーネントに追加するオプション(図16-16)が用意されています。タブを使用して、ページの個別のレイヤーとしてコンテンツ・リージョンを追加します。新しいタブそれぞれが現在選択されたタブの下のレイヤーとして配置され、コンテンツを移入できるリージョンを含みます。
「タブ・セットまたはタブの追加」アイコンは、Panel Customizable
コンポーネントのshowTabAction
属性がtrue
に設定されている場合に使用可能です。
ユーザーが「ボックス」
コンポーネントにある「タブ・セットまたはタブの追加」アイコンをクリックすると、コンポーザはタブをBox
コンポーネントの周りに追加します。「構造」ビューでは、図16-17に示すように、Box
コンポーネントがShow Detail Item
コンポーネント内にネストされていて、さらにこれがPanel Tabbed
コンポーネント内にネストされています。ユーザーは、この方法で任意の数のタブを追加できます。
ユーザーが最初に追加するタブは、選択したBox
コンポーネントを囲みます。その後の各タブは、新しいBox
コンポーネントをその内部に含みます。
権限のあるユーザーは、「コンテンツの追加」ビューまたは「デザイン」ビューの「削除」アイコンをクリックしてタブを削除できます。最後のタブを削除すると、Panel Tabbed
コンポーネントがページから削除されます。また、「構造」ビューでPanel Tabbed
コンポーネントを削除することによって、タブ・セットを削除できます。その内部にあるBox
を削除せずにタブのみを削除するには、ユーザーは、まずBox
をPanel Tabbed
コンポーネントの外側に移動(切取りおよび貼付け)してからPanel Tabbed
コンポーネントを削除する必要があります。
「コンテンツの追加」ビューまたは「デザイン」ビューの「ボックス」
コンポーネントにあるツールバーには、コンポーネントの前または後ろに別のBox
コンポーネントを追加するオプションが用意されています。この機能を使用すると、ユーザーは、ページでコンポーネントのレイアウトを変更できます。
ユーザーが「ボックス」
コンポーネントにある「追加」アイコンをクリックすると、コンポーザは別のBox
コンポーネントをその前または後ろに追加し、両方のBox
コンポーネントをPanel Group Layout
で囲みます。使用するアイコンに応じて、新しいBox
コンポーネントは、元のBox
コンポーネントの左、右、上または下に追加され、親のPanel Group Layout
コンポーネントにあるLayout
属性がhorizontal
またはvertical
に設定されます。ユーザーは、この方法で多くの連続したBox
コンポーネントを追加できます。新しいBox
コンポーネントの方向が変わるたびに、適切なレイアウト設定(水平方向または垂直方向)を持つ新しいPanel Group Layout
が新規および既存のBox
コンポーネントの周りに追加されます。
注意: 「追加」アイコンは、次の場合にはコンポーネント上にレンダリングされません。
詳細は、第22章「コンポーザ・コンポーネントのデフォルトのセキュリティ動作の変更」を参照してください。 |
ユーザーは、「コンテンツの追加」ビュー、「デザイン」ビューおよび「構造」ビューを使用して、追加したBox
コンポーネントを削除できます。
注意:
|
「ボックス」
コンポーネントのツールバーには、編集アイコンに加えて次のボックス追加アイコンがあります。
上にボックスを追加
下にボックスを追加
左にボックスを追加
右にボックスを追加
「上にボックスを追加」アイコン(図16-18)をクリックすると、Box
コンポーネントが選択したBox
コンポーネントの上に追加されます。Panel Group Layout
のlayout
属性はvertical
に設定されます。
図16-19は、Boxコンポーネントの隣に別のBox
コンポーネントを追加する前の「構造」ビューでのBox
コンポーネントの表示です。
図16-20は、コンポーネント・ナビゲータで垂直に整列された2つのBox
コンポーネントを示しています。
ユーザーは、「上にボックスを追加」アイコンを繰り返しクリックして、多くの連続したBox
コンポーネントを同じ親Panel Group Layout
の中に垂直に追加できます。
「下にボックスを追加」アイコン(図16-21)をクリックすると、Box
コンポーネントが選択したBox
コンポーネントの下に追加されます。Panel Group Layout
のlayout
属性はvertical
に設定されます。
ユーザーは、「下にボックスを追加」アイコンを繰り返しクリックして、多くの連続したBox
コンポーネントを同じ親Panel Group Layout
の中に垂直に追加できます。
「左にボックスを追加」アイコン(図16-22)をクリックすると、Box
コンポーネントが選択したBox
コンポーネントの左に追加されます。Panel Group Layout
のlayout
属性はhorizontal
に設定されます。
図16-23は、コンポーネント・ナビゲータで水平に整列された2つのBox
コンポーネントを示しています。
ユーザーは、「左にボックスを追加」アイコンを繰り返しクリックして、多くの連続したBox
コンポーネントを同じ親Panel Group Layout
の中に水平に追加できます。
「右にボックスを追加」アイコン(図16-24)をクリックすると、Box
コンポーネントが選択したBox
コンポーネントの右に追加されます。Panel Group Layout
のlayout
属性はhorizontal
に設定されます。
ユーザーは、「右にボックスを追加」アイコンを繰り返しクリックして、多くの連続したBox
コンポーネントを同じ親Panel Group Layout
の中に水平に追加できます。
Oracle ADFタスク・フローは、1つ以上のビューから構成され、タスク・フローの各ビューはページまたはページ・フラグメントと関連付けられています。タスク・フローをページに追加すると、現在のビューに関連付けられたフラグメントのコンテンツがページに表示されます。コンポーザでは、ユーザーは、タスク・フローの現在のビューで使用されるページまたはフラグメントのコンポーネントを編集できます。タスク・フローのページまたはフラグメントに対して変更が行われるため、変更は、タスク・フローのページまたはフラグメントが使用されるすべての場所に反映されます。
「構造」ビューには、タスク・フローを開き、コンポーネント・ナビゲータでそのページまたはフラグメントにあるコンポーネントのみを表示するオプションが用意されています。ユーザーは、ページまたはフラグメントを編集し、タスク・フローを閉じて、そのタスク・フローを含むページにナビゲートして戻ることができます。
タスク・フローのカスタマイズ権限を持つユーザーは、そのページまたはフラグメントを編集できます。
コンポーネント・ナビゲータの各タスク・フローは、図16-25に示すように、その隣に「タスク・フローの編集」リンクを表示します。
「タスク・フローの編集」リンクをクリックすると、「構造」ビューがズーム・インし、タスク・フローのページとそのコンポーネントが表示されます(図16-26)。
ユーザーは、タスク・フローのページでコンポーネントを選択し、他のページのコンポーネントの編集と同様にコンポーザでこれを編集できます。ただし、コンポーザは、あるタスク・フローから別のタスク・フローへのコンポーネントの移動をサポートしていません。
複数のユーザーが同時に同じタスク・フローを編集しようとすると、互いに注意するようそれぞれのユーザーに警告する並行性警告がコンポーザに表示されます。ただし、この警告は、サンドボックスがアプリケーションで構成されている場合のみ表示されます。このような場合に変更がどのように保存されるかについての詳細は、「並行編集時の処理」を参照してください。
開いているタスク・フローの隣の「閉じる」リンクをクリックすると、コンポーネント・ナビゲータは、このタスク・フローを含むページを表示します。
「構造」ビューのツールバーにある「タスク・フローのリセット」ボタン(図16-27)は、タスク・フローに対して行われたアプリケーションのカスタマイズを削除し、これを前に保存されたバージョンまたは元のデフォルトの状態にリセットするオプションを提供する「タスク・フローのリセット」ダイアログを起動します。タスク・フローを前に保存されたラベルの状態に確実にリセットできるのは、アプリケーションがデータベース・ストアを使用するように構成されている場合のみです。「タスク・フローのリセット」ボタンは、タスク・フローへのズーム・イン時にのみレンダリングされます。
注意: アプリケーションで「ページのリセット」ボタンを無効にすると、「タスク・フローのリセット」ボタンも無効になります。ユーザーは、変更を行った後にはタスク・フローをリセットできません。詳細は、第16.5.14項「ページのリセット」を参照してください。 |
特定のラベルへのロールバック
アプリケーションがデータベース・ストアを使用するように構成されている場合、ユーザーがアプリケーションのカスタマイズを保存するたびに新しいバージョンのタスク・フローが生成されます。アプリケーションにサンドボックスが構成されている場合、SAVED_LABEL_%
規則を備えたラベルを作成することによって、コンポーザによってタスク・フローを確実に次のようにリセットできます。
SAVED_LABEL_%
規則に従うラベル名が1つのみの場合、コンポーザはタスク・フローをそのラベルの状態にリセットします。
SAVED_LABEL_%
規則に従うラベル名がない場合、コンポーザはタスク・フローを元のデフォルトの状態にリセットします。
SAVED_LABEL_%
規則に従うラベルが複数ある場合、コンポーザはタスク・フローをそれらの内で最新のラベルの状態にリセットします。
特定のラベルにロールバックするには、サンドボックスを使用するようにアプリケーションを構成しておく必要があります。具体的には、カスタマイズされるタスク・フローのネームスペースは、アプリケーションのadf-config.xml
ファイルの<metadata-namespaces>
セクションで定義する必要があります。詳細は、第21.2.1項「コンポーザのサンドボックスの作成を有効にする方法」を参照してください。
特定のラベルにロールバックすることは、カスタマイズ・メタデータに対する依存性がアプリケーションにあり、タスク・フローを元の状態にリセットすると問題が発生する場合に便利です。
ユーザーがタスク・フローをリセットすると、次の変更が発生します。
現在選択されているフラグメントのみがリセットされます。タスク・フローのその他のフラグメントはリセットされません。
ネストされたタスク・フローはリセット操作によって影響を受けません。
タスク・フローがリセットされると、変更は、このタスク・フローを使用するすべてのページに反映されます。
実行時にタスク・フローに追加されたコンポーネントは削除されます。ただし、タスク・フローのページまたはフラグメントでテンプレートを使用している場合、テンプレートにあるPanel Customizable
コンポーネント内に追加されたコンポーネントは削除されません。
例16-1は、SAVE_LABEL_
接頭辞を持つラベルを作成するサンプル・コードを示しています。
例16-1 SAVE_LABEL_接頭辞を持つラベルを作成するコード
import oracle.mds.versioning.VersionHelper; import oracle.mds.naming.Namespace; . . . long labelNumber = (long)(Math.random() * 1000000000); String savedlabel = "SAVE_LABEL_" + labelNumber; MDSInstance mdsInstance = (MDSInstance)ADFContext.getCurrent().getMDSInstanceAsObject(); VersionHelper vh = VersionHelper.get(mdsInstance); Namespace[] validNamespaces = new Namespace[1]; Namespace pageNamespace = Namespace.create(<pagePath or taskflow path>, NamespaceRestriction.CUSTOMIZATIONS); validNamespaces[0] = pageNamespace; vh.createLabel(savedlabel, null, validNamespaces);
アプリケーション・ページに宣言型コンポーネントが含まれている場合、ユーザーはコンポーザでこれらのコンポーネントを編集できます。宣言型コンポーネントの編集は、タスク・フローの編集と似ています。詳細は、第16.5.2項「タスク・フロー内のコンテンツの編集」を参照してください。
図16-28および図16-29は、宣言型コンポーネントで使用可能な「コンポーネントの編集」オプションと「閉じる」オプションを示しています。
この機能では、たとえば、最も役に立つコンテンツがページの上部に移動できるように、最も簡単に使用できる場所に基づいて、ユーザーはページのコンポーネントを編成できます。ページ上のコンテンツを次の方法で再配置できます。
ページにある同じPanel Customizable
コンポーネント内またはPanel Customizable
(あるいはBox
)コンポーネントの間でコンポーネントをドラッグ・アンド・ドロップします。
Show Detail Frame
またはポートレットの「アクション」メニューにある「移動」アクションを使用して、これを親Panel Customizable
コンポーネント内で移動します。Panel Customizable
コンポーネントの子コンポーネントの数、およびそれらのコンポーネントの向きに応じて、コンポーネントを左、右、上または下に移動できます。
コンテナ内でコンポーネントを順序変更するには、コンテナの「コンポーネント・プロパティ」ダイアログで、「子コンポーネント」タブをクリックし、子コンポーネントそれぞれに表示される上下の矢印を使用します(図16-30)。
注意: カスタマイズが制限されているコンポーネントは、その親がカスタマイズ可能である場合、その親コンテナ内で再配置できます。 「子コンポーネント」タブには、直接の子コンポーネントのリストをタブの上部に表示し(「コンポーネント」リスト)、次にそのコンポーネントに対して定義されたすべてのファセットのリストを表示します(「固定コンポーネント」リスト)。ファセット・コンポーネントは再配置できないため、これらのコンポーネントには上下の矢印はありません。「固定コンポーネント」リストは、コンポーネントにファセットが含まれている場合のみ表示されます。 |
「構造」ビューのツールバー(図16-31)上の「切取り」および「貼付け」を使用します。「貼付け」メニューを使用すると、ユーザーは、コンポーネント・ナビゲータでコンポーネントを他の任意のコンポーネントの中、前または後ろに貼り付けることができます。
「切取り」ボタンおよび「貼付け」ボタンは、ユーザーが切取りまたは貼付けの操作をサポートしていないコンポーネントを選択した場合にはグレー表示されます。切取りおよび貼付けの操作は、次の条件ではサポートされません。
ターゲット・コンポーネントが切り取ったコンポーネントと同じページにない場合。
ターゲット・コンポーネントが切り取ったコンポーネント内部にネストされている場合。
ターゲット・コンポーネントがファセットされたコンポーネント(つまり、ファセット内部のコンポーネント)の前または後ろにある場合。
ターゲット・コンポーネントの親がカスタマイズ可能でない場合。
切り取ったコンポーネントの親がカスタマイズ可能でない場合。
注意: カスタマイズが制限されているコンポーネントは、その親がカスタマイズ可能である場合、その親コンテナ内で再配置できます。 |
例: カスタマイズ可能ページにADF Faces Table
コンポーネントが含まれている場合、コンポーザの「構造」ビューで、ユーザーは表および列グループ内またはこれらの間で列を順序変更または移動できます。コンピュータのアクセサリを販売するために作成したサンプル・アプリケーションについて考えてみます。このアプリケーションのホーム・ページには、ソフトウェアおよびハードウェアの販売に関する詳細を含む2つの表があります。ハードウェア・オプションの表には3つの列があります。ハード・ディスクの列には、図16-32に示すように、列グループ内に磁気ディスクおよび半導体の列があります。
ユーザーは、「構造」ビューに切り替えて、ハード・ディスク列内で磁気ディスクと半導体の列を順序変更したり、これらを列グループ外に移動して他の任意の列(ワイヤレスの列など)の隣に貼り付けることができます。
ユーザーは、列を選択し、「切取り」をクリックしてから別の列を選択し、「前に貼付け」または「後に貼付け」をクリックできます。
「コンポーネント・プロパティ」ダイアログを使用すると、ユーザーは、ポートレットやタスク・フローなどのコンポーネントに関連付けられたコンポーネントのプロパティおよびパラメータを編集できます。
注意: コンポーネントは次の場合には編集できません。
|
「コンテンツの追加」ビューおよび「デザイン」ビューで、コンポーネントの「編集」アイコンをクリックすると、図16-33に示すように「コンポーネント・プロパティ」ダイアログが表示されます。
「表示オプション」タブでは、ユーザーは、背景やタイトルなどの視覚的なプロパティを編集できます。「パラメータ」タブが使用可能な場合、ユーザーはこのタブを使用して、ポートレットやタスク・フローなどのコンポーネントのパラメータを編集できます。
「コンポーネント・プロパティ」のカスタマイズの視覚的な意味
「表示オプション」タブにあるプロパティの隣のアイコンは、プロパティが実行時に編集されたことを意味します。2つの異なるアイコンが使用され、現在のコンテキストおよび異なるレイヤーで行われた変更を示します。図16-34は、プロパティが更新されたことを示すために使用される2つの異なるアイコンを示しています。
注意: プロパティのカスタマイズの視覚的意味は、アプリケーションで複数のカスタマイズ・レイヤーを構成した場合のみ関係します。詳細は、第21.3項「カスタマイズ・レイヤーの表示モードおよび編集モードへの追加: 例」を参照してください。 |
「コンポーネント・プロパティ」ダイアログでは、ユーザーは、現在のコンテキストの視覚的プロパティをリセットすることもできます。詳細は、第16.5.6項「現在のレイヤーのコンポーネント・プロパティのリセットとオーバーライド」を参照してください。
ユーザーは、現在のレイヤーのコンポーネント・プロパティに対して行ったアプリケーションのカスタマイズをリセットおよびオーバーライドできます。「コンポーネント・プロパティ」ダイアログには、「コンポーネント・プロパティ」ダイアログのパネルにある特定のプロパティまたはすべてのプロパティをリセットするオプションが用意されています。
プロパティのコンテキスト・メニューにある「オーバーライド」オプション(図16-35)を使用すると、ユーザーは、別のレイヤーの値を現在のレイヤーの固定値として使用できます。たとえば、ユーザーは、レイヤーX
のMovable Box
コンポーネントにあるShort Desc
プロパティを編集して、これをFirst Frame
に設定します。別のレイヤーY
でこのコンポーネントを編集しているユーザーは、First Frame
をレイヤーY
のShort Desc
の固定値として選択できます。レイヤーY
のこのコンポーネントにアクセスしているすべてのユーザーには、今後この値が表示されます。Short Desc
の値は、レイヤーX
でこの値が変更されてもレイヤーY
では変更されません。ユーザーがプロパティに値を入力すると、そのプロパティの「オーバーライド」オプションはグレー表示されます。
図16-35 「コンポーネント・プロパティ」ダイアログの「リセット」オプションと「オーバーライド」オプション
プロパティのコンテキスト・メニューにある「リセット」オプションを使用すると、ユーザーは、そのプロパティを元の状態にリセットできます。プロパティがそのレイヤーで編集されたことがない場合、またはユーザーがそのプロパティを表示された値(別のレイヤーから取得)でオーバーライドすることを選択した場合、「リセット」オプションはグレー表示されます。
「すべてリセット」ボタンを使用すると、ユーザーは、「表示オプション」タブにあるすべてのプロパティをリセットできます。ユーザーは、「表示オプション」タブでレンダリングされた視覚的なプロパティに適用されたアプリケーションのカスタマイズのみをリセットできます。
注意: 「リセット」オプションと「すべてリセット」ボタンは、コンポーネントが新しく作成された場合または現在のレイヤーで変更された属性がない場合には使用できません。 |
コンポーザで編集されたコンポーネント・プロパティは、現在の言語でのみ使用できます。たとえばタスク・フローをページに追加する場合、コンポーザで入力するタスク・フロー・タイトルは現在の言語でのみ使用可能です。そのため、別のロケールのユーザーには、そのようなプロパティの翻訳された値が表示されません。実行時に編集されたコンポーネント・プロパティの言語サポートを提供するために、コンポーザではユーザーは、文字列値を取るプロパティのリソース文字列を編集できます。これは、JDeveloperが提供するリソース文字列エディタ機能に似ています。コンポーザでリソース文字列に対して行った変更は、アプリケーション・オーバーライド・バンドルに保存されます。バンドルは翻訳に送られ、翻訳されたバージョンがアプリケーションに戻されます。こうして、ユーザーは自身の言語でプロパティ値を表示できます。
オーバーライド・バンドルおよび既存(リリース11.1.1)のPortal Frameworkアプリケーションでのリソース文字列編集の構成の詳細は、第20.12項「実行時リソース文字列編集の構成」を参照してください。
実行時、文字列値を取ることができるコンポーネント表示オプションについては、プロパティ・フィールドの隣の「編集」メニューで、図16-35に示すように、「テキスト・リソースの選択」オプションが提供されます。ユーザーは、このオプションを選択して、プロパティのリソース文字列を編集できます。
「テキスト・リソースの選択」ダイアログ(図16-36)には、既存のリソースを検索するオプション、リソース・キーを編集または削除するオプションおよび新しいリソース・キーと値のペアを追加するオプションが用意されています。
「テキスト・リソースの選択」ダイアログは、次のものを表示します。
「キー」フィールド: 新しいキー名の指定または既存の名前の変更を行います。これは、リソース・バンドルのロケール固有のオブジェクトを一意に識別するために使用される文字列値です。
このキー名には、リソースが属しているMDSレイヤーが自動的に接頭辞として付いています。この接頭辞は、実行時に作成されたキーと設計時に作成されたキーを区別する際に役に立ちます。
既存のキーに対して表示される「編集」アイコンと「新規キー/値」アイコン(図16-37)を使用すると、ユーザーは次のタスクを実行できます。
編集: 既存のリソース文字列のキー値を変更します。新しい値を持つ文字列は、オーバーライド・バンドルに保存されます。
新規キー/値: アプリケーション・オーバーライド・バンドルにキーと値のペアを作成します。
ユーザーが編集できるのは、同じMDSレイヤーで作成された文字列のみです。その他の文字列は、読取り専用として表示されます。
注意: 「テキスト・リソースの選択」ダイアログで値を直接入力してリソース・バンドルのデフォルトのコンテンツをオーバーライドしようとすると、この変更は有効にならず、空白ページが表示されます。 したがって、「テキスト・リソースの選択」ダイアログで値を直接入力するのではなく、新しいリソース文字列を作成することをお薦めします。 |
「表示値」フィールド: リソース文字列を指定してUIでの表示用に変換するかまたは既存の文字列を変更します。
「説明」フィールド: リソースの翻訳可能な説明を指定するかまたは既存の説明を変更します。
「作成」ボタン: 新しいリソース文字列を作成します。「作成」ボタンをクリックすると、検索結果表に、新しいリソースを作成するための入力フィールドを備えた新しい行が用意されます。ユーザーは、行の内側をダブルクリックし(図16-38)、「キー」、「表示値」および「説明」に値を指定してから「OK」をクリックして新しい文字列を作成できます。
ユーザーは、オーバーライド・バンドルに保存される非アクティブ文字列を作成できるのみです。最後の列の「使用」ボタンをクリックすると、現在のプロパティ値として文字列を使用することが選択されます。
「削除」ボタン: 選択したリソースを検索結果表から削除します。
「検索」フィールド: 既存のリソースを検索します。ユーザーは、同じレイヤー、異なるMDSレイヤーまたは設計時にJSPXファイルで定義および使用されたリソース・バンドルで作成された文字列を検索できます。
「リフレッシュ」: 検索結果表をリフレッシュします。
検索結果表: 検索結果を表示し、文字列を編集し、新しい文字列に値を指定します。
ユーザーは、同じレイヤーで作成された文字列を編集できます。設計時または別のMDSレイヤーで作成されたその他の文字列は、プロパティで使用できるだけで編集できません。
リンクまたはステータス・インジケータ・トグルは最後の列に表示され、ユーザーは文字列をアクティブにしたり、翻訳対象リソースにしたり、文字列をアクティブ・リソースとして指定できます(図16-39)。
注意: 設計時に作成されたリソース文字列を検索すると、コンポーザは、JSPXファイルでリソース文字列を指定するときに使用される 次の例は、JSPXページで <c:set var="portalBundle" value="#{compBundle['test.resource.ComposerBundle']}"/> |
ノート
コンポーザは、実行時に約500のリソース文字列の作成をサポートします。この数を超えると、アプリケーションのパフォーマンスは低下します。
リソース文字列エディタの検索条件では、大文字と小文字が区別されます。
検索文字列の説明を検索するには、ユーザーは検索条件に完全な文字列値を指定する必要があります。
JDeveloperの「プロパティ・バンドル」または「リスト・リソース・バンドル」で作成されたエントリの文字列説明は、リソース文字列エディタには表示されません。
リソース文字列を編集するオプションは、「パラメータ」タブと「イベント」タブのプロパティには無効です。
ADFリソースのEL値がページ・パラメータ、タスク・フロー・パラメータ、ポートレット・パラメータなどのページ定義パラメータで参照される場合、ELをバインドすると空の値が返されます。ユーザーは、ページ定義パラメータでADFリソースのEL値を参照しないようにする必要があります。
ユーザーは、ページで様々なオプションを使用してコンポーネントの表示と非表示を選択できます。ユーザーは、次の方法でコンポーネントを非表示または表示にできます。
注意: 動作の表示または非表示がコンポーネントの |
コンポーネントの「編集」アイコンをクリックします。「コンポーネント・プロパティ」ダイアログで、「コンポーネントの表示」チェック・ボックスを選択解除します(図16-40)。
「コンポーネントの表示」チェック・ボックスを選択解除して、ダイアログの「適用」または「OK」をクリックすると、ページにコンポーネントが再度レンダリングされます。
コンポーネントを非表示にするには、コンポーネント・ナビゲータまたは「構造」ビューのページでコンポーネントを右クリックし、コンテキスト・メニューで「コンポーネントの非表示」を選択します(図16-41)。
非表示のコンポーネントはページに表示されませんが、コンポーネント・ナビゲータにはグレー表示されます。非表示コンポーネントのコンテキスト・メニューには、「コンポーネントの表示」オプションが表示され、ページのコンポーネントが再度レンダリングされます。
注意: 動作の表示または非表示がコンポーネントの |
ユーザーは、ページのヘッダーにある「削除」アイコンをクリックして、ページからコンポーネントを削除できます。
ユーザーは「削除」ダイアログで削除の確認を求められます。
注意: コンポーネントに対してカスタマイズ制限を定義した場合、そのコンポーネントに対する「削除」アイコンは実行時に無効になります。詳細は、第22.1.1項「タイプ・レベルのカスタマイズ・ポリシーの定義方法」を参照してください。 |
「レイアウトの変更」アイコンを使用すると、ユーザーは8つの事前定義されたレイアウトのセットからレイアウトを選択できます。デフォルトのページ・レイアウトはthreeColumn
です。
「構造」ビューで、ユーザーはLayout Customizable
コンポーネントを選択し、そのプロパティを表示できます。レイアウト・オプションは、「コンポーネント・プロパティ」ダイアログに表示されます。ユーザーは、任意の事前定義されたレイアウトを選択し、「適用」または「OK」をクリックできます。
注意: ユーザーが事前定義されたレイアウト・オプションを使用できるのは、設計時にページに |
「ページ・プロパティ」ダイアログでは、ユーザーは、ページのパラメータの作成または編集およびプロパティの表示を実行できます。図16-42は、「ページ・プロパティ」ダイアログの「表示オプション」タブを示しています。
「パラメータ」タブで、ユーザーは、コンポーネント・プロパティにリンク可能なページ・パラメータを作成し、ページ上のコンポーネントをページ・コンテキストに適応させることができます。たとえば、ページにSYMBOL
というパラメータがあり、このデフォルト値がORCL
であるとします。このページには、株式グラフ、株価および会社情報のタスク・フローが含まれているとします。これらのタスク・フローは、これらすべてのタスク・フローがSYMBOL
の値の変化に応答し、これに応じて更新されるようにページ・パラメータでリンクすることができます。
ページ上のコンポーネントは、多数の子コンポーネントの親である場合があります。親コンポーネントのプロパティを表示すると、「コンポーネント・プロパティ」ダイアログの「子コンポーネント」タブに記載されたその親の子コンポーネントを検索できます。複数の子コンポーネントが同じタイプの場合、それらを子コンポーネントのリストで互いに区別できないことがあります。たとえば、panelGroupLayout
コンポーネントはそのlayout
属性の値を表示名として使用します(例: vertical
)。そのため、「構造」ビューでは図16-43に示すように、複数のpanelGroupLayout
コンポーネントが子コンポーネントのリストですべて同じ名前になる場合があります。
図16-43 子コンポーネント名: 「構造」ビューおよび「コンポーネント・プロパティ」ダイアログ
特定の子コンポーネントを特定して操作する必要がある場合、ページのソース・コードを編集して任意のコンポーネントに一意の表示名を指定し、容易に識別できるようにすることが可能です。この表示名は、ヒント・テキストと「コンポーネント・プロパティ」ダイアログに表示されます。この機能を実装するカスタム属性はcomposer_name_hint
で、次のように<f:attribute>
を使用して指定できます。
構文:
<f:attribute name="composer_name_hint" value="display_name"/>
例:
<af:panelGroupLayout id="pgl1" layout="scroll" inlineStyle="">
<f:attribute name="composer_name_hint" value="Main Area"/>
</ af:panelGroupLayout>
図16-44に、親panelCustomizable
(Box)コンポーネントに対する「コンポーネント・プロパティ」ダイアログの「子コンポーネント」タブを示します。子の親コンポーネントには4つのpanelCustomizable
(Box)子コンポーネントが含まれます。
この表示名Box
は親コンポーネントと4つの子コンポーネントに使用され、それらを識別することはできません。
図16-44 composer_name_hintを定義していないコンポーネント: 「構造」ビューと「コンポーネント・プロパティ」ダイアログ
これらのコンポーネントの表示名をカスタマイズするために、ソース・コードを編集してcomposer_name_hint
属性を各コンポーネントに追加できます。composer_name_hint
値は、次の場所で公開されています。
「構造」ビューでは、composer_name_hint
値がコンポーネントのヒント・テキストとして表示されます(図16-45)。
図16-45 composer_name_hintが定義されたコンポーネント: 「構造」ビューのヒント・テキスト
「選択」ビューで選択したコンポーネントを右クリックすると、コンポーネントやその親コンポーネントのcomposer_name_hint
値を示すコンテキスト・メニューが表示されます(図16-46)。
図16-46 composer_name_hintが定義されたコンポーネント: 「選択」ビューのヒント・テキスト
コンポーネントの「コンポーネント・プロパティ」ダイアログには、タイトルにcomposer_name_hint
値が含まれます(図16-47)。
親コンポーネントの「コンポーネント・プロパティ」ダイアログでは、「子コンポーネント」タブにcomposer_name_hint
値を表示名として使用する各子コンポーネントの一覧が示されます(図16-47)。
図16-47 <f:attribute>が定義されたコンポーネント: 「コンポーネント・プロパティ」ダイアログ
図16-47に示された親Box (panelCustomizable
)コンポーネントとその4つの子Boxコンポーネントに対するこのページのソース・コードは、次のようになります。
<af:showDetailItem id="82127" text="Project XYZ" xmlns:af="http://xmlns.server.com/adf/faces/rich" disclosed="true" inflexibleHeight="100"> <cust:panelCustomizable id="45399" layout="scroll" xmlns:cust="http://xmlns.server.com/adf/faces/customizable"> <f:attribute name="composer_name_hint" value="Project XYZ content area"/> <cust:panelCustomizable id="273" xmlns:cust="http://xmlns.server.com/adf/faces/customizable"> <f:attribute name="composer_name_hint" value="header area"/> </cust:panelCustomizable> <cust:panelCustomizable id="959" xmlns:cust="http://xmlns.server.com/adf/faces/customizable"> <f:attribute name="composer_name_hint" value="dept area"/> </cust:panelCustomizable> <cust:panelCustomizable id="393" xmlns:cust="http://xmlns.server.com/adf/faces/customizable"> <f:attribute name="composer_name_hint" value="employee area"/> </cust:panelCustomizable> <cust:panelCustomizable id="941" xmlns:cust="http://xmlns.server.com/adf/faces/customizable"> <f:attribute name="composer_name_hint" value="project area"/> </cust:panelCustomizable> </cust:panelCustomizable> </af:showDetailItem>
コンポーザを使用すると、ユーザーは、ページ・パラメータを読み取り、それに応じて動作が変更されるように、ポートレットやタスク・フローをページ・パラメータとリンクできます。
ユーザーは、「コンポーネント・プロパティ」ダイアログを使用して、ポートレットとタスク・フロー・パラメータをページ・パラメータに関連付けられます。詳細は、Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築の「ページ、タスク・フロー、ポートレットおよびADFコンポーネントの作成」の章を参照してください。
コンポーネントとページ・パラメータの関連付けに加えて、コンポーザを使用すると、ユーザーは、表示オプションおよびパラメータの値をページURLを介して渡すこともできます。詳細は、Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築のページURLによるパラメータ値の受渡しに関する項を参照してください。
「ページのリセット」アイコンは、編集モードのページで使用できます。このアイコンは、「ページのリセット」ダイアログを起動します。このダイアログでは、現在のレイヤーまたは最上位レイヤーでページに対して行われた編集を削除し、これを前に保存されたバージョンまたは元のデフォルトの状態にリセットするオプションを使用できます。
注意: 「ページのリセット」アイコンは、コンポーザのツールバーにレンダリングされたデフォルトのアドオンです。ユーザーにページをリセットさせたくない場合、このアイコンを無効にできます。詳細は、第19.2.5項「アドオンを選択的に表示する方法」を参照してください。 |
特定のラベルへのロールバック
アプリケーションがデータベース・ストアを使用するように構成されている場合、ユーザーがアプリケーションのカスタマイズを保存するたびに新しいバージョンのページが生成されます。アプリケーションにサンドボックスが構成されている場合、SAVE_LABEL_%
規則を備えたラベルを作成することによって、コンポーザによってページを確実に次のようにリセットできます。
SAVE_LABEL_%
規則に従うラベル名が1つのみの場合、コンポーザはページをそのラベルの状態にリセットします。
SAVE_LABEL_%
規則に従うラベル名がない場合、コンポーザはページを元のデフォルトの状態にリセットします。
SAVE_LABEL_%
規則に従うラベルが複数ある場合、コンポーザはページをそれらの内で最新のラベルの状態にリセットします。
特定のラベルにロールバックするには、サンドボックスを使用するようにアプリケーションを構成しておく必要があります。具体的には、カスタマイズされるページのネームスペースは、アプリケーションのadf-config.xml
ファイルの<metadata-namespaces>
セクションで定義する必要があります。詳細は、第21.2.1項「コンポーザのサンドボックスの作成を有効にする方法」を参照してください。
特定のラベルにロールバックすることは、カスタマイズ・メタデータに対する依存性がアプリケーションにあり、ページを元の状態にリセットすると問題が発生する場合に便利です。
注意:
|
例16-2は、SAVE_LABEL_
接頭辞を持つラベルを作成するサンプル・コードを示しています。
例16-2 SAVE_LABEL_接頭辞を持つラベルを作成するコード
import oracle.mds.versioning.VersionHelper; import oracle.mds.naming.Namespace; .... long labelNumber = (long)(Math.random() * 1000000000); String savedlabel = "SAVE_LABEL_" + labelNumber; MDSInstance mdsInstance = (MDSInstance)ADFContext.getCurrent().getMDSInstanceAsObject(); VersionHelper vh = VersionHelper.get(mdsInstance); Namespace[] validNamespaces = new Namespace[1]; Namespace pageNamespace = Namespace.create(<pagePath or taskflow path>, NamespaceRestriction.CUSTOMIZATIONS); validNamespaces[0] = pageNamespace; vh.createLabel(savedlabel, null, validNamespaces);
コンポーザには、ページの破損を引き起こすカスタマイズ・エラーをユーザーに警告するメカニズムが用意されています。ユーザーは、次の方法でエラーに関する警告を受けます。
変更がMDSに保存される場合、「エラー」ダイアログ(図16-49)によって、ユーザーが現在のコンテキストで行った最後の変更のみまたはすべての変更をロールバックするオプションが提供されます。
変更がまだMDSに保存されていない場合、「エラー」ダイアログ(図16-50)は、エラーが発生し、ページが再ロードされることをユーザーに通知します。
次の操作を実行中に発生するエラーは、ページの破損を引き起こす場合があります。
切取りおよび貼付けオプション使用時の間違った位置へのコンポーネントの貼付け(表の列の表外への貼付けなど)。
コンポーネントまたはタスク・フローの追加(エラーが発生するWebサービスをコールするタスク・フローの追加など)。
ドラッグ・アンド・ドロップの方法を使用したページへのShow Detail Frame
コンポーネントの移動
図16-51に示す、コンポーザのツールバーの「保存してラベル付け」ボタンを使用すると、ユーザーは、アプリケーションのカスタマイズを新しいラベルに保存できます。コンポーザで作成されたラベルはcomposer_
の接頭辞を付けて格納されます。つまり、myLabel
という名前で作成されたラベルはcomposer_myLabel
として格納されます。
ラベルを作成すると、ユーザーは、選択したオブジェクトのカスタマイズを選択したラベルのカスタマイズにリセットできます。これは、「カスタマイズ・マネージャ」の「プロモート」リンクを使用して実現できます。詳細は、「カスタマイズ・メタデータのプロモート」というタイトルの項を参照してください。
注意: 「保存してラベル付け」ボタンが表示されるのは、サンドボックスをアプリケーションのMDSデータベース・ストアで構成し、 |
「カスタマイズ・マネージャ」はコンポーザのアドオン・パネルで、ここでユーザーは、XMLドキュメント、ページ、ページ・フラグメント、ページのタスク・フローなどのオブジェクトのカスタマイズ・メタデータを管理できます。これは、このようなすべてのオブジェクトのリストをページに表示し、これらのオブジェクトがカスタマイズされるレイヤーに関する詳細を提供します。ユーザーは、選択したオブジェクトのカスタマイズ・メタデータをダウンロードし、これを編集し、修正したメタデータ・ファイルをアップロードできます。また、「カスタマイズ・マネージャ」は、カスタマイズを削除したり、前に保存したラベルからのカスタマイズをプロモートしたりするオプションも提供します。
カスタマイズ・マネージャは、デフォルトではカスタム・アプリケーションで使用できません。特定の構成を実行することにより有効にできます。詳細は、第19.2.4項「カスタマイズ・マネージャのアドオンの表示方法」を参照してください。カスタマイズ・マネージャのアドオンをアプリケーションが表示できるように構成する場合は、図16-52に示すように、コンポーザのツールバーに「カスタマイズ・マネージャ」アイコンが表示されます。
「カスタマイズ・マネージャ」ボタンをクリックすると、図16-53に示すように、「カスタマイズ・マネージャ」ダイアログが起動します。
「カスタマイズ・マネージャ」は、各レイヤーのカスタマイズされたページ、フラグメントまたはXMLドキュメントそれぞれに対して、「削除」、「プロモート」、「ダウンロード」および「アップロード」のリンクを表示します。ユーザーは、検索フィールドでJSPX、JSFFまたはXMLのファイル名を指定し、そのファイルのオブジェクトのカスタマイズの詳細を表示し、そのカスタマイズを管理できます。ファイルを検索するには、ファイルへの絶対パス(/oracle/webcenter/portalapp/pages/home.jspx
など)を指定する必要があります。
注意: 深くネストされたタスク・フローまたは循環依存性を持つタスク・フローの場合、「カスタマイズ・マネージャ」は、最大で深度10のタスク・フローを表示します。 |
ユーザーは、アプリケーションが実行されている現在のMDSコンテキストでカスタマイズを管理できます。「現在のコンテキスト」列には、選択したレイヤーのカスタマイズを管理するオプションが表示されます。ドロップダウン・メニューには、ページまたはフラグメントがカスタマイズされたレイヤーがリストされます。この列は、行ったカスタマイズを管理するすべてのユーザーにとって便利です。「すべてのレイヤー」列には、アプリケーションのすべてのレイヤーのカスタマイズを管理するオプションが表示されます。この列は、すべてのレイヤーで行われたカスタマイズを管理する管理者にとって便利です。
注意:
|
この項では、「カスタマイズ・マネージャ」によって提供される機能について説明します。次のサブセクションが含まれます:
カスタマイズ・メタデータのダウンロード
「ダウンロード」リンクでは、ユーザーは、選択したページ、フラグメントまたはXMLドキュメントのカスタマイズ・ドキュメントを選択したレイヤーからダウンロードできます。これは、ユーザーがコンポーネントのカスタマイズ・メタデータを編集する場合やカスタマイズ・メタデータを調査する場合に便利です。たとえば、ページにエラーが表示されている場合、ユーザーはカスタマイズをダウンロードして確認し、必要に応じてこれをOracleサポート・サービスに送信できます。こうすることによって、ページのカスタマイズの問題の診断に役立ちます。
「保存」ダイアログを使用すると、ユーザーは、ドキュメントを保存する場所を選択できます。ユーザーは、このファイルをローカルで編集し、これをサイトに再アップロードできます。ファイルのアップロードの詳細は、「カスタマイズ・メタデータのアップロード」を参照してください。
カスタマイズされるすべてのオブジェクトのカスタマイズ・メタデータのダウンロード
ページの下部にある「すべてのレイヤーに対するカスタマイズのダウンロード」リンクを使用すると、ユーザーは、「カスタマイズ・マネージャ」に表示されるすべてのカスタマイズ・ドキュメントを含むZIPファイルをダウンロードできます。
カスタマイズ・メタデータのアップロード
「アップロード」リンクを使用すると、ユーザーは、選択したアーティファクト(ページ、フラグメント、XMLドキュメントなど)のカスタマイズ・ドキュメントを特定のレイヤーにアップロードできます。図16-54は、ユーザーがアップロードするファイルを選択できる「カスタマイズのアップロード」ダイアログを示しています。
アーティファクトは、アップロードしたドキュメントのメタデータに基づいてカスタマイズされます。
注意: ページの |
カスタマイズ・メタデータの削除
「削除」リンクを使用すると、ユーザーは、選択したアーティファクトのカスタマイズ・ドキュメントを特定のレイヤーから削除できます。
カスタマイズ・メタデータのプロモート
ページをカスタマイズしている間、ユーザーは、任意の時点でアプリケーションのカスタマイズを保存し、新しいラベルを作成してそのカスタマイズを保存できます。「カスタマイズ・マネージャ」の「プロモート」リンクを使用すると、ユーザーは、ラベルを選択し、選択したページまたはタスク・フローのアプリケーションのカスタマイズをラベルのカスタマイズにリセットできます。
注意: 「プロモート」オプションが使用可能なのは、サンドボックス対応のアプリケーションのみです。 コンポーザの「保存してラベル付け」オプションの詳細は、第16.5.16項「アプリケーションのカスタマイズ保存時のラベルの作成」を参照してください。 |
「プロモート」リンクは、図16-55に示すように、プロモートされるすべての使用可能なラベルおよびファイルをリストする「ドキュメントのプロモート」ダイアログを起動します。
ユーザーは、ラベルを選択し、そのラベルを選択したアーティファクトのサンドボックスにプロモートできます。つまり、選択したアーティファクトのアプリケーションのカスタマイズは、指定したラベルのカスタマイズにリセットされます。タスク・フローを選択した場合、すべてのページ・フラグメントおよびページ定義がプロモートされます。ページまたはフラグメントを選択した場合、ページまたはフラグメントおよびそのページ定義がプロモートされます。ユーザーは、使用可能な任意のレイヤーからラベルを選択し、そのラベルのカスタマイズをプロモートできます。たとえば、アプリケーションにレイヤーMCOOPER、JDOEおよびSITEがあり、MCOOPERレイヤーで作業しているユーザーがページの「プロモート」リンクをクリックすると、「プロモート」ダイアログに3つすべてのレイヤーで使用可能なすべてのラベルがリストされます。
実行時にJSPXドキュメント(*.jspx
)を編集できるようにするには、アプリケーション設計時にOracle JDeveloperで、ページにコンポーザ・コンポーネントを追加する必要があります。
注意: コンポーザは、JSPXページおよびADF Facesでのみ動作します。これらのコンポーネントはJSPページには追加できません。コンポーザ・コンポーネントのページへの追加の詳細は、第18.1項「コンポーザ・コンポーネントを使用した編集可能ページの設計」を参照してください。 |
JDeveloperのコンポーザ・タグ・ライブラリ(図16-56)は、コンポーネント・パレットから使用でき、ページを編集可能にするために追加できるコンポーネントを提供します。
この項では、ページの編集を可能にするために使用されるコンポーザ・コンポーネントの概要を説明します。次のサブセクションが含まれます:
これらのコンポーネントおよびその他のコンポーザ・コンポーネント(Custom Action
など)の詳細は、付録B「コンポーザ・コンポーネントのプロパティおよびファイル」を参照してください。
Page Customizable
コンポーネントは、ページの編集可能領域を定義します。この領域内では、コンポーネントのプロパティの編集、ページへのコンテンツの追加、コンテンツの配置などを行えます。
Page Customizable
コンポーネントを追加すると、実行時にコンポーザをページに含めることが可能になります。ユーザーは、ページの上部で使用できるページ関連の制御、コンポーネントの「コンテンツの追加」ボタンおよび各編集可能ページ・コンポーネントの「編集」アイコンを使用して、コンポーザでページを編集できます(図16-57)。
1操作で複数のアプリケーション・ページの実行時編集を可能にするには、Page Customizable
コンポーネントをそれらのページに使用するADFページ・テンプレートに追加します。これにより、Page Customizable
を各ページに手動で追加する必要がなくなります。Page Customizable
コンポーネントの追加の詳細は、第18.1.2項「Page Customizableコンポーネントを使用した実行時カスタマイズの有効化方法」を参照してください。
Change Mode Link
またはChange Mode Button
コンポーネントは、ページの表示モードから編集モードへの簡単な切替え方法を提供します。図16-58は、ページのChange Mode Link
コンポーネントを示しています。
Change Mode Link
またはChange Mode Button
の使用法の詳細は、第18.1.3項「Change Mode LinkまたはChange Mode Buttonを使用したページ・モードの切替えを有効にする方法」を参照してください。
Panel Customizable
は、ユーザーが実行時にコンポーネントを追加できるページの領域を定義します。ユーザーは、Panel Customizable
の子コンポーネントとして追加されるShow Detail Frame
コンポーネントまたはポートレットを移動または最小化できます。ユーザーは、ページの別のPanel Customizable
コンポーネントにこれらのコンポーネントをドラッグ・アンド・ドロップすることも可能です。
編集モードでは、Panel Customizable
コンポーネントは、点線のボックスとしてレンダリングされます。実際、Panel Customizable
は、実行時リソース・カタログではBox
と呼ばれます。図16-59に示すように、ページの各Panel
Customizable
コンポーネントに「コンテンツの追加」ボタンが表示されます。このボタンを使用してリソース・カタログ・ビューアを開き、Panel Customizable
内にコンポーネントを追加できます。
詳細は、第18.1.4項「Panel Customizableコンポーネントを使用したページの編集可能領域の定義方法」を参照してください。
Show Detail Frame
コンポーネントは、アイコンを含むヘッダーとともに子コンポーネントの周りに境界またはクロムをレンダリングし、ユーザーがいくつかの操作を実行できるようにします。このメニューで使用可能なアクションでは、ユーザーがコンポーネントおよびそのコンテンツをページの新しい場所に移動できます(図16-60)。ユーザーは、Show Detail Frame
コンポーネントをあるPanel Customizable
コンポーネントからページにある別のPanel Customizableコンポーネントにドラッグ・アンド・ドロップすることも可能です。Show Detail Frame
は、移動可能にするためにはPanel Customizable
コンポーネント内に含まれている必要があります。
Show Detail Frame
コンポーネントは次のアクションを可能にします。
コンポーネントを縮小および展開します
ページの別の場所にコンテンツを移動します
タスク・フローを子コンポーネントとして追加した場合、「アクション」メニューを使用してカスタム・アクションとともにタスク・フロー・ナビゲーションを有効にします。
ADF Facesの「リッチ・テキスト・エディタ」
を子コンポーネントとして追加した場合、エンド・ユーザーは、「リッチ・テキスト・エディタ」
のテキストを編集および保存できるようになります。
Show Detail Frame
のファセットを使用すると、独自のUIコントロールを追加してコンテンツの表示をさらにカスタマイズできます。これらのファセットの使用方法の詳細は、第20.1項「ファセットを使用したShow Detail Frameコンポーネントでのカスタム・アクションの有効化」を参照してください。
このコンポーネントのページへの追加の詳細は、第18.1.6項「Show Detail Frameコンポーネントを使用したコンポーネントのカスタマイズの有効化方法」を参照してください。
Layout Customizable
コンポーネントは、エンド・ユーザーがその子コンポーネントをいくつかの事前定義された方法(2列、3列など)でレイアウトできるコンテナです。ページのすべてのコンポーネントがLayout Customizable
コンポーネントに囲まれるような方法でページを設計できます。このような場合、レイアウトはページ全体に適用されます。
レイアウト変更を使用して事前定義されたレイアウトにアクセスします。デフォルトでは、レイアウト変更は、ページの表示モードとページの編集モードの両方で表示されます。Layout Customizable
コンポーネント属性を使用することによって、レイアウト変更をアイコン、テキストまたはアイコンおよびテキストとして表示することを選択できます。また、表示モードでレイアウト変更を表示するか非表示にするかを決定できます。図16-61は、ユーザーがレイアウト変更をクリックしたときに表示するLayout Customizable
コンポーネントおよび事前定義されたレイアウトを示しています。
詳細は、第18.1.5項「Layout Customizableコンポーネントを使用したページのレイアウトのカスタマイズの有効化方法」を参照してください。
エンド・ユーザー、アプリケーション開発者および管理者によってアクセスされるアプリケーションでは、すべての編集タスクの実行をすべてのユーザーに許可することは推奨されない場合があります。たとえば、コンポーネントの再配置や表示したくない領域の非表示などのタスクを実行することによってページの表示をカスタマイズすることのみをエンド・ユーザーに許可する必要がある場合があります。一方、アプリケーション開発者は、ページのコンテンツ、コンポーネント・プロパティなどを更新することを許可される必要があります。ページ、コンポーネントまたはコンポーネント属性をカスタマイズする機能は、タグ、ページ、コンポーネントおよび属性のレベルでセキュリティ定義から継承されます。ただし、ビジネス要件に合せてデフォルトのセキュリティ定義を様々なレベルでオーバーライドできます。
ページ、操作、コンポーネント、コンポーネント属性などの様々なレベルでアプリケーション・セキュリティを定義できます。コンポーネントでアプリケーション・カスタマイズを制限できるいくつかの方法があります。コンポーザは、コンポーネントがこれらのルールに従ってカスタマイズできるかどうかを判断します。たとえば、ユーザーがコンポーネントをカスタマイズするには、その前に、アプリケーション・カスタマイズが許可されるかどうかを判断するために、コンポーネントのセキュリティ制限のソースを問い合せます。コンポーネントがアプリケーション・カスタマイズを許可しない場合、コンポーザはこれが制限されているとみなします。つまり、コンポーザはコンポーネントを明示的にセキュリティ保護されているものとして処理します。表16-1に、アプリケーション・カスタマイズ制限を反映するコンポーザの動作を示します。
表16-1 コンポーザ・コンポーネントのカスタマイズ制限
制限 | 動作 |
---|---|
ページ(およびそのコンテンツ)をカスタマイズ可能 |
コンポーザにより、制限なしでコンポーネントの編集が許可されます。 |
ページが制限されている |
コンポーザは表示されますが、どのオプション(「ページ・プロパティ」、「編集」アイコンなど)にもアクセスできません。 |
いくつかの操作が制限されている |
コンポーザは表示されますが、制限された操作に対応するオプションは無効になります。 |
コンポーネントが制限されている |
「編集」アイコンはコンポーネントにレンダリングされず、そのプロパティは編集できません。 |
コンポーネントの属性が制限されている |
制限された属性はコンポーザに表示されません。 開発者は、コンポーザのAPIを使用して、コンポーネントの属性が制限されているかどうかを確認できます。 |
セキュリティを実装中に付与される権限に応じて、ユーザーは、アプリケーションにログインするときに、異なるユーザーおよびアプリケーションのカスタマイズのタスクを実行できます。
注意: 保護されたアプリケーションでは、すべてのユーザーの権限を確認し、権限のあるユーザーに対してのみページ上で「編集」リンクまたはボタンを有効にすることをお薦めします。認証されていないユーザーが偶然ページの編集モードに入った場合でも、コンポーネント・プロパティの変更が可能です。 選択したユーザーの「編集」リンクまたはボタンを有効にするには、 |
この項では、コンポーザ・コンポーネントのデフォルトのセキュリティ動作について説明します。次のサブセクションが含まれます:
デフォルトのセキュリティ動作のオーバーライドの詳細は、第22章「コンポーザ・コンポーネントのデフォルトのセキュリティ動作の変更」を参照してください。
アプリケーションのjazn-data.xml
ファイルは、ページ・レベルおよびタスク・フロー・レベルのセキュリティ情報のリポジトリです。コンポーザは、このファイルを参照し、ユーザーの権限に基づいて編集機能を有効にします。
ページまたはタスク・フローのパーソナライズ権限を持っているユーザーは、第16.4項「ページ表示モードでのページのカスタマイズ」で説明しているユーザーのカスタマイズのみを実行できます。
編集権限またはカスタマイズ権限を持っているユーザーは、コンテンツの追加、コンポーネント・プロパティの編集、コンポーネントの削除などのすべての実行時編集タスクを実行できます。コンポーザおよびOracle WebCenter Portalのカスタマイズ可能コンポーネントは、編集権限とカスタマイズ権限を区別しません。
注意: コンポーザおよびOracle WebCenter Portalのカスタマイズ可能コンポーネントは、付与権限をすべての権限のスーパー・セットとする権限のカスケードをサポートしています。ページまたはタスク・フローの付与権限を持つユーザーは、編集、パーソナライズおよび表示の権限を持っているとみなされます。パーソナライズ権限を持つユーザーは、表示権限も持っているとみなされます。 |
表16-2は、ページおよびタスク・フロー・レベルの権限に基づいたコンポーザ動作を示しています。コンポーザおよびOracle WebCenter Portalのカスタマイズ可能コンポーネントと関係のある権限のみがこの表にリストされています。付与権限は、すべての権限のスーパー・セットであるためリストされていません。付与権限を持つユーザーは、すべての編集タスクを実行できます。
表16-2 ページ権限またはタスク・フロー権限とコンポーザの動作のマッピング
権限 | コンポーザの動作 |
---|---|
編集またはカスタマイズ |
ユーザーは、コンポーザが起動されたページの編集モードに切り替えてページを編集できます。 編集権限またはカスタマイズ権限のいずれかを持つユーザーは、すべての実行時編集タスクを実行できます。 ページまたはタスク・フローの編集権限またはカスタマイズ権限を持っている場合、ユーザーは次のことを実行できます。
注意: ページ・レベルの権限を持っているかまたはタスク・フロー・レベルの権限の持っているかに応じて、これらのタスクのすべてまたは一部を実行できます。 ユーザーがページの編集権限またはカスタマイズ権限を持っていないのにこれを編集しようとすると、これを行う権限がないことを示すメッセージが表示されます。 ユーザーがタスク・フローの編集権限またはカスタマイズ権限を持っていない場合、「構造」ビューにタスク・フローの「編集」オプションが表示されません。 |
パーソナライズ |
表示モードで、ページのパーソナライズ権限を持っているユーザーは次のことを実行できます。
注意: パーソナライズ権限を持っていても、ユーザーはポートレットのカスタマイズは実行できません。 パーソナライズ権限、編集権限、カスタマイズ権限のいずれも持っていないユーザーがページを編集しようとすると、これを行う権限がないことを示すメッセージが表示されます。 |
表示 |
表示権限を持っているユーザーは、ページまたはタスク・フローの表示のみを行え、ユーザーまたはアプリケーションのカスタマイズは実行できません。 |
タスク・フローをカスタマイズ可能ページに追加すると、コンポーザは、タスク・フローおよびタスク・フローのページのコンポーネントを編集するオプションを提供します。保護されたアプリケーションでは、コンポーザは、カスタマイズ可能なページおよびタスク・フローに提供された権限に基づいて、編集機能を提供します。タスク・フロー権限およびコンポーザの動作の詳細は、表16-2を参照してください。
アプリケーション・ページで、コンポーネントは、JSPXページに直接またはタスク・フローなどの共有コンポーネント内のページ・フラグメントに配置できます。タスク・フロー内のコンポーネントに対する制限は、ページ・フラグメントから導出されます。タスク・フローのセキュリティについて理解を深めるには、図16-62に示すような、タスク・フローを含むページで、このタスク・フローが別のタスク・フローを含む例を検討します。
このページのコンポーネントは次のようにセキュリティを継承します。
Component1
、Component2
およびRegion3
はDocument.jspx
からセキュリティ定義を継承します。
ComponentA
、ComponentB
およびRegionC
はregion3.jsff
からセキュリティ定義を継承します。
ComponentX
およびComponentY
はregionC.jsff
からセキュリティ定義を継承します。
タスク・フローは権限のカスケードをサポートしません。つまり、ページ権限は、タスク・フロー内のコンポーネントによって継承されません。ただし、ページの編集権限またはカスタマイズ権限を持っていないユーザーは、ページのタスク・フローをカスタマイズできません。
たとえば、Document.jspx
およびregionC.jsff
の編集権限またはカスタマイズ権限を付与するがregion3.jsff
の編集権限またはカスタマイズ権限を付与しない場合、ユーザーは、Component1
、Component2
、RegionC
、ComponentX
およびComponentY
はカスタマイズできますが、ComponentA
、ComponentB
およびRegionC
はカスタマイズできません。
保護されたアプリケーションでは、タスク・フローの権限は、アプリケーションのjazn-data.xml
ファイルに格納されます。タスク・フローで使用可能なアクションのリストはタスク・フローの権限クラスoracle.adf.controller.security.TaskFlowPermission
によって定義されます。この権限クラスは、タスク・フローの操作にマップされる、タスク・フロー固有のアクションを定義します。デフォルトでは、表示権限のみがタスク・フローに与えられます。ユーザーが実行時にタスク・フローを編集できるようにするには、カスタマイズ権限がタスク・フローに付与されていることを確認する必要があります。詳細は、第18.3.1.1項「タスク・フローの追加に関する考慮事項」および第22.6項「タスク・フローのセキュリティの実装」を参照してください。
タスク・フローとそのセキュリティ動作の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。
Portal Frameworkアプリケーションには、すべてのアプリケーション・オブジェクトのアプリケーションのカスタマイズを制限するデフォルトのMDS構成があります。実行時のページ編集を有効にするには、Page Customizable
コンポーネントをページに追加して、このデフォルトの制限を非アクティブにする必要があります。Page Customizable
コンポーネントは、その下にあるすべてのコンポーネントのアプリケーションのカスタマイズを有効にします。ただし、ネストされたページまたはフラグメントのコンポーネントのカスタマイズは有効になりません。たとえば、Page Customizable
がページ・テンプレートで使用されていて、その内部にFacet Ref
がある場合、Facet Ref
内部のコンポーネントのカスタマイズはデフォルトで有効になりません。
MDSのタイプ・レベルの制限またはインスタンス・レベルの制限を使用して、コンポーネントの一連の属性に対するアプリケーションのカスタマイズを有効化できます。タイプ・レベルの制限は、インスタンス全体の指定されたコンポーネント・タイプに適用できます。実行時、カスタマイズを有効化した属性は、コンポーザで編集可能プロパティとして表示され、制限された属性は、選択したコンポーネントの「コンポーネント・プロパティ」ダイアログに表示されません。詳細は、第22.1項「カスタマイズ・ポリシーの定義によるコンポーネント・レベルの制限の適用」を参照してください。
Panel Customizable
コンポーネントおよびShow Detail Frame
コンポーネントは、サポートされている個々のアクションに制限を行うことができます。たとえば、現在のユーザーがShow Detail Frame
を最小化できるかどうかの制限を指定できます。
コンポーネントのアクションの制限を行うかどうかを決定できます。コンポーネントのアクションの制限はadf-config.xml
で指定できます。制限を指定して、現在のユーザーに適用可能な場合、Panel Customizable
またはShow Detail Frame
はアクションをレンダリングしません。
アクション・レベルの制限の適用の詳細は、第22.5項「Panel CustomizableおよびShow Detailコンポーネント・アクションでのアクション・レベルの制限の適用」を参照してください。