この章では、ADFスキンのソース・ファイルまたはADFスキンの使用を制御する構成ファイルに変更を加える場合に役立つ情報を示します。また、この章では、Oracle ADFで提供されるADFスキンのリストと説明も示します。
この章には次の項が含まれます:
通常、ADFスキンのCSSファイルでは、ファイルの外部リソースを参照するためにURLを使用します。たとえば、エラー・メッセージとともにレンダリングするためにアプリケーションが使用するイメージがこれに該当します。URLは、ADFスキンのCSSファイルから様々なフォーマットで参照できます。サポートされているフォーマットは次のとおりです。
絶対
リソースの完全なURLを指定します。たとえば、次のようなフォーマットのURLです。
http://www.mycompany.com/WebApp/Skin/skin1/img/errorIcon.gif
相対
URLの先頭が/ではなく、プロトコルが示されていない場合は、相対URLを指定できます。相対URLは、ADFスキンのCSSファイルの場所に基づきます。たとえば、ADFスキンのCSSファイル・ディレクトリがWebApp/Skin/skin1/であり、指定されたURLがimg/errorIcon.gifの場合、最終的なURLは/WebApp/Skin/mySkin/img/errorIcon.gifとなります。
コンテキスト相対
このURLのフォーマットは、Webアプリケーションのコンテキスト・ルートに対して相対的に解釈されます。コンテキスト相対ルートの先頭は/になります。たとえば、Webアプリケーションのコンテキスト相対ルートが次のとおりであるとします。
/WebApp
このとき、次のURLを指定したとします。
/img/errorIcon.gif
最終的なURLは次のようになります。
/WebApp/img/errorIcon.gif
サーバー相対
サーバー相対URLは、Webサーバーに対して相対的に解釈されます。これがコンテキスト相対URLと異なるのは、同じWebサーバー上にある別のアプリケーション内のリソースを参照できることです。URLの先頭は//を使用して指定します。たとえば、次のフォーマットでURLを作成します。
//WebApp/Skin/mySkin/img/errorIcon.gif
Javaアーカイブ(JAR)ファイルをパッケージとして作成し、ADFスキンとその関連ファイルを配布する場合は、使用するURLのフォーマットが重要になることがあります。詳細は、第11章の「ADFスキンのADFライブラリJARへのパッケージ化」を参照してください。
ADFスキニング・フレームワークは、次のレンダー・キットについて、ADFスキンの作成をサポートします。
org.apache.myfaces.trinidad.desktop
org.apache.myfaces.trinidad.pda
ADFスキン・エディタおよびJDeveloper内のデザインおよびセレクタ・エディタを利用して次のレンダー・キット用のADFスキンを作成できます。
org.apache.myfaces.trinidad.desktop
ADFスキン・エディタまたはJDeveloperでソース・エディタを使用して、次のレンダー・キットにADFスキンを作成できます。
org.apache.myfaces.trinidad.pda
ADF Facesコンポーネントでは、コンポーネントの機能はコンポーネント・クラスに、コンポーネントの表示はレンダラに委任されます。デフォルトでは、ADF Facesのすべてのタグが、関連付けられたコンポーネント・クラスとHTMLレンダラを結合し、HTMLレンダー・キットの一部になっています。ADF Facesには、デスクトップおよびPDAの両方に表示できるように、HTMLレンダー・キットが含まれています。ADF Facesレンダラはカスタマイズできません。ただし、ADFスキンを使用してコンポーネントの表示方法をカスタマイズすることはできます。
次のリストでは、ADFスキンのプロジェクトに関連付けられている構成ファイルについて説明します。ADFスキンの開発中、または開発が終了して完成したADFスキンをアプリケーションに適用するときに、これらのファイルに含まれる値を変更します。
trinidad-skins.xml
このファイルは、第4.3項「ADFスキン・ファイルの作成」で説明しているように、作成するADFスキンを登録します。例12-1に、表12-1に示されるADFスキンのサンプルから拡張するいくつかのADFスキンを登録する方法を示します。
例12-1 trinidad-skins.xmlファイルへのADFスキンの登録
<!-- Use the following values in the trinidad-skins.xml file if you want to extend the fusionFx-v1.2 skin. --> <skin> <id>yourSkin.desktop</id> <family>yourSkinFamily</family> <extends>fusionFx-v1.2.desktop</extends> ... </skin> <!-- Use the following values in the trinidad-skins.xml file if you want to extend the skyros-v1 skin. --> <skin> <id>yourSkin.desktop</id> <family>yourSkinFamily</family> <extends>skyros-v1.desktop</extends> ... </skin>
このファイルの詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』(スキニングするアプリケーションに関連するリリース)のtrinidad-skins.xmlでの構成に関する項を参照してください。
trinidad-config.xml
この構成ファイルの<skin-family>要素を第11.4項「WebアプリケーションへのADFスキンの適用」で説明しているように構成することによって、アプリケーションに対して使用するADFスキンを指定します。表12-1にリストされているADFスキンのいくつかを使用するようWebアプリケーションを構成する方法を示すいくつかの例を、例12-2に示します。
例12-2 ADFスキンを使用するためのアプリケーションのtrinidad-config.xmlファイルの構成
<!-- Use the following value in the trinidad-config.xml file if you want your application to use the fusionFx-simple-v2 skin --> <skin-family>fusionFx-simple</skin-family> <skin-version>v2</skin-version> <!-- Use the following value in the trinidad-config.xml file if you want your application to use the fusionFx-v2.1 skin. --> <skin-family>fusionFx</skin-family> <skin-version>v2.1<skin-version> <!-- Use the following value in the trinidad-config.xml file if you want your application to use the skyros skin. --> <skin-family>skyros</skin-family> <skin-version>v1<skin-version>
このファイルの詳細は、Oracle ADF FacesによるWebユーザー・インタフェースの開発 (スキニングするアプリケーションに関連するリリース)のtrinidad-config.xmlでの構成に関する項を参照してください。
web.xml
このファイルでコンテキスト初期化パラメータを構成して、第11.2項「ADFスキンの変更のテスト」で説明しているように、ADFスキンの開発およびテストを促進できます。コンテキスト初期化パラメータ(org.apache.myfaces.trinidad.skin.MAX_SKINS_CACHED)を構成して、生成されたCSSファイルに関する情報をメモリーに格納する一意のADFスキン(たとえば、fusionやfusionFx-simple)の最大数を指定することもできます。このコンテキスト初期化パラメータを使用すると、数多くの異なるスキンを使用する場合に、アプリケーションのパフォーマンスを維持するのに役立つ場合があります。
web.xmlファイルおよびコンテキスト初期化パラメータの詳細は、Oracle ADF FacesによるWebユーザー・インタフェースの開発(スキニングするアプリケーションに関連するリリース)のweb.xmlでの構成に関する項を参照してください。
Oracle ADFでは、様々なADFスキンが提供されており、これらを拡張して、新規ADFスキンを作成できます。表12-1に、これらのADFスキンの違いを示します。第4.2項「ADFスキン・アプリケーションおよびADFスキン・プロジェクトの作成」で説明しているように、「ターゲット・アプリケーション・リリース」プロパティとして選択した値によって、拡張元として利用できるADFスキンが決定されます。表12-1に示されているADFスキンのすべてが利用できるわけではありません。たとえば、11.1.1.4.xを「ターゲット・アプリケーション・リリース」プロパティの値として選択した場合、skyrosスキンは拡張のために利用できません。
ADFスキン作成時に表示される「ADFスキンの作成」ダイアログの「基本スキン」ページは、第4.3項「ADFスキン・ファイルの作成」で説明しているように、ADFスキンの作成対象であるOracle ADFのリリースに基づいて、拡張元として適切なADFスキンを提示します。たとえば、12.1.2.0.xを「ターゲット・アプリケーション・リリース」プロパティの値として選択した場合、推奨される拡張元のADFスキンはskyros-v1.desktopです。
表12-1に示されているすべてのADFスキンをWebアプリケーションに適用できます。詳細は、第12.3項「ADFスキンの構成ファイル」を参照してください。ADFスキン間の継承関係を示すダイアグラムは、第1.4項「Oracle ADFで提供されるADFスキンの継承関係」を参照してください。
表12-1 Oracle ADFで提供されるADFスキン
| ADFスキン | 説明 |
|---|---|
|
|
最小書式設定のみを含みます。 |
|
|
第6.6項「ADFスキンへの単純な枠線スタイルの提供」で説明しているように、 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Oracle ADFの12c(12.1.2)では、Fusion SimpleファミリのADFスキンは次のバージョンで使用可能です。
|
|
プロジェクタ・スキン |
ADF Facesではプロジェクタ・スキンを提供しており、これは、Oracle Technology Network (OTN) Webサイトからダウンロードできます。これらのスキンは、プロジェクタを使用してデモを行う場合のアプリケーションのスタイルを定義します。各プロジェクタ・スキンでは、卓上プロジェクタ(特に古いモデルのプロジェクタ)を使用して表示した場合にアプリケーションが適切にレンダリングされるように、親スキンの複数の要素を変更します。これらのスキンは、プロジェクタと同じ場所にいる人を対象としている場合に役立ちます。これらは、Web会議を介して、オンラインでアプリケーションを表示する場合には適していない場合があります。ADF Facesでは、次のプロジェクタ・スキンが提供されています。
|
<version>要素を使用して、trinidad-skins.xmlファイルでADFスキンのバージョン番号を指定できます。trinidad-skins.xmlファイル内の<family>要素の値が同じであるADFスキンを区別する場合はこのオプション機能を使用します。特定のADFスキンを使用するようにアプリケーションを構成する場合は、第11.4項「WebアプリケーションへのADFスキンの適用」で説明しているように、trinidad-config.xmlファイルで値を指定して行うことに注意してください。
trinidad-skins.xmlファイル内の<version>要素に値を入力して、ADFスキンのバージョンを指定します。
ADFスキンをバージョニングするには、次のようにします。
「アプリケーション」ウィンドウで、trinidad-skins.xmlファイルをダブルクリックします。これは、デフォルトではWeb Content/WEB-INFノードにあります。
「構造」ウィンドウで、バージョニングするADFスキンのskinノードを右クリックし、「skinの中に挿入」→「version」を選択します。
trinidad-config.xmlファイルの<skin-version>要素に値が指定されていない場合にこのバージョンのADFスキンがアプリケーションで使用されるようにするには、第11.4項「WebアプリケーションへのADFスキンの適用」で説明しているように、バージョンの挿入のためのダイアログで、デフォルト・リストからtrueを選択します。
名前フィールドに値を入力します。たとえば、ADFスキンの最初のバージョンである場合はv1と入力します。
「OK」をクリックします。
例12-3に、3つのADFスキン(skin1.desktop, skin2.desktopおよびskin3.desktop)を参照するtrinidad-skins.xmlの例を示します。これらの各ADFスキンの<family>要素は同じ値(test)になっています。<version>要素の子要素の値によって、これらのADFスキンがそれぞれ区別されます。実行時に、アプリケーションのtrinidad-config.xmlファイルにおける<skin-family>要素の値としてtestが指定されたアプリケーションでは、skin1.desktopを使用します。これは、このADFスキンがtrinidad-skins.xmlファイルでデフォルト・スキンとして構成されているためです(<default>true</default>)。この動作は、第11.4項「ウェブ・アプリケーションへのADFスキンの適用」で説明されているように、trinidad-config.xml内の<skin-version>要素に値を指定してオーバーライドできます。たとえば、trinidad-config.xml内の<skin-version>エレメントの値としてv2を指定した場合、アプリケーションはtrinidad-skins.xmlファイル内でデフォルトとして定義されているskin1.desktopのかわりにskin2.desktopを使用します。
(trinidad-config.xmlファイル内の<skin-version>要素を使用して)取得するスキンのバージョンを指定しない場合、アプリケーションはtrinidad-skins.xml内の<default>true</default>要素を使用してデフォルトとして定義されているスキンを使用します。デフォルトのスキンを指定しない場合、アプリケーションはtrinidad-skins.xml内で定義される最後のADFスキンを使用します。例12-3において、定義される最後のADFスキンはskin3.desktopです。
例12-3 バージョニングされたADFスキン・ファイルが含まれたtrinidad-skins.xmlファイル
<?xml version="1.0" encoding="windows-1252"?>
<skins xmlns="http://myfaces.apache.org/trinidad/skin">
<skin>
<id>skin1.desktop</id>
<family>test</family>
<extends>skyros-v1.desktop</extends>
<render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
<style-sheet-name>skins/skin1/skin1.css</style-sheet-name>
<version>
<default>true</default>
<name>v1</name>
</version>
</skin>
<skin>
<id>skin2.desktop</id>
<family>test</family>
<extends>skin1.desktop</extends>
<render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
<style-sheet-name>skins/skin2/skin2.css</style-sheet-name>
<version>
<name>v2</name>
</version>
</skin>
<skin>
<id>skin3.desktop</id>
<family>test</family>
<extends>skin2.desktop</extends>
<render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
<style-sheet-name>skins/skin3/skin3.css</style-sheet-name>
<version>
<name>v3</name>
</version>
</skin>
</skins>