ヘッダーをスキップ
Oracle WebCenter Framework開発者ガイド
10g(10.1.3.4)
B50831-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

9 カスタマイズ可能コア・コンポーネントのスタイルの定義および適用

この章では、Oracle ADF Facesスキンでのカスタマイズ可能コア・コンポーネントのスタイル・セレクタの使用について解説し、スキンの登録方法と、スキンを使用するためのアプリケーションの構成方法を説明します。また、カスタマイズ可能コア・コンポーネントのスタイルおよびアイコンのセレクタと、スタイル関連プロパティをリストして説明します。最後に、ユーザーが実行時にスキンを選択できるスキン・セレクタを構築する方法と、選択した内容を複数のユーザー・セッションにわたって存続させる方法について説明します。

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

9.1 スキン、スタイル・セレクタおよびスタイル関連プロパティの概要

Oracle WebCenter Frameworkでは、スタイル情報を適用するための機会が2つ提供されています。

開始する前に、関連するテクノロジを理解しておくと役に立ちます。この項では、Oracle ADF Facesスキン、スタイル・セレクタおよびスタイル・プロパティについて簡単に説明します。この項の内容は、次のとおりです。

9.1.1 Oracle ADF Facesスキンについて

スキンは、アプリケーション全体に対して1か所に設定される、CSS 3.0構文に基づいたスタイルシートです。各コンポーネントのスタイルを設定したり、各ページにスタイルシートを挿入することなく、アプリケーション全体に対して1つのスキンを作成できます。各コンポーネントで自動的に、スキンで記述されているスタイルが使用されます。設計時のコード変更は必要ありません。

Oracle ADF Facesには、アプリケーション内で使用できる3つのスキンが用意されています。

  • Oracle: デフォルトのスキン。Oracleスキンは、アプリケーションのOracleのユーザー・インタフェース標準(Oracleブラウザのルック・アンド・フィール、Oracle BLAFとも呼ばれる)に準拠しています。

  • Minimal: Minimalスキンでは、一部の書式設定が提供されます。

  • Simple: Simpleスキンにはほとんど書式設定は含まれません。

これらのスキンはすべてADF Faces 10.1.3コンポーネント・ライブラリに含まれていますが、このリリースではソースはユーザーに公開されません。これらのスキンにアクセスするには、アプリケーションにこのライブラリおよびその他いくつかのライブラリを含めます。関連するライブラリを含める方法の詳細は、9.2.1項「アプリケーション内でデフォルト・スキンを使用可能にする方法」を参照してください。

デフォルト・スキン以外にも、会社に適したルック・アンド・フィールで独自のカスタム・スキンを作成できます。カスタム・スキンを拡張したり、Simpleスキンにより提供されたスタイル定義を上書きすることができます。今のところ、拡張可能なスキンはSimpleスキンのみです。つまり、独自のCSS(つまり、カスタム・スキン)を適用するとき、CSS内に含めていない要素はすべてSimpleスキンから継承されます。

カスタム・スキンを作成した後は、有効なスキンとしてアプリケーション内に登録し、そのスキンを使用するようにアプリケーションを構成する必要があります。詳細は、9.2.3項「スキンを登録する方法」および9.2.4項「特定のスキンを使用するようにアプリケーションを設定する方法」を参照してください。

カスタム・スキンを使用する場合は、暗黙的にSimpleスキンが適用されます。Simpleスキンの使用を明示的に指定する必要はありません。

ポートレットとカスタマイズ可能コア・コンポーネント(PanelCustomizableおよびShowDetailFrame)には、3種類のカラー・スキーム(Light、MediumおよびDark)を作成できます。これらの使用方法の詳細は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。

9.1.2 スタイル・セレクタについて

スタイルシートのルールには、要素を識別するスタイル・セレクタと、要素の外観を記述するスタイル定義のセットが関連します。例9-1に、カスタマイズ可能コア・コンポーネントShowDetailFrameに適用されるスタイル・セレクタおよび定義を示します。

例9-1 カスタマイズ可能コア・コンポーネントのスタイル・セレクタおよびスタイル定義

af|showDetailFrame::main-menu-container
{
  background:#FFFFFF;
  border-left:1px #969664 solid;
  border-right:1px #515151 solid;
  border-top:1px #969664 solid;
  border-bottom:1px #515151 solid;
  width:110px
}

例9-1では、ShowDetailFrameコンポーネントのメイン・メニュー・コンテナのスタイルを定義しています。スタイル定義では、メニューの背景色、メニューの幅、およびメニューを囲む境界線の濃さと色を指定しています。

Oracle ADF Facesスキンでは、3種類のスタイル・セレクタが使用されます。

  • 標準セレクタ: スタイルを適用できる要素を直接的に表します。たとえば、af|bodyaf:bodyコンポーネントを表します。この要素には、CSSスタイル、プロパティおよびアイコンを設定できます。

  • 擬似要素を持つセレクタ: スタイルを適用できるコンポーネントの特定領域を示します。擬似要素は、セレクタが表すコンポーネント部分に続いて二重コロンがあるため、容易に識別できます。たとえば、af|showDetailFrame::header-top-borderは、ShowDetailFrameコンポーネントのヘッダーの上部境界線のスタイル・セレクタです。

  • 別名擬似クラスを使用するセレクタ: 複数のコンポーネントまたは複数のコンポーネント部分に対してスタイルを設定するセレクタに使用されます。たとえば、.AFMenuBarItem:aliasセレクタは、すべてのaf:menuBarアイテム(af|menuBar::enabledaf|menuBar::selectedなど)の間で共有されるスキン・プロパティを定義します。

カスタム・スキンで上書きしないセレクタはいずれも、Simpleスキン内に提供されているスタイル・セレクタのスタイル定義を使用します。

通常、Oracle ADF Facesコンポーネント・ライブラリ内で使用可能なコンポーネントごとにルック・アンド・フィールをカスタマイズすることはありません。たとえばSimpleスキンなどを使用してアプリケーションを確認することで、カスタマイズするコンポーネントを決定できます。

カスタマイズ可能コア・コンポーネントのスタイル・セレクタのリスト、説明およびコード例は、9.3項「ポートレットおよびカスタマイズ可能コア・コンポーネントのスタイル・セレクタとアイコン・セレクタのスタイル定義の指定」を参照してください。カスタマイズ可能コア・コンポーネント用のセレクタ以外のセレクタの詳細は、Oracle Technology Networkの「Selectors for Skinning ADF Faces Components」を参照してください。

http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/skin-selectors.html

9.1.3 コンポーネントのスタイル・プロパティについて

ShowDetailFrameおよびPanelCustomizableコンポーネントのルック・アンド・フィールは、設計時に、スタイル関連プロパティInlineStyleContentInlineStyleおよびStyleClassを変更することによって調整できます。設計時に指定したスタイル関連プロパティは、コンポーネントのその特定のインスタンスに対するアプリケーション・スキンまたはCSS内に指定された対応するスタイルを上書きします。

たとえば、あるアプリケーション・ページに2つのShowDetailFrameコンポーネントを配置したとします。1つ目のコンポーネントのスタイル関連プロパティを変更します。2つ目のスタイル関連プロパティは変更しません。この場合、スタイル関連プロパティの変更内容は、1つ目のインスタンスのみに影響を与えます。

コンポーネントの特定のインスタンスについて、設計時にプロパティ・インスペクタを介して入力したスタイル指定内容は、実行時にスキンまたはCSSを介して指定した対応するスタイル定義よりも優先されます。

詳細は、9.4項「プロパティ・インスペクタを介したスタイルの定義」を参照してください。

9.2 アプリケーションへのカスタム・スキンの適用

アプリケーションでカスタム・スキンを使用する手順は、次のとおりです。

この項では、これらの必要条件を満たす方法について説明します。この項の内容は、次のとおりです。

9.2.1 アプリケーション内でデフォルト・スキンを使用可能にする方法

Oracle ADF FacesのデフォルトのスキンであるOracle、MinimalおよびSimpleは、ADF Faces 10.1.3コンポーネント・ライブラリの一部です。スキンを適用するアプリケーションには、次のライブラリが含まれている必要があります。

  • ADF Facesコンポーネント

  • JSF Core

次のライブラリは必須ではありませんが、WebCenterアプリケーションに追加すると役に立ちます。

  • ADF Faces HTML

  • JSF HTML

この項では、アプリケーションにライブラリを含める方法と、ライブラリを使用するようにアプリケーションを構成する適切な方法を説明します。

アプリケーションにライブラリを含める手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、スキンを使用するプロジェクトをダブルクリックします。

    これにより、「プロジェクト・プロパティ」ダイアログ・ボックスが開きます。

  2. 「プロジェクト・プロパティ」ダイアログ・ボックスの左ペインで、「JSPタグ・ライブラリ」を選択します。

  3. ライブラリのリストの下の「追加」ボタンをクリックし、次のライブラリを選択します。

    • ADF Faces Components

    • ADF Faces HTML

    • JSF Core

    • JSF HTML

  4. 「OK」をクリックして、選択したライブラリを追加します。

  5. 次に、「配布済みライブラリ」の下にリストされている各ライブラリを選択し、「JSPビジュアル・エディタでのタグの実行」チェック・ボックスを選択します。

  6. 「OK」をクリックします。

9.2.2 カスタム・スキンをアプリケーションに追加する方法

カスタム・スキンをアプリケーションに追加するためのオプションは2つあります。

  • Oracle JDeveloper内でCascading Style Sheet(CSS)を作成します。これにより、CSSがプロジェクトのソース・ファイル内に適切に配置されます。

  • 外部で作成したCSSをプロジェクト・ルートに追加します。

この項では、両方のアプローチについて簡単に説明します。この項の内容は、次のとおりです。

9.2.2.1 Oracle JDeveloperでCSSを作成する方法

Oracle JDeveloperでCSSを作成する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、スキンを使用するアプリケーションに属するプロジェクト(またはプロジェクト内のファイル)を右クリックし、ポップアップ・メニューから「新規」を選択します。

  2. 「新規ギャラリ」での「カテゴリ」で、「Web Tier」を開き、「HTML」を選択します。

  3. 「新規ギャラリ」の「項目」で、「CSSファイル」を選択します。

  4. 「OK」をクリックします。

    これにより、Cascading Style Sheetの作成ウィザードが起動されます。

  5. 「ファイル名」フィールドに、CSSの名前を指定します。

  6. 「ディレクトリ名」フィールドに、CSSを格納するパスを指定します。

    パスを入力するか、デフォルトを受け入れるか、または「参照」をクリックしてCSSの格納場所にナビゲートします。いずれの方法を使用する場合も、CSSは必ずプロジェクト・ルートの下に配置してください。

  7. 「OK」をクリックして、CSSを作成します。

これで、CSSを「エディタ」ペインで開き、アプリケーション(具体的にはカスタマイズ可能コア・コンポーネント)に対してスタイルを定義できるようになります。カスタマイズ可能コア・コンポーネントのスタイル・セレクタの詳細は、9.3項「ポートレットおよびカスタマイズ可能コア・コンポーネントのスタイル・セレクタとアイコン・セレクタのスタイル定義の指定」を参照してください。

9.2.2.2 CSSをプロジェクト・ルートに追加する方法

Oracle JDeveloperのコンテキスト外でCSSを作成する場合は、CSSをOracle JDeveloperプロジェクト・ルートに移動またはコピーする必要があります。これによって、アプリケーションのデプロイ時に、確実にCSSが他のプロジェクト・リソース・ファイルとともにパッケージ化されます。

外部で作成したCSSをプロジェクト・ルートに追加する手順は、次のとおりです。

  1. コンピュータのファイル・システム内で、CSSをコピーします。

    必ず、参照されるイメージ・ファイルおよびその他の依存リソースをコピーに含めるか、移動するかして、CSSと参照先リソースの間のリンク整合性を維持してください。

  2. ファイル・システム内で、関連プロジェクト内の「Webコンテンツ」フォルダにナビゲートします。

    次に例を示します。

    <JDev_Home>
      jdev
        mywork
          <Application Name>
            <Project Name>
              Web Content
    
  3. CSSおよびその他のリソースをここに貼り付けるか移動します。または、ファイル・システム階層内のこのレベルまたはその下に、スキンおよびそのリソースを格納するための別のフォルダを作成します。

9.2.3 スキンを登録する方法

スキンを登録するには、adf-faces-skins.xmlという名前のファイルを作成し、スキンのID、ファミリ、場所などを示すタグの短いリストをこのファイルに移入します。この項では、adf-faces-skins.xmlファイルの作成および移入の方法について説明します。

adf-faces-skins.xmlファイルを作成する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、スキンを適用するアプリケーションに属するプロジェクト内の「WEB-INF」フォルダを右クリックし、ポップアップ・メニューから「新規」を選択します。

  2. 「新規ギャラリ」の「General」ノードで、「XML」を選択します。


    注意:

    「新規ギャラリ」の「General」ノードに「XML」オプションが表示されない場合は、「フィルタ方法」スコープを「すべてのテクノロジ」に拡張します。

  3. 右ペインで、「XML文書」を選択します。

  4. 「OK」をクリックします。

    これにより、XMLファイルの作成ダイアログ・ボックスが表示されます。

  5. 「ファイル名」フィールドに、ファイル名adf-faces-skins.xmlを入力します。

  6. 「ディレクトリ名」フィールドに、ファイルを格納する場所のパスを入力するか、デフォルトを受け入れます。

    ファイルはWEB-INFフォルダに格納する必要があります。

    オプションで、「参照」ボタンをクリックし、格納場所にナビゲートします。

  7. 「OK」をクリックして、ファイルを作成します。

    「エディタ」ペイン内に新しいファイルが開きます。

  8. 「エディタ」ペインで、スキンの登録に必要なタグを入力します。

    例9-2に、移入されたadf-faces-skins.xmlファイルを示します。

    例9-2 移入されたadf-faces-skins.xmlファイル

    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <skins xmlns="http://xmlns.oracle.com/adf/view/faces/skin">
      <skin>
        <id>mycompany.desktop</id>
        <family>mycompany</family>
        <render-kit-id>oracle.adf.desktop</render-kit-id>
        <style-sheet-name>skins/mycompany/myCompanySkin.css</style-sheet-name>
      </skin>
    </skins>
    

    表9-1に、このファイル内で使用するタグをリストして説明します。

  9. 作業を保存します。

表9-1 adf-faces-skins.xmlファイル内で使用されるタグ

タグ 説明

skins

このタグは、すべてのスキンの指定を開いて閉じます。skinsタグは次のように入力します。

<skins xmlns="http://xmlns.oracle.com/adf/view/faces/skin">
  <skin>[skin specification]</skin>
</skins>

skin

このタグは、特定のスキンの指定を開いて閉じます。登録する各スキンに、1つずつskinタグを入力します。条件によって異なるスキン(たとえば、デスクトップ・デプロイ用に1つと、PDAデプロイ用に1つ)を使用する場合は、複数のスキンを登録します。

id

Expression Language(EL)式内でスキンを参照するために使用します。たとえば、ロケールごとに異なるスキンを使用する場合は、IDに基づいて適切なスキンを選択するEL式を作成できます。

family

スキンが属するファミリを識別します。この値は、adf-faces-config.xmlファイル内でアプリケーションに対してスキンを指定するために使用されます。

render-kit-id

スキンに使用するレンダリング・キットを指定します。次のうち1つを入力してください。

  • oracle.adf.desktop: アプリケーションがデスクトップ上にレンダリングされると、自動的にスキンが使用されます。

  • oracle.adf.pda: アプリケーションがPDA上にレンダリングされると、自動的にスキンが使用されます。

style-sheet-name

カスタム・スキンまたはCSSファイルのパスを、プロジェクト・ルートからの相対パスで定義します。プロジェクトにスキンが取り込まれない場合は、このURLが適切に指定されていない可能性があります。

bundle-name

(オプション)コンポーネントにテキストを表示するために使用される、リソース・バンドルの完全修飾名。これについては、この章では説明していません。詳細は、Oracle JDeveloperのオンライン・ヘルプを参照してください。


9.2.4 特定のスキンを使用するようにアプリケーションを設定する方法

特定のスキンを使用するようにアプリケーションを設定するには、adf-faces-config.xmlファイル内でskin-family要素に値を指定します。

skin-family要素に値を指定する手順は、次のとおりです。

  1. プロジェクトのWEB-INFフォルダ内にあるadf-faces-config.xmlファイルを開きます。

  2. <skin-family>のデフォルト値を、使用するスキンのファミリ名か、スキンBeanを参照するExpression Language式で置き換えます。

    この値は、同じくWEB-INFフォルダ内にあるadf-faces-skins.xmlファイル内で<family>タグと</family>タグの間にあります。たとえば、adf-faces-skins.xml内のfamilyタグが次のようになっているとします。

    <family>mycompany</family>
    

    この場合、adf-faces-config.xmlファイル内で次のように入力します。

    <skin-family>mycompany</skin-family>
    

    または

    <skin-family>#{skinBean.currentSkin}</skin-family>
    

    注意:

    ADF Facesコンポーネント・ライブラリによって提供されたデフォルト・スキンのいずれかを指定する場所と方法も、これと同様です。デフォルト・スキンとは、Oracle、MinimalおよびSimpleスキンです。

    このファイル内で、<skin-family>は1つのみ入力できます。カスタム・スキンを参照する値を使用した場合、カスタム・スキンでスタイル設定されていないすべてのコンポーネント要素をスタイル設定するために、Simpleスキンが暗黙的に使用されます。

    <skin-family>値では、大/小文字は区別されません。


  3. 作業を保存します。

9.3 ポートレットおよびカスタマイズ可能コア・コンポーネントのスタイル・セレクタとアイコン・セレクタのスタイル定義の指定

Oracle WebCenter Suiteに付属のカスタマイズ可能コア・コンポーネント(PanelCustomizableおよびShowDetailFrame)の外観は、各自のスタイル・セレクタを使用して制御できます。この項では、カスタマイズ可能コア・コンポーネントに関連付けられているスタイル・セレクタをリストして説明し、その例を示します。また、backgroundプロパティを使用して、カスタマイズ可能コンポーネントの3つのスキン定義済外観から1つを選択する方法を示します。


注意:

ShowDetailFrameコンポーネントのスタイルを定義するだけでなく、ShowDetailFrameのスタイル・セレクタおよびアイコン・セレクタによってポートレットのスタイルも定義します。

スタイル・セレクタおよびアイコン・セレクタを使用するには、これらをCSSまたはスキンに追加し、必要なスタイル定義を行い、スキンをアプリケーションに追加します(9.2項「アプリケーションへのカスタム・スキンの適用」)。

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

9.3.1 カスタマイズ可能コア・コンポーネントのプロパティ・キー

プロパティ・キーは、カスタム・メニュー・アイテムおよびコンポーネント・アクション・アイコンの表示を制御する場合に使用します。プロパティ・キーをカスタム・スキン内に含めても、スキンに基づいて生成されるCSS内にこれらのキーは反映されません。

つまり、スキンからプロセスを経て、CSSが生成されます。生成されたCSSは、アプリケーションによって消費されます。生成されたCSS内には、カスタマイズ可能コンポーネントのほとんどのスタイル・セレクタが反映されています。ただし、プロパティ・キーは例外です。プロパティ・キーは、他のコンポーネント・スタイル・セレクタと同様にアプリケーションに影響を与えますが、最終的な生成済CSS内には反映されません。

表9-2に、カスタマイズ可能コア・コンポーネントに関連するプロパティ・キーをリストして説明します。

表9-2 カスタマイズ可能コア・コンポーネントのプロパティ・キー

プロパティ・キー 説明
showDetailFrame {-ora-additional-actions-position-last:true}

このプロパティ・キーは、コンポーネントの「処理」メニューの生成済アクションの前または後に追加アクションを配置します。

生成済アクションの前に追加アクションを配置する場合は、falseに設定します。デフォルトでは、生成済アクションの後に追加アクションが配置されます。

デフォルト値はtrueです。

showDetailFrame {-ora-menu-icon-display:false}

このプロパティ・キーは、showDetailFrameの「処理」メニューのコマンドの隣に、関連するアイコンを表示するかどうかを制御します。

「処理」メニューの各アクションの左側にアイコンを表示する場合は、trueに設定します。デフォルトでは、各アクションの左側にアイコンは表示されません。

デフォルト値はfalseです。

このプロパティ・キーがtrueに設定されているときに使用されるアイコンを指定する方法の詳細は、9.3.5項「カスタマイズ可能コア・コンポーネントのアイコン・セレクタ」を参照してください。

panelCustomizable {-ora-menu-icon-display:false}

このプロパティ・キーは、PanelCustomizableの「処理」メニューのコマンドの隣に、関連するアイコンを表示するかどうかを制御します。

「処理」メニューの各アクションの左側にアイコンを表示する場合は、trueに設定します。デフォルトでは、各アクションの左側にアイコンは表示されません。

デフォルト値はfalseです。

このプロパティ・キーがtrueに設定されているときに使用されるアイコンを指定する方法の詳細は、9.3.5項「カスタマイズ可能コア・コンポーネントのアイコン・セレクタ」を参照してください。


9.3.2 グローバル・スタイル・セレクタ

グローバル・スタイル・セレクタは、アプリケーション内の複数のコンポーネントのスタイルを定義する場合に使用します。表9-3に、Oracle WebCenter Suiteコンポーネントに関連するグローバル・スタイル・セレクタをリストして説明します。

図9-1に、グローバル・スタイル・セレクタによってスタイル設定される要素を示します。

図9-1 グローバル・スタイル・セレクタによってスタイル設定される要素

グローバル・スタイル・セレクタによってスタイル設定される要素
「図9-1 グローバル・スタイル・セレクタによってスタイル設定される要素」の説明

表9-3 グローバル・スタイル・セレクタ

スタイル・セレクタ 説明
.AFCUSTFrameComponentBorderBaseLight:alias
.AFCUSTFrameComponentBorderBaseMedium:alias
.AFCUSTFrameComponentBorderBaseDark:alias

.AFCUSTFrameComponentBorderBaseDark:alias
{
  border-style:solid;
  border-width:1px;
  border-color:#979991;
}

コンポーネントの左、右および下側の境界線のスタイルを設定します。上側の境界線は含まれません。

注意: light、mediumおよびdarkの説明は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。

.AFCUSTFrameComponentTopBorderBaseLight:alias
.AFCUSTFrameComponentTopBorderBaseMedium:alias
.AFCUSTFrameComponentTopBorderBaseDark:alias

.AFCUSTFrameComponentTopBorderBaseMedium:alias
{
  border-style:solid;
  border-width:1px;
  border-color:#979991;
}

コンポーネントの上側の境界線のスタイルを設定します。

注意: light、mediumおよびdarkの説明は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。

.AFCUSTFrameComponentHeaderBase:alias

.AFCUSTFrameComponentHeaderBase:alias
{
  color:#333333;
  vertical-align:top;
  font-size:11px;
  font-family:Tahoma;
  font-weight:bold;
  height:20px;
  border-style:none;
}

コンポーネントのヘッダー・テキストのスタイルを設定します。

注意: コンポーネント・ヘッダーの背景色のスタイルを設定するには、コンポーネントのheader-top-borderスタイル・セレクタを使用してください。

.AFCUSTFrameComponentContentBase:alias

.AFCUSTFrameComponentContentBase:alias
{
  color:#333333;
  vertical-align:top;
  font-size:11px;
  font-family:Tahoma;
  font-weight:bold;
  height:20px;
  border-style:none;
}

コンポーネント内のコンテンツのスタイルを設定します。この中のborder-styleは、コンポーネントを囲む境界線とは別の、内部のコンテンツ境界線に対して指定されています。

.AFCUSTFrameComponentMenuGroupBase:alias

.AFCUSTFrameComponentMenuGroupBase:alias
{
  font-family:Tahoma;
  color:#003366;
  font-size:11px;
}

コンポーネントのメイン・メニュー・コンテナのスタイルを設定します。

.AFCUSTFrameComponentMenuItemBase:alias

.AFCUSTFrameComponentMenuItemBase:alias
{
  font-family:Tahoma;
  color:#003366;
  font-size:11px;
}

メニュー・アイテムのスタイルを設定します。

.AFCUSTFrameComponentMenuSeparatorBase:alias

.AFCUSTFrameComponentMenuSeparatorBase:alias
{
  padding:0px 2px 0px 2px;
}

メニュー・アイテムのセパレータのスタイルを設定します。


9.3.3 ShowDetailFrameのスタイル・セレクタ

表9-4にリストされているスタイル・セレクタは、ShowDetailFrameおよびポートレット・コンポーネントのスキンを設定する場合に使用します。


注意:

WebCenterアプリケーションでは、各ポートレットはポートレット・クロムとともにレンダリングされます(14.2項「ポートレットの構造」を参照)。ポートレット・クロムは、ShowDetailFrameコンポーネントと同じクロム・レンダリング・メカニズムを共有します。このため、ShowDetailFrameに適用されるスタイル・セレクタおよびアイコン・セレクタがポートレット・クロムにも適用されます。つまり、ShowDetailFrameコンポーネントのスタイルを定義するだけでなく、ShowDetailFrameのスタイル・セレクタおよびアイコン・セレクタを使用して、ポートレットのスタイルを定義します。

表9-4では、一部のShowDetailFrameスタイル・セレクタにはカラー・スキーム・オプションとしてlight、mediumおよびdarkがあります。これらのオプションの詳細は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。

図9-2では、要素の大部分がShowDetailFrameスタイル・セレクタによってスタイル設定されています。この図には、ヘッダー・アイコンの周りの領域を設定する、サブメニュー・コンテナ、サブメニュー・アイテム、マウスを置いたときに表示されるメニュー・アイテムとサブメニュー・アイテム、およびアクション・アイコン・セパレータは示されていません。ShowDetailFrameでは、contentスタイル・セレクタ(af|showDetailFrame::content-[light,medium,dark])は、下側、左側および右側のコンポーネント境界線のスタイルを設定することに注意してください。これに対し、グローバル・スタイル・セレクタは、下側と左右の境界線を指定するセレクタと、上側の境界線のスタイル・セレクタを提供します。

図9-2 ShowDetailFrameのスタイル・セレクタによってスタイル設定される要素

showDetailFrameのスタイル・セレクタによってスタイル設定される大部分の要素
「図9-2 ShowDetailFrameのスタイル・セレクタによってスタイル設定される要素」の説明

表9-4 ShowDetailFrameのスタイル・セレクタ

スタイル・セレクタ 説明
af|showDetailFrame::header-top-border-light
af|showDetailFrame::header-top-border-medium
af|showDetailFrame::header-top-border-dark

af|showDetailFrame::header-top-border-medium
{
  border-top:1px #6699CC solid;
  border-bottom:1px #6699CC solid;
  background-color:#F7F7E7;
}

コンポーネント・ヘッダーの上下の境界線のスタイルと、ヘッダーの背景色を指定します。

af|showDetailFrame::header-light
af|showDetailFrame::header-medium
af|showDetailFrame::header-dark

af|showDetailFrame::header-medium
{
  color:#336699;
  font-family:Arial,Geneva,sans-serif;
  font-size:small;
  font-weight:bold;
  white-space:nowrap;
  vertical-align:middle;
  width:100%;
  position:relative
}

コンポーネントのヘッダーのテキストのスタイルを指定します。ヘッダーは通常、タイトルと、メニューや他のアクション・タイプへのリンクが含まれる、色付きのバナーです。

af|showDetailFrame::header-top-border-[light,medium,dark]スタイル要素を使用して、ヘッダーの背景色を定義します。アイコン・セレクタを使用して、コンポーネント・ヘッダー内に使用するアイコンと、ヘッダーの左側および右側の形状を指定します。

af|showDetailFrame::content-light
af|showDetailFrame::content-medium
af|showDetailFrame::content-dark

af|showDetailFrame::content-dark
{
  border-left:1px #6699CC solid;
  border-right:1px #515151 solid;
  border-bottom:1px #515151 solid;
  position:relative;
  width:100%
}

コンポーネントの左右および下側の境界線のスタイルを指定します。

af|showDetailFrame::main-menu-container

af|showDetailFrame::main-menu-container
{
  background:#FFFFFF;
  border-left:1px #969664 solid;
  border-right:1px #515151 solid;
  border-top:1px #969664 solid;
  border-bottom:1px #515151 solid;
  width:110px
}

コンポーネントのメイン・メニュー・コンテナのスタイルを指定します。

af|showDetailFrame::sub-menu-container

af|showDetailFrame::sub-menu-container
{
  background:#FFFFFF;
  border-left:1px #969664 solid;
  border-right:1px #515151 solid;
  border-top:1px #969664 solid;
  border-bottom:1px #515151 solid;
}

コンポーネントのサブメニュー・コンテナのスタイルを指定します。

A.af|showDetailFrame::menu-item

A.af|showDetailFrame::menu-item
{
  font-family:Arial,Geneva,sans-serif;   font-weight:normal;
  font-size:small;
  color:#000000;
  display:block;
  cursor:pointer;
  text-decoration:none;  white-space:nowrap;
  background:#FFFFFF;
  padding-top:4px;
  padding-bottom:3px;
  padding-left:5px;
  padding-right:5px;
  width:100%
}

コンポーネントのメイン・メニューの各アイテムのスタイルを指定します。

A:hover.af|showDetailFrame::menu-item

A:hover.af|showDetailFrame::menu-item
{
  background-color:#CCCC99
}

ユーザーがコンポーネントのメイン・メニュー・アイテムにマウス・ポインタを置いたときにレンダリングされるスタイルを指定します。

A.af|showDetailFrame::sub-menu-item

A.af|showDetailFrame::sub-menu-item
{
  font-family:Arial,Geneva,sans-serif;   font-weight:normal;
  font-size:small;
  color:#000000;
  display:block;
  cursor:pointer;
  text-decoration:none;  white-space:nowrap;
  background:#FFFFFF;
  padding-top:4px;
  padding-bottom:3px;
  padding-left:5px;
  padding-right:5px;
  width:100%
}

コンポーネントのサブメニューの各アイテムのスタイルを指定します。

A:hover.af|showDetailFrame::sub-menu-item

A:hover.af|showDetailFrame::sub-menu-item
{
  background-color:#CCCC99
}

ユーザーがコンポーネントのサブ・メニュー・アイテムにマウス・ポインタを置いたときにレンダリングされるスタイルを指定します。

af|showDetailFrame::actions-image-separator

af|showDetailFrame::actions-image-separator
{
  padding-right:5px;
  padding-top:1px;
  padding-bottom:1px
}

コンポーネントの「処理」、「最小化」および「リストア」アイコンの周りのパディングのサイズを指定します。

9.3.5項「カスタマイズ可能コア・コンポーネントのアイコン・セレクタ」も参照してください。

af|showDetailFrame::menu-item-separator

af|showDetailFrame::menu-item-separator
{
  border-top:1px solid #969664;
  border-bottom:1px solid #515151;
  margin:4px 2px
}

コンポーネントの「処理」メニューのコマンドまたはコマンド・グループを区切る線のスタイルを指定します。

デフォルトでは、セパレータは1本の太い線として表示されます。これを設定するには、border-topおよびborder-bottom要素を使用してセパレータのスタイルを設定します。カスタム・スキンを作成するユーザーは、これとは違う方法でセパレータのスタイルを設定できます。たとえば、ユーザーは、背景に色が付いた長方形バーとして表示されるセパレータを作成できます。

A.af|showDetailFrame::title-clickable

A.af|showDetailFrame::title-clickable
{
  font-family:Arial,Geneva,sans-serif;
  font-size:small;
  font-weight:bold;
  text-decoration:none;
  display:block;color:#336699;
  margin-left:5px
}

コンポーネントのタイトルがリンクになっているときに、そのタイトルに対してレンダリングされるスタイルを指定します。

af|showDetailFrame::no-header-content-light
af|showDetailFrame::no-header-content-medium
af|showDetailFrame::no-header-content-dark

af|showDetailFrame::no-header-content-medium
{
  border-left:1px #6699CC solid;
  border-right:1px #515151 solid;
  border-bottom:1px #515151 solid;
  border-top:1px #6699CC solid;
  position:relative;
  width:100%
}

コンポーネント・ヘッダーが無効になっているときに4つのコンポーネント境界線すべてに対してレンダリングされるスタイルを指定します。


9.3.4 PanelCustomizableのスタイル・セレクタ

表9-5にリストされているスタイル・セレクタは、PanelCustomizableコンポーネントのスキンを設定する場合に使用します。PanelCustomizableコンポーネントに関連するアイコン・セレクタについては、9.3.5項「カスタマイズ可能コア・コンポーネントのアイコン・セレクタ」を参照してください。

表9-5では、一部のスタイル・セレクタには3つのカラー・スキーム選択項目(light、mediumおよびdark)があることがわかります。これらの選択項目の詳細は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。

図9-3では、要素の大部分がPanelCustomizableスタイル・セレクタによってスタイル設定されています。この図には、サブメニュー・コンテナ、サブメニュー・アイテム、およびマウスを置いたときに表示されるメニュー・アイテムとサブメニュー・アイテムは示されていません。PanelCustomizableでは、contentスタイル・セレクタ(af|panelCustomizable::content-[light,medium,dark])は、下側、左側および右側のコンポーネント境界線のスタイルを設定することに注意してください。これに対し、グローバル・スタイル・セレクタは、下側と左右の境界線を指定するセレクタと、上側の境界線のスタイル・セレクタを提供します。

図9-3 PanelCustomizableのスタイル・セレクタによってスタイル設定される要素

panelCustomizableのスタイル・セレクタによってスタイル設定される大部分の要素
「図9-3 PanelCustomizableのスタイル・セレクタによってスタイル設定される要素」の説明

表9-5 PanelCustomizableのスタイル・セレクタ

スタイル・セレクタ 説明
af|panelCustomizable::header-top-border-light
af|panelCustomizable::header-top-border-medium
af|panelCustomizable::header-top-border-dark

af|panelCustomizable::header-top-border-medium
{
  border-top:1px #6699CC solid;
  border-bottom:1px #6699CC solid;
  background-color:#F7F7E7;
  background-image:url(/<path>/setJoin.gif);
}

コンポーネント・ヘッダーの上下の境界線のスタイルと、ヘッダーの背景色を指定します。

af|panelCustomizable::header-light
af|panelCustomizable::header-medium
af|panelCustomizable::header-dark

af|panelCustomizable::header-medium
{
  color:#336699;
  font-family:Arial,Geneva,sans-serif;
  font-size:small;
  font-weight:bold;
  white-space:nowrap;
  vertical-align:middle;
  width:100%;
  position:relative
}

コンポーネントのヘッダーのテキストのスタイルを指定します。ヘッダーは通常、タイトルと、メニューや他のアクション・タイプへのリンクが含まれる、色付きのバナーです。

af|panelCustomizable::header-top-border-[light,medium,dark]スタイル要素を使用して、ヘッダーの背景色を定義します。アイコン・セレクタを使用して、コンポーネント・ヘッダー内に使用するアイコンと、ヘッダーの左側および右側の形状を指定します。

af|panelCustomizable::content-light
af|panelCustomizable::content-medium
af|panelCustomizable::content-dark

af|panelCustomizable::content-light
{
  border-left:1px #6699CC solid;
  border-right:1px #515151 solid;
  border-bottom:1px #515151 solid;
  position:relative;
  width:100%
}

コンポーネントの左右および下側の境界線のスタイルを指定します。

af|panelCustomizable::main-menu-container

af|panelCustomizable::main-menu-container
{
  background:#FFFFFF;
  border-left:1px #969664 solid;
  border-right:1px #515151 solid;
  border-top:1px #969664 solid;
  border-bottom:1px #515151 solid;
  width:110px
}

コンポーネントのメイン・メニュー・コンテナのスタイルを指定します。

af|panelCustomizable::sub-menu-container

af|panelCustomizable::sub-menu-container
{
  background:#FFFFFF;
  border-left:1px #969664 solid;
  border-right:1px #515151 solid;
  border-top:1px #969664 solid;
  border-bottom:1px #515151 solid;
}

コンポーネントのサブメニュー・コンテナのスタイルを指定します。

A.af|panelCustomizable::menu-item

A.af|panelCustomizable::menu-item
{
  font-family:Arial,Geneva,sans-serif;   font-weight:normal;
  font-size:small;
  color:#000000;
  display:block;
  cursor:pointer;
  text-decoration:none;  white-space:nowrap;
  background:#FFFFFF;
  padding-top:4px;
  padding-bottom:3px;
  padding-left:5px;
  padding-right:5px;
  width:100%
}

コンポーネントのメイン・メニューの各アイテムのスタイルを指定します。

A:hover.af|panelCustomizable::menu-item

A:hover.af|panelCustomizable::menu-item
{
  background-color:#CCCC99
}

ユーザーがメイン・メニュー・アイテムにマウス・ポインタを置いたときにレンダリングされるスタイルを指定します。

A.af|panelCustomizable::sub-menu-item

A.af|panelCustomizable::sub-menu-item
{
  font-family:Arial,Geneva,sans-serif;   font-weight:normal;
  font-size:small;
  color:#000000;
  display:block;
  cursor:pointer;
  text-decoration:none;  white-space:nowrap;
  background:#FFFFFF;
  padding-top:4px;
  padding-bottom:3px;
  padding-left:5px;
  padding-right:5px;
  width:100%
}

サブメニューの各アイテムのスタイルを指定します。

A:hover.af|panelCustomizable::sub-menu-item

A:hover.af|panelCustomizable::sub-menu-item
{
  background-color:#CCCC99
}

ユーザーがサブ・メニュー・アイテムにマウス・ポインタを置いたときにレンダリングされるスタイルを指定します。

af|panelCustomizable::actions-image-separator

af|panelCustomizable::actions-image-separator
{
  padding-right:5px;
  padding-top:1px;
  padding-bottom:1px
}

コンポーネントの「処理」、「最小化」および「リストア」アイコンの周りのパディングのサイズを指定します。

9.3.5項「カスタマイズ可能コア・コンポーネントのアイコン・セレクタ」も参照してください。

af|panelCustomizable::menu-item-separator

af|panelCustomizable::menu-item-separator
{
  border-top:1px solid #969664;
  border-bottom:1px solid #515151;
  margin:4px 2px
}

コンポーネントの「処理」メニューのコマンドまたはコマンド・グループを区切る線のスタイルを指定します。

af|panelCustomizable::no-header-content

af|panelCustomizable::no-header-content
{
  border-left:1px #6699CC solid;
  border-right:1px #515151 solid;
  border-bottom:1px #515151 solid;
  border-top:1px #6699CC solid;
  position:relative;
  width:100%
}

コンポーネント・ヘッダーが無効になっているときに4つのコンポーネント境界線すべてに対してレンダリングされるスタイルを指定します。


9.3.5 カスタマイズ可能コア・コンポーネントのアイコン・セレクタ

表9-6に示すセレクタは、カスタマイズ可能コア・コンポーネントで使用されるアイコンに適用されます。アイコンが表示されるかどうかは、コンポーネントのora-menu-icon-displayプロパティ・キーがtruefalseのどちらに設定されているかで決まります。プロパティ・キーについては、9.3.1項「カスタマイズ可能コア・コンポーネントのプロパティ・キー」を参照してください。

各アイコン・セレクタには、light、mediumおよびdarkのスキームがあります。これらのカラー・スキームの詳細は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。

エラーなく簡単に移入するには、すべてのアプリケーションをWebCenterアプリケーションのルート・フォルダの下に格納してください。


注意:

WebCenterアプリケーションでは、各ポートレットはポートレット・クロムとともにレンダリングされます(14.2項「ポートレットの構造」を参照)。ポートレット・クロムは、ShowDetailFrameコンポーネントと同じポートレット・クロム・レンダリング・メカニズムを共有します。このため、ShowDetailFrameに適用されるスタイル・セレクタおよびアイコン・セレクタがポートレット・クロムにも適用されます。つまり、ShowDetailFrameコンポーネントのスタイルを定義するだけでなく、ShowDetailFrameのスタイル・セレクタおよびアイコン・セレクタを使用して、ポートレットのスタイルを定義します。

表9-6 カスタマイズ可能コア・コンポーネントのアイコン・セレクタ

セレクタ 説明

showDetailFrame

showDetailFrame::light-ActionsIcon:alias
showDetailFrame::medium-ActionsIcon:alias
showDetailFrame::dark-ActionsIcon:alias

showDetailFrame::light-ActionsIcon:alias
{
  content:url(/css/images/action.gif)
}

panelCustomizable

panelCustomizable::light-ActionsIcon:alias
panelCustomizable::medium-ActionsIcon:alias
panelCustomizable::dark-ActionsIcon:alias

panelCustomizable::dark-ActionsIcon:alias
{
  content:url(/css/images/action.gif)
}

このアイコンは、「処理」メニューを表します。「処理」メニューには、ユーザーがコンポーネントに対して実行できるアクションがリストされます。

WebCenterアプリケーションでは、「処理」アイコンは、コンポーネント・ヘッダーの右隅にレンダリングされます。

showDetailFrame

showDetailFrame::light-MinimizeIcon:alias
showDetailFrame::medium-MinimizeIcon:alias
showDetailFrame::dark-MinimizeIcon:alias

showDetailFrame::light-MinimizeIcon:alias
{
  content:url(/css/images/minimize.gif)
}

panelCustomizable

panelCustomizable::light-MinimizeIcon:alias
panelCustomizable::medium-MinimizeIcon:alias
panelCustomizable::dark-MinimizeIcon:alias

panelCustomizable::medium-MinimizeIcon:alias
{
  content:url(/css/images/minimize.gif)
}

このアイコンは、「最小化」オプションを表します。「最小化」を選択すると、コンポーネントのビューがウィンドウの陰影のように閉じます。

WebCenterアプリケーションでは、「最小化」アイコンは、コンポーネント・ヘッダーの左側にレンダリングされます。

showDetailFrame::light-ExpandIcon:alias」も参照してください。

showDetailFrame::light-MaximizeIcon:alias
showDetailFrame::medium-MaximizeIcon:alias
showDetailFrame::dark-MaximizeIcon:alias

showDetailFrame::medium-MaximizeIcon:alias
{
  content:url(/css/images/maximize.gif)
}

このアイコンは、ShowDetailFrameコンポーネントをその外側のPanelCustomizableコンポーネントのディメンションに拡大する、「最大化」オプションを表します。同じコンテナ内の複数のShowDetailFrameコンポーネントが表示されている場合は、ShowDetailFrameが最大化されている間、これらのコンポーネントは別の場所に移動されます。

WebCenterアプリケーションでは、「最大化」アイコンは、コンポーネントの「処理」メニューの「最大化」コマンドの左側に表示されます。

panelCustomizable::light-MaximizeIcon:alias
panelCustomizable::medium-MaximizeIcon:alias
panelCustomizable::dark-MaximizeIcon:alias

panelCustomizable::dark-MaximizeIcon:alias
{
  content:url(/css/images/maximize.gif)
}

このアイコンは、コンポーネント表示をコンテナのディメンションに拡大する「最大化」オプションを表します。同じコンテナ内の複数のコンポーネントが表示されている場合は、コンポーネントを最大化すると、他のコンポーネントは別の場所に移動されます。

WebCenterアプリケーションでは、「最大化」アイコンは、コンポーネントの「処理」メニューの「最大化」コマンドの左側に表示されます。

showDetailFrame

showDetailFrame::light-RestoreIcon:alias
showDetailFrame::medium-RestoreIcon:alias
showDetailFrame::dark-RestoreIcon:alias

showDetailFrame::medium-RestoreIcon:alias
{
  content:url(/css/images/restore.gif)
}

panelCustomizable

panelCustomizable::light-RestoreIcon:alias
panelCustomizable::medium-RestoreIcon:alias
panelCustomizable::dark-RestoreIcon:alias

panelCustomizable::dark-RestoreIcon:alias
{
  content:url(/css/images/restore.gif)
}

このアイコンは、最大化されたビューをデフォルトの表示モードに戻す「リストア」オプションを表します。

WebCenterアプリケーションでは、「リストア」アイコンは、コンポーネントの「処理」メニューの「リストア」コマンドの左側にレンダリングされます。

showDetailFrame

showDetailFrame::light-ExpandIcon:alias
showDetailFrame::medium-ExpandIcon:alias
showDetailFrame::dark-ExpandIcon:alias

showDetailFrame::medium-ExpandIcon:alias
{
  content:url(/css/images/expand.gif)
}

panelCustomizable

panelCustomizable::light-ExpandIcon:alias
panelCustomizable::medium-ExpandIcon:alias
panelCustomizable::dark-ExpandIcon:alias

panelCustomizable::dark-ExpandIcon:alias
{
  content:url(/css/images/expand.gif)
}

「開く」アイコンは、最小化されているコンポーネントを開くアクションを表します。「開く」アイコンは、「最小化」アイコンと切り替わります。つまり、コンポーネントが最小化されている場合は「開く」アイコンが表示され、コンポーネントが開かれている場合は「最小化」アイコンが表示されます。

WebCenterアプリケーションでは、「開く」アイコンは、コンポーネント・ヘッダーの左側に表示されます。

showDetailFrame

showDetailFrame::light-MoveIcon:alias
showDetailFrame::medium-MoveIcon:alias
showDetailFrame::dark-MoveIcon:alias

showDetailFrame::light-MoveIcon:alias
{
  content:url(/css/images/move.gif)
}

panelCustomizable

panelCustomizable::light-MoveIcon:alias
panelCustomizable::medium-MoveIcon:alias
panelCustomizable::dark-MoveIcon:alias

af|panelCustomizable::dark-MoveIcon:alias
{
  content:url(/css/images/move.gif)
}

このアイコンは、ページ上の他のコンポーネントからの相対的なコンポーネント位置を変更できる、「移動」オプションを表します。

WebCenterアプリケーションでは、「移動」アイコンは、コンポーネントの「処理」メニューの「移動」コマンドの左側に表示されます。

showDetailFrame

showDetailFrame::light-MoveLeftIcon:alias
showDetailFrame::medium-MoveLeftIcon:alias
showDetailFrame::dark-MoveLeftIcon:alias

showDetailFrame::dark-MoveLeftIcon:alias
{
  content:url(/css/images/left.gif)
}

panelCustomizable

panelCustomizable::light-MoveLeftIcon:alias
panelCustomizable::medium-MoveLeftIcon:alias
panelCustomizable::dark-MoveLeftIcon:alias

panelCustomizable::light-MoveLeftIcon:alias
{
  content:url(/css/images/left.gif)
}

このアイコンは、コンポーネント・サブメニューの「左へ移動」オプションを表します。「左へ移動」を選択すると、コンポーネントがページの左境界線に向かって水平に1ポジション移動します。たとえば、水平に並んだ3つのコンポーネントがあるとします。一番右のコンポーネントに対して「左へ移動」を選択します。すると、このコンポーネントが中央のコンポーネントになります。

WebCenterアプリケーションでは、「左へ移動」アイコンは、コンポーネントの「処理」メニューの「左へ移動」サブメニュー・アイテムの左側に表示されます。

showDetailFrame

showDetailFrame::light-MoveRightIcon:alias
showDetailFrame::medium-MoveRightIcon:alias
showDetailFrame::dark-MoveRightIcon:alias

showDetailFrame::medium-MoveRightIcon:alias
{
  content:url(/css/images/right.gif)
}

panelCustomizable

panelCustomizable::light-MoveRightIcon:alias
panelCustomizable::medium-MoveRightIcon:alias
panelCustomizable::dark-MoveRightIcon:alias

panelCustomizable::medium-MoveRightIcon:alias
{
  content:url(/css/images/right.gif)
}

このアイコンは、コンポーネント・サブメニューの「右へ移動」オプションを表します。「右へ移動」を選択すると、コンポーネントがページの右境界線に向かって水平に1ポジション移動します。たとえば、水平に並んだ3つのコンポーネントがあるとします。一番左のコンポーネントに対して「右へ移動」を選択します。すると、このコンポーネントが中央のコンポーネントになります。

WebCenterアプリケーションでは、「右へ移動」アイコンは、コンポーネントの「処理」メニューの「右へ移動」サブメニュー・アイテムの左側に表示されます。

showDetailFrame

showDetailFrame::light-MoveUpIcon:alias
showDetailFrame::medium-MoveUpIcon:alias
showDetailFrame::dark-MoveUpIcon:alias

showDetailFrame::light-MoveUpIcon:alias
{
  content:url(/css/images/up.gif)
}

panelCustomizable

panelCustomizable::light-MoveUpIcon:alias
panelCustomizable::medium-MoveUpIcon:alias
panelCustomizable::dark-MoveUpIcon:alias

panelCustomizable::medium-MoveUpIcon:alias
{
  content:url(/css/images/up.gif)
}

このアイコンは、コンポーネント・サブメニューの「上へ移動」オプションを表します。「上へ移動」を選択すると、ページ上の他のコンポーネントからの相対的なコンポーネント位置が垂直に移動します。たとえば、垂直に並んだ3つのコンポーネントがあるとします。中央のコンポーネントに対して「上へ移動」を選択します。すると、このコンポーネントが一番上のコンポーネントになります。

WebCenterアプリケーションでは、「上へ移動」アイコンは、コンポーネントの「処理」メニューの「上へ移動」サブメニュー・アイテムの左側に表示されます。

showDetailFrame

showDetailFrame::light-MoveDownIcon:alias
showDetailFrame::medium-MoveDownIcon:alias
showDetailFrame::dark-MoveDownIcon:alias

showDetailFrame::dark-MoveDownIcon:alias
{
  content:url(/css/images/down.gif)
}

panelCustomizable

panelCustomizable::light-MoveDownIcon:alias
panelCustomizable::medium-MoveDownIcon:alias
panelCustomizable::dark-MoveDownIcon:alias

panelCustomizable::medium-MoveDownIcon:alias
{
  content:url(/css/images/down.gif)
}

このアイコンは、コンポーネント・サブメニューの「下へ移動」オプションを表します。「下へ移動」を選択すると、ページ上の他のコンポーネントからの相対的なコンポーネント位置が垂直に移動します。たとえば、垂直に並んだ3つのコンポーネントがあるとします。中央のコンポーネントに対して「下へ移動」を選択します。すると、このコンポーネントが一番下のコンポーネントになります。

WebCenterアプリケーションでは、「下へ移動」アイコンは、コンポーネントの「処理」メニューの「下へ移動」サブメニュー・アイテムの左側に表示されます。

showDetailFrame

showDetailFrame::light-HeaderLeftIcon:alias
showDetailFrame::medium-HeaderLeftIcon:alias
showDetailFrame::dark-HeaderLeftIcon:alias

showDetailFrame::light-HeaderLeftIcon:alias
{
  content:url(/css/images/headerleft.gif)
}

panelCustomizable

panelCustomizable::light-HeaderLeftIcon:alias
panelCustomizable::medium-HeaderLeftIcon:alias
panelCustomizable::dark-HeaderLeftIcon:alias

panelCustomizable::medium-HeaderLeftIcon:alias
{
  content:url(/css/images/headerleft.gif)
}

このアイコンは、コンポーネント・ヘッダーの左上隅にイメージを提供します。

showDetailFrame

showDetailFrame::light-HeaderRightIcon:alias
showDetailFrame::medium-HeaderRightIcon:alias
showDetailFrame::dark-HeaderRightIcon:alias

showDetailFrame::light-HeaderRightIcon:alias
{
  content:url(/css/images/headerright.gif)
}

panelCustomizable

panelCustomizable::light-HeaderRightIcon:alias
panelCustomizable::medium-HeaderRightIcon:alias
panelCustomizable::dark-HeaderRightIcon:alias

panelCustomizable::medium-HeaderRightIcon:alias
{
  content:url(/css/images/headerright.gif)
}

このアイコンは、コンポーネント・ヘッダーの右上隅にイメージを提供します。

showDetailFrame

showDetailFrame::light-ToolbarLeftIcon:alias
showDetailFrame::medium-ToolbarLeftIcon:alias
showDetailFrame::dark-ToolbarLeftIcon:alias

showDetailFrame::dark-ToolbarLeftIcon:alias
{
  content:url(/css/images/toolbarleft.gif)
}

panelCustomizable

panelCustomizable::light-ToolbarLeftIcon:alias
panelCustomizable::medium-ToolbarLeftIcon:alias
panelCustomizable::dark-ToolbarLeftIcon:alias

panelCustomizable::light-ToolbarLeftIcon:alias
{
  content:url(/css/images/toolbarleft.gif)
}

このアイコンは、コンポーネントのフェードイン/フェードアウト・ツールバーの左部分を提供します。

フェードイン/フェードアウト・ツールバーは、adfp:portletタグ属性isSeededInteractionAvailabletrueに設定され、displayHeaderfalseに設定されている場合に再生されます。

このツールバーには、本来はヘッダーに表示される「処理」メニューが含まれています。このツールバーを起動するには、ユーザーがコンポーネント・コンテンツ領域にマウスを置きます。

ページ設計が非常に単純であると、displayHeaderfalseに、isSeededInteractionAvailabletrueに設定されていても、フェードイン/フェードアウト・ツールバーが表示されないこともあります。

showDetailFrame

showDetailFrame::light-ToolbarRightIcon:alias
showDetailFrame::medium-ToolbarRightIcon:alias
showDetailFrame::dark-ToolbarRightIcon:alias

showDetailFrame::medium-ToolbarRightIcon:alias
{
  content:url(/css/images/toolbarright.gif)
}

panelCustomizable

panelCustomizable::light-ToolbarRightIcon:alias
panelCustomizable::medium-ToolbarRightIcon:alias
panelCustomizable::dark-ToolbarRightIcon:alias

panelCustomizable::dark-ToolbarRightIcon:alias
{
  content:url(/css/images/toolbarright.gif)
}

このアイコンは、コンポーネントのフェードイン/フェードアウト・ツールバーの右部分を提供します。

フェードイン/フェードアウト・ツールバーの詳細は、showDetailFrame::light-ToolbarLeftIcon:aliasの説明を参照してください。

showDetailFrame

showDetailFrame::light-ToolbarCenterIcon:alias
showDetailFrame::medium-ToolbarCenterIcon:alias
showDetailFrame::dark-ToolbarCenterIcon:alias

showDetailFrame::medium-ToolbarCenterIcon:alias
{
  content:url(/css/images/toolbarcenter.gif)
}

panelCustomizable

panelCustomizable::light-ToolbarCenterIcon:alias
panelCustomizable::medium-ToolbarCenterIcon:alias
panelCustomizable::dark-ToolbarCenterIcon:alias

panelCustomizable::dark-ToolbarCenterIcon:alias
{
  content:url(/css/images/toolbarcenter.gif)
}

このアイコンは、コンポーネントのフェードイン/フェードアウト・ツールバーの中央部分を提供します。

フェードイン/フェードアウト・ツールバーの詳細は、showDetailFrame::light-ToolbarLeftIcon:aliasの説明を参照してください。

showDetailFrame

showDetailFrame::light-EditIcon:alias
showDetailFrame::medium-EditIcon:alias
showDetailFrame::dark-EditIcon:alias

showDetailFrame::dark-EditIcon:alias
{
  content:url(/css/images/edit.gif)
}

panelCustomizable

panelCustomizable::light-EditIcon:alias
panelCustomizable::medium-EditIcon:alias
panelCustomizable::dark-EditIcon:alias

panelCustomizable::light-EditIcon:alias
{
  content:url(/css/images/edit.gif)
}

このアイコンは、コンポーネント・メニューの「編集」オプションを表します。WebCenterアプリケーションでは、「編集」アイコンは、コンポーネントの「処理」メニューの「編集」メニュー・アイテムの左側に表示されます。

showDetailFrame

showDetailFrame::light-HelpIcon:alias
showDetailFrame::medium-HelpIcon:alias
showDetailFrame::dark-HelpIcon:alias

showDetailFrame::dark-HelpIcon:alias
{
  content:url(/css/images/help.gif)
}

panelCustomizable

panelCustomizable::light-HelpIcon:alias
panelCustomizable::medium-HelpIcon:alias
panelCustomizable::dark-HelpIcon:alias

panelCustomizable::light-HelpIcon:alias
{
  content:url(/css/images/help.gif)
}

このアイコンは、コンポーネント・メニューの「ヘルプ」オプションを表します。WebCenterアプリケーションでは、「ヘルプ」アイコンは、コンポーネントの「処理」メニューの「ヘルプ」メニュー・アイテムの左側に表示されます。


9.3.6 ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用

CSSまたはスキン内に3つの固有の外観を定義し、Oracle JDeveloperのプロパティ・インスペクタのbackgroundプロパティを介して、使用するいずれかの外観を指定できます。


注意:

ShowDetailFrameコンポーネントのスタイルを定義するだけでなく、ShowDetailFrameのスタイル・セレクタおよびアイコン・セレクタを使用して、ポートレットのスタイルを定義します。

ポートレット、PanelCustomizableおよびShowDetailFrameコンポーネントには、backgroundプロパティが含まれます。このプロパティには、light、mediumまたはdarkの値を選択できます。デフォルト・スキン(Oracle、MinimalおよびSimple)には、3バージョンのスタイル・セレクタ(lightバージョン、mediumバージョンおよびdarkバージョン)が含まれます。コンポーネントまたはポートレット・インスタンスのbackgroundプロパティに指定された値に応じて、スキンは関連するスタイルまたはアイコン・セレクタ・バージョンを適用します。

同じ原則が、カスタム・スキンに対しても適用されます。たとえば、カスタム・スキンを作成し、af|showDetailFrame::header-top-borderスタイル・セレクタのlight、mediumおよびdarkバージョンを定義したとします。

af|showDetailFrame::header-top-border-light
af|showDetailFrame::header-top-border-medium
af|showDetailFrame::header-top-border-dark

アプリケーション・ページに3つのポートレットがあるとします。1つ目のポートレットのbackgroundプロパティの値としてlightを、2つ目のポートレットのbackgroundプロパティにmediumを、3つ目のポートレットのbackgroundプロパティにdarkを選択します。この場合、実行時に、スキンは次の方法でスタイル定義を適用します。

  • 1つ目のポートレットにaf|showDetailFrame::header-top-border-lightを適用します。

  • 2つ目のポートレットにaf|showDetailFrame::header-top-border-mediumを適用します。

  • 3つ目のポートレットにaf|showDetailFrame::header-top-border-darkを適用します。

light、mediumおよびdarkという語は、明るさや暗さという観点で必ずしも意味を持つものではありません。各バージョン(light、mediumおよびdark)は、固有の色を使用して定義できます。たとえば、特定のスタイル・セレクタについて、lightバージョンは緑を使用して、mediumバージョンは赤を使用して、darkバージョンは黄色を使用して定義できます。light、mediumおよびdarkという語は、単に区別するためのものです。

3つのスタイル・オプションをサポートしているセレクタに対してこれらのオプションを使用してCSSまたはスキンを使用し、コンポーネントのbackgroundプロパティを設定して、特定のインスタンスに適用するオプションを指定します。

9.3.7 Oracle ADF Facesスキン・リソースに関する必要な知識

Oracle Technology Networkは、Oracle ADF Facesコンポーネントのスキニングに使用できるセレクタに関する有用な情報源を提供しています。次の記事に、Oracle ADF Facesを介して提供されるスタイル・セレクタの多くがリストされ、説明されています。

http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/skin-selectors.html

注意:

カスタマイズ可能コア・コンポーネントのPanelCustomizableおよびShowDetailFrameは、このリリースで初めて導入されたものであり、Oracle JDeveloperのWebCenter Suite拡張要素に固有のコンポーネントなので、この記事には記載されていません。

「Developing and Using Oracle ADF Faces Skins」という記事には、OracleMinimalおよびSimpleスキンが含まれるWARファイルへのリンクがあり、これらのスキンをサンプル・ページに適用するプロセスが順に示されています。この記事には、例を実際に活用しながら、WARファイルからアプリケーションを作成する方法を説明しています。この記事は、次のURLにあります。

http://www.oracle.com/technology/products/jdev/101/howtos/adfskins

注意:

Internet Explorerを使用してWARファイルをダウンロードするには、次のサイトにアクセスしてください。
http://www.oracle.com/technology/products/jdev/101/howtos/adfskins/index.html

「adffaces-skin.war」リンクを右クリックし、ポップアップ・メニューから「対象をファイルに保存」を選択します。ファイル拡張子をxmlからwarに変更します。そうしない場合、Internet ExplorerはWARファイルをダウンロードできません。


9.4 プロパティ・インスペクタを介したスタイルの定義

ポートレットおよびカスタマイズ可能コア・コンポーネントのルック・アンド・フィールは、スタイル関連プロパティInlineStyleContentInlineStyleおよびStyleClassを変更することによって上書きできます。Oracle JDeveloperのプロパティ・インスペクタを介して指定したスタイルは、アプリケーションのスキンまたはスタイルシート(CSS)内に指定されている対応するスタイルを上書きします。また、ポートレットまたはコンポーネント・インスタンスに設定されているプロパティは、ポートレットまたはコンポーネントのそのインスタンスのみに影響します。アプリケーション内のその他のポートレットまたはコンポーネント・インスタンスは、影響を受けません。


注意:

backgroundプロパティは、ポートレットおよびカスタマイズ可能コア・コンポーネントのルック・アンド・フィールを調整する際にも便利です。InlineStyleContentInlineStyleおよびStyleClassプロパティとは異なり、backgroundプロパティはスキンまたはCSSと関連して機能します。backgroundプロパティの詳細は、9.3.6項「ポートレットおよびカスタマイズ可能コア・コンポーネントへのカラー・スキームの適用」を参照してください。

この項では、スタイル関連プロパティとその使用方法について説明します。この項の内容は、次のとおりです。

9.4.1 スタイル関連プロパティの概要

スタイル関連プロパティを使用する前に、スタイル関連プロパティについてよく理解しておく必要があります。この項では、いくつかのスタイル関連プロパティを比較し、それらの使用例を示します。この項の内容は、次のとおりです。

9.4.1.1 ContentInlineStyleおよびInlineStyleプロパティの概要

スタイル・プロパティのInlineStyleContentInlineStyleは、サポートする属性のタイプが類似しています。これらのプロパティの違いは、影響の範囲です。InlineStyleがコンポーネント全体のスタイル情報を提供するのに対し、ContentInlineStyleはコンポーネント・コンテンツのみのスタイル情報を提供します。

たとえば、InlineStyleプロパティを使用してbackground-color属性を設定した場合、コンポーネントとそのコンテンツが、指定した色で設定されます。しかし、ContentInlineStyleプロパティに別の背景色を設定した場合、コンポーネント・ヘッダーはInlineStyleの色でスタイル設定されますが、コンポーネント・コンテンツはContentInlineStyleの色でスタイル設定されます。

つまり、コンポーネント・コンテンツについては、ContentInlineStyleに指定した値が、InlineStyleに指定した値よりも優先されます。また、コンポーネント・インスタンスについては、ContentInlineStyleが、親コンポーネント(PanelCustomizableコンポーネント内にネストされたポートレットなど)のInlineStyle値とContentInlineStyle値のいずれにも優先されます。

例9-3に示すように、ContentInlineStyleを使用してポートレットの境界線を無効化できます(InlineStyleではできません)。

例9-3 ポートレット境界線の無効化

border-style:none; /*in the Property Inspector*/
contentInlineStyle="border-style:none;" /*in the adfp:portlet tag*/

プロパティ・インスペクタでは、InlineStyleによって、値を指定できるスタイル属性のリストが提供されます。ContentInlineStyleでは、この属性リストは提供されません。ContentInlineStyleInlineStyleのいずれでも、スタイル属性の手動入力がサポートされています。これには、プロパティ・インスペクタでリストされた属性スコープ外の属性が含まれます(これらの属性が少なくともCSS 2.0に準拠している場合)。図9-4では、プロパティ・インスペクタでスタイル関連プロパティが追加されています。

図9-4 プロパティ・インスペクタでのContentInlineStyleおよびInlineStyleのスタイルの定義

ContentInlineStyleおよびInlineStyleのスタイルの定義
「図9-4 プロパティ・インスペクタでのContentInlineStyleおよびInlineStyleのスタイルの定義」の説明

例9-4に、adfp:portletタグ内でのこのような属性の書式を示します。

例9-4 adfp:portletタグ内でのスタイルの指定

<adfp:portlet value="#{bindings.RichTextPortlet1_1}"
 portletType="/oracle/adf/portlet/RTPWSRP2_1157051886703/ap/E0default_65adffff_
    010d_1000_800c_8d9049ad9bf7"
  inlineStyle="border-color:rgb(0,0,0); border-style:dotted;"
  contentInlineStyle="background-color:rgb(0,255,255);
    background-repeat:repeat;"/>

9.4.1.2 ELおよびInlineStyleプロパティに関する必要な知識

InlineStyleにExpression Language(EL)式を使用して、インライン・スタイル属性を条件付きで設定することもできます。例9-5に、1つのアプローチを示します。

例9-5 ELを使用したインライン・スタイル属性の条件付き設定

<af:outputText value="#{row.assignedDate eq
null?res['srsearch.highlightUnassigned']:row.assignedDate}"
      binding="#{backing_SRSearch.outputText6}"
      id="outputText6"
      inlineStyle="#{row.assignedDate eq null?'color:red;':''}">

9.4.1.3 StyleClassプロパティの概要

StyleClassプロパティは、スキンまたはCSS内に指定されたスタイルを上書きする手段と、無関係なスタイル・クラスをコンポーネントに適用する方法を提供します。たとえば、StyleClassプロパティを使用すると、PanelCustomizableスタイル・クラスをShowDetailFrameコンポーネントに適用できます。

StyleClassプロパティを使用してスキンのスタイルを上書きすることは、アクセシビリティのガイドラインに準拠しながら、スタイル・プロパティを使用してルック・アンド・フィールを操作するための1つの方法です。InlineStyleContentInlineStyleは、ガイドラインに準拠しているとはみなされません。

スタイル・クラスは、スタイル・セレクタとは異なる方法で表されます。スタイル・セレクタがプロパティ・インスペクタでスタイル・クラスとして表示されるとき、またはソース・コード・タグ内に表示されるとき、スタイル・セレクタ内のパイプ(|)およびダブルコロン(::)はアンダースコアに置き換えられます。

スキン内では、スタイル・セレクタは例9-6のように記述できます。

例9-6 スキン内に記述されたスタイル・セレクタ

af|panelCustomizable::no-header-content

コンポーネント・タグ内では、同じスタイル・セレクタがスタイル・クラスとして例9-7のように表されます。

例9-7 ソース・コード内でスタイル・クラスとして記述されたスタイル・セレクタ

<cust:showDetailFrame id="showDetailFrame1"
    text="showDetailFrame 1"
    binding="#{backing_untitled1.showDetailFrame1}"
    styleClass="af_panelCustomizable_no-headercontent">

プロパティ・インスペクタでは、これは例9-8に示すように表されます。

例9-8 プロパティ・インスペクタでスタイル・クラスとして記述されたスタイル・セレクタ

af_panelCustomizable_no-headercontent

注意:

アイコン・セレクタは、スタイル・クラスとして使用されません。カスタマイズ可能コア・コンポーネントのスタイル・セレクタのリストは、9.3項「ポートレットおよびカスタマイズ可能コア・コンポーネントのスタイル・セレクタとアイコン・セレクタのスタイル定義の指定」を参照してください。

また、StyleClassプロパティを使用すると、複数のスタイル・クラスを入力できます。各スタイル・クラスは空白で区切ります。スタイル・クラスの入力は、手動で(つまりソース・コード内で)行うことも、プロパティ・インスペクタを使用することもできます。

プロパティ・インスペクタには、コンポーネントに適用するスタイル・クラスのリストを入力および並べ替えるための「styleClass」ダイアログ・ボックスが備わっています。このダイアログ・ボックスにアクセスするには、プロパティ・インスペクタでStyleClassプロパティの隣の「編集」アイコンをクリックします。

9.4.2 スタイル関連プロパティの変更

プロパティ値を変更するには、Oracle JDeveloperのプロパティ・インスペクタを使用します。

ポートレットまたはカスタマイズ可能コア・コンポーネントのスタイル・プロパティを指定する手順は、次のとおりです。

  1. Oracle JDeveloperで、ポートレットまたは1つ以上のカスタマイズ可能コア・コンポーネント(PanelCustomizableまたはShowDetailFrame)が含まれるページを開きます。

  2. Oracle JDeveloperエディタで、スタイル設定するコンポーネントを選択します。

    プロパティ・インスペクタに、コンポーネント関連のプロパティが移入されます。「プロパティ・インスペクタ」タブをダブルクリックすると、編集しやすいように表示サイズが最大化されます。再びダブルクリックすると、プロパティ・インスペクタが通常の表示サイズに戻ります。

  3. プロパティ・インスペクタで、ContentInlineStyleInlineStyleおよびStyleClassプロパティに対して必要な値を指定します。


    注意:

    プロパティ・インスペクタには、すべての有効なCSS属性がリストされるわけではありません。たとえば、ShowDetailFrameの幅を設定しようとしても、プロパティ・インスペクタのInlineStyleの下にWidth属性は表示されていません。この場合、属性が少なくともCSS 2.0に準拠していれば、「ソース」タブに移動して、コンポーネント・タグにスタイル属性を入力できます。

  4. 属性の値列内をクリックし、次のようにして必要な値に変更します。

    • InlineStyleプロパティには、これらの値が適切な構文で自動的に移入されます。

    • ContentInlineStyleプロパティには、手動でスタイル値を設定します。

    • StyleClassプロパティに対しては、次のようにします。

      「StyleClass」の隣の列をクリックし、「編集」アイコン(...)をクリックして「styleClass」ダイアログ・ボックスを表示します。

      「styleClass」ダイアログ・ボックスで、「新規」をクリックして、スタイル・クラスのリストに新しいスケルトン・アイテムを追加します。

      スケルトン・アイテムをクリックして、スタイル・クラスを入力します。

      「styleClass」ダイアログ・ボックスの「リスト」ヘッダーの下に、ページ・コンポーネントにすでに適用されているスタイル・クラスが(選択可能な状態で)リストされます。

  5. 作業を保存します。

スタイル関連プロパティに関連付けられた属性の詳細は、9.4.3項「ContentInlineStyleおよびInlineStyleプロパティの属性」を参照してください。

9.4.3 ContentInlineStyleおよびInlineStyleプロパティの属性

特定のコンポーネント・インスタンスの実行時CSSスタイル定義を上書きするには、設計時に、プロパティ・インスペクタで選択可能なスタイル関連プロパティを使用します。この方法の詳細は、9.4.2項「スタイル関連プロパティの変更」を参照してください。

プロパティ・インスペクタでは、InLineStyleプロパティによって、コンポーネントのスタイルを設定するための属性のサブリストが提供されます。これらのサブリスト属性の1つに値を指定すると、InlineStyleプロパティに(属性名を含む)適切な構文が移入されます。たとえば、font-family属性に値Arial,Helvetica,Geneva,sans-serifを割り当てると、InlineStyleプロパティには自動的に次の構文が移入されます。

font-family:Arial Helvetica Geneva sans-serif;

InlineStyleContentInlineStyleのいずれにも、InlineStyleの下に提供される属性の他に、プロパティ・インスペクタの属性リストに表示されていない属性を手動で入力できます(それらの属性が少なくともCSS 2.0に準拠している場合)。このような属性は、adfp:portletタグ内で次のような書式で指定します。

inlineStyle="border-style:none;font-family:Arial Helvetica Geneva sans-serif;"

InlineStyleプロパティの属性は、World Wide Web ConsortiumのCSS標準に基づいています。詳細は、次のサイトを参照してください。

http://www.w3.org/Style/CSS/

表9-7に、Oracle JDeveloperのプロパティ・インスペクタを介してカスタマイズ可能コンポーネントに選択可能なスタイル属性の一部をリストして説明します。ポートレットもこれらのスタイル属性を使用することに注意してください。

表9-7 ポートレットおよびカスタマイズ可能コア・コンポーネントのスタイル属性

属性 説明

background-color

コンポーネントの背景色。色のリストから選択するか、「編集」アイコンをクリックしてカラー・パレットから選択します。

background-image

コンポーネントの背景に表示されるイメージ。親コンポーネントから継承する、またはイメージを表示しないことを選択します。あるいは、「編集」アイコンをクリックして、イメージを選択します。

background-repeat

背景イメージを繰り返すかどうか、およびその方法を指定します。次のうちから選択します。

  • <none>: イメージを繰り返しません。

  • no-repeat: イメージを繰り返しません。

  • repeat: コンテナがいっぱいになるまでイメージを繰り返します。

  • repeat-x: イメージを垂直方向ではなく水平方向に繰り返します。

  • repeat-y: イメージを水平方向ではなく垂直方向に繰り返します。

  • inherit: この設定を親コンポーネントから継承します。

border-color

コンポーネントを囲む境界線の色。色のリストから選択するか、「編集」アイコンをクリックしてカラー・パレットから選択します。

border-style

コンポーネントの周りに描く境界線のスタイル。次のうちから選択します。

  • <none>: 境界線にスタイルを適用しません。

  • none: 境界線を表示しません(ポートレット境界線を無効化するには、ContentInlineStyleプロパティにborder-style:noneを使用します。InlineStyleとともにこの属性を使用すると、ポートレット境界線は無効になりません。)

  • hidden: 境界線を非表示にします。

  • dotted: 境界線を点線として表示します。

  • double: 境界線を二重線として表示します。

  • groove: 境界線を溝線として表示します。

  • ridge: 境界線を稜線として表示します。

  • inset: 境界線を沈み線として表示します。

  • outset: 境界線を浮き線として表示します。

  • dashed: 境界線を破線として表示します。

  • solid: 境界線を直線として表示します。

  • inherit: 親コンポーネントから境界線スタイルを継承します。

border-width

コンポーネント境界線の濃さ。thickmediumthinまたはinherit(親コンポーネントから境界線幅を継承する場合)を選択します。あるいは、「編集」アイコンをクリックして、必要な測定単位で濃さを定義します。

color

コンポーネント・テキストの色。リストから選択するか、「編集」アイコンをクリックしてカラー・パレットから選択します。

font-family

コンポーネント・テキストのフォント・ファミリ(Arial、Helvetica、sans-serifなど)。この値は手動で入力してください。

font-size

コンポーネント・テキストのサイズ。次のうちから選択します。

  • Choose Length: 必要な測定単位でフォント・サイズの絶対値を指定します。

  • Choose Percentage: フォント・サイズを、ブラウザに定義されている標準テキスト・サイズに対するパーセンテージとして指定します。

  • inherit: 親コンポーネントからフォント・サイズを継承します。

  • large: 親コンポーネントに関連付けられたフォントよりも次に大きいサイズを選択します。

  • larger: フォント・サイズを、親コンポーネントに関連付けられたフォントよりも大きくします(largerのほうがlargeよりも大きくなります)。

  • medium: フォント・サイズを、親コンポーネントのデフォルトのフォント・サイズに設定します。

  • small: フォント・サイズを、親コンポーネントのデフォルトのフォント・サイズよりも小さく設定します。

  • smaller: フォント・サイズを、親コンポーネントのデフォルトのフォント・サイズよりも小さく設定します(smallerのほうがsmallよりも小さくなります)。

font-style

コンポーネント・テキストのフォント・スタイルを指定します。次のうちから選択します。

  • <none>: フォントにスタイルを適用しません。

  • normal: フォントはイタリックになりません。

  • italic: フォントはイタリックです。

  • oblique: フォント・ファミリに標準のイタリック・メンバーがない場合でも、フォントはイタリックのように傾斜します。

  • inherit: 親コンポーネントからフォント・スタイルを継承します。

font-weight

コンポーネント・テキストの濃さを設定します。次のうちから選択します。

  • <none>: コンポーネント・フォントに濃さを指定しません。

  • normal: 親コンポーネントのデフォルトのフォントと同じ濃さを適用します。

  • bold: コンポーネント・テキストを太字に設定します。

  • bolder: コンポーネント・テキストをboldより濃く設定します。

  • light: コンポーネント・テキストをnormalより薄く設定します。

  • lighter: コンポーネント・テキストをlightより薄く設定します。

  • 100900: テキストの濃さの値を指定します(100が最も薄く、900が最も濃く、400が標準の濃さ、700は太字です)。

  • inherit: 親コンポーネントから濃さを継承します。

height

連続するテキストの行間に適用する間隔調整(リーディングとも呼ばれる)。次のうちから選択します。

  • Choose Length: 行の高さに絶対値を指定します。

  • Choose Percentage: 行の高さを、親コンポーネントの行の高さに対するパーセンテージとして設定します。

  • inherit: 行の高さを親コンポーネントから継承します。

  • auto: 行の高さを自動的に設定します。通常、フォント・サイズよりも2ポイント大きくなります。

list-style-image

リスト・アイテムのインジケータとして使用するイメージを指定します。list-style-typeを定義せずに、イメージを指定します。次のうちから選択します。

  • inherit: 親コンポーネントからリスト・スタイル・イメージを継承します。

  • none: リスト・アイテムのインジケータとしてイメージを使用しません。

または、「編集」アイコンをクリックして、イメージを選択します。

list-style-type

リストのアイテムに使用するインジケータのタイプ。list-style-imageを介してイメージを指定しない場合、これを使用します。

リストに表示された多数のスタイルから選択します。この中には、ブラウザのデフォルト・スタイルを使用することを示す<none>、親コンポーネントからlist-style-typeを継承することを示すinheritなどがあります。

margin

コンポーネント・コンテンツを囲む領域の境界線。次のうちから選択します。

  • Choose Length: すべてのマージンに絶対値を指定します。

  • Choose Percentage: 親コンポーネントのマージンに対するパーセンテージとして値を設定します。

  • inherit: 親コンポーネントからマージン値を継承します。

  • auto: ブラウザのデフォルトに従って、値を自動的に設定します。

outline-color

コンポーネントを囲むアウトラインの色。これはborderとは異なります。境界線はアウトラインの内側にあります。リストから選択するか、「編集」アイコンをクリックしてカラー・パレットから選択します。

outline-style

コンポーネントの周りに描くアウトラインのスタイル。選択オプションについては、border-styleを参照してください。

outline-width

コンポーネント・アウトラインの濃さ。thickmediumthinまたはinherit(親コンポーネントから境界線幅を継承する場合)を選択します。あるいは、「編集」アイコンをクリックして、必要な測定単位で濃さを定義します。

padding

コンポーネントとそのマージンの間、またはコンポーネントとその境界線の間(境界線がある場合)の領域の大きさ。次のうちから選択します。

  • Choose Length: 必要な測定単位で絶対値を指定します。

  • Choose Percentage: 親コンポーネントに設定されているパディングに対するパーセンテージとして値を指定します。

  • inherit: 親コンポーネントから値を継承します。

text-align

コンポーネント・テキストの水平方向の文字位置。次のうちから選択します。

  • <none>: ブラウザのデフォルトを使用します。

  • left

  • right

  • center

  • justify: すべての行が左右の同じポイントで始まって同じポイントで終わるように、テキストの位置を揃えます。

  • auto: 値を左または右で自動的に適用します。

  • inherit: 親コンポーネントから文字位置を継承します。

text-decoration

コンポーネント・テキストに適用する装飾の値。次のうちから選択します。

  • <none>: ハイパーリンクにブラウザのデフォルトを使用します。それ以外の場合、テキストを装飾しません。

  • none: テキストを装飾しません。ハイパーリンクの下線もありません。

  • underline: すべてのコンポーネント・テキストに下線を引きます。

  • overline: すべてのコンポーネント・テキストに上線を引きます。

  • line-through: すべてのコンポーネント・テキストに取消し線を引きます。

  • blink: コンポーネント・テキストを点滅させます。

  • inherit: 親コンポーネントからテキスト装飾を継承します。

vertical-align

コンポーネント・テキストの垂直方向の文字位置。次のうちから選択します。

  • Choose Length: 必要な測定単位で絶対値を指定します。

  • Choose Percentage: 親コンポーネントに設定されている値に対するパーセンテージとして値を指定します。

  • inherit: 親コンポーネントから値を継承します。

  • baseline: テキストをテキスト行のベースラインに設定します。

  • bottom: テキストをテキスト行の一番下(ベースラインより下)に設定します。

  • middle: テキストをテキスト行の中央に設定します。

  • sub: テキストをサブスクリプトとして設定します。

  • super: テキストをスーパースクリプトとして設定します。


9.5 実行時スキン・セレクタの構築

ポータル管理者またはユーザーが実行時にスキンを切り替えることができる機能を作成すると、便利です。この項では、実行時スキン・スイッチャを設定するためのシナリオと、スイッチャの変更内容を複数のユーザー・セッションにわたって存続させるシナリオについて説明します。

9.5.1 1人のユーザーに対するスキンの変更

この項では、ブラウザごとにスキンの変更内容を格納する方法について説明します。ユーザーがアプリケーション・スキンを変更すると、アプリケーションで変更内容が表示されます。この変更内容は、ユーザーのローカル・コンピュータのブラウザCookieに格納されます。ローカル・コンピュータでの以降のブラウザ・セッションでは、選択したスキンを使用してアプリケーションが表示されます。別のブラウザを選択した場合、ブラウザCookieを無効化した場合、または別のコンピュータ上でアプリケーションを表示した場合、スキンの変更内容は反映されません。

ブラウザごとにスキンの変更内容を存続させるには、次の4つの手順を実行します。

9.5.1.1 マネージドBean(ClientSkinBean.java)として機能するJavaクラスの作成

マネージドBeanとして機能するJavaクラスを作成する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「ViewController」プロジェクトを右クリックし、ポップアップ・メニューから「新規」を選択します。

  2. 「新規ギャラリ」で「General」ノードを開き、「Simple Files」選択します。

  3. 「新規ギャラリ」の「項目」で、「Javaクラス」を選択します。

  4. 「OK」をクリックします。

  5. 「Javaクラスの作成」ダイアログ・ボックスの「名前」フィールドに、Javaクラスの名前を入力します。

    たとえば、ClientSkinBeanと入力します。

  6. 「パッケージ」フィールドに「view」が指定されていて、拡張フィールドに「java.lang.Object」が指定されていることを確認します。「オプション属性」はデフォルト値のままにしておきます。

  7. 「OK」をクリックします。

    アプリケーション・ナビゲータで、次の階層の下にJavaクラスが表示されます。

    <project_name> */ For example, ViewController /*
      Application Sources
        view
          <Java_class_name> */ For example, ClientSkinBean.java /*
    
  8. アプリケーション・ナビゲータで、Javaクラスを右クリックし、ポップアップ・メニューから「開く」を選択します。

    これにより、「エディタ」ペイン内にJavaクラスが開きます。

  9. 「エディタ」ペインで、「ソース」ビューに切り替え、ブラウザCookieを介して持続スキンを設定するためのコードを追加します。

    例9-9に、このコードの実装を示します。

    例9-9 ブラウザCookieを介してスキン変更を存続させるためのJavaクラス

    package view;
    
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;
    
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
    * ClientSkinBean is a class for persisting ADF JSF skin changes as
    * a cookie in the user's browser.
    * It is intended to be used as a JSF backing bean.
    * It stores the skin setting under the cookie name "ADFSkin".
    */
    public class ClientSkinBean {
      private String _skin = null;
      // You can modify the _cookieName for your own application.
      private static String _cookieName = "ADFSkin";
    
      public ClientSkinBean() {
      }
    
    /**
       * Get the current skin setting. The default is oracle.
       * @return the name of the skin to use
       */
      public String getSkin() {
        if (_skin == null)
        {
          FacesContext context = FacesContext.getCurrentInstance();
          ExternalContext extContext = context.getExternalContext();
          HttpServletRequest servletRequest =
            (HttpServletRequest) extContext.getRequest();
          Cookie[] cookies = servletRequest.getCookies();
    
          for (int i = 0; i < cookies.length; i++) {
            Cookie cookie = cookies[i];
            if (_cookieName.equals(cookie.getName()))
            {
              _skin = cookie.getValue();
              return _skin;
            }
        }
          _skin = "oracle";
          return _skin;
      }
      else
      return _skin;
     }
    
    /**
     * Make the skin setting persistent. The default is oracle.
     * @param skin the name of the skin.
     */
    public void setSkin(String skin) {
      FacesContext context = FacesContext.getCurrentInstance();
      ExternalContext extContext = context.getExternalContext();
      HttpServletResponse servletResponse =
        (HttpServletResponse) extContext.getResponse();
    
      Cookie userCookie = new Cookie(_cookieName, skin);
      // Set the cookie's age to a year. You can set this to your own value.
      userCookie.setMaxAge(60*60*24*365);
      servletResponse.addCookie(userCookie);
      _skin = skin;
     }
    }
    
  10. 変更を保存します。

9.5.1.2 JSFマネージドBeanとしてのClientSkinBeanクラスの登録

faces-config.xmlファイルを使用して、JavaクラスをマネージドBeanとして登録します。faces-config.xmlファイルは、プロジェクトのWEB-INFフォルダに格納されています。

Javaクラスを登録する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「faces-config.xml」ファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。

  2. 9.5.1.1項で作成したJavaクラスを登録します。

    例9-10に、9.5.1.1項で作成したクラスを登録する方法を示します。スキンに関連する部分は、太字で示しています。

    例9-10 マネージドBeanとしてのJavaクラスの登録

    <faces-config xmlns="http://java.sun.com/JSF/Configuration">
      <managed-bean>
        <managed-bean-name>clientSkinBean</managed-bean-name>
        <managed-bean-class>view.ClientSkinBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
      <application>
        <default-render-kit-id>oracle.adf.core</default-render-kit-id>
      </application>
    </faces-config>
    
  3. 変更を保存します。

9.5.1.3 Expression Language式を使用したBeanの参照

adf-faces-config.xmlファイル内でExpression Language(EL)式を使用して、マネージドBeanを参照します。Beanを参照すると、アプリケーションのスキン選択に対して、固定値ではなく変数値の式を使用できます。

アプリケーション・スキンを指定する方法の詳細は、9.2項「アプリケーションへのカスタム・スキンの適用」を参照してください。

adf-faces-config.xmlファイル内にEL式を入力する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、adf-faces-config.xmlファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。

    adf-faces-config.xmlファイルは、プロジェクトWEB-INFフォルダの中にあります。

  2. <skin-family>タグと</skin-family>タグの間に、マネージドBeanを参照するEL式を入力します。

    次に例を示します。

    <adf-faces-config xmlns="http://xmlns.oracle.com/adf/view/faces/config">
      <skin-family>#{clientSkinBean.skin}</skin-family>
    </adf-faces-config>
    
  3. 変更を保存します。

9.5.1.4 スキンを切り替えるためのページへのユーザー・インタフェース・コンポーネントの追加

実行時にスキンを切り替えるためのロジックを設定した後は、スキン・スイッチャをレンダリングするユーザー・インタフェース(UI)コンポーネントを指定します。

スキン・スイッチャUIを作成する手順は、次のとおりです。

  1. アプリケーションjspxファイルを作成するか、既存のファイルを開きます。

    既存のファイルを開くには、アプリケーション・ナビゲータでそのファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。アプリケーションjspxファイルは、プロジェクトのWeb Contentフォルダに格納されています。アプリケーションjspxファイルの作成方法の詳細は、「ページの要件」を参照してください。

  2. 「エディタ」ペインで、「ソース」ビューに切り替え、スキン・スイッチャのロジックを入力します。

    例9-11に、スキン・スイッチャのコードの実装を示します。

    例9-11 スキン・スイッチャの実装

    <jsp:root version="2.0">
      <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
        doctype-system="http://www.w3.org/TR/html4/loose.dtd"
        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <afh:html>
          <afh:head title="ClientChangeSkin">
            <meta http-equiv="Content-Type" content="text/html;
              charset=windows-1252"/>
          </afh:head>
          <afh:body>
            <h:form>
              <af:selectOneChoice label="Select Look and Feel"
                id="showOneChoice1" value="#{clientSkinBean.skin}">
    <!-- Specify skins to display on selection list: default, custom, or both -->
                <af:selectItem label="oracle" value="oracle"/>
                <af:selectItem label="[menu item label]" value="[skin name]"/>
                <af:selectItem label="[menu item label]" value="[skin name]"/>
                <af:selectItem label="minimal" value="minimal"/>
                <af:selectItem label="simple" value="simple"/>
              </af:selectOneChoice>
              <af:commandButton text="Apply Selected Look and Feel"
                id="commandButton1"/>
            </h:form>
          </afh:body>
        </afh:html>
      </f:view>
    </jsp:root>
    
  3. 変更を保存します。

ページを実行し、スキンの切替えを試行します。リストから別のスキンを選択し、変更を有効にするためのコマンド・ボタンをクリックします。例9-11に示したコードを使用した場合は、コマンド・ボタンの変更内容(具体的にはoracleスキンとsimpleスキンの間)に注意してください。独自のコードを作成する際は、これらのデフォルト・スキンではなく独自のスキンを参照することもできます。ブラウザを閉じてから開くと、スキンの変更が持続しています。

9.5.2 すべてのユーザーに対するスキンの変更

このアプローチと9.5.1項で説明したアプローチとでは、スキンの変更の影響を受ける人が異なります。このアプローチでは、スキンを変更すると、変更が行われたブラウザだけでなく、アプリケーションを使用するすべてのユーザーが影響を受けます。ブラウザのCookieが無効になっている環境でアプリケーションを実行する場合は、このアプローチを使用する必要があります。このアプローチでは、変更はすべてのユーザーに影響するため、通常は、権限のあるユーザーのみが変更を行えるようになんらかのセキュリティ・メカニズムを実装します。

すべてのユーザーにわたってスキンを存続させるには、次の4つの手順を実行します。

9.5.2.1 マネージドBean(ServerSkinBean.java)として機能するJavaクラスの作成

マネージドBeanとして機能するJavaクラスを作成する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「ViewController」プロジェクトを右クリックし、ポップアップ・メニューから「新規」を選択します。

  2. 「新規ギャラリ」で「General」ノードを開き、「Simple Files」選択します。

  3. 「新規ギャラリ」の「項目」で、「Javaクラス」を選択します。

  4. 「OK」をクリックします。

  5. 「Javaクラスの作成」ダイアログ・ボックスの「名前」フィールドに、Javaクラスの名前を入力します。

    たとえば、ServerSkinBeanと入力します。

  6. 「パッケージ」フィールドに「view」が指定されていて、拡張フィールドに「java.lang.Object」が指定されていることを確認します。「オプション属性」はデフォルト値のままにしておきます。

  7. 「OK」をクリックします。

    アプリケーション・ナビゲータで、次の階層の下にJavaクラスが表示されます。

    <project_name> */ For example, ViewController /*
      Application Sources
        view
          <Java_class_name> */ For example, ServerSkinBean.java /*
    
  8. アプリケーション・ナビゲータで、Javaクラスを右クリックし、ポップアップ・メニューから「開く」を選択します。

    これにより、「エディタ」ペイン内にJavaクラスが開きます。

  9. 「エディタ」ペインで、「ソース」ビューに切り替え、ブラウザCookieを介してスキンを存続させるためのコードを追加します。

    例9-12に、このコードの実装を示します。

    例9-12 すべてのユーザーに影響を与えるスキン変更を存続させるためのJavaクラス

    package view;
    
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    
    import java.io.FileWriter;
    import java.io.IOException;
    
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;
    
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * ServerSkinBean is a class for making ADF JSF skin persistent as
     * application customization. It is intended to be used as a JSF backing bean.
     * It stores the skin setting under the application's context root in a
     * simple text file called appSkinConfig.
     */
    public class ServerSkinBean {
      private String _skin = null;
      private static String _defaultSkin = "oracle";
    
      public ServerSkinBean() {
      }
    
      /**
       * Get the current skin setting. The default is oracle.
       * @return the name of the skin to use
       */
      public String getSkin() {
        FacesContext context = FacesContext.getCurrentInstance();
        ExternalContext extContext = context.getExternalContext();
        ServletContext svtCtx = (ServletContext)extContext.getContext();
        String appSkinConfig = svtCtx.getRealPath("/" + "appSkinConfig");
    
        try {
            // Attempt to open the skin config file and read the setting
            FileReader fileReader =
                new FileReader(appSkinConfig);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            _skin = bufferedReader.readLine();
            if ((_skin == null) || (_skin.length() == 0) || (_
                skin.trim().length() == 0)) {
            setSkin(_defaultSkin);
           }
            return _skin;
        } catch (FileNotFoundException e) {
            setSkin(_defaultSkin);
            return _skin;
        } // no saved state
        catch (IOException e) {
            System.out.println(e.getMessage());
            _skin = _defaultSkin;
            return _skin;
        }
      }
    
    /**
      * Make the skin setting persistent. The default is oracle.
      * @param skin the name of the skin.
      */
    public void setSkin(String skin) {
        FacesContext context = FacesContext.getCurrentInstance();
        ExternalContext extContext = context.getExternalContext();
        ServletContext svtCtx = (ServletContext)extContext.getContext();
        String appSkinConfig = svtCtx.getRealPath("/" + "appSkinConfig");
    
        try
        {
          _skin = skin;
          FileWriter writer = new FileWriter(appSkinConfig, false);
          writer.write(_skin + "\n");
          writer.close();
        }
        catch (IOException e) {
          System.out.println(e.getMessage());
        }
      }
    }
    
  10. 変更を保存します。

9.5.2.2 JSFマネージドBeanとしてのServerSkinBeanクラスの登録

faces-config.xmlファイルを使用して、JavaクラスをマネージドBeanとして登録します。faces-config.xmlファイルは、プロジェクトのWEB-INFフォルダに格納されています。

Javaクラスを登録する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、「faces-config.xml」ファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。

  2. 9.5.2.1項で作成したJavaクラスを登録します。

    例9-13に、9.5.2.1項で作成したクラスを登録する方法を示します。スキンに関連する部分は、太字で示しています。

    例9-13 マネージドBeanとしてのJavaクラスの登録

    <faces-config xmlns="http://java.sun.com/JSF/Configuration">
      <managed-bean>
        <managed-bean-name>serverSkinBean</managed-bean-name>
        <managed-bean-class>view.ServerSkinBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
      <application>
        <default-render-kit-id>oracle.adf.core</default-render-kit-id>
      </application>
    </faces-config>
    
  3. 変更を保存します。

9.5.2.3 EL式を使用したBeanの参照

adf-faces-config.xmlファイル内でEL式を使用して、マネージドBeanを参照します。Beanを参照すると、アプリケーションのスキン選択に対して、固定値ではなく変数値の式を使用できます。

アプリケーション・スキンを指定する方法の詳細は、9.2項「アプリケーションへのカスタム・スキンの適用」を参照してください。

adf-faces-config.xmlファイル内にEL式を入力する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、adf-faces-config.xmlファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。

    adf-faces-config.xmlファイルは、プロジェクトWEB-INFフォルダの中にあります。

  2. <skin-family>タグと</skin-family>タグの間に、マネージドBeanを参照するEL式を入力します。

    次に例を示します。

    <adf-faces-configxmlns="http://xmlns.oracle.com/adf/view/faces/config">
      <skin-family>#{serverSkinBean.skin}</skin-family>
    </adf-faces-config>
    
  3. 変更を保存します。

9.5.2.4 スキンを切り替えるためのページへのUIコンポーネントの追加

実行時にスキンを切り替えるためのロジックを設定した後は、スキン・スイッチャをレンダリングするUIコンポーネントを指定します。

スキン・スイッチャUIを作成する手順は、次のとおりです。

  1. アプリケーションjspxファイルを作成するか、既存のファイルを開きます。

    既存のファイルを開くには、アプリケーション・ナビゲータでそのファイルを右クリックし、ポップアップ・メニューから「開く」を選択します。アプリケーションjspxファイルは、プロジェクトのWeb Contentフォルダに格納されています。アプリケーションjspxファイルの作成方法の詳細は、「ページの要件」を参照してください。

  2. 「エディタ」ペインで、「ソース」ビューに切り替え、スキン・スイッチャのロジックを入力します。

    例9-14に、スキン・スイッチャのコードの実装を示します。

    例9-14 スキン・スイッチャの実装

    <jsp:root version="2.0">
      <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
        doctype-system="http://www.w3.org/TR/html4/loose.dtd"
        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <afh:html>
          <afh:head title="ServerChangeSkin">
            <meta http-equiv="Content-Type" content="text/html;
              charset=windows-1252"/>
          </afh:head>
          <afh:body>
            <h:form>
              <af:selectOneChoice label="Select Look and Feel"
                id="showOneChoice1" value="#{serverSkinBean.skin}">
    <!-- Specify skins to display on selection list: default, custom, or both -->
                <af:selectItem label="[menu item label]" value="[skin name]"/>
                <af:selectItem label="[menu item label]" value="[skin name]"/>
                <af:selectItem label="oracle" value="oracle"/>
                <af:selectItem label="minimal" value="minimal"/>
                <af:selectItem label="simple" value="simple"/>
              </af:selectOneChoice>
              <af:commandButton text="Apply Selected Look and Feel"
                id="commandButton1"/>
            </h:form>
          </afh:body>
        </afh:html>
      </f:view>
    </jsp:root>
    
  3. 変更を保存します。

ページを実行し、スキンの切替えを試行します。リストから別のスキンを選択し、変更を有効にするためのコマンド・ボタンをクリックします。例9-14に示したコードを使用した場合は、コマンド・ボタンの変更内容(具体的にはoracleスキンとsimpleスキンの間)に注意してください。ブラウザを閉じてから開くと、スキンの変更が持続しています。

独自のコードを作成する際は、これらのデフォルト・スキンではなく独自のスキンを参照することもできます。例9-14に、カスタム・スキンを参照できる2つのエントリを示します。カスタム・スキンは、必要なだけいくつでも参照できます。また、デフォルト・スキンの参照を省略することもできます。