プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle ADFスキンの開発
12c (12.2.1.2.0)
E82919-01
目次へ移動
目次

前
前へ

13 高度なトピック

この章では、ADFスキンのソース・ファイルまたはADFスキンの使用を制御する構成ファイルに変更を加える場合に役立つ情報を示します。また、この章では、Oracle ADFで提供されるADFスキンのリストと説明も示します。

この章の内容は次のとおりです。

13.1 ADFスキンのCSSファイルにおけるURLの参照

通常、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のフォーマットが重要になることがあります。詳細は、「ADFスキンのADFライブラリJARへのパッケージ化」を参照してください。

13.2 ADFスキンの構成ファイル

次のリストでは、ADFスキンのプロジェクトに関連付けられている構成ファイルについて説明します。ADFスキンの開発中、または開発が終了して完成したADFスキンをアプリケーションに適用するときに、これらのファイルに含まれる値を変更します。

  • trinidad-skins.xml

    このファイルは、「ADFスキン・ファイルの作成」で説明しているように、作成されるADFスキンを登録します。次の例に、表13-1で説明しているADFスキンのサンプルを拡張した数多くのADFスキンの登録方法を示します。

    <!-- Use the following values in the trinidad-skins.xml file if you want to extend the alta-v1 skin. -->
    <skin>
       <id>yourSkin.desktop</id>
       <family>yourSkinFamily</family>
       <extends>alta-v1.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>要素を「WebアプリケーションへのADFスキンの適用」で説明しているように構成することによって、アプリケーションに対して使用するADFスキンを指定します。次の例に、表13-1に示されている一部のADFスキンを使用するためにWebアプリケーションを構成する方法を示します。

    <!-- Use the following value in the trinidad-config.xml file if you want your application to use the Alta skin. -->
    <skin-family>alta</skin-family>
      <skin-version>v1<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

    このファイルのコンテキスト初期化パラメータを「ADFスキンの変更のテスト」の説明に従って構成することによって、ADFスキンを開発およびテストを実行しやすくできます。コンテキスト初期化パラメータ(org.apache.myfaces.trinidad.skin.MAX_SKINS_CACHED)を構成して、生成されたCSSファイルに関する情報をメモリーに格納する一意のADFスキンの最大数を指定することもできます。このコンテキスト初期化パラメータを使用すると、数多くの異なるスキンを使用する場合に、アプリケーションのパフォーマンスを維持するのに役立つ場合があります。

    web.xmlファイルとコンテキスト初期化パラメータの詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のweb.xmlでの構成に関する項を参照してください。

13.3 Oracle ADFで提供されるADFスキン

­Oracle ADFでは、数多くのADFスキンが提供されており、これらを拡張して、新規ADFスキンを作成できます。表13-1に、これらのADFスキンの違いを示します。

ADFスキン作成時に表示される「ADFスキンの作成」ダイアログの「基本スキン」ページは、「ADFスキン・ファイルの作成」で説明しているように、拡張元として適切なADFスキンを提示します。

表13-1に示されているすべてのADFスキンをWebアプリケーションに適用できます。詳細は、「ADFスキンの構成ファイル」を参照してください。ADFスキン間の継承関係を示すダイアグラムは、「Oracle ADFで提供されるADFスキンの継承関係」を参照してください。


表13-1 Oracle ADFで提供されるADFスキン

ADFスキン 説明

simple

最小書式設定のみを含みます。

skyros-v1

simpleスキンを拡張します。使用するアプリケーションにカラフルなルック・アンド・フィールを提供します。

alta-v1

alta-v1スキンは、WebアプリケーションでOracle Alta UIシステムを利用できるスキンです。WebアプリケーションでOracle Alta UIシステムで導入された拡張機能を利用する場合、このスキンをそのまま使用するか拡張します。alta-v1スキンは、このリリースを使用して作成したWebアプリケーションのデフォルト・スキンです。

Oracle Alta UIシステムの詳細は、http://www.oracle.com/webfolder/ux/middleware/alta/index.htmlを参照してください。


13.4 ADFスキンのバージョニング

<version>要素を使用して、trinidad-skins.xmlファイルでADFスキンのバージョン番号を指定できます。trinidad-skins.xmlファイル内の<family>要素の値が同じであるADFスキンを区別する場合はこのオプション機能を使用します。特定のADFスキンを使用するようにアプリケーションを構成する場合は、「WebアプリケーションへのADFスキンの適用」で説明しているように、trinidad-config.xmlファイルで値を指定して行うことに注意してください。

13.4.1 ADFスキンのバージョニング方法

trinidad-skins.xmlファイル内の<version>要素に値を入力して、ADFスキンのバージョンを指定します。

ADFスキンをバージョニングするには、次のようにします。

  1. 「アプリケーション」ウィンドウで、trinidad-skins.xmlファイルをダブルクリックします。これは、デフォルトではWeb Content/WEB-INFノードにあります。
  2. 「構造」ウィンドウで、バージョニングするADFスキンのskinノードを右クリックし、「skinの中に挿入」「version」を選択します。
  3. trinidad-config.xmlファイルの<skin-version>要素に値が指定されていない場合にこのバージョンのADFスキンがアプリケーションで使用されるようにするには、「WebアプリケーションへのADFスキンの適用」で説明しているように、バージョンの挿入のためのダイアログで、デフォルト・リストからtrueを選択します。
  4. 名前フィールドに値を入力します。たとえば、ADFスキンの最初のバージョンである場合はv1と入力します。
  5. 「OK」をクリックします。

13.4.2 ADFスキンをバージョニングした場合の処理

例13-1に、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>)。この動作は、「Webアプリケーションへの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スキンを使用します。例13-1において、定義される最後のADFスキンはskin3.desktopです。

例13-1 バージョニングされた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>