ルック・アンド・フィールの実装には、次のように様々なリソースを含めることができます。
.xss
文書)
ADF UIXでは、インストールされたリソースをWebアプリケーションの要素として検索できます。クラスパス上で検索することもできます。この結果、カスタム・ルック・アンド・フィールを2通りの方法のいずれかでデプロイできます。
UIXではルック・アンド・フィール・リソースをクラスパス上で検出できるため、すべてのリソース(ルック・アンド・フィール構成ファイル、スタイルシート、イメージ、レンダラなど)を1つのJARファイルとしてパッケージ化することができます。
ルック・アンド・フィールJARファイルを作成すると、ルック・アンド・フィールを複数のWebアプリケーションにデプロイする場合に便利です。ただし、ルック・アンド・フィールをJARファイルにパッケージ化する必要はありません。
UIXでは、リソースのタイプによって異なる方法でリソースを検出します。後のセクションでリソース・タイプとUIXで各タイプを検出する方法を説明し、カスタム・ルック・アンド・フィールをパッケージ化する方法を確認します。
ルック・アンド・フィールの構成ファイルへのパスは、UIX構成ファイル(uix-config.xml
)の<look-and-feel-config>
要素で指定します。UIXでは、まずWebアプリケーションのコンテキスト・ルートを基準としてこのパスの指定が解釈されます。たとえば、カスタム・ルック・アンド・フィールが次のように登録されているとします。
<look-and-feel-config>WEB-INF/mycompany-laf.xml</look-and-feel-config>
UIXは、まずWebアプリケーションのWEB-INFディレクトリの下でmycompany-laf.xml
構成ファイルを検索します。
サーブレット・コンテキスト・ルート・ディレクトリでルック・アンド・フィール構成ファイルを検出できない場合、UIXはさらにクラスパスにルック・アンド・フィールがないかを調べます。こうした動作をするのは、カスタム・ルック・アンド・フィールを独立したJARファイルとしてパッケージ化できるためです。
この機能を利用するには、ルック・アンド・フィール構成ファイルをJARファイルとしてパッケージ化し、Webアプリケーションのクラスパスにインストールする必要があります。たとえば、mycompany-laf.xml
構成ファイルがorg.example.laf.custom
パッケージとしてインストールされている場合は、uix-config.xml
ファイルに次のパスを指定してカスタム・ルック・アンド・フィールを登録します。
<look-and-feel-config>org/example/laf/custom/mycompany-laf.xml</look-and-feel-config>
ルック・アンド・フィールのスタイルシートの場所は、ルック・アンド・フィール構成ファイルの<look-and-feel>
要素のstyle-sheet-name
属性で指定します。UIXは、次の場所でスタイルシートを検索します。
/cabo/styles
)
/cabo/styles
ディレクトリに格納されたUIXの独自のスタイルと同じ場所にカスタム・スタイルシートをインストールする場合は、ファイル名のみを指定します。たとえば、mycompany.xss
スタイルシートを/cabo/styles
ディレクトリにインストールする場合、look-and-feel
要素は次のようになります。
<look-and-feel style-sheet-name="mycompany.xss" ... />
コンテキスト・ルートの下のサブディレクトリにスタイルシートをインストールする場合は、コンテキスト・ルートを基準としたパスのみを指定します。たとえば、mycompany.xss
スタイルシートをWebアプリケーションの/laf/styles
ディレクトリにインストールする場合、style-sheet-name
属性は次のようになります。
<look-and-feel style-sheet-name="/laf/styles/mycompany.xss" ... />
最後に、カスタム・ルック・アンド・フィールをJARファイルにパッケージ化する場合は、クラスパス上のスタイルシートへのパスのみを指定します。たとえば、mycompany.xss
スタイルシートをorg.example.laf.custom.styles
パッケージ内のJARファイルにインストールする場合、style-sheet-name
属性は次のようになります。
<look-and-feel style-sheet-name="org/example/laf/custom/styles/mycompany.xss" ... />
ルック・アンド・フィールのイメージは、UIXのカスタマイズ可能なアイコン・アーキテクチャを使用して指定されます。UIXがイメージ・ファイルを検索する場所は、ルック・アンド・フィール構成ファイルにイメージを登録するときに使用するアイコンのタイプによって変わります。UIXは次のアイコン・タイプをサポートし、該当する場所でイメージを検索します。
<config-image>
アイコン・タイプ: /cabo/images
ディレクトリにインストールされたイメージ用
<context-image>
アイコン・タイプ: Webアプリケーションのコンテキスト・ルートの下にインストールされたイメージ用
UIXでは<resource-image>
アイコン・タイプもサポートされており、アイコンはルック・アンド・フィールのJARファイルにパッケージ化されます。UIXは、<resource-image>
アイコンを使用して登録したアイコンをWebアプリケーションのクラスパス上で検索します。したがって、たとえば必要なカスタム・アイコンがorg.example.laf.custom.images
パッケージの下のJARファイルに配置された場合は、ルック・アンド・フィール構成ファイルに次のエントリを追加してこのようなイメージを登録します。
<icon name="required">
<resource-image uri="org/example/laf/custom/images/required.gif"/>
</icon>
これで、クラスパス上でイメージが自動的に検索され、ブラウザで使用可能になります。
UIXは、JavaベースのレンダラとUIX XMLテンプレートベースのレンダラ(.uit
ファイル)という2種類のレンダラをサポートしています。Javaベースのレンダラは、Webアプリケーションのクラスパスから直接ロードされます。テンプレートベースのレンダラの場合は、まずUIXがWebアプリケーションのコンテキスト・ルートの下、次にクラスパス上でレンダラを検索します。たとえば、カスタム・ルック・アンド・フィールにpageLayoutコンポーネントのカスタム・テンプレートベースのレンダラcustomPageLayout.uit
が含まれる場合は、次のエントリを使用してルック・アンド・フィール構成ファイルにレンダラを登録します。
<renderer name="pageLayout">
<template name="/laf/templates/customPageLayout.uit"/>
</renderer>
次に、UIXはWebアプリケーションの/laf/templates
ディレクトリの下でテンプレートを検索します。テンプレートが見つからない場合、UIXはさらにクラスパス上でlaf.templates
パッケージを検索します。
テンプレートをルック・アンド・フィールJARファイルのorg.example.laf.custom.templates
パッケージにパッケージ化する場合は、次のエントリを指定してカスタム・テンプレートを登録します。
<renderer name="pageLayout">
<template name="org/example/laf/custom/templates/customPageLayout.uit"/>
</renderer>
カスタム・リソースを使用するアプリケーションのディレクトリ構造は一般に次のようになります。
|.....
|||+------<oc4j_install>/j2ee/home/applications
||||+-------myUIXApp
|||||+--------cabo
|...............[images、jsLibs、jsps、styles]
|...............[stylesに配置された.xssファイル]
|||||+--------lib
|...............[ルック・アンド・フィールJARファイル]
|||||+--------META-INF
|...............application.xml
|||||+--------WEB-INF
|...............web.xml
|...............uix-config.xml
|||||+--------UIXWebApp1
|---------------[*.uix]
|||||||+--------cabo
|.................[実行時に自動生成]
|||||||+--------images
|||||||+--------includes
|||||||+--------jsLibs
|.................[JavaScriptライブラリ]
|||||||+--------source
|.................[.java files]
|||||||+--------templates
|.................[*.uit]
||||||+---------WEB-INF
|.................[.xmlルック・アンド・フィール構成ファイル]
|||||||+----------classes
|...................[任意のprivateクラス]
|||||||+----------lib
|...................[アプリケーションで使用する任意のprivate JARファイル]
|.................web.xml
|.................uix-config.xml
|.....
注意: カスタム・ルック・アンド・フィールがJAR形式でパッケージ化されている場合は、クラスパスにJARファイルを追加してアプリケーションでカスタム・リソースを使用できるようにする必要があります。この作業は、アプリケーションごとにローカルでも実行できますが、JARファイルをサーブレット・エンジンのクラスパスにインストールすればグローバルに実行できます。
ルック・アンド・フィール構成ファイルの作成
カスタム・ルック・アンド・フィールの登録
カスタム・ルック・アンド・フィールの作成
ADF UIXページの操作
Webアプリケーション設計ツールの使用
Copyright © 1997, 2004, Oracle. All rights reserved.