Oracle® Fusion Middleware Oracle JDeveloperによるWebCenter Portalアセットとカスタム・コンポーネントの開発 12c (12.2.1.2.0) E82735-01 |
|
![]() 前 |
![]() 次 |
この章のトピックは、次のとおりです:
コンポーザは、アプリケーション実行時にページ・コンテンツを追加および編集するための完全に統合されたページ・エディタです。コンポーザの機能を理解するには、まず、次のステージから構成される、典型的なアプリケーション開発ライフサイクルを確認します。
アプリケーション開発者は、設計時にアプリケーションを作成します。
設計時は従来から、アプリケーションの作成または編集の統合開発環境(IDE)を表します。Oracle WebCenter Portalの場合、Oracle JDeveloperが設計時環境を提供します。
アプリケーション管理者は、これらのアプリケーションをマネージド・サーバーにデプロイします。
エンド・ユーザーは、実行時にデプロイされたアプリケーションにアクセスします。
実行時とは、Webアプリケーションにアクセスするために使用されるブラウザ・ベースの環境を表します。
各ステージに異なるカテゴリのユーザーが関与することがわかります。多くの場合、これらのユーザーの一部またはすべてが実行時にページを変更する必要があります。たとえば、ワークリストやメール・タスク・フローなどの、ログイン・ユーザーに関する情報を表示するダッシュボードのようなアプリケーションについて考えてみます。ページ開発者は、ダッシュボード・ページを作成し、これに必要なコンポーネントおよびタスク・フローを移入します。アプリケーション管理者は、アプリケーションを顧客のサイトにデプロイします。顧客のサイトでは、組織の様々なレベルの人がダッシュボードを表示し、次のリクエストを行います。
部門の管理者は、「部門ニュース」タスク・フローを追加します。
ライン・オブ・ビジネス(LOB)管理者は、「個人/役職者が使用する経費」タスク・フローを追加します。
ライン・オブ・ビジネス機能は、ビジネス・アナリストまたは同等の役職によって実行できる管理機能です。LOB管理者は、実行に最上位レベル管理機能を必要としない管理タスクを実行できます。
国のサイト管理者は、それぞれの国の運営または規則を表示するタスク・フローを追加します。
また、コンテンツ・コントリビュータ、モデレータおよびエンド・ユーザーは、ビジネス・ニーズに基づいてページ・アーティファクトを追加、削除または変更します。典型的なアプリケーション開発環境では、これらのリクエストはページ開発者に渡されます。開発者は、開発環境でアプリケーションを変更し、これを顧客のサイトに再デプロイします。
単純な変更を開発者に戻すのではなく、コンポーザはMetadata Services (MDS)とともに、ビジネス・ユーザーが実行時にアプリケーション・ページを編集できる編集ツールを提供します。実行時に行われた変更はメタデータとして保存され、ベースのアプリケーション定義から隔離されます。実行時にアプリケーション・ページを編集するこの概念は、実行時に設計と呼ばれます。これは、設計時にアプリケーションを変更してこれを再デプロイする必要を最小化します。
コンポーザは、実行時にアプリケーション設計を行う動作を制御するコンポーネントを提供します。この章では、コンポーザを効果的に使用するために必要な基本的な概念および用語について説明します。
ユーザーが実行時にページを変更すると、通常その変更はそのユーザーのみが使用できます。アプリケーションを構成して、ページにアクセスするすべてのユーザーまたはユーザーのサブセットが実行時の変更を使用できるようにすることができます。LOBのメンバーが使用する経費の詳細を表示するダッシュボード・ページの例について考えてみます。LOB管理者がページを変更し、いくつかの経費に関するガイドラインを追加する場合、その変更はすべてのメンバーに表示される必要があります。そのような要件に対処するために、コンポーザでは、ユーザーはページを異なるモードで編集し、変更をユーザーのカスタマイズ(個々のユーザーのページの表示にのみ影響)またはアプリケーションのカスタマイズ(全員のページの表示に影響)として保存できます。
変更をユーザーのカスタマイズまたはアプリケーションのカスタマイズのいずれかとして保存するには、これらをバックエンドで別々に保存する必要があります。メタデータ・ドメインでは、MDSは、ベース・アプリケーション定義の上の別々のレイヤーにカスタマイズを保存することを許可しています。ビジネス要件に応じて、単一のレイヤーまたは複数のレイヤーに変更を保存できます。
単一レイヤー構成では、変更は、アプリケーションのカスタマイズとしてすべてのユーザーがアクセスできる共通レイヤーに保存されます。この場合、変更をユーザーのカスタマイズとして保存することはできません。
複数レイヤー構成では、変更は、ページが編集されたモード、ページを編集したユーザー、ユーザー・ロールなどの指定された条件に基づいて個別の場所に保存されます。この種の構成では、各カスタマイズ・レイヤーは他のレイヤーから隔離されますが、レイヤーを相互に積み重ねてアップグレード時に柔軟性を持たせることができます。たとえば、ユーザーが、表示されるページのデフォルトのテーマを変更する必要があるとします。この変更は、ページの他者の表示に影響を与えずに、このユーザーに対してのみ保存されることが期待されているとします。したがって、このページのパーソナライズ権限を持っているエンド・ユーザーによって行われる変更がユーザーのカスタマイズとして保存され、カスタマイズレベル権限を持っているログイン・ユーザーによって行われる変更がアプリケーションのカスタマイズとして保存されるように設定できます。パーソナライズ権限とカスタマイズ/編集権限を持つユーザーが使用できるタスクをそれぞれ決定できます。
MDSおよびカスタマイズ・レイヤーの詳細は、「MDSの概要」を参照してください。
ユーザーがブラウザでアプリケーション・ページを開くと、ページは表示モードで開きます。コンポーザは、編集モードという別のモードへのアクセスを提供し、適切な権限を持つユーザーはアプリケーション・ページを編集できます。これらのモードを詳細に説明します。
編集モード: 通常このモードは、アクセス権限を持つ認証されたユーザーが使用してページ・コンテンツを編集できます。表示モードで実行できる標準タスクに加えて、コンポーザは、編集モードへの切り替えおよびコンポーネントの追加、コンポーネントの削除、コンポーネントのプロパティの編集などのタスクの実行のための制御を提供します。通常、編集モードでページに対して行われる変更はアプリケーションのカスタマイズとして保存され、そのページにアクセスするすべてのユーザーが使用できます。
表示モード: ブラウザで開いたときに表示されるページのデフォルト・ビュー。このモードでは、ユーザーは、コンポーネントの再配置、コンポーネントの折りたたみと展開およびレイアウトの変更などのタスクを実行できます。通常、表示モードでページに対して行われる変更はそのユーザーのみが使用でき、ユーザーのカスタマイズとして保存されます。
コンポーザの編集モードには、広範なアプリケーションのカスタマイズ機能が用意されています。編集モードでは、ユーザーは、コンテンツの追加、ページとコンポーネントのプロパティの編集、コンポーネントの削除、コンポーネントの再配置、ページ・レイアウトの変更などを行えます。
この章で説明する機能をアプリケーションに提供するには、Change Mode Link
またはChange Mode Button
、Page Customizable
、Panel Customizable
、Show Detail Frame
、Custom Actions
およびLayout Customizable
の各コンポーザ設計時コンポーネントをページに追加します。これらのコンポーネントの詳細は、「コンポーザ・コンポーネント」を参照してください。
Change Mode Link
コンポーネントまたはChange Mode Button
コンポーネントをカスタマイズ可能なページに追加すると、コンポーザの表示モードのページに「編集」リンクが表示されます。ユーザーが「編集」リンクまたはボタンをクリックすると、編集モードのコンポーザでページが開きます。図24-1は、表示モードのページの「編集」リンクを示しています。
編集モードでは、デフォルトのコンポーザ・ツールバーに、編集中のページのタイトル、「ページ・プロパティ」アイコン、「ページのリセット」アイコンおよび「閉じる」ボタン(図24-2)が表示されます。
デフォルトでは、編集モードのページには「コンテンツの追加」と「構造」の2つのビューが表示されます。ただし、「デザイン」、「コンテンツの追加」、「構造」、「選択」および「プレビュー」のいずれかまたはすべてのビューを表示するようにページを構成できます。DesignViews
属性を使用して、編集モードで表示するビューを指定します。値をall
と指定すると、「コンテンツの追加」ビューを除くすべてのビューが編集モードで使用可能になります。
拡張機能を使用できるように、コンポーザにすべてのビューを表示するようにページを構成することをお薦めします。DesignViews
属性は、編集モードで表示するビューを指定するために使用します。この属性によって、ユーザーがコンポーザで使用できるビューを指定します。「コンテンツの追加」ビューおよび「構造」ビューは、後方互換性のためにデフォルトで利用できます。この属性には要素の空白区切りリストを指定できます。選択可能なオプションは、design
、add-content
、source
、select
、preview
およびall
です。値をall
に設定すると、「コンテンツの追加」以外のすべてのビューがレンダリングされ、「デザイン」ビューがコンポーザでのデフォルトのビューになります。
designViews
属性を設定すると、adf-config.xml
のdesignViews
設定がオーバーライドされます。ただし、この属性がNullを返すELに設定されている場合、designViews
にはadf-config.xml
の設定が使用されます。
この項には次のサブセクションが含まれます:
「コンテンツの追加」ビューは、コンポーザのページを開く際のデフォルト・ビューです。このビューでは、ページとコンテンツがWYSIWYGで表示され、各コンポーネントのコントロールを直接選択できます。
「構造」ビューでは、ページ・コンポーネントがWYSIWYG表示と階層表示を組み合せて表示されます。つまり、ページ構造ペインのツールバーで、ページ・コンポーネントの追加、編集、削除、非表示および再配置のためのコントロールを使用できます(図24-4)。
注意:
childCreation
属性は、ポップアップ・ダイアログの子をコンポーザで表示できるかどうかを決定します。デフォルトでは、この属性はdeferred
に設定されており、ポップアップ・ダイアログの子を表示する際に使用できます。値をimmediate
に設定すると、ポップアップ・ダイアログの子を表示できます。
childrenCreation
属性をimmediate
に設定すると、パフォーマンスに影響を与えます。ページ上でポップアップを使用する必要がない場合には、deferred
のデフォルト設定を使用するとCPUのペナルティと不要なメモリーの使用を避けることができます。ポップアップは非モーダルで表示されるため、アプリケーションではエラーなしでそのファクトを処理できる必要があります。コンポーザに関連するEL式の詳細は、「コンポーザに関連するEL」を参照してください。
「デザイン」ビューでは、ページとコンテンツがWYSIWYGで表示され、各コンポーネントのコントロールを直接選択できます。リソース・カタログがページの右側にインライン表示され、そこからページに追加するコンポーネントを選択できます(図24-5)。
インライン・リソース・カタログを非表示にして、かわりにページの各領域に「コンテンツの追加」ボタンを表示することもできます。これは、コンポーネントを追加できる場所の特定に役立ちます。
「デザイン」ビューは、デフォルトでは編集モードで使用できません。このビューを使用可能にするには、Page Customizable
コンポーネントのDesignViews
属性の値をdesign
またはall
に設定します。詳細は、「Page Customizableコンポーネント」を参照してください。
「デザイン」ビューの表示を選択した場合は、このビューがデフォルト・ビューとして表示され、「コンテンツの追加」ビューは編集モードで表示されません。
「選択」ビューは、ページとそのコンテンツのWYSIWYG表示を提供します。このビューでは、コンポーネントを選択して、そのコンポーネントのプロパティまたはその親コンポーネントのプロパティにすばやくアクセスできます。選択ビューでは、コンポーネントを削除できません。
「デザイン」ビューと同様に、ページの右側にリソース・カタログがインラインで表示されます。ここでは、ページに追加するコンポーネントを選択できます(図24-6)。
編集モードでは、「選択」ビューはデフォルトでは使用できません。このビューを使用可能にするには、Page Customizable
コンポーネントのDesignViews
属性の値をselect
またはall
に設定します。詳細は、「Page Customizableコンポーネント」を参照してください。
「プレビュー」ビューは、公開されるページのプレビューを、アプリケーションに表示されるときと同様に表示します。
編集モードでは、「プレビュー」ビューはデフォルトでは使用できません。このビューを使用可能にするには、Page Customizable
コンポーネントのDesignViews
属性の値をpreview
またはall
に設定します。詳細は、「Page Customizableコンポーネント」を参照してください。
コンポーザによって、ユーザーは表示モードと編集モードでページをカスタマイズできます。この項では、ページ表示モードでユーザーが可能なユーザー・カスタマイズ・タスクの概要について説明します。このようなタスクには、コンポーネントの再配置、コンポーネントの折りたたみと展開およびページ・レイアウトの変更などがあります。この項で説明する機能を有効にするには、次のコンポーザの設計時コンポーネントをページに追加します: Panel Customizable
、Show Detail Frame
、Custom Actions
およびLayout Customizable
。これらのコンポーネントの詳細は、「コンポーザ・コンポーネント」を参照してください。表示モードでページに加えられた変更は、その変更を行ったユーザーにのみ有効になります。
この項には次のサブセクションが含まれます:
注意:
ページで実行できる編集タスクの詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築』の「ポータル・ページの作成および編集」の章を参照してください。
この機能では、ユーザーは、最も役に立つコンテンツがページの上部に表示されるようにページのコンポーネントを編成できます。ユーザーは、次の2つの方法でコンポーネントを再配置できます。
ドラッグ・アンド・ドロップ
ユーザーは、ページのPanel Customizable
コンポーネント内またはPanel Customizable
コンポーネント間でコンポーネントをドラッグ・アンド・ドロップしてこれを再配置できます。編集モードでPanel Customizable
コンポーネントを識別するのは困難であるため、ユーザーは単純にコンポーネントを配置したい場所にドラッグできます。実線のボックスはドロップできる場所を示します。
「アクション」メニューの使用
Show Detail Frame
コンポーネントまたはポートレット・コンポーネントの移動アクションでは、ユーザーは、これらのコンポーネントを親のPanel Customizable
コンポーネント内で移動できます。Panel Customizable
に複数の子コンポーネントがある場合、子のShow Detail Frame
またはポートレットを他の子コンポーネントの位置に対して左右または上下に移動できます。図24-7は、「上へ移動」アクションおよび「下へ移動」アクションがあるサンプルのShow Detail Frame
コンポーネントを示しています。この例では、「下へ移動」を選択すると、Latest NewsコンポーネントがPress Releaseコンポーネントの真下に移動します。
ページでコンポーネントの展開と縮小を有効にすることによって、外観を損ねることなくページにより多くの詳細情報を含めることができます。ユーザーは、必要に応じてコンポーネントを縮小したり展開したりできます。
Show Detail Frame
またはポートレットの「縮小」アイコンを使用すると、ユーザーはそのコンポーネントを縮小し、そのヘッダーのみを表示できます。図24-10は、Show Detail Frameコンポーネントの「縮小」
アイコンを示しています。
縮小されたコンポーネントで「展開」アイコンを使用すると、ユーザーはコンポーネントがヘッダーとコンテンツを表示するようにこれを展開できます。図24-11は、2つの閉じられたShow Detail Frameコンポーネントの「展開」
アイコンを示しています。
アプリケーションにポートレットが含まれている場合、ユーザーは、そのポートレットに必要な情報を表示させることも、ポートレットを非表示にすることも、ページから削除することもできます。表示モードでポートレットに加えた変更は、そのユーザーにのみ有効になります。図24-12に、Web Clippingポートレットでユーザーが実行できるアクションを示します。「パーソナライズ」オプションは、ページ表示モードのポートレットでのみ使用できます。
この項では、コンポーザがページ編集モードで提供する編集機能について説明します。次のサブセクションが含まれます:
注意:
アプリケーションを保護し、コンポーネントにカスタマイズ制限を適用することによって、ユーザーがこれらのタスクのすべてまたは一部を実行できないように制限することができます。詳細は、「セキュリティおよびコンポーザ」を参照してください。
ユーザーがページで実行できる実行時編集タスクの詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築』のページの編集に関する項を参照してください。
権限のあるユーザーは、ニュースや株式の最新情報を表示するポートレットなどのページにカスタム・コンテンツを追加できます。コンポーザにより、ユーザーは編集モードで任意のコンテナにコンテンツを追加できます。Oracle WebCenter Portalのリソース・カタログ(Oracle Business Dictionaryとも呼ばれる)には、ユーザーがページに追加できるリソースが含まれています。これらには、ドキュメント、Oracle ADFコンポーネント、ポートレットおよびタスク・フローが含まれています。カタログは、ページの編集モードで、次の方法を使用して起動できます。
「コンテンツの追加」ビューと「デザイン」ビューで、ページの任意のコンテナ・コンポーネントの「コンテンツの追加」ボタンをクリックします。
「デザイン」ビューで、デフォルトではインライン・リソース・カタログが使用可能ですが、これを非表示にして、かわりにページの各領域に「コンテンツの追加」ボタンを表示することもできます。これは、コンポーネントを追加できる場所の特定に役立ちます。
「構造」ビューでは、コンテナ・コンポーネントを選択して、「構造」ビューのツールバーの「選択したコンポーネントにコンテンツを追加」アイコンをクリックします。
注意:
コンテナ・コンポーネントのカスタマイズを制限している場合、ユーザーは、実行時にこの内部にコンポーネントを追加できません。詳細は、「カスタマイズ・ポリシーの定義によるコンポーネント・レベルの制限の適用」を参照してください。
図24-13は、Frameworkアプリケーションの「コンテンツの追加」ダイアログを示しています。
「コンテンツの追加」ダイアログにはフォルダとコンポーネントが含まれています。カタログのアイテムの隣にある「開く」リンクは、アイテムがフォルダであることを示しています。権限のあるユーザーは、このリンクをクリックしてフォルダをドリルダウンできます。アイテムの隣にある「追加」リンクは、アイテムをページに追加できることを示しています。「追加」リンクは、コンポーネントまたはフォルダの隣に表示されます。コンポーネントは、「コンテンツの追加」リンクがクリックされたコンテナに最初の子として追加されます。
注意:
ダイアログの「上」アイコンを使用すると、ユーザーは最上位フォルダに戻ることができます。
リソースをページに追加するためのドロップ・ハンドラを構成した場合、「追加」リンクに、コンポーネントをページに追加するためのものと異なるオプションを含むコンテキスト・メニューが表示されます。詳細は、「コンポーザUIイベントのイベント・ハンドラの構成」を参照してください。
構成に応じて、ダイアログは権限のあるユーザーに対して次のコンポーネントのすべてまたはサブセットを公開します。
ADF Facesコンポーネント
「Web開発」フォルダには、Box
コンポーネントおよびMovable Box
コンポーネントが用意されています。これらは、JDeveloperの設計時コンポーネントPanel Customizable
およびShow Detail Frame
と類似のものです。JDeveloperでは、これらのコンポーネントは、コンポーザ・タグ・ライブラリで使用できます。
注意:
設計時にページに追加されたPanel Customizable
コンポーネントおよびShow Detail Frame
コンポーネントは、引き続き同じ呼び名です。これらのコンポーネントは、実行時にそれぞれBox
コンポーネントおよびMovable Box
コンポーネントと表示されることはありません。
このフォルダには、HTML Markup
、Hyperlink
、Image
、Text
およびWeb Page
の各コンポーネントが用意されています。これらは、それぞれJDeveloperの設計時コンポーネントOutput Text
、Go Link
、Go Image Link
、Rich Text Editor
およびInline Frame
に類似しています。JDeveloperでは、これらのコンポーネントは、ADF Facesタグ・ライブラリで使用できます。
カタログの「Web開発」フォルダには、図24-14に示すようにこれらのコンポーネントが含まれています。
タスク・フロー
権限のあるユーザーは、カスタム・タスク・フローおよび即時利用可能なWebCenter Portalのツールとサービス・タスク・フローをページに追加できます。ページに追加されるタスク・フローは、Movable Box
コンポーネント内に自動的に含まれます。その結果、タスク・フローは、コンポーネントを移動または削除するためのオプション付きのヘッダーを表示します。
注意:
タスク・フローを囲んでいるMovable Box
コンポーネントは、そのタスク・フローがページで表示されている場合のみ表示されます。つまり、タスク・フローの表示権限すら付与しない場合、これを囲むMovable Boxもページで表示されません。
ポートレット
ポートレット・フォルダは、登録済プロデューサをすべてリストします。権限のあるユーザーは必要なポートレットにナビゲートし、これをページに追加できます。ポートレット・フォルダは、Oracle JDeveloperで登録された任意のJava-PDKまたはWSRPプロデューサからポートレットを公開します。ポートレット・プロデューサの登録の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalの管理』のOracle PDK-Javaポートレット・プロデューサの登録に関する項を参照してください。
ドキュメント
コンテンツ管理フォルダは、ユーザーがページに追加できるドキュメントおよびフォルダをリストします。
詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築』のページのWeb開発コンポーネントの使用に関する項を参照してください。
「ボックス」
コンポーネントにあるツールバーには、タブまたはタブのセットをBoxコンポーネントに追加するオプション(図24-15
)が用意されています。タブを使用して、ページの個別のレイヤーとしてコンテンツ・リージョンを追加します。新しいタブそれぞれが現在選択されたタブの下のレイヤーとして配置され、コンテンツを移入できるリージョンを含みます。
「タブ・セットまたはタブの追加」アイコンは、Panel Customizable
コンポーネントのshowTabAction
属性がtrue
に設定されている場合に使用可能です。
ユーザーがBox
コンポーネントにある「タブ・セットまたはタブの追加」アイコンをクリックすると、コンポーザはBox
コンポーネントの周りにタブを追加します。「構造」ビューでは、図24-16
に示すように、Box
コンポーネントがShow Detail Item
コンポーネント内にネストされていて、さらにこれがPanel Tabbedコンポーネント内にネストされています。ユーザーは、この方法で任意の数のタブを追加できます。
ユーザーが最初に追加するタブは、選択したBox
コンポーネントを囲みます。その後の各タブは、新しいBox
コンポーネントをその内部に含みます。
権限のあるユーザーは、「コンテンツの追加」ビューまたは「デザイン」ビューの「削除」アイコンをクリックしてタブを削除できます。最後のタブを削除すると、Panel Tabbed
コンポーネントがページから削除されます。また、「構造」ビューでPanel Tabbed
コンポーネントを削除することによって、タブ・セットを削除できます。その内部にあるBox
を削除せずにタブのみを削除するには、ユーザーは、まずBox
をPanel Tabbed
コンポーネントの外側に移動(切取りおよび貼付け)してからPanel Tabbed
コンポーネントを削除する必要があります。
「コンテンツの追加」ビューまたは「デザイン」ビューの「ボックス」
コンポーネントにあるツールバーには、コンポーネントの前または後ろに別のBox
コンポーネントを追加するオプションが用意されています。この機能を使用すると、ユーザーは、ページでコンポーネントのレイアウトを変更できます。
ユーザーがBox
コンポーネントにある「追加」アイコンをクリックすると、コンポーザは別のBox
コンポーネントをその前または後ろに追加し、両方のBox
コンポーネントをPanel Group Layout
で囲みます。使用するアイコンに応じて、新しいBox
コンポーネントは、元のBox
コンポーネントの左、右、上または下に追加され、親のPanel Group Layout
コンポーネントにあるLayout
属性がhorizontal
またはvertical
に設定されます。ユーザーは、この方法で多くの連続したBox
コンポーネントを追加できます。新しいBox
コンポーネントの方向が変わるたびに、適切なレイアウト設定(水平方向または垂直方向)を持つ新しいPanel Group Layout
が新規および既存のBox
コンポーネントの周りに追加されます。
注意:
「追加」アイコンは、次の場合にはコンポーネント上にレンダリングされません。
Panel Customizable
コンポーネントのallowAction
属性がfalse
に設定されている場合
Panel Customizable
がストレッチされている場合
Panel Customizable
コンポーネントが制限されている場合
詳細は、「コンポーザ・コンポーネントのデフォルトのセキュリティ動作の変更」を参照してください。
ユーザーは、「コンテンツの追加」ビュー、「デザイン」ビューおよび「構造」ビューを使用して、追加したBox
コンポーネントを削除できます。
注意:
Panel Group Layout
にBox
コンポーネントが2つしかなく、その内の1つを削除すると、Panel Group Layout
も削除されます。
「ボックス」
コンポーネントのツールバーには、編集アイコンに加えて次のボックス追加アイコンがあります。
「上にボックスを追加」アイコン(図24-17)をクリックすると、Box
コンポーネントが選択したBox
コンポーネントの上に追加されます。Panel Group Layout
のlayout
属性はvertical
に設定されます。
図24-18は、Boxコンポーネントの隣に別のBox
コンポーネントを追加する前の「構造」ビューでのBox
コンポーネントの表示です。
図24-19は、コンポーネント・ナビゲータで垂直に整列された2つのBox
コンポーネントを示しています。
ユーザーは、「上にボックスを追加」アイコンを繰り返しクリックして、多くの連続したBox
コンポーネントを同じ親Panel Group Layout
の中に垂直に追加できます。
「下にボックスを追加」アイコン(図24-20)をクリックすると、Box
コンポーネントが選択したBox
コンポーネントの下に追加されます。Panel Group Layout
のlayout
属性はvertical
に設定されます。
ユーザーは、「下にボックスを追加」アイコンを繰り返しクリックして、多くの連続したBox
コンポーネントを同じ親Panel Group Layout
の中に垂直に追加できます。
「右にボックスを追加」アイコン(図24-23)をクリックすると、Box
コンポーネントが選択したBox
コンポーネントの右に追加されます。Panel Group Layout
のlayout
属性はhorizontal
に設定されます。
ユーザーは、「右にボックスを追加」アイコンを繰り返しクリックして、多くの連続したBox
コンポーネントを同じ親Panel Group Layout
の中に水平に追加できます。
この機能では、たとえば、最も役に立つコンテンツがページの上部に移動できるように、最も簡単に使用できる場所に基づいて、ユーザーはページのコンポーネントを編成できます。「コンテンツの追加」ビューと「デザイン」ビューで、ユーザーは次の方法でページ上のコンテンツを再配置できます。
ページにある同じPanel Customizable
コンポーネント内またはPanel Customizable
(あるいはBox
)コンポーネントの間でコンポーネントをドラッグ・アンド・ドロップします。
Show Detail Frame
またはポートレットの「アクション」メニューにある「移動」アクションを使用して、これを親Panel Customizable
コンポーネント内で移動します。Panel Customizable
コンポーネントの子コンポーネントの数、およびそれらのコンポーネントの向きに応じて、コンポーネントを左、右、上または下に移動できます。
コンテナ内でコンポーネントの順序を変更するには、コンテナの「コンポーネント・プロパティ」ダイアログで、「子コンポーネント」タブをクリックし、子コンポーネントごとに表示される上下の矢印を使用します(図24-24)。
注意:
カスタマイズが制限されているコンポーネントは、その親がカスタマイズ可能である場合、その親コンテナ内で再配置できます。
「子コンポーネント」タブには、直接の子コンポーネントのリストをタブの上部に表示し(「コンポーネント」リスト)、次にそのコンポーネントに対して定義されたすべてのファセットのリストを表示します(「固定コンポーネント」リスト)。ファセット・コンポーネントは再配置できないため、これらのコンポーネントには上下の矢印はありません。「固定コンポーネント」リストは、コンポーネントにファセットが含まれている場合のみ表示されます。
「コンポーネント・プロパティ」ダイアログを使用すると、ユーザーは、ポートレットやタスク・フローなどのコンポーネントに関連付けられたコンポーネントのプロパティおよびパラメータを編集できます。
注意:
コンポーネントは次の場合には編集できません。
設計時に、コンポーネントにId
属性が設定されなかった場合
コンポーネントまたはその属性のいずれかが制限されている場合
カスタマイズの制限の詳細は、「コンポーザ・コンポーネントのデフォルトのセキュリティ動作の変更」を参照してください。
これがADF Facesライブラリのコンポーネントである場合
「コンテンツの追加」ビューおよび「デザイン」ビューで、コンポーネントの「編集」アイコンをクリックすると、図24-25に示すように「コンポーネント・プロパティ」ダイアログが表示されます。
「表示オプション」タブでは、ユーザーは、背景やタイトルなどの視覚的なプロパティを編集できます。「パラメータ」タブが使用可能な場合、ユーザーはこのタブを使用して、ポートレットやタスク・フローなどのコンポーネントのパラメータを編集できます。
グラフ、円グラフおよびゲージ
コンポーネントが「グラフ」コンポーネント、「円グラフ」コンポーネントまたは「ゲージ」コンポーネントの場合、グラフのプロパティを編集するために追加パネルが使用できます。
「コンポーネント・プロパティ」のカスタマイズの視覚的な意味
「表示オプション」タブにあるプロパティの隣のアイコンは、プロパティが実行時に編集されたことを意味します。2つの異なるアイコンが使用され、現在のコンテキストおよび異なるレイヤーで行われた変更を示します。図24-27は、プロパティが更新されたことを示すために使用される2つの異なるアイコンを示しています。
注意:
プロパティのカスタマイズの視覚的意味は、アプリケーションで複数のカスタマイズ・レイヤーを構成した場合のみ関係します。詳細は、「カスタマイズ・レイヤーの表示モードおよび編集モードへの追加: 例」を参照してください。
EL値を含むプロパティはグレー表示され、デフォルトの式値はテキスト・フィールドの下側にグレーのテキストで表示されます。ユーザーがプロパティのEL値を文字列値に変更すると、古いEL値はプロパティ・フィールドの下側に表示されます。これは、古いEL値を必要とする別のユーザーにとって役立ちます。
「コンポーネント・プロパティ」ダイアログでは、ユーザーは、現在のコンテキストの視覚的プロパティをリセットすることもできます。詳細は、「現在のレイヤーのコンポーネント・プロパティのリセットとオーバーライド」を参照してください。
ユーザーは、現在のレイヤーのコンポーネント・プロパティに対して行ったアプリケーションのカスタマイズをリセットおよびオーバーライドできます。「コンポーネント・プロパティ」ダイアログには、「コンポーネント・プロパティ」ダイアログのパネルにある特定のプロパティまたはすべてのプロパティをリセットするオプションが用意されています。
プロパティのコンテキスト・メニューにある「オーバーライド」オプション(図24-28)を使用すると、ユーザーは、別のレイヤーの値を現在のレイヤーの固定値として使用できます。たとえば、ユーザーは、レイヤーX
のMovable Box
コンポーネントにあるShort Desc
プロパティを編集して、これをFirst Frame
に設定します。別のレイヤーY
でこのコンポーネントを編集しているユーザーは、First Frame
をレイヤーY
のShort Desc
の固定値として選択できます。レイヤーY
のこのコンポーネントにアクセスしているすべてのユーザーには、今後この値が表示されます。Short Desc
の値は、レイヤーX
でこの値が変更されてもレイヤーY
では変更されません。ユーザーがプロパティに値を入力すると、そのプロパティの「オーバーライド」オプションはグレー表示されます。
図24-28 「コンポーネント・プロパティ」ダイアログの「リセット」オプションと「オーバーライド」オプション
プロパティのコンテキスト・メニューにある「リセット」オプションを使用すると、ユーザーは、そのプロパティを元の状態にリセットできます。プロパティがそのレイヤーで編集されたことがない場合、またはユーザーがそのプロパティを表示された値(別のレイヤーから取得)でオーバーライドすることを選択した場合、「リセット」オプションはグレー表示されます。
「すべてリセット」ボタンを使用すると、ユーザーは、「表示オプション」タブにあるすべてのプロパティをリセットできます。ユーザーは、「表示オプション」タブでレンダリングされた視覚的なプロパティに適用されたアプリケーションのカスタマイズのみをリセットできます。
注意:
「リセット」オプションと「すべてリセット」ボタンは、コンポーネントが新しく作成された場合または現在のレイヤーで変更された属性がない場合には使用できません。
コンポーザで編集されたコンポーネント・プロパティは、現在の言語でのみ使用できます。たとえば、タスク・フローをページに追加する場合、コンポーザで入力したタスク・フロー・タイトルは現在の言語でのみ使用可能です。そのため、別のロケールのユーザーには、そのようなプロパティの翻訳された値が表示されません。実行時に編集されたコンポーネント・プロパティの言語サポートを提供するために、コンポーザによって、ユーザーは文字列値を取るプロパティのリソース文字列を編集できます。これは、JDeveloperが提供するリソース文字列エディタ機能に似ています。コンポーザでリソース文字列に変更を加えると、その変更はアプリケーション・オーバーライド・バンドルに保存されます。バンドルは翻訳に送られ、翻訳されたバージョンがアプリケーションに戻されます。こうして、ユーザーは自身の言語でプロパティ値を表示できます。
オーバーライド・バンドルおよび既存のFrameworkアプリケーションでのリソース文字列編集の構成の詳細は、「実行時リソース文字列編集の構成」を参照してください。
実行時、文字列値を取ることができるコンポーネント表示オプションについては、プロパティ・フィールドの隣の「編集」メニューで、図24-28に示すように、「テキスト・リソースの選択」オプションが提供されます。ユーザーは、このオプションを選択して、プロパティのリソース文字列を編集できます。
「テキスト・リソースの選択」ダイアログ(図24-29)には、既存のリソースを検索するオプション、リソース・キーを編集または削除するオプションおよび新しいリソース・キーと値のペアを追加するオプションが用意されています。
「テキスト・リソースの選択」ダイアログは、次のものを表示します。
「キー」フィールド: 新しいキー名の指定または既存の名前の変更を行います。これは、リソース・バンドルのロケール固有のオブジェクトを一意に識別するために使用される文字列値です。
このキー名には、リソースが属しているMDSレイヤーが自動的に接頭辞として付いています。この接頭辞は、実行時に作成されたキーと設計時に作成されたキーを区別する際に役に立ちます。
既存のキーに対して表示される「編集」アイコンと「新規キー/値」アイコン(図24-30)を使用すると、ユーザーは次のタスクを実行できます。
編集: 既存のリソース文字列のキー値を変更します。新しい値を持つ文字列は、オーバーライド・バンドルに保存されます。
新規キー/値: アプリケーション・オーバーライド・バンドルにキーと値のペアを作成します。
ユーザーが編集できるのは、同じMDSレイヤーで作成された文字列のみです。その他の文字列は、読取り専用として表示されます。
注意:
「テキスト・リソースの選択」ダイアログで値を直接入力してリソース・バンドルのデフォルトのコンテンツをオーバーライドしようとすると、この変更は有効にならず、空白ページが表示されます。
したがって、「テキスト・リソースの選択」ダイアログで値を直接入力するのではなく、新しいリソース文字列を作成することをお薦めします。
「表示値」フィールド: リソース文字列を指定してUIでの表示用に変換するかまたは既存の文字列を変更します。
「説明」フィールド: リソースの翻訳可能な説明を指定するかまたは既存の説明を変更します。
「作成」ボタン: 新しいリソース文字列を作成します。「作成」ボタンをクリックすると、検索結果表に、新しいリソースを作成するための入力フィールドを備えた新しい行が用意されます。ユーザーは、行の内側をダブルクリックし(図24-31)、「キー」、「表示値」および「説明」に値を指定してから「OK」をクリックして新しい文字列を作成できます。
ユーザーは、オーバーライド・バンドルに保存される非アクティブ文字列を作成できるのみです。最後の列の「使用」ボタンをクリックすると、現在のプロパティ値として文字列を使用することが選択されます。
「削除」ボタン: 選択したリソースを検索結果表から削除します。
「検索」フィールド: 既存のリソースを検索します。ユーザーは、同じレイヤー、異なるMDSレイヤーまたは設計時にJSPXファイルで定義および使用されたリソース・バンドルで作成された文字列を検索できます。
「リフレッシュ」: 検索結果表をリフレッシュします。
検索結果表: 検索結果を表示し、文字列を編集し、新しい文字列に値を指定します。
ユーザーは、同じレイヤーで作成された文字列を編集できます。設計時または別のMDSレイヤーで作成されたその他の文字列は、プロパティで使用できるだけで編集できません。
リンクまたはステータス・インジケータ・トグルは最後の列に表示され、ユーザーは文字列をアクティブにしたり、翻訳対象リソースにしたり、文字列をアクティブ・リソースとして指定できます(図24-32)。
注意:
設計時に作成されたリソース文字列を検索すると、コンポーザは、JSPXファイルでリソース文字列を指定するときに使用されるc:set
タグを検索します。
次の例は、JSPXページでComposerBundle
を定義する際に使用されるc:set
要素を示しています。
<c:set var="portalBundle" value="#{compBundle['test.resource.ComposerBundle']}"/>
注意
コンポーザは、実行時に約500のリソース文字列の作成をサポートします。この数を超えると、アプリケーションのパフォーマンスは低下します。
リソース文字列エディタの検索条件では、大文字と小文字が区別されます。
検索文字列の説明を検索するには、ユーザーは検索条件に完全な文字列値を指定する必要があります。
JDeveloperの「プロパティ・バンドル」形式または「リスト・リソース・バンドル」形式で作成されたエントリの文字列の説明は、リソース文字列エディタには表示されません。
リソース文字列を編集するオプションは、「パラメータ」タブと「イベント」タブのプロパティには無効です。
ADFリソースのEL値がページ・パラメータ、タスク・フロー・パラメータ、ポートレット・パラメータなどのページ定義パラメータで参照される場合、ELをバインドすると空の値が返されます。ユーザーは、ページ定義パラメータでADFリソースのEL値を参照しないようにする必要があります。
ユーザーは、ページで様々なオプションを使用してコンポーネントの表示と非表示を選択できます。ユーザーは、次の方法でコンポーネントを非表示または表示にできます。
注意:
動作の表示または非表示がコンポーネントのrendered
プロパティに関連付けられます。ユーザーがコンポーネントを非表示にする場合、rendered
プロパティはfalse
に設定されます(またはこの逆)。コンポーネントのrendered
属性がEL値の場合は、その値は表示または非表示オプションの使用時に失われます。値はtrue
またはfalse
に設定されます。
コンポーネントの「編集」アイコンをクリックします。「コンポーネント・プロパティ」ダイアログで、「コンポーネントの表示」チェック・ボックスを選択解除します(図24-33)。
「コンポーネントの表示」チェック・ボックスを選択解除して、ダイアログの「適用」または「OK」をクリックすると、ページにコンポーネントが再度レンダリングされます。
コンポーネントのコンテナで「編集」アイコンをクリックします。「コンポーネント・プロパティ」ダイアログの「子コンポーネント」タブで、コンポーネント名に対して表示されているチェック・ボックスを選択解除すると、コンポーネントが非表示になります。(図24-34)
図24-34 コンテナの「コンポーネント・プロパティ」ダイアログの「コンポーネントの非表示」リンク
ユーザーは、ページのヘッダーにある「削除」アイコンをクリックして、ページからコンポーネントを削除できます。
ユーザーは「削除」ダイアログで削除の確認を求められます。
注意:
コンポーネントに対してカスタマイズ制限を定義した場合、そのコンポーネントに対する「削除」アイコンは実行時に無効になります。詳細は、「タイプ・レベルのカスタマイズ・ポリシーの定義方法」を参照してください。
「レイアウトの変更」アイコンを使用すると、ユーザーは8つの事前定義されたレイアウトのセットからレイアウトを選択できます。デフォルトのページ・レイアウトはthreeColumn
です。
「構造」ビューで、ユーザーはLayout Customizable
コンポーネントを選択し、そのプロパティを表示できます。レイアウト・オプションは、「コンポーネント・プロパティ」ダイアログに表示されます。ユーザーは、任意の事前定義されたレイアウトを選択し、「適用」または「OK」をクリックできます。
注意:
ユーザーが事前定義されたレイアウト・オプションを使用できるのは、設計時にページにLayout Customizable
コンポーネントを追加した場合のみです。詳細は、「Layout Customizable」を参照してください。
アプリケーションにポートレットが含まれている場合、ユーザーは、ポートレットに必要な情報を表示させることも、ポートレットを非表示にすることも、ページから削除することもできます。編集モードでポートレットに加えた変更は、すべてのアプリケーション・ユーザーに表示されます。図24-35に、Web Clippingポートレットでユーザーが実行できるアクションを示します。「カスタマイズ」オプションは、ページ編集モードのポートレットにのみ表示されます。これは、そのポートレットがカスタマイズ可能ページに追加されている場合にのみ表示されます。
「ページ・プロパティ」ダイアログでは、ユーザーは、ページのパラメータの作成または編集およびプロパティの表示を実行できます。図24-36は、「ページ・プロパティ」ダイアログの「セキュリティ」タブを示しています。
「パラメータ」タブで、ユーザーは、コンポーネント・プロパティにリンク可能なページ・パラメータを作成し、ページ上のコンポーネントをページ・コンテキストに適応させることができます。たとえば、ページにSYMBOL
というパラメータがあり、このデフォルト値がORCL
であるとします。このページには、株式グラフ、株価および会社情報のタスク・フローが含まれているとします。これらのタスク・フローは、これらすべてのタスク・フローがSYMBOL
の値の変化に応答し、これに応じて更新されるようにページ・パラメータでリンクすることができます。
コンポーザを使用すると、ユーザーはポートレットやタスク・フローをページ・パラメータとリンクできます。これにより、それらのコンポーネントはページ・パラメータを読み取って、それに応じて動作を変更できるようになります。
ユーザーは、「コンポーネント・プロパティ」ダイアログを使用して、ポートレットとタスク・フロー・パラメータをページ・パラメータに関連付けられます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築』の「ページ、タスク・フロー、ポートレットおよびADFコンポーネントの作成」の章を参照してください。
コンポーネントとページ・パラメータの関連付けに加えて、コンポーザを使用すると、ユーザーは、表示オプションとパラメータの値をページURLを通じて渡すこともできます。詳細は、Oracle Fusion Middleware Oracle WebCenter Portalでのポータルの構築』のページURLによるパラメータ値の受渡しに関する項を参照してください。
「ページのリセット」アイコンは、編集モードのページで使用できます。このアイコンは、「ページのリセット」ダイアログを起動します。このダイアログでは、現在のレイヤーまたは最上位レイヤーでページに対して行われた編集を削除し、これを前に保存されたバージョンまたは元のデフォルトの状態にリセットするオプションを使用できます。
注意:
「ページのリセット」アイコンは、コンポーザのツールバーにレンダリングされるデフォルトのアドオンです。ユーザーにページをリセットさせたくない場合、このアイコンを無効にできます。詳細は、「アドオンを選択的に表示する方法」を参照してください。
特定のラベルへのロールバック
アプリケーションがデータベース・ストアを使用するように構成されている場合、ユーザーがアプリケーションのカスタマイズを保存するたびに新しいバージョンのページが生成されます。アプリケーションにサンドボックスが構成されている場合、SAVE_LABEL_%
規則を備えたラベルを作成することによって、コンポーザによってページを確実に次のようにリセットできます。
SAVE_LABEL_%
規則に従うラベル名が1つのみの場合、コンポーザは、そのラベルの状態にページをリセットします。
SAVE_LABEL_%
規則に従うラベル名がない場合、コンポーザは元のデフォルトの状態にページをリセットします。
SAVE_LABEL_%
規則に従うラベルが複数ある場合、コンポーザは、それらのうち最新のラベルの状態にページをリセットします。
特定のラベルにロールバックするには、サンドボックスを使用するようにアプリケーションを構成しておく必要があります。具体的には、カスタマイズされるページのネームスペースは、アプリケーションのadf-config.xml
ファイルの<metadata-namespaces>
セクションで定義する必要があります。詳細は、「コンポーザのサンドボックスの作成を有効にする方法」を参照してください。
特定のラベルにロールバックすることは、カスタマイズ・メタデータに対する依存性がアプリケーションにあり、ページを元の状態にリセットすると問題が発生する場合に便利です。
注意:
ユーザーは、ページで行われたアプリケーションのカスタマイズのみをリセットできます。ベース・ページまたは共有コンポーネントのページで定義されたコンポーネントはそのままになります。
ユーザーがページをリセットすると、実行時にページに追加されたコンポーネントは削除されます。ただし、ページでテンプレートを使用している場合、テンプレートにあるPanel Customizable
コンポーネント内に追加されたコンポーネントは削除されません。
例24-1は、SAVE_LABEL_
接頭辞を持つラベルを作成するサンプル・コードを示しています。
例24-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);
コンポーザは、ページの破損を引き起こすカスタマイズ・エラーをユーザーに警告するメカニズムを備えています。ユーザーは、次の方法でエラーに関する警告を受けます。
変更がMDSに保存される場合、「エラー」ダイアログ(図24-38)によって、ユーザーが現在のコンテキストで行った最後の変更のみまたはすべての変更をロールバックするオプションが提供されます。
変更がまだMDSに保存されていない場合、「エラー」ダイアログ(図24-39)は、エラーが発生し、ページが再ロードされることをユーザーに通知します。
次の操作を実行中に発生するエラーは、ページの破損を引き起こす場合があります。
切取りおよび貼付けオプション使用時の間違った位置へのコンポーネントの貼付け(表の列の表外への貼付けなど)。
コンポーネントまたはタスク・フローの追加(エラーが発生するWebサービスをコールするタスク・フローの追加など)。
ドラッグ・アンド・ドロップの方法を使用したページへのShow Detail Frame
コンポーネントの移動
ページ上のコンポーネントは、多数の子コンポーネントの親である場合があります。親コンポーネントのプロパティを表示すると、「コンポーネント・プロパティ」ダイアログの「子コンポーネント」タブに記載されたその親の子コンポーネントを検索できます。複数の子コンポーネントが同じタイプの場合、それらを子コンポーネントのリストで互いに区別できないことがあります。たとえば、panelGroupLayout
コンポーネントはそのlayout
属性の値を表示名として使用します(例: vertical
)。そのため、「構造」ビューでは図24-40
に示すように、複数のpanelGroupLayoutコンポーネントが子コンポーネントのリストですべて同じ名前になる場合があります。
図24-40 子コンポーネント名: 「構造」ビューおよび「コンポーネント・プロパティ」ダイアログ
特定の子コンポーネントを特定して操作する必要がある場合、ページのソース・コードを編集して任意のコンポーネントに一意の表示名を指定し、容易に識別できるようにすることが可能です。この表示名は、ヒント・テキストと「コンポーネント・プロパティ」ダイアログに表示されます。この機能を実装するカスタム属性は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>
図24-41に、親panelCustomizable (Box)コンポーネントに対する「コンポーネント・プロパティ」ダイアログの「子コンポーネント」
タブを示します。子の親コンポーネントには4つのpanelCustomizable
(Box)子コンポーネントが含まれます。
この表示名Box
は親コンポーネントと4つの子コンポーネントに使用され、それらを識別することはできません。
図24-41 composer_name_hintを定義していないコンポーネント: 「構造」ビューと「コンポーネント・プロパティ」ダイアログ
これらのコンポーネントの表示名をカスタマイズするために、ソース・コードを編集してcomposer_name_hint
属性を各コンポーネントに追加できます。composer_name_hint
値は、次の場所で公開されています。
「構造」ビューでは、composer_name_hint
値がコンポーネントのヒント・テキストとして表示されます(図24-42)。
図24-42 composer_name_hintが定義されたコンポーネント: 「構造」ビューのヒント・テキスト
「選択」ビューで選択したコンポーネントを右クリックすると、コンポーネントやその親コンポーネントのcomposer_name_hint
値を示すコンテキスト・メニューが表示されます(図24-43)。
図24-43 composer_name_hintが定義されたコンポーネント: 「選択」ビューのヒント・テキスト
コンポーネントの「コンポーネント・プロパティ」ダイアログには、タイトルにcomposer_name_hint
値が含まれます(図24-44)。
親コンポーネントの「コンポーネント・プロパティ」ダイアログでは、「子コンポーネント」タブにcomposer_name_hint
値を表示名として使用する各子コンポーネントの一覧が示されます(図24-44)。
図24-44 <f:attribute>が定義されたコンポーネント: 「コンポーネント・プロパティ」ダイアログ
図24-44
に示された親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>
図24-45に示す、コンポーザのツールバーの「保存してラベル付け」ボタンを使用すると、ユーザーは、アプリケーションのカスタマイズを新しいラベルに保存できます。コンポーザで作成されたラベルはcomposer_
の接頭辞を付けて格納されます。つまり、myLabel
という名前で作成されたラベルはcomposer_myLabel
として格納されます。
ラベルを作成すると、ユーザーは、選択したオブジェクトのカスタマイズを選択したラベルのカスタマイズにリセットできます。これは、「カスタマイズ・マネージャ」の「プロモート」リンクを使用して実現できます。詳細は、「カスタマイズ・メタデータのプロモート」というタイトルの項を参照してください。
注意:
「保存してラベル付け」ボタンが表示されるのは、サンドボックスをアプリケーションのMDSデータベース・ストアで構成し、Page Customizable
コンポーネントのallowLabel
属性をtrue
に設定した場合のみです。この属性の詳細は、「Page Customizableコンポーネント」を参照してください。
「カスタマイズ・マネージャ」はコンポーザのアドオン・パネルです。ユーザーは、このパネルでXMLドキュメント、ページ、ページ・フラグメント、ページのタスク・フローなどのオブジェクトのカスタマイズ・メタデータを管理できます。これは、このようなすべてのオブジェクトのリストをページに表示し、これらのオブジェクトがカスタマイズされるレイヤーに関する詳細を提供します。ユーザーは、選択したオブジェクトのカスタマイズ・メタデータをダウンロードし、これを編集し、修正したメタデータ・ファイルをアップロードできます。また、「カスタマイズ・マネージャ」は、カスタマイズを削除したり、前に保存したラベルからのカスタマイズをプロモートしたりするオプションも提供します。
カスタマイズ・マネージャは、デフォルトではカスタム・アプリケーションで使用できません。特定の構成を実行することにより有効にできます。詳細は、「カスタマイズ・マネージャのアドオンの表示方法」を参照してください。カスタマイズ・マネージャ・アドオンを表示するようにアプリケーションを構成すると、図24-46に示すように、コンポーザのツールバーに「カスタマイズ・マネージャ」アイコンが表示されます。
「カスタマイズ・マネージャ」ボタンをクリックすると、図24-47に示すように、「カスタマイズ・マネージャ」ダイアログが起動します。
「カスタマイズ・マネージャ」は、各レイヤーのカスタマイズされたページ、フラグメントまたはXMLドキュメントそれぞれに対して、「削除」、「プロモート」、「ダウンロード」および「アップロード」のリンクを表示します。ユーザーは、検索フィールドでJSPX、JSFFまたはXMLのファイル名を指定し、そのファイルのオブジェクトのカスタマイズの詳細を表示し、そのカスタマイズを管理できます。ファイルを検索するには、ファイルへの絶対パス(/oracle/webcenter/portalapp/pages/home.jspx
など)を指定する必要があります。
注意:
深くネストされたタスク・フローまたは循環依存性を持つタスク・フローの場合、「カスタマイズ・マネージャ」は、最大で深度10のタスク・フローを表示します。
ユーザーは、アプリケーションが実行されている現在のMDSコンテキストでカスタマイズを管理できます。「現在のコンテキスト」列には、選択したレイヤーのカスタマイズを管理するオプションが表示されます。ドロップダウン・メニューには、ページまたはフラグメントがカスタマイズされたレイヤーがリストされます。この列は、行ったカスタマイズを管理するすべてのユーザーにとって便利です。「すべてのレイヤー」列には、アプリケーションのすべてのレイヤーのカスタマイズを管理するオプションが表示されます。この列は、すべてのレイヤーで行われたカスタマイズを管理する管理者にとって便利です。
注意:
アプリケーションのサンドボックスを構成し、すべての「カスタマイズ・マネージャ」操作をサンドボックスで実行する場合(ユーザーがカスタマイズ・ドキュメントをアップロードする場合など)、これは、ユーザーがそのセッションで行われた変更を保存または破棄するまで、サンドボックスに格納されます。
選択したオプションを表示するためにのみ「カスタマイズ・マネージャ」をカスタマイズできます。たとえば、「ダウンロード」、「削除」または「アップロード」のリンクを表示または非表示にできます。さらに、現在のコンテキストの詳細のみまたはすべてのレイヤーの詳細を表示することを選択できます。
これらの設定は、カスタマイズ・マネージャ・タスク・フローのパラメータを使用して行えます。タスク・フローでパラメータ・サポートを有効にすることによって、ユーザーが実行時に「カスタマイズ・マネージャ」をカスタマイズできるようにすることも可能です。詳細は、「プロパティ・フィルタの定義」を参照してください。
この項では、「カスタマイズ・マネージャ」によって提供される機能について説明します。次のサブセクションが含まれます:
カスタマイズ・メタデータのダウンロード
「ダウンロード」リンクでは、ユーザーは、選択したページ、フラグメントまたはXMLドキュメントのカスタマイズ・ドキュメントを選択したレイヤーからダウンロードできます。これは、ユーザーがコンポーネントのカスタマイズ・メタデータを編集する場合やカスタマイズ・メタデータを調査する場合に便利です。たとえば、ページにエラーが表示されている場合、ユーザーはカスタマイズをダウンロードして確認し、必要に応じてこれをOracleサポート・サービスに送信できます。こうすることによって、ページのカスタマイズの問題の診断に役立ちます。
「保存」ダイアログを使用すると、ユーザーは、ドキュメントを保存する場所を選択できます。ユーザーは、このファイルをローカルで編集し、これをサイトに再アップロードできます。ファイルのアップロードの詳細は、「カスタマイズ・メタデータのアップロード」を参照してください。
カスタマイズされるすべてのオブジェクトのカスタマイズ・メタデータのダウンロード
ページの下部にある「すべてのレイヤーに対するカスタマイズのダウンロード」リンクを使用すると、ユーザーは、「カスタマイズ・マネージャ」に表示されるすべてのカスタマイズ・ドキュメントを含むZIPファイルをダウンロードできます。
カスタマイズ・メタデータのアップロード
「アップロード」リンクを使用すると、ユーザーは、選択したアーティファクト(ページ、フラグメント、XMLドキュメントなど)のカスタマイズ・ドキュメントを特定のレイヤーにアップロードできます。図24-48は、ユーザーがアップロードするファイルを選択できる「カスタマイズのアップロード」ダイアログを示しています。
アーティファクトは、アップロードしたドキュメントのメタデータに基づいてカスタマイズされます。
注意:
ページのForm
タグのusesUpload
属性は、「カスタマイズ・マネージャ」の「アップロード」リンクの表示を制御します。usesUpload
をfalse
に設定すると、「アップロード」リンクは動作しません。
カスタマイズ・メタデータの削除
「削除」リンクを使用すると、ユーザーは、選択したアーティファクトのカスタマイズ・ドキュメントを特定のレイヤーから削除できます。
カスタマイズ・メタデータのプロモート
ページをカスタマイズしている間、ユーザーは、任意の時点でアプリケーションのカスタマイズを保存し、新しいラベルを作成してそのカスタマイズを保存できます。「カスタマイズ・マネージャ」の「プロモート」リンクを使用すると、ユーザーは、ラベルを選択し、選択したページまたはタスク・フローのアプリケーションのカスタマイズをラベルのカスタマイズにリセットできます。
注意:
「プロモート」オプションが使用可能なのは、サンドボックス対応のアプリケーションのみです。
コンポーザの「保存してラベル付け」オプションの詳細は、「アプリケーションのカスタマイズ保存時のラベルの作成」を参照してください。
「プロモート」リンクは、図24-49に示すように、プロモートされるすべての使用可能なラベルおよびファイルをリストする「ドキュメントのプロモート」ダイアログを起動します。
ユーザーは、ラベルを選択し、そのラベルを選択したアーティファクトのサンドボックスにプロモートできます。つまり、選択したアーティファクトのアプリケーションのカスタマイズは、指定したラベルのカスタマイズにリセットされます。タスク・フローを選択した場合、すべてのページ・フラグメントおよびページ定義がプロモートされます。ページまたはフラグメントを選択した場合、ページまたはフラグメントおよびそのページ定義がプロモートされます。ユーザーは、使用可能な任意のレイヤーからラベルを選択し、そのラベルのカスタマイズをプロモートできます。たとえば、アプリケーションにレイヤーMCOOPER、JDOEおよびSITEがあり、MCOOPERレイヤーで作業しているユーザーがページの「プロモート」リンクをクリックすると、「プロモート」ダイアログに3つすべてのレイヤーで使用可能なすべてのラベルがリストされます。
「構造」ビュー(図24-50)は、コンポーネント・ナビゲータのページ・コンポーネントをWYSIWYGおよび階層式にレンダリングします。「コンテンツの追加」、「切替え」、「削除」、「切取り」および「貼付け」の各コントロールを「構造」ビューのツールバーで使用でき、これらによりコンポーザで特定の操作が実行されます。「構造」ビューでは、ユーザーは「デザイン」ビューまたは「コンテンツの追加」ビューでは選択できないコンポーネントのプロパティにアクセスし、プロパティを変更できます。たとえば、多くのADF Facesコンポーネントは「構造」ビューでのみ編集できます。ユーザーは、タスク・フロー内のコンポーネントも編集できます。
デフォルトでは、コンポーネント・ナビゲータはコンポーザ内でページの右側に表示されます。「ドッキング」メニューを使用して、上、下または左側の表示を選択できます(図24-51)。ユーザーは、コンポーネント・ナビゲータのエッジの境界をドラッグして、その高さまたは幅を変更できます。
コンポーネント・ナビゲーションのルートには、設計時のPage Customizable
コンポーネントの直接の子があります。ノードがコンポーネント・ナビゲーションで選択されると、対応するコンポーネントがページで選択されます。同様に、コンポーネントがページで直接選択されると、対応するノードがコンポーネント・ナビゲータで選択されます。
ページの下部にあるグレーの領域には、選択したコンポーネントのブレッドクラム・トレイルが表示されます(図24-52)。ブレッドクラム・トレイルは、ページでコンポーネントがどのようにネストされているかを示します。コンポーネントが選択されていないと、ブレッドクラム・バーはページ名のみを表示します。コンテナ名は、クリックすると選択したコンポーネントを強調表示するリンクです。
編集可能なタスク・フローには、タスク・フローの横に「タスク・フローの編集」リンクがあります。「タスク・フローの編集」リンクをクリックすると、コンポーネント・ナビゲータにタスク・フローのページまたはフラグメント内のコンポーネントの階層が表示されます。ユーザーは、このページまたはフラグメントを編集し、タスク・フローをズーム・アウトするために「閉じる」をクリックできます。詳細は、「タスク・フロー内のコンテンツの編集」を参照してください。同様に、宣言型コンポーネントには「開く」リンクが表示されます。このリンクを使用すると、ユーザーは選択した宣言型コンポーネントのファセット内でコンポーネントを編集できます。
「デザイン」ビューおよび「コンテンツの追加」ビューと同様に、「構造」ビューでもユーザーは、コンポーネントの追加、ページおよびコンポーネントのプロパティの編集、ページ・レイアウトの変更、コンポーネントの削除などのタスクを実行できます。ユーザーは、ページまたはコンポーネント・ナビゲータでコンポーネントを選択し、「構造」ビューのツールバーでボタンをクリックしてこれらのタスクを実行できます。コンポーネントを編集または削除するために、ユーザーは、コンポーネントのコンテキスト・メニューにあるオプションを選択することもできます。これらのタスクに加えて、ユーザーは、ページの「構造」ビューで次のタスクを実行できます。
注意:
「保存」ボタンは、アプリケーションがサンドボックスを使用するように構成されている場合にのみコンポーザのツールバーに表示されます。サンドボックスの詳細は、「コンポーザのサンドボックスの使用」を参照してください。
アプリケーションを保護し、コンポーネントにカスタマイズ制限を適用することによって、ユーザーがこれらのタスクのすべてまたは一部を実行できないように制限することができます。詳細は、「セキュリティおよびコンポーザ」を参照してください。
ユーザーは、「構造」ビューのツールバーで「切取り」オプションおよび「貼付け」オプションを使用して、ページのコンポーネントを再配置できます(図24-53)。「貼付け」メニューを使用すると、ユーザーは、コンポーネント・ナビゲーションでコンポーネントを他の任意のコンポーネントの中、前または後ろに貼り付けることができます。
「切取り」ボタンおよび「貼付け」ボタンは、ユーザーが切取りまたは貼付けの操作をサポートしていないコンポーネントを選択した場合にはグレー表示されます。切取りおよび貼付けの操作は、次の条件ではサポートされません。
表24-1 切り取り操作と貼り付け操作をサポートしているコンポーネント
|
ターゲット・コンポーネントが切り取ったコンポーネントと同じページにない場合。
ターゲット・コンポーネントが切り取ったコンポーネント内部にネストされている場合。
ターゲット・コンポーネントがファセットされたコンポーネント(つまり、ファセット内部のコンポーネント)の前または後ろにある場合。
ターゲット・コンポーネントの親がカスタマイズ可能でない場合。
切り取ったコンポーネントの親がカスタマイズ可能でない場合。
注意:
カスタマイズが制限されているコンポーネントは、その親がカスタマイズ可能である場合、その親コンテナ内で再配置できます。
例
カスタマイズ可能ページにADF Faces Table
コンポーネントが含まれている場合、コンポーザの「構造」ビューで、ユーザーは表および列グループ内またはこれらの間で列を順序変更または移動できます。コンピュータのアクセサリを販売するために作成したサンプル・アプリケーションについて考えてみます。このアプリケーションのホーム・ページには、ソフトウェアおよびハードウェアの販売に関する詳細を含む2つの表があります。ハードウェア・オプションの表には3つの列があります。ハード・ディスクの列には、図24-54に示すように、列グループ内に磁気ディスクおよび半導体の列があります。
ユーザーは、「構造」ビューに切り替えて、ハード・ディスク列内で磁気ディスクと半導体の列を順序変更したり、これらを列グループ外に移動して他の任意の列(ワイヤレスの列など)の隣に貼り付けることができます。
ユーザーは、列を選択し、「切取り」をクリックしてから別の列を選択し、「前に貼付け」または「後に貼付け」をクリックできます。
Oracle ADFタスク・フローは、1つ以上のビューから構成され、タスク・フローの各ビューはページまたはページ・フラグメントと関連付けられています。タスク・フローをページに追加すると、現在のビューに関連付けられたフラグメントのコンテンツがページに表示されます。コンポーザにより、ユーザーは、タスク・フローの現在のビューで使用されるページまたはフラグメントのコンポーネントを編集できます。タスク・フローのページまたはフラグメントに対して変更が行われるため、変更は、タスク・フローのページまたはフラグメントが使用されるすべての場所に反映されます。
「構造」ビューには、タスク・フローを開き、コンポーネント・ナビゲータでそのページまたはフラグメントにあるコンポーネントのみを表示するオプションが用意されています。ユーザーは、ページまたはフラグメントを編集し、タスク・フローを閉じて、そのタスク・フローを含むページにナビゲートして戻ることができます。
タスク・フローのカスタマイズ権限を持つユーザーは、そのページまたはフラグメントを編集できます。
コンポーネント・ナビゲータの各タスク・フローは、図24-55に示すように、その隣に「タスク・フローの編集」リンクを表示します。
「タスク・フローの編集」リンクをクリックすると、「構造」ビューがズーム・インし、タスク・フローのページとそのコンポーネントが表示されます(図24-56)。
ユーザーは、タスク・フローのページでコンポーネントを選択して、他のページのコンポーネントの編集と同様にコンポーザでこれを編集できます。ただし、コンポーザは、あるタスク・フローから別のタスク・フローへのコンポーネントの移動をサポートしていません。
複数のユーザーが同時に同じタスク・フローを編集しようとすると、それぞれのユーザーに互いに注意するよう警告する並行性警告がコンポーザに表示されます。ただし、この警告は、サンドボックスがアプリケーションで構成されている場合のみ表示されます。このような場合の変更の保存方法の詳細は、「並行編集時の処理」を参照してください。
開いているタスク・フローの隣の「閉じる」リンクをクリックすると、コンポーネント・ナビゲータは、このタスク・フローを含むページを表示します。
「構造」ビューのツールバーにある「タスク・フローのリセット」ボタン(図24-57)は、タスク・フローに対して行われたアプリケーションのカスタマイズを削除し、これを前に保存されたバージョンまたは元のデフォルトの状態にリセットするオプションを提供する「タスク・フローのリセット」ダイアログを起動します。タスク・フローを前に保存されたラベルの状態に確実にリセットできるのは、アプリケーションがデータベース・ストアを使用するように構成されている場合のみです。「タスク・フローのリセット」ボタンは、タスク・フローへのズーム・イン時にのみレンダリングされます。
注意:
アプリケーションで「ページのリセット」ボタンを無効にすると、「タスク・フローのリセット」ボタンも無効になります。ユーザーは、変更を行った後にはタスク・フローをリセットできません。詳細は、「ページのリセット」を参照してください。
特定のラベルへのロールバック
アプリケーションがデータベース・ストアを使用するように構成されている場合、ユーザーがアプリケーションのカスタマイズを保存するたびに新しいバージョンのタスク・フローが生成されます。アプリケーションにサンドボックスが構成されている場合、SAVED_LABEL_%
規則に従ったラベルを作成することで、次に示すように、コンポーザによってタスク・フローを確実にリセットできます。
SAVED_LABEL_%
規則に従うラベル名が1つのみの場合、コンポーザは、そのラベルの状態にタスク・フローをリセットします。
SAVED_LABEL_%
規則に従うラベル名がない場合、コンポーザは元のデフォルトの状態にタスク・フローをリセットします。
SAVED_LABEL_%
規則に従うラベルが複数ある場合、コンポーザは、それらのうち最新のラベルの状態にタスク・フローをリセットします。
特定のラベルにロールバックするには、サンドボックスを使用するようにアプリケーションを構成しておく必要があります。具体的には、カスタマイズされるタスク・フローのネームスペースは、アプリケーションのadf-config.xml
ファイルの<metadata-namespaces>
セクションで定義する必要があります。詳細は、「コンポーザのサンドボックスの作成を有効にする方法」を参照してください。
特定のラベルにロールバックすることは、カスタマイズ・メタデータに対する依存性がアプリケーションにあり、タスク・フローを元の状態にリセットすると問題が発生する場合に便利です。
ユーザーがタスク・フローをリセットすると、次の変更が発生します。
現在選択されているフラグメントのみがリセットされます。タスク・フローのその他のフラグメントはリセットされません。
ネストされたタスク・フローはリセット操作によって影響を受けません。
タスク・フローがリセットされると、変更は、このタスク・フローを使用するすべてのページに反映されます。
実行時にタスク・フローに追加されたコンポーネントは削除されます。ただし、タスク・フローのページまたはフラグメントでテンプレートを使用している場合、テンプレートにあるPanel Customizable
コンポーネント内に追加されたコンポーネントは削除されません。
例24-2は、SAVE_LABEL_
接頭辞を持つラベルを作成するサンプル・コードを示しています。
例24-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);
アプリケーション・ページに宣言型コンポーネントが含まれている場合、ユーザーは、これらのコンポーネントをコンポーザで編集できます。宣言型コンポーネントの編集は、タスク・フローの編集と似ています。詳細は、「タスク・フロー内のコンテンツの編集」を参照してください。
図24-58および図24-59に、宣言コンポーネントで使用可能な「コンポーネントの編集」および「閉じる」オプションを示します。
コンポーネントを非表示にするには、コンポーネント・ナビゲータまたはページでコンポーネントを右クリックし、コンテキスト・メニューで「コンポーネントの非表示」を選択します(図24-60)。
非表示のコンポーネントはページに表示されませんが、コンポーネント・ナビゲータにはグレー表示されます。非表示のコンポーネントのコンテキスト・メニューには「コンポーネントの表示」オプションが表示されます。このオプションを選択すると、ページにコンポーネントが再レンダリングされます。
注意:
動作の表示または非表示がコンポーネントのrendered
プロパティに関連付けられます。ユーザーがコンポーネントを非表示にする場合、rendered
プロパティはfalse
に設定されます(またはこの逆)。コンポーネントのrendered
属性がEL値の場合は、その値は表示または非表示オプションの使用時に失われます。値はtrue
またはfalse
に設定されます。
実行時にJSPXドキュメント(*.jspx
)を編集できるようにするには、アプリケーション設計時にOracle JDeveloperで、ページにコンポーザ・コンポーネントを追加する必要があります。
注意:
コンポーザは、JSPXページおよびADF Facesでのみ動作します。これらのコンポーネントはJSPページには追加できません。コンポーザ・コンポーネントのページへの追加の詳細は、「コンポーザ・コンポーネントを使用した編集可能ページの設計」を参照してください。
JDeveloperのコンポーザ・タグ・ライブラリ(図24-61)は、「コンポーネント・パレット」から使用でき、ページを編集可能にするために追加できるコンポーネントを提供します。
この項では、ページの編集を可能にするために使用されるコンポーザ・コンポーネントの概要について説明します。次のサブセクションが含まれます:
Page Customizable
コンポーネントは、ページの編集可能領域を定義します。この領域内では、コンポーネントのプロパティの編集、ページへのコンテンツの追加、コンテンツの配置などを行えます。
Page Customizable
コンポーネントを追加すると、実行時にコンポーザをページに含めることが可能になります。ユーザーは、ページの上部で使用できるページ関連の制御、コンポーネントの「コンテンツの追加」ボタンおよび各編集可能ページ・コンポーネントの「編集」アイコンを使用して、コンポーザでページを編集できます(図24-62)。
1操作で複数のアプリケーション・ページの実行時編集を可能にするには、Page Customizable
コンポーネントをそれらのページに使用するADFページ・テンプレートに追加します。これにより、Page Customizable
を各ページに手動で追加する必要がなくなります。Page Customizable
コンポーネントの追加の詳細は、「Page Customizableコンポーネントを使用した実行時カスタマイズの有効化方法」を参照してください。
Change Mode Link
またはChange Mode Button
コンポーネントは、ページの表示モードから編集モードへの簡単な切替え方法を提供します。図24-63は、ページのChange Mode Link
コンポーネントを示しています。
Change Mode Link
またはChange Mode Button
の使用の詳細は、「Change Mode LinkまたはChange Mode Buttonを使用したページ・モードの切替えを有効にする方法」を参照してください。
Panel Customizable
は、ユーザーが実行時にコンポーネントを追加できるページの領域を定義します。ユーザーは、Panel Customizable
の子コンポーネントとして追加されるShow Detail Frame
コンポーネントまたはポートレットを移動または最小化できます。ユーザーは、ページの別のPanel Customizable
コンポーネントにこれらのコンポーネントをドラッグ・アンド・ドロップすることも可能です。
編集モードでは、Panel Customizable
コンポーネントは、点線のボックスとしてレンダリングされます。実際、Panel Customizable
は、実行時リソース・カタログではBox
と呼ばれます。図24-64に示すように、ページの各Panel
Customizable
コンポーネントに「コンテンツの追加」ボタンが表示されます。このボタンを使用してリソース・カタログ・ビューアを開き、Panel Customizable
内にコンポーネントを追加できます。
詳細は、「Panel Customizableコンポーネントを使用したページの編集可能領域の定義方法」を参照してください。
Show Detail Frame
コンポーネントは、アイコンを含むヘッダーとともに子コンポーネントの周りに境界またはクロムをレンダリングし、ユーザーがいくつかの操作を実行できるようにします。このメニューで使用可能なアクションでは、ユーザーがコンポーネントおよびそのコンテンツをページの新しい場所に移動できます(図24-65)。ユーザーは、Show Detail Frame
コンポーネントをあるPanel Customizable
コンポーネントからページにある別のPanel Customizableコンポーネントにドラッグ・アンド・ドロップすることも可能です。Show Detail Frame
は、移動可能にするためにはPanel Customizable
コンポーネント内に含まれている必要があります。
Show Detail Frame
コンポーネントは次のアクションを可能にします。
コンポーネントを縮小および展開します。
コンテンツをページの別の位置に移動します。
タスク・フローを子コンポーネントとして追加した場合、「アクション」メニューを使用してカスタム・アクションとともにタスク・フロー・ナビゲーションを有効にします。
ADF Facesの「リッチ・テキスト・エディタ」
を子コンポーネントとして追加した場合、エンド・ユーザーは、「リッチ・テキスト・エディタ」
のテキストを編集および保存できるようになります。
Show Detail Frame
のファセットを使用すると、独自のUIコントロールを追加してコンテンツの表示をさらにカスタマイズできます。これらのファセットの使用方法の詳細は、「ファセットを使用したShow Detail Frameコンポーネントへのカスタム・アクションの追加」を参照してください。
このコンポーネントのページへの追加の詳細は、「Show Detail Frameコンポーネントを使用したコンポーネントのカスタマイズの有効化方法」を参照してください。
Layout Customizable
コンポーネントは、エンド・ユーザーがその子コンポーネントをいくつかの事前定義された方法(2列、3列など)でレイアウトできるコンテナです。ページのすべてのコンポーネントがLayout Customizable
コンポーネントに囲まれるような方法でページを設計できます。このような場合、レイアウトはページ全体に適用されます。
レイアウト変更を使用して事前定義されたレイアウトにアクセスします。デフォルトでは、レイアウト変更は、ページの表示モードとページの編集モードの両方で表示されます。Layout Customizable
コンポーネント属性を使用することによって、レイアウト変更をアイコン、テキストまたはアイコンおよびテキストとして表示することを選択できます。また、表示モードでレイアウト変更を表示するか非表示にするかを決定できます。図24-66は、ユーザーがレイアウト変更をクリックしたときに表示するLayout Customizable
コンポーネントおよび事前定義されたレイアウトを示しています。
詳細は、「Layout Customizableコンポーネントを使用したページのレイアウトのカスタマイズの有効化方法」を参照してください。
エンド・ユーザー、アプリケーション開発者および管理者によってアクセスされるアプリケーションでは、すべての編集タスクの実行をすべてのユーザーに許可することは推奨されない場合があります。たとえば、コンポーネントの再配置や表示したくない領域の非表示などのタスクを実行することによってページの表示をカスタマイズすることのみをエンド・ユーザーに許可する必要がある場合があります。一方、アプリケーション開発者は、ページのコンテンツ、コンポーネント・プロパティなどを更新することを許可される必要があります。ページ、コンポーネントまたはコンポーネント属性をカスタマイズする機能は、タグ、ページ、コンポーネントおよび属性のレベルでセキュリティ定義から継承されます。ただし、ビジネス要件に合せてデフォルトのセキュリティ定義を様々なレベルでオーバーライドできます。
ページ、操作、コンポーネント、コンポーネント属性などの様々なレベルでアプリケーション・セキュリティを定義できます。コンポーネントでアプリケーション・カスタマイズを制限できるいくつかの方法があります。コンポーザは、これらのルールに従ってコンポーネントのカスタマイズが可能かどうかを判断します。たとえば、ユーザーがコンポーネントをカスタマイズするには、その前に、アプリケーション・カスタマイズが許可されるかどうかを判断するために、コンポーネントのセキュリティ制限のソースを問い合せます。コンポーネントがアプリケーション・カスタマイズを許可しない場合、コンポーザはこれが制限されているとみなします。つまり、コンポーザはコンポーネントを明示的にセキュリティ保護されているものとして処理します。表24-2に、アプリケーションのカスタマイズ制限を反映するコンポーザの動作を示します。
表24-2 コンポーザ・コンポーネントのカスタマイズ制限
|
セキュリティを実装中に付与される権限に応じて、ユーザーは、アプリケーションにログインするときに、異なるユーザーおよびアプリケーションのカスタマイズのタスクを実行できます。
注意:
保護されたアプリケーションでは、すべてのユーザーの権限を確認し、権限のあるユーザーに対してのみページ上で「編集」リンクまたはボタンを有効にすることをお薦めします。認証されていないユーザーが偶然ページの編集モードに入った場合でも、コンポーネント・プロパティの変更が可能です。
選択したユーザーの「編集」リンクまたはボタンを有効にするには、Change Mode Link
またはChange Mode Button
コンポーネントのrendered
属性のEL値を指定します。詳細は、「Change Mode LinkおよびChange Mode Button」を参照してください。
この項では、コンポーザ・コンポーネントのデフォルトのセキュリティ動作について説明します。次のサブセクションが含まれます:
デフォルトのセキュリティ動作のオーバーライドの詳細は、「コンポーザ・コンポーネントのデフォルトのセキュリティ動作の変更」を参照してください。
アプリケーションのjazn-data.xml
ファイルは、ページ・レベルおよびタスク・フロー・レベルのセキュリティ情報のリポジトリです。コンポーザは、このファイルを参照して、ユーザーの権限に基づいて編集機能を有効にします。
ページまたはタスク・フローのパーソナライズ権限を持っているユーザーは、「ページ表示モードでのカスタマイズ機能」で説明しているユーザーのカスタマイズのみを実行できます。
編集権限またはカスタマイズ権限を持っているユーザーは、コンテンツの追加、コンポーネント・プロパティの編集、コンポーネントの削除などのすべての実行時編集タスクを実行できます。コンポーザおよびOracle WebCenter Portalのカスタマイズ可能コンポーネントは、編集権限とカスタマイズ権限を区別しません。
注意:
コンポーザおよびOracle WebCenter Portalのカスタマイズ可能コンポーネントは、付与権限をすべての権限のスーパー・セットとする権限のカスケードをサポートしています。ページまたはタスク・フローの付与権限を持つユーザーは、編集、パーソナライズおよび表示の権限を持っているとみなされます。パーソナライズ権限を持つユーザーは、表示権限も持っているとみなされます。
表24-3では、ページ・レベルの権限およびタスク・フロー・レベルの権限に基づいたコンポーザの動作について説明しています。コンポーザおよびOracle WebCenter Portalのカスタマイズ可能コンポーネントと関係のある権限のみがこの表にリストされています。付与権限は、すべての権限のスーパー・セットであるためリストされていません。付与権限を持つユーザーは、すべての編集タスクを実行できます。
表24-3 ページ権限またはタスク・フロー権限とコンポーザの動作のマッピング
権限 | コンポーザの動作 |
---|---|
編集またはカスタマイズ |
ユーザーは、コンポーザが起動されるページの編集モードに切り替えてページを編集できます。 編集権限またはカスタマイズ権限のいずれかを持つユーザーは、すべての実行時編集タスクを実行できます。 ページまたはタスク・フローの編集権限またはカスタマイズ権限を持っている場合、ユーザーは次のことを実行できます。
注意: ページ・レベルの権限を持っているかまたはタスク・フロー・レベルの権限の持っているかに応じて、これらのタスクのすべてまたは一部を実行できます。 ユーザーがページの編集権限またはカスタマイズ権限を持っていないのにこれを編集しようとすると、これを行う権限がないことを示すメッセージが表示されます。 ユーザーがタスク・フローの編集権限またはカスタマイズ権限を持っていない場合、「構造」ビューにタスク・フローの「編集」オプションが表示されません。 |
パーソナライズ |
表示モードで、ページのパーソナライズ権限を持っているユーザーは次のことを実行できます。
注意: パーソナライズ権限を持っていても、ユーザーはポートレットのカスタマイズは実行できません。 パーソナライズ権限、編集権限、カスタマイズ権限のいずれも持っていないユーザーがページを編集しようとすると、これを行う権限がないことを示すメッセージが表示されます。 |
表示 |
表示権限を持っているユーザーは、ページまたはタスク・フローの表示のみを行え、ユーザーまたはアプリケーションのカスタマイズは実行できません。 |
タスク・フローをカスタマイズ可能ページに追加すると、コンポーザは、タスク・フローおよびタスク・フローのページのコンポーネントを編集するオプションを提供します。保護されたアプリケーションでは、コンポーザは、カスタマイズ可能なページおよびタスク・フローにプロビジョニングされた権限に基づいて、編集機能を提供します。タスク・フロー権限およびコンポーザの動作の詳細は、表24-3を参照してください。
アプリケーション・ページで、コンポーネントは、JSPXページに直接またはタスク・フローなどの共有コンポーネント内のページ・フラグメントに配置できます。タスク・フロー内のコンポーネントに対する制限は、ページ・フラグメントから導出されます。タスク・フローのセキュリティについて理解を深めるには、図24-67に示すような、タスク・フローを含むページで、このタスク・フローが別のタスク・フローを含む例を検討します。
このページのコンポーネントは次のようにセキュリティを継承します。
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
によって定義されます。この権限クラスは、タスク・フローの操作にマップされる、タスク・フロー固有のアクションを定義します。デフォルトでは、表示権限のみがタスク・フローに与えられます。ユーザーが実行時にタスク・フローを編集できるようにするには、カスタマイズ権限がタスク・フローに付与されていることを確認する必要があります。詳細は、「タスク・フローの追加に関する考慮事項」および「タスク・フローのセキュリティの実装」を参照してください。
タスク・フローとそのセキュリティ動作の詳細は、『Oracle Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のADFタスク・フローの作成に関する項を参照してください。
Portal Frameworkアプリケーションには、すべてのアプリケーション・オブジェクトのアプリケーションのカスタマイズを制限するデフォルトのMDS構成があります。実行時のページ編集を有効にするには、Page Customizable
コンポーネントをページに追加して、このデフォルトの制限を非アクティブにする必要があります。Page Customizable
コンポーネントは、その下にあるすべてのコンポーネントのアプリケーションのカスタマイズを有効にします。ただし、ネストされたページまたはフラグメントのコンポーネントのカスタマイズは有効になりません。たとえば、Page Customizable
がページ・テンプレートで使用されていて、その内部にFacet Ref
がある場合、Facet Ref
内部のコンポーネントのカスタマイズはデフォルトで有効になりません。
MDSのタイプ・レベルの制限またはインスタンス・レベルの制限を使用して、コンポーネントの一連の属性に対するアプリケーションのカスタマイズを有効化できます。タイプ・レベルの制限は、インスタンス全体の指定されたコンポーネント・タイプに適用できます。実行時、カスタマイズを有効化した属性は、コンポーザで編集可能プロパティとして表示され、制限された属性は、選択したコンポーネントの「コンポーネント・プロパティ」ダイアログに表示されません。詳細は、「カスタマイズ・ポリシーの定義によるコンポーネント・レベルの制限の適用」を参照してください。
カスタマイズ・ポリシーの問合せ
特定のタイプまたはオブジェクト・インスタンスについては、現在のMDSSession
に設定されたポリシー値に基づいて実施中のカスタマイズ・ポリシーを問合せできるようになります。
オブジェクトがカスタマイズ可能かどうかをチェックするために、次に示すように、クラスoracle.mds.cust.policies.CustomizationPolicyProvider
の静的メソッドを呼び出せます。
public static boolean isCutomizationAllowed(MDSSession session, PolicyTarget target);
targetには、次のいずれかを指定できます。
public static PolicyTarget createMOPolicyTarget(MDSReference ref); public static PolicyTarget createAttributePolicyTarget(MDSReference ref, QualifiedName attribute);
Panel Customizable
コンポーネントおよびShow Detail Frame
コンポーネントは、サポートされている個々のアクションに制限を行うことができます。たとえば、現在のユーザーがShow Detail Frame
を最小化できるかどうかの制限を指定できます。
コンポーネントのアクションの制限を行うかどうかを決定できます。コンポーネントのアクションの制限はadf-config.xml
で指定できます。制限を指定して、現在のユーザーに適用可能な場合、Panel Customizable
またはShow Detail Frame
はアクションをレンダリングしません。
アクション・レベルの制限の適用の詳細は、「Panel CustomizableおよびShow Detailコンポーネント・アクションでのアクション・レベルの制限の適用」を参照してください。