WebCenter Sitesの管理ユーザーおよび編集ユーザーは、Adminインタフェースに表示される様々なツリーを通して製品と対話します。こうしたツリーの変更により、WebCenter SitesのAdminインタフェースをカスタマイズできます。
この章では、ツリーの変更方法について説明します。この章は、次の項で構成されています。
次のスクリーン・キャプチャに示すように、ツリーは一連のタブとして、WebCenter SitesのAdminインタフェースの左側のペインに表示されます。

WebCenter Sitesのツリー・タブは、ツリー・アプレットにより作成されます。ツリー・アプレットに渡される様々なパラメータを設定することにより、独自のツリーの作成または変更が可能です。ツリー・アプレットは、次に示す各種のパラメータを受け入れます。
アプレット全体のパラメータ: アプレットの全体的な外観および動作を制御します。
ツリー固有のパラメータ: ツリーの外観および動作を制御します。
ノードのパラメータ: ツリーの個別ノードの外観および動作を制御します。
OpURLノードのパラメータ: ツリーとWebCenter Sitesの通信を可能にします。
データベースにある一連のツリー・タブ表には、タブ名、どのロールがタブへのアクセス権を持つか、およびツリー・タブにデータを移入するエレメントへのパスなど、ツリー構成に関する情報が格納されます。これらの表には、「ツリー・タブ」画面を使用して情報を入力します。この画面には、Adminインタフェースを使用して「管理」タブを選択し、「ツリー」ノードをクリックしてアクセスします。
この項の内容は、次のとおりです。
WebCenter Sitesで提供されているデフォルトのツリー・タブのほとんどは、OpenMarket/Gator/UIFramework/LoadTabエレメントを通して渡されるツリー・データを要求します。LoadTabエレメントは、セッション・タイムアウトのチェックなど、複数の基本タスクを実行します。
たとえば、GEサンプル・サイトにある「Product」タブは、ロード時に次のステップを完了します。
「Product」タブにあるJavaコードにより、LoadTabエレメントがコールされます。
LoadTabエレメントにより、TreeTabデータベース表に問合せが行われます。これにより、Productツリーの最上位ノードにデータをロードするエレメントが取得されます。この場合のエレメントは、OpenMarket/Xcelerate/ProductGroups/LoadTreeエレメントおよびOpenMarket/Xcelerate/Product/LoadTreeエレメントです。
OpenMarket/Xcelerate/ProductGroups/LoadTreeエレメントおよびOpenMarket/Xcelerate/Product/LoadTreeエレメントにより、データベースに対して、ツリーのノードに対応するアセットの問合せが行われ、元のツリー・アプレットにノードのデータがストリームされます。
ツリー・アプレットにより、ノード・データが解析され、ノードが表示されます。
「Product」タブのJavaコードにより、グローバル・コンテキスト・メニューを初期化するためのエレメント、つまりOpenMarket/Gator/UIFramework/LoadGlobalPopupエレメントがコールされます。このエレメントにより、「Products」タブからコールされた、各ツリーをロードするエレメントに対して、GetTypesコマンドが送信されます。ツリーをロードするエレメントにより、このコマンドが受信されると、スタート・メニュー・アイテムをグローバル・コンテキスト・メニューに表示する、アセット・タイプのリストが返されます。
OpenMarket/Gator/UIFramework/LoadGlobalPopupエレメントにより、指定されたアセット・タイプのスタート・メニュー・アイテムが検索され、その情報が元のツリーにストリームされます。
システムの各アセット・タイプには、LoadTreeエレメントが必要なことに注意してください。LoadTreeエレメントは、実際にツリーをロードする、別のエレメントへのポインタです。アセット・タイプが子を持つことが可能な場合、それぞれの子は、LoadTreeエレメントを持つ必要があります。LoadTreeエレメントのパスは次のとおりです。
OpenMarket/Xcelrate/AssetType/MyAssetType/LoadTree
MyAssetTypeは、LoadTreeエレメントにより参照されるアセット・タイプの名前です。
LoadTreeエレメントは、「ツリーの管理」フォームのSectionフィールドに設定されたアセット・タイプに基づいてコールされます。
コア・アセット・タイプでは、複数あるエレメントの1つを使用することで、ツリーがロードされます。次の表は、これらのエレメントのリストで構成されています。
表34-1 アセット・タイプのエレメント
| アセット・タイプ | 場所 | 説明 |
|---|---|---|
|
フレックス・グループ |
|
FlexGroupの親階層およびFlexAssetの子を表示します |
|
フレックス・アセット |
|
フレックス・グループに属さないフレックス・アセットを表示します |
|
サイト・プラン・ツリー |
|
サイト・プラン・ツリーを表示します |
|
サイト・プラン・アソシエーション |
|
サイト・プラン・ツリーにおけるアセットのアソシエーションを表示します |
|
ブックマーク |
|
ブックマーク・ツリーを表示します |
|
管理ツリー |
|
管理ツリーを表示します |
|
管理ツリーのヘルパー・エレメント |
|
管理ツリー用のヘルパー・エレメントをロードします |
|
アセット・タイプ |
|
ツリーの最上位レベルのアセット・タイプのノード、およびそのタイプのすべてのアセットの名前を、ツリーの下位レベルに表示します |
ツリー内のノードの外観または動作を変更する場合は、これらの標準エレメントのいずれかに基づいて、ツリーをロードする新しいエレメントを作成します。その後、Webサイトの管理者がエレメント名およびそのエレメントへのパスを指定できるようになります。これは、「ツリー・タブ」フォームとは違う場所にある新規ツリー・フォームの「セクション名」フィールドおよび「エレメント名」フィールドで指定します。ツリーの追加と新規ツリー・フォームの詳細は、『Oracle Fusion Middleware WebCenter Sites管理者ガイド』を参照してください。
ツリー・ノードの変更の詳細は、第34.1.1.3項「ノードのパラメータ」を参照してください。
アプレット全体のパラメータは、TreeAppletParams.xmlエレメントに設定されています。ツリー・アプレットの動作を変更するには、そこに設定されているパラメータ値を、次の表に示すとおりに変更します。
表34-2 アプレット全体のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
デバッグのオン/オフを切り替えます。有効な値は、 |
|
|
ベース文字列を、すべてのノード・データのURL文字列が付加されるように設定します。たとえば、
|
|
|
ツリーの背景色を、10進数のRGB値を使用して設定します。このパラメータが設定されていない場合、背景色は、ツリーが埋め込まれているHTMLフレームの色にデフォルトで設定されます。 |
|
|
表示されるツリー・タブの数を設定します。この値は自動的に設定されます。 |
|
|
ノードのリンクを表示する対象のフレームです。デフォルト値は、 |
ツリー固有のパラメータは、「新規ツリー・タブの追加」フォームと「新規ツリー・タブの追加」フォームを作成するOpenMarket\Gator\UIFramework\TreeTabAdd.xmlエレメントにより設定されます。ツリーの外観または動作を変更するには、次の表に示すパラメータ値を変更します。パラメータ値を変更するには、フォームを使用するか、TreeTabAddエレメントを変更します。
表34-3 ツリー固有のパラメータ
| パラメータ | 説明 |
|---|---|
|
|
タブに表示されるテキストを設定します。 この値は、「管理」タブにある、「ツリーの管理」フォームの |
|
|
マウス・ポインタがタブ索引上にあるときに表示されるテキストを設定します。 この値は、「管理」タブにある、「ツリーの管理」フォームの |
|
|
ノードの子を取得するためにコールするページのURIです。 この値は、 |
|
|
ツリー内のノードに対するコンテキスト・メニュー・アクションを実行するページのURLです。デフォルト値は、 この値は、 |
|
|
展開されたノードを表すときに使用するアイコンへのパスです。デフォルトは、プラス記号( この値は、 |
|
|
展開されていないノードを表すときに使用するアイコンへのパスです。デフォルトは、マイナス記号( この値は、 |
|
|
ツリーのノードを線でつなぐかどうかを設定します。有効な値は この値は、 |
|
|
ルート・ノードのIDを設定します。この文字列は、ノード・パスの指定に使用されます。デフォルトで、 この値は、 |
|
|
この値は、「管理」タブにある、「ツリーの管理」フォームの |
|
|
この値は、「管理」タブにある、「ツリーの管理」フォームの |
ノードのパラメータにより、ツリーのノードの外観および動作が決定されます。これらのノードの外観および動作を定義するには、エレメントを記述します。そのエレメントによって、次の表に示すノードのパラメータを設定し、ツリーのノードを作成するBuildTreeNode.xmlエレメントに値を渡します。
表34-4 ノードのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
このノードに表示されるテキストを指定します。値が一意である必要はありません。デフォルト値は""です。 |
|
|
ツリー内で一意の文字列識別子です。WebCenter Sitesで選択中のパスの表現に使用されます。このIDは、WebCenter Sitesにより指定されます。 |
|
|
ノードが実行不可の場合は、このパラメータをノード・データに含めないでください。 |
|
|
|
|
|
ツリー全体のコンテキスト・メニューでこのオプションを選択した場合、 |
|
|
このノードの相対レベルで、>= 0という数字で表されます。値が0(ゼロ)の場合は、このノードが、データを要求しているノードの直接の子であることを示します。 一度に複数レベルのノードをロードするには、この値に0(ゼロ)より大きい数字を設定します。デフォルト値は0(ゼロ)です。 |
|
|
ラベルの先頭に付加されるイメージのURIです。このフィールドがノード・データに含まれていない場合は、そのノードにイメージが表示されません。 |
|
|
サブツリー階層のURIです。このフィールドがノード・データに含まれていない場合、このノードは追加のロードを必要としません。 このパラメータに指定されるURLには、ツリー・アプレットがノードの子を検索できるよう、十分な情報が含まれている必要があります。たとえば、階層が次のような場合、 製品タブ/Reebok社/ランニング・シューズ
|
|
|
ノードのコンテキスト・メニューに表示されるアクションです。この文字列は、同一ノードのデータ・セットに複数回出現することがあります。 |
|
|
サーバーに対して、指定されたアクションを実行するためのURLです。この値の先頭には、
|
|
|
ツリーのリフレッシュに使用できる、1つまたは一連のキーを作成します。この値を、現在のノードのIDに設定します。 |
LoadAdministrationAssetエレメントの抜粋を次に示します。この抜粋では、ノードのパラメータの値が設定され、その値がBuildTreeNodeエレメントに渡されます。
この抜粋で参照されているListofAssetリストは、指定されたタイプのアセットに関する情報のリストです。このリストは、エレメントの別の場所で実行される、SQL問合せにより生成されたものです。
<CALLELEMENT NAME="OpenMarket/Gator/UIFramework/BuildTreeNode">
<ARGUMENT NAME="Label"
VALUE="ListofAsset.name"/>
<ARGUMENT NAME="Description"
VALUE="ListofAsset.description"/>
<ARGUMENT NAME="ID"
VALUE="Variables.TreeNodeID"/>
<ARGUMENT NAME="OpURL"
VALUE="ContentServer?pagename=
OpenMarket/Gator/UIFramework/TreeOpURL&
AssetType=Variables.AssetType"/>
<ARGUMENT NAME="ExecuteURL"
VALUE="ContentServer?pagename=
OpenMarket/Gator/UIFramework/TreeOpURL&
AssetType=Variables.AssetType&n0_=
Variables.packedTreeNodeID&op=displayNode"/>
<ARGUMENT NAME="OKActions"
VALUE="Status;Inspect;Edit;Delete;refresh"/>
<ARGUMENT NAME="Image"
VALUE="Xcelerate/OMTree/TreeImages/AssetTypes/Variables.AssetType.gif"/>
<ARGUMENT NAME="RefreshKeys"
VALUE="ListofAsset.id"/>
</CALLELEMENT>
ツリーのノードの外観または動作をカスタマイズするには、標準エレメントの1つをコピーし、ノードの引数を変更します。ツリーをロードするエレメントには、次の変数が渡されていることに注意してください。そのため、作成またはカスタマイズした、ツリーをロードするすべてのエレメントでは、次の変数を考慮する必要があります。
LoadTreeエレメントにより渡された変数
AssetType: 「新規ツリー」フォームを使用して作成されたセクション名に設定されています
op: initに設定されています
LoadGlobalPopupエレメントにより渡された変数
command: GetTypesに設定されています
AssetType: 「新規ツリー」フォームを使用して作成されたセクション名に設定されています
varname: スタート・メニュー・アイテムの表示対象とするアセット・タイプを、カンマ区切りのリストで設定します
popupvar: グローバル・コンテキスト・メニューにアイテムを追加する場合はtrue、コンテキスト・メニューにアイテムを追加する必要のない場合はfalseに設定します
ツリーの各ノードには、ユーザーがマウスで右クリックすると表示されるメニューがあります。このメニューのコマンドを使用すると、ノードをリフレッシュしたり、ブラウザのウィンドウの右側にページをロードできます。ノードのコンテキスト・メニューには、コマンドが追加できます。これにより、状態フォームやパブリッシュ・フォームなどのフォームのロードが可能になります。アセット・タイプおよびIDを使用してコールされるフォームはいずれも、ノードのコンテキスト・メニュー・コマンドからコールされる可能性が高いものです。
次の手順を完了することによって、ノードのコンテキスト・メニューに新規コマンドを追加します。
ノードのOKActionsフィールドに、新規コマンドを実際の表示どおりに追加します。
ノードのOpURLが参照するエレメント(通常はTreeOpURLエレメント)に、ロード対象のフォームをコールする新規のIF文を追加します。
たとえば、次のTreeOpURLエレメントのコードにより、ノードが表示されます。
<IF COND="Variables.op=displayNode"><THEN><callelement NAME="OpenMarket/Gator/UIFramework/TreeIDFromPath"><argument NAME="TreePath" VALUE="Variables.TreeNodePath"/></callelement><setvar NAME="id" VALUE="Variables.ID"/><callelement NAME="OpenMarket/Xcelerate/UIFramework/ApplicationPage"><argument NAME="ThisPage" VALUE="ContentDetailsFront"/><argument NAME="contentfunctions" VALUE="true"/><argument NAME="AssetType" VALUE="Variables.AssetType"/></callelement></THEN>
ツリーを変更可能なエレメントでは、ツリーが現在のデータを表示するようにリフレッシュする必要があります。指定可能なリフレッシュ・アクションには、次の3種類があります。
Self: 指定されたノードの子をリフレッシュします
Parent: 指定されたノードおよびその子をリフレッシュします
Root: ツリー全体をリフレッシュします
ツリーをリフレッシュする手順には次の2つがあります。
ツリーをカスタマイズするエレメントをコーディングし、リフレッシュ対象のツリー・ノードがRefreshKeysを保持するようにします。RefreshKeysは、リフレッシュの発生を許可するキー(通常は現在のノードのアセットID)です。
OpenMarket/Xcelerate/UIFramework/UpdateTreeOMTreeエレメントをコールして_TreeRefreshKeys_変数を渡し、目的のリフレッシュのタイプを可変の値で指定します。
ノードのRefreshKeysは、BuildTreeNodeエレメントにRefreshKeys引数を渡して設定します。第34.1.1.3項「ノードのパラメータ」にコードのサンプルを示します。
ツリーをリフレッシュするには、OpenMarket/Xcelerate/UIFramework/UpdateTreeOMTreeエレメントを、次の例に示すとおりにコールします。
<CALLELEMENT NAME="OpenMarket/Xcelerate/UIFramework/UpdateTreeOMTree"><ARGUMENT NAME= "_TreeRefreshKeys_" VALUE= "Root:ActiveList"/></CALLELEMENT>
WebCenter Sitesでは、SitesのAdminインタフェースでツリーへのアクセスを制御するためにロールを使用します。システム定義の「管理」タブ、「サイト管理者」タブ、および「ワークフロー」タブについても、それらのタブのユーザーはxceladmin ACLを持っている必要があります。
追加の制御を使用できるようにするには、futuretense_xcel.iniのプロパティを設定します。たとえば、xcelerate.showSiteTreeでは、デフォルトでツリーを表示するかどうかを決定します。また、xcelerate.restrictSiteTreeでは、どのユーザーがツリーを表示または非表示にできるかを決定します。ツリーとセキュリティの詳細は、『Oracle Fusion Middleware WebCenter Sites管理者ガイド』を参照してください。
ツリー関連のエラーおよびデバッグ・メッセージは、すべてJavaコンソールにログ出力されます。ツリーの作成時にDebugパラメータに値を指定することで、デバッグのオン/オフを切り替えることができます。
デバッグを有効にするとパフォーマンスに影響するため、配信システムでは通常、エラー・ロギングをオフにしておいてください。