ポータル開発ガイド

     前  次    目次     
ここから内容

ルック アンド フィールの機能を使用したユーザ インタフェース開発

この章では、ポータル フレームワークを使用して、Workshop for WebLogic で開発するポータルの外観と動作全体を開発する方法について説明します。ブラウザにポータルを表示できるようになり、目的の結果を得るには基底のフレームワークのどの部分を変更する必要があるかを理解できるようになります。また、ルック アンド フィール エディタについても説明します。ルック アンド フィール エディタを使用すると、ポータルで使用するテキスト スタイルを対話形式で変更できます。

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

 


ルック アンド フィール フレームワークの概要

ルック アンド フィール ファイルによって、ポータル ページの要素の配置と動作からポートレット タイトルバーに使用されるカラーに至るまで、ポータル アプリケーションの外観が決まります。

ポータルの表示フレームワークを使用して、開発者はポータル管理者が個々のポータル デスクトップに適用できる新しいルック アンド フィール ファイルを変更および作成できます。訪問者ツールが有効になっている場合、エンド ユーザは別のルック アンド フィールにアクセスして独自ポータル インスタンスの外観を変更することができます。

WebLogic Portal には、Workshop for WebLogic でポータルにユーザ インタフェースを作成する際に使用する堅牢なサンプルとテンプレートが含まれます。

他のポータル リソース (J2EE ライブラリなど) と同様、フレームワークを変更する前に、Web プロジェクトにフレームワーク リソースをコピーする必要があります。  しかし多くの場合、ポータル用にユーザ インタフェースをカスタマイズするには、フレームワーク リソースのセット全体を変更するのではなく、参照用に単一ファイルを変更したり、新しいファイルを作成したりする必用があります。

プロジェクトに変更するリソースのみを残しておくことがベスト プラクティスです。これにより、WebLogic Portal の新しいバージョンに容易にアップグレードできるようになります。アップグレードすると、J2EE ライブリ モジュールからルック アンド フィール ファイルに事前定義されたポータル リソースはすべて上書されます。

表 6-1 に、ルック アンド フィール フレームワークに含まれる主な要素を示します。

表 6-1 ルック アンド フィールの要素
フレームワーク ファイル
機能
*.laf (ルック アンド フィール ファイル)
このファイルは、特定のスキンおよびスケルトン XML ファイルへの参照が含まれた XML ファイルです。*.laf ファイルはポータルの外観を変更するのに使用します。
skin.xml
skin.xml ファイルはほとんどのカスタマイズが行われるファイルです。これはルック アンド フィールに使用する CSS ファイル、画像、JavaScript コードへの参照が含まれます。
skeleton.xml
skeleton.xml ファイルは、ポータルを表示する特定の JSP ファイルへの参照を提供します。skeleton.xml ファイルで参照される JSP で、デスクトップやメニューなどの表示を設定します。
クロモソーム、およびジーンとクロモソーム
ジーンを使って、ルック アンド フィール リソース (たとえば、skin.xml ファイル) で変数として参照できる CSS プロパティなどのような、ルック アンド フィールの特定の特性を定義できます。
*.chromosome ファイルは 1 つまたは複数のジーンを含むファイルです。ジーンは *.chromosome ファイルに格納する必要があります。
*.theme
*.theme ファイルでは、特定のポータル コンポーネントのルック アンド フィールをオーバーライドする方法を提供します。たとえば、*.theme ファイルのルック アンド フィール をポータル内の他のファイルと変えたい場合、ポートレットに *.theme ファイルを適用できます。
*.layout
レイアウト ファイルを使って、ポータル ページとヘッダおよびフッタの構造を提供します。選択されたレイアウト ファイル (1 カラム 、2 カラムなど) でページ、ヘッダ、フッタ内のポートレットやブックを配置できる場所を決定します。
たとえば、ヘッダ内にポートレットを配置する場合は、そのヘッダにレイアウトを適用する必要があります。
*.shell
シェル ファイルは、ポータルのヘッダ領域とフッタ領域を定義します。
シェルに *.layout を適用した場合は、ヘッダまたはフッタ内でポートレットを配置できます。
*.menu
メニュー ファイルでポータルで使用するナビゲーション スタイルを定義します。WebLogic Portal には、単一レベル タブ スタイルとネストされた複数のレベルという 2 種類のメニューがあります。

 


ルック アンド フィールのファイルの操作

ルック アンド フィール ファイル (.laf) は、ポータルのスタイルと動作を決定する .portal XML ファイル全体に挿入される XML ブロックです。ルック アンド フィール ファイルは、特定のスキンとスケルトンを参照します。スキンは、画像セット、JavaScript 関数、および CSS ファイルを提供します。スケルトン ファイルには、ポータル XML コンポーネントを最終的な HTML 出力に変換する JSP が含まれます。

スキンとスケルトンでは、CSS 値および JavaScript アクションの変数を設定できるスキンまたはスケルトン クロモソーム ファイルを利用できます。「ジーンとクロモソームの操作」を参照してください。

ポータル デスクトップの別のルック アンド フィールを選択したときは、場合によってはポータルの表示に使用するスキンとスケルトン (およびその他のサポート ファイル) を変更します。

ポータル デスクトップにルック アンド フィールを割り当てるには、デスクトップ プロパティを定義します。訪問者ツールを有効化して、訪問者が選択に使う別のルック アンド フィールを提供することで、ポータル訪問者にルック アンド フィールを選択させることもできます。

訪問者ツールの詳細については、「訪問者ツールのコンフィグレーション」を参照してください。

注意 : GroupSpace アプリケーションでのデフォルトのルック アンド フィールの変更方法、または新しいルック アンド フィールの作成方法については、『GroupSpace ガイド』を参照してください。

この節では、次のトピックについて説明します。

デスクトップでのルック アンド フィールの定義

Workshop for WebLogic でデスクトップに既存のルック アンド フィール (*.laf) を割り当てます。こうすると、ポータルのルック アンド フィールの開発やカスタマイズをする際に、変更を表示できるので便利です。

Workshop for WebLogic を使用してデスクトップにルック アンド フィールを割り当てるには、以下の手順に従います。

  1. プロパティを編集するポータルがある場所に移動し、.portal ファイルをダブルクリックしてエディタで開きます。
  2. デスクトップの境界線をクリックして、プロパティ ビューにプロパティを表示します。
  3. プロパティ ビューに移動し、そのデスクトップのプロパティのルック アンド フィール プロパティ ドロップダウン リストからルック アンド フィールを選択します。
  4. ルック アンド フィールに保存した最新の変更を表示する場合は、[再ロード] をクリックします。
  5. 選択したルック アンド フィールがポータルにどのように反映されるかを確認するには、*.portal ファイルに移動し、右クリックして [実行|サーバーで実行] を選択します。

 


ルック アンド フィールのカスタマイズ

WebLogic Portal には、アプリケーションで使用できるデフォルトのルック アンド フィール ファイルが用意されています。多くの場合、独自のルック アンド フィールを開発するよりも、これらの既存のルック アンド フィールのいずれかをニーズに合わせてカスタマイズする方が簡単です。たとえば、関連付けられた CSS ファイルを編集したり、ジーンとクロモソームを使用してカラー変数や JavaScript 変数を作成したりすることで、ルック アンド フィールをカスタマイズできます。ジーンの詳細については、「ジーンとクロモソームの操作」を参照してください。

ヒント : カスタマイズするルック アンド フィールを選択する場合、「bighorn」という名前で始まるスキンかスケルトンのみを使用してください。その他のテンプレートは、WebLogic Portal の従来のバージョンで使用できますが、ジーンやクロモソームなどの新しいルック アンド フィール機能はサポートしていません。

既存の定義済みのルック アンド フィールを使用すると、ポータルを適切に表示するために必要なルック アンド フィール ファイルを常に確保できます。表 6-2 に、開始点として使用できるルック アンド フィールを示します。

表 6-2 定義済みのルック アンド フィール
 
スケルトン
スキン
スケルトン クロモソーム
スキン クロモソーム
bighorn
bighorn
bighorn
不可
不可
bighorn-xhtml
bighorn-xhtml
bighorn
不可
不可
bighorn-genes
bighorn
bighorn-genes
不可
default.chromosome
bighorn-water
bighorn
bighorn-genes
不可
water.chromosome
bighorn-fire
bighorn
bighorn-genes
不可
fire.chromosome
bighorn-template
bighorn
bighorn
不可
不可

注意 : bighorn-xhtml スケルトンでは、ポータル コンテンツの XHTML 準拠は強制されません。このスケルトンを使用する、ポータルの非準拠ポートレットは、表示エラーの原因となります。たとえば、GroupSpace ポータル アプリケーションは XHTML 準拠ではありません。

この節では、既存のルック アンド フィールをカスタマイズする方法について説明します。ここで推奨する方法のいずれかを単独で使用することも、複数の方法を組み合わせて使用することもできます。

新しいルック アンド フィールを作成する場合は、「新しいルック アンド フィールの作成」を参照してください。

この節では、次のトピックについて説明します。

新しいルック アンド フィールでのスキンとスケルトンの結合

定義済みのスキン ファイルとスケルトン ファイルのさまざまな組み合わせに基づいたカスタム ルック アンド フィール ファイルを作成できます。たとえば、XHTML スケルトンが必要であり、スキン ファイルのジーンも使用したい場合、これらのファイルを組み合わせて新しいルック アンド フィール ファイルを作成できます。

定義済みのスキン ファイルとスケルトン ファイルに基づいた新しいルック アンド フィール ファイルを作成するには、以下の手順に従います。

  1. ナビゲータ ビューで、ポータル Web プロジェクトを右クリックし、[新規|ルック アンド フィール] を選択します。ウィザードの指示に従って、残りのプロセスを実行します。
  2. 新しいルック アンド フィールに名前を付けると、図 6-2 に示すウィンドウが表示されます。
  3. 図 6-1 ルック アンド フィールの作成


    ルック アンド フィールの作成

  4. [スキン] フィールドで省略記号アイコンを使って目的のスキンまで移動して、skin.xml ファイルを選択します。
  5. [スケルトン] フィールドで省略記号アイコンを使って目的のスケルトンまで移動して、スケルトン ディレクトリを選択します。
  6. 注意 : スキンを選択するには、skin.xml ファイルを選択する必要があります。スケルトンを選択するには、単にスケルトン ディレクトリを選択する必要があります。
  7. [完了] をクリックする。
  8. ルック アンド フィール エディタに、新しいルック アンド フィールが開きます。
  9. *.laf ファイルと同じディレクトリに、このルック アンド フィールを表す 100 x 75 ピクセルの .gif を作成します。この gif ファイルは、*.laf ファイルと同じ名前にする必要があります。
  10. たとえば、telecom.laf というルック アンド フィール ファイルを表す場合は、telecom.gif という gif ファイルを作成します。エンド ユーザが独自にカスタマイズしたポータル デスクトップのビューのルック アンド フィールを選択するときに、この画像が訪問者ツールに表示されます。

選択したスキンおよびスケルトンのオーバーライドを作成する場合は、/skins/<your_skin> および /skeletons/<your_skeleton> の各ディレクトリに、スキンおよびスケルトンのディレクトリとファイルを手動で作成する必要があります。この場合、フルセットのスキンまたはスケルトン ファイルを作成する必要はありません。選択した基本スキンまたはスケルトン内のファイルをオーバーライドするスキンまたはスケルトン ファイルだけを作成する必要があります。

たとえば、新しいルック アンド フィールに「bighorn」スキンを使用し、bighorn/images/titlebar-button-edit.gif ファイルだけを作成した場合、このグラフィックは bighorn スキンのグラフィックをオーバーライドします。その他のすべての bighorn スキンのリソースがルック アンド フィールに使用されます。

タイトルバーのボタンとウィンドウのアイコンの定義

タイトルバー ボタンの並べ替えとウィンドウ アイコンの変更には、ルック アンド フィール ファイルを使用します。WebLogic Portal にある bighorn ルック アンド フィール ファイルには、コード リスト 6-1 に示すデフォルトのタイトルバー順が含まれています。ルック アンド フィール ファイルで XML を編集してタイトルバーのボタンを並べ替えることができます。

コード リスト 6-1 bighorn.laf ファイル内のタイトルバー ボタンのデフォルト順序
<netuix:titlebarButtonOrder>
	<netuix:otherButtons/>
	<netuix:namedButton name="float"/>
	<netuix:namedButton name="edit"/>
	<netuix:namedButton name="help"/>
	<netuix:namedButton name="minimized"/>
	<netuix:namedButton name="maximized"/>
	<netuix:namedButton name="delete"/>
</netuix:titlebarButtonOrder>

CSS ファイルの変更

CSS ファイルは、HTML 表示、および色、枠のスタイル、画像などを定義するために、skin.xml ファイルによって使用されます。

CSS ファイルを変更することにより、ルック アンド フィール ファイルのさまざまな要素を変更できます。各 skin.xml ファイルでは、複数の CSS ファイルを使用して、スキンのさまざまな要素を定義します。さらに、カスタム CSS ファイルを作成して既存の CSS ファイルをオーバーライドしたり、新しい属性を追加したりできます。

WebLogic Portal にある各 skin.xml ファイルには、カスタマイズ用の custom.css ファイルへの参照が含まれています。この CSS ファイルは、使用する skin.xml ファイルに加える CSS の変更のプレースホルダとなります。

通常は、カスタムの CSS スタイルを追加します。この最も簡単な方法は、skin.xml ファイルに含まれる custom.css ファイルにカスタマイズを追加することです。

次の例は、bighorn ルック アンド フィール ファイルの各スキン ディレクトリにある custom.css ファイルの使用方法を示しています。この custom.css は、bighorn の skin.xml ファイルですでに参照されています。

ヒント : これと同様の手順を使用して、特定のルック アンド フィール リソースを変更できます。たとえば、skin.xml ファイルで参照する画像を変更する場合、プロジェクトに画像をコピーし、画像を変更した後に同じ名前で保存できます。この方法を使用すると、ルック アンド フィール ファイルとそのリソース全体を変更せずに、部分的なカスタマイズを行なうことができます。

custom.css ファイルを使用して bighorn の skin.xml をカスタマイズするには、以下の手順に従います。

  1. マージ済みプロジェクト ビューを使用して、/yourWebProject/framework/skins/bighorn/css/custom.css. に移動します。
  2. custom.css ファイルを右クリックし [プロジェクトにコピー] を選択します。
  3. Project Explorer で、/yourWebProject/framework/skins/bighorn/css/custom.css に移動します。
  4. custom.css ファイルを右クリックし、エディタを選択して開いてください。
  5. これで、スキンで使用するカスタム スタイルを追加できるようになります。カスタム スタイルには、コード リスト 6-2 の例に示すように、すべてのポートレットの境界線を変更するプロパティなど、CSS プロパティをいくつでも含めることができます。
  6. コード リスト 6-2 カスタム CSS プロパティの例
    .wlp-bighorn-window
    {
    border-color: red;
    }

ジーンとクロモソームの操作

ジーンを使うと、ルック アンド フィール ファイルの操作において、柔軟性、制御、および保守の容易性を高めることができます。ジーンは、CSS カラー プロパティなどの、ルック アンド フィールの特定の特性を定義します。これは、ルック アンド フィール リソースで変数として参照できます。

たとえば、ルック アンド フィールに wlp.portlet.border.color という名前のジーンが定義されている場合、文字による色の定義ではなく、このジーンの名前を CSS ファイルで使用できます。このジーンの色の値が #ff0000 と定義されている場合、このジーンの変数を使用する CSS はこの色の値を取得します。ジーンの定義で色の値を変更するだけで、このジーンを使用するすべての CSS ファイルが自動的に更新されます。

クロモソームとは、1 つまたは複数のジーンを含むファイルです。名前が同じで値が異なるジーンを含む複数のクロモソームファイルを作成できます。ルック アンド フィール ファイル内の異なるクロモソームを参照するだけで、コア ルック アンド フィール リソース ファイルを変更せずに、完全に異なるルック アンド フィールをシミュレートできます。

また、JavaScript 関数でジーンを使用することもできます。

ジーンの使用は任意ですが、ルック アンド フィールに以下の利点を提供します。

重要 : ジーンを使用するには、「スキンの操作」の説明に従って、CSS エントリおよび JavaScript エントリが参照されるのではなく、HTML 内にインライン化されるように、skin.xml でそれらのエントリをコンフィグレーションする必要があります。

以下は、ジーンの主な利点を 1 つ利用している例です。

ジーンの例

.chromosome ファイルで、次のように「bodyColor」というジーンを定義し、値として「赤」を割り当てることができます。

<gene name="bodyColor">
<value>#FF0000</value>
</gene>

CSS ファイルで、次のように bodyColor を変数として使用できます。

body 

border:1px solid ${bodyColor};
};

ページをブラウザで表示すると、インライン化されたスタイルの定義は次のようになります。

body 

border:1px solid #FF0000;
};

このジーンを CSS ファイルで使用する場合、各 CSS ファイルで値を手動で変更するのではなく、ジーンの値そのものだけを変更して、すべてのコンフィグレーション済み CSS ファイルに変更が反映されるようにする必要があります。

クロモソームとジーンの作成

ジーンを使用する各スキンとテーマには、独自のユニークなクロモソーム ファイルが必要です。クロモソームが複製であってもユニークである必要があります。クロモソーム ファイルは、skin.xml および skeleton.xml と同じディレクトリに格納されます。

default.chromosome ファイルは、特定の skin.xml ファイルのジーンのセット全体を格納するためのものです。default.chromosome ファイルを使用して、すべてのジーンを 1 か所で維持することができます。特定のジーンをオーバーライドする場合、追加の .chromosome ファイルを提供できます。ルック アンド フィール フレームワークは、.laf ファイルで指定したクロモソームでジーンを検出できないと、default.chromosome ファイルでジーンを探します。

注意 : CSS プロパティ値にジーンの 1 対 1 表現を使用することがベスト プラクティスです。

ジーンを作成し、使用するには、以下の手順に従います。

  1. 新しい *.chromosome ファイルを作成します。
    1. [ファイル|新規|その他] を選択します。
    2. [新規] ダイアログで、XML フォルダを開き、XML を選択します。[XML ファイルの作成] ウィザードが開きます。
    3. [XML スキーマ・ファイルから XML ファイルを作成] を選択して、[次へ] をクリックします。
    4. [XML ファイル名] ダイアログに XML ファイルの名前を入力し、[次へ] をクリックします。
    5. [XML スキーマ・ファイルの選択] ダイアログで、[XML カタログ・エントリーの選択] を選択し、キーのカラムでスキーマとして laf-genes-1_0_0.xsd を選択します。[次へ] をクリックします。
    6. [ルート要素の選択] ダイアログで、[終了] をクリックします。
    7. 生成されたファイルの拡張子を .xml から .chromosome に変更します。
  2. ジーンの例」に示す構造を使用して、ジーンをクロモソームに追加します。
  3. 注意 : ジーンの値には、他のジーンの参照を含めることができます。
  4. スキンまたはテーマの CSS ファイルで、${geneName} 構文を使用して、該当するハードコード化されたスタイルの値を関連するジーンの名前に置き換えます。
  5. スキンの操作」の説明に従って、skin.xml または *.theme ファイルで CSS または JavaScript ファイルを参照し、それらが最終的な HTML 出力でインラインになるようにします。
  6. 異なる値を持つ同じ名前のジーンを備えたクロモソームの複数のバージョンを作成する場合は、default.chromosome をコピーして、新しいファイル名 (holiday.chromosome など) を付けます。オーバーライドするファイルのジーンを除くすべてを削除して、それらのジーンに異なる値を設定します。新しい .chromosome ファイルを、使用するスキンまたはスケルトン ディレクトリにコピーします。
  7. XML エディタでルック アンド フィール ファイルを開き、次の属性のいずれかまたは両方を <netuix:lookAndFeel> 要素に追加して、ルック アンド フィールで使用する .chromosome を追加し、指定します。
  8. <netuix:lookAndFeel
    skinChromosome="holiday"
    skeletonChromosome="holiday"

ルック アンド フィール フレームワークは、参照するジーンがクロモソームで定義されているかどうかチェックしません。フレームワークはジーンを検出できないと、HTML 出力にジーンの変数を出力します。

ルック アンド フィール エディタとジーンの使用

ルック アンド フィール エディタの HTML プレビューには、ジーン変数によって表される CSS 値は表示されません。ジーンを使用するすべての CSS ルールは、HTML プレビューから削除されます。ジーンを使用するポータルのルック アンド フィールをプレビューするには、.portal ファイルを右クリックし、[サーバーで実行] を選択します。

 


新しいルック アンド フィールの作成

ポータルのスケルトン要素 (プレースホルダ、レイアウトなど) またはスキン要素 (色、境界線、ボタンなど) を大幅に再設計する場合、WebLogic Portal に用意されたスキン テンプレートとスケルトン テンプレートに基づいて新しいルック アンド フィール ファイルを作成できます。

ヒント : WebLogic Portal では、bighorn-template ルック アンド フィールを使用して新しいルック アンド フィール ファイルを作成することをお勧めします。これはジーンをサポートし、WebLogic Portal の最新バージョンの機能を活用するすべてのルック アンド フィール ファイルを一通り提供します。

特定のスキンとスケルトンに関連するすべてのリソースをコピーし、必要に応じてその大部分、またはすべてを変更できます。CSS ファイルやジーンでは扱えない大幅な変更が必要な場合は、このオプションを使用します。

警告 : 新しいルック アンド フィール ファイルを作成する場合は、「bighorn」という名前の付いたスキンかスケルトンを使用します。他のテンプレートは、WebLogic Portal の従来のバージョンのため利用でき、ジーンとクロモソームなどのようなルック アンド フィールの機能をサポートしません。

付属のテンプレートに基づいて新しいルック アンド フィールを作成するには、次の手順に従います。

  1. ナビゲータ ビューで、ポータル Web プロジェクトを右クリックし、[新規|ルック アンド フィール] を選択します。ウィザードの手順に従って、残りのプロセスを実行します。
  2. ルック アンド フィール ファイルに名前を付け、[次] を選択すると、図 6-2 に示す [Look And Feel Details] ページを表示します。
  3. 図 6-2 ルック アンド フィールの作成


    ルック アンド フィールの作成

  4. [スキン] フィールドで省略記号アイコンを使って目的のスキンまで移動して、skin.xml ファイルを選択します。
  5. テンプレートとしてスキンをコピーするには、[Copy skin as template:] チェック ボックスをマークし、このスキン ファイルを保存するプロジェクトの場所に移動します。
  6. [スケルトン] フィールドで、省略記号アイコンを使用して目的のスケルトンに移動し、スケルトン ディレクトリを選択します。
  7. スケルトンをテンプレートとしてコピーするには、[テンプレートにするスケルトンのコピー先 :] チェック ボックスをチェックし、スケルトン ファイルを保存するプロジェクトの場所に移動します。
  8. [終了] をクリックします。ルック アンド フィール エディタに、新しいルック アンド フィールが開きます。
  9. *.laf ファイルと同じディレクトリに、このルック アンド フィールを表す 100 x 75 ピクセルの .gif を作成します。エンド ユーザが独自にカスタマイズしたポータル デスクトップのビューのルック アンド フィールを選択するときに、この画像が訪問者ツールに表示されます。画像は *.laf ファイルと同じ名前にし、拡張子を *.gif にする必要があります。
  10. たとえば、telecom.laf というルック アンド フィール ファイルを表す場合は、telecom.gif という gif ファイルを作成します。エンド ユーザが独自にカスタマイズしたポータル デスクトップのビューのルック アンド フィールを選択するときに、この画像が訪問者ツールに表示されます。

以下の節では、新しいルック アンド フィールの操作に関するガイダンスを示します。

注意 : ルック アンド フィール エディタの使用方法については、「ルック アンド フィール エディタ」を参照してください。

スキンの操作

スキンは、画像、カスケーディング スタイル シート (CSS) と JavaScript ファイルの組み合わせで、これによってポータル コンポーネントを直接変更することなく、ポータルのルック アンド フィールを変更できます。画像およびスタイルに対する参照は、ポータル定義にハードコードするのではなくスキン内で行います。

スキンは、スケルトンと組み合わせられて、ポータル デスクトップのルック アンド フィールを構成します。

各スキンには、スキン リソースを格納する独自の /images、/css、および /js (JavaScript) の各サブディレクトリがあります。ルック アンド フィールの画像、CSS ファイル、および JavaScript ファイルを作成し、これらのディレクトリに格納します。また、スキンのルート ディレクトリ以外の共通の場所に、グローバル ルック アンド フィール リソースを格納することもできます。スキンは、スキンのルート ディレクトリに格納された skin.xml ファイルに基づいて、使用するリソースを認識します。skin.xml は、ルック アンド フィールで使用される画像、CSS、および JavaScript ファイルの検出用のパスをスキンに通知します。

skin.xml ファイルをコンフィグレーションするときは、次のガイドラインに従ってください。

ベスト プラクティス

注意 : スケルトンでは、ルック アンド フィール リソースの名前 (CSS スタイル名、JavaScript 関数、画像名など) がハード コーディングされます。リソース名をデフォルトの名前から変更した場合は、スケルトン JSP 全体にわたってそれらの名前を変更する必要があります。

Microsoft Internet Explorer に関する考慮事項

定義済みの各ルック アンド フィールには、Microsoft Internet Explorer で使用するリソース (別の skin.xml など) が含まれた特殊ディレクトリが用意されています。Internet Explorer に関する考慮事項には、メニューなどの特定の JavaScript が含まれます。

独自のルック アンド フィールを作成したり、スキンを大幅に変更したりした場合、Internet Explorer 用のブラウザ固有の追加機能が必要になる場合があります。ベスト プラクティスとして、MSIE 分類の既存の skin.xml を使用して、これらの追加機能を含めます。

また、新しいスキン リソースを追加する場合、ルック アンド フィールの skin.xml と MSIE ディレクトリ内の skin.xml の両方に追加する必要があります。たとえば、新しい CSS ファイルを追加した場合、図 6-3 に示すように、/markup/skins/ ディレクトリ内の skin.xml ファイルと、/markup/skins/msie/ ディレクトリ内の skin.xml ファイルの両方に、その新しい CSS ファイルへのリンクを追加する必要があります。

図 6-3 MSIE 特殊ディレクトリの場所

MSIE 特殊ディレクトリの場所

注意 : MSIE 特殊ディレクトリでは、クライアント分類を利用してさまざまなリソースを追跡します。クライアント分類の詳細については、「複数デバイス タイプのポータルの作成」を参照してください。

ポートレットのタイトル バー アイコンについて

ポートレットのタイトル バーで使用するアイコンのグラフィックは、skin /images ディレクトリに格納します。ポートレットの異なる状態とモード (最小化、最大化、ヘルプ、編集) でこれらのグラフィックのうちどれを使用するか指定するために、これらのグラフィックの名前を、ポータル Web プロジェクトの WEB-INF/netuix-config.xml ファイルで宣言します。ポートレットのタイトル バー アイコンで使用するグラフィックの名前を変更する場合は、ファイル名と netuix-config.xml にあるそれらのグラフィックの対応するエントリを変更します。

スケルトンの操作

skeleton.xml は、ポータル コンポーネント (ブック、ページ、ポートレットなど) の物理的な境界を提供します。1 つのポータル Web プロジェクトに複数のスケルトンを設定できます。デスクトップ用のルック アンド フィールを選択すると、特定のスキンとスケルトンが使用されます。

デスクトップからポートレットのタイトルバーに至るまで、ポータル コンポーネントの各タイプには、そのコンポーネントを表示するスケルトン ファイルと呼ばれる JSP ファイルが関連付けられます。スケルトン ファイルには、単純なものと複雑なものがあります。たとえば、各デスクトップは、ポータルに適切な DOCTYPE 情報を決定して表示する desktop.jsp というスケルトン ファイルを使用します。これに対して、ポートレット タイトルバーは、より複雑な titlebar.jsp というスケルトン ファイルを使用し、ボタン グラフィックの参照を提供します。

WebLogic Portal は、提供しているルック アンド フィール ファイルで一連のスケルトンを提供しています。この節では、独自のカスタム ルック アンド フィール ファイル用の独自のスケルトンを開発する方法について説明します。たとえば、特定のモバイル機器で適切な表示を行う必要がある場合など、独自のスケルトンを作成する必要があります。

各ポータル コンポーネントには、<web_project>/framework/skeletons ディレクトリに 1 つまたは複数の対応するスケルトン JSP ファイルがあります。たとえば、ポートレットのタイトルバーには、そのタイトルバーを表示する、対応するスケルトン JSP ファイルがあります。ポータル デスクトップが表示されると、各ポータル コンポーネントのスケルトン JSP は (関連するクラスと共に) ロジックを実行し、作成される HTML を HTML ファイルの階層の適切な位置に挿入します。

また、スケルトンは、WebLogic Portal API を使用して特定のタイプの情報を取得します。たとえば、選択したコンポーネントのプロパティ ビューで開発者が入力したプレゼンテーション コンテキストやスタイル オーバーライドなどの情報です。

簡単に言うと、スケルトン JSP は、API 呼び出し、JSP タグ、および HTML 断片を組み合わせることで、最終的に HTML でポータル デスクトップを表示します。コード リスト 6-3 に、適切なスケルトン JSP の例を示します。

コード リスト 6-3 bighorn ルック アンド フィールの Book.jsp スケルトン
<!-- このブック スケルトン ファイルは、ブックの HTML <DIV> 要素を表示します。この <DIV> 要素には、メニューとブック コンテンツが含まれます。ブック コンテンツは、別の HTML <DIV> 要素に含まれます。-->
<jsp:root version="2.0"
xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:skeleton="http://www.bea.com/servers/portal/tags/netuix/skeleton">
<jsp:directive.page session="false" />
<jsp:directive.page isELIgnored="false" />
<skeleton:context type="bookpc">
<skeleton:control name="div" presentationContext="${bookpc}"
presentationClass="wlp-bighorn-book" presentationId="${bookpc.label}">
<skeleton:child presentationContext="${bookpc.menuPresentationContext}"/>
<skeleton:control name="div" content="true" presentationContext="${bookpc}" presentationClass="wlp-bighorn-book-content">
<skeleton:children/>
</skeleton:control>
</skeleton:control>
</skeleton:context>
</jsp:root>

作成した各スケルトンには、スケルトンのルート ディレクトリに格納された独自の skeleton.xml ファイルが必要です。

独自のスケルトンを開発する場合は、次のガイドラインに従ってください。

 


テーマの操作

テーマは、ブック、ページ、またはポートレットのルック アンド フィールをオーバーライドする方法を提供します。これにより、これらのコンポーネントの表示および動作を、その他のポータル デスクトップとは異なるものにすることができます。たとえば、ポートレットにテーマを設定して、ポートレットの境界線をギザギザの付いた線で表示したり、ポートレットのタイトルバーを赤に変えたり、別のポートレット タイトルバー ボタン画像を表示したりできます。

スキンとスケルトン ファイルの一方または両方でテーマを使用できます。上記の例では、スケルトンのテーマがギザギザの付いたポートレットの境界線を制御し、スキンのテーマに変更した CSS とタイトルバーのイメージを含めます。

また、WebLogic Portal のマルチチャネル フレームワークと組み合わせて使用する、モバイル機器などの特定のデバイス用のルック アンド フィールをテーマを使用して開発できます。

テーマは、標準のスキンおよびスケルトンと同じタイプのリソースで構成されます。通常、テーマは、ルック アンド フィール全体をオーバーライドするために必要なファイルだけを提供しますが、ルック アンド フィールをテーマとして使用することもできます。また、テーマをルック アンド フィールとして使用することもできます。

テーマは、以下のリソースで構成されます。

たとえば、alert テーマが titlebar.jsp スケルトン ファイルを提供している場合、ポータル フレームワークは、親スケルトンの titlebar.jsp ファイルではなく、このスケルトン ファイルを使用します。

図 6-4 に、テーマに含まれるリソース タイプを示します。

図 6-4 テーマのリソース

テーマのリソース

この節では、次のトピックについて説明します。

Microsoft Internet Explorer でのテーマの使用

Internet Explorer を使用する場合、テーマを使用したスキンの変更に関連する追加タスクがあります。詳細については、「Microsoft Internet Explorer に関する考慮事項」を参照してください。

テーマの開発

テーマを開発するには、以下の手順に従います。

  1. マージ済みプロジェクト ビューで、ポータル Web プロジェクトの framework/markup/theme ディレクトリに移動し、既存のテーマをファイル システムにコピーします。
  2. コピーしたテーマを開き、名前、タイトル、説明、および markupName を変更します。各テーマに、ユニークな markupName を指定する必要があります。
  3. 新しいファイル名を付けてファイルを保存します。
  4. .theme ファイルと同じディレクトリに、このテーマを表す 100 x 75 ピクセルの .gif を作成します。この gif ファイルは、.theme ファイルと同じ名前にする必要があります。
  5. たとえば、telecom.theme という .theme ファイルを表す場合は、telecom.gif という gif ファイルを作成します。エンド ユーザが独自にカスタマイズしたポータル デスクトップのビューのテーマを選択するときに、この画像が訪問者ツールに表示されます。

  6. テーマの markupName と同じ名前 (大文字と小文字を区別) を使用したテーマ ディレクトリと、サブディレクトリを作成します。ポータル Web プロジェクトの任意の場所 (すべてのルック アンド フィールが使用できる場所) に、テーマ リソースを作成できます。テーマで使用するユニークなリソースを作成するか、親スキンまたは親スケルトンでオーバーライドするリソースを複製し、変更します。
  7. スキンまたはスケルトンでは、「スキンの操作」の説明に従って、現在のテーマへのパスを指定する structure.xml ファイルを必ず作成します。
  8. テーマを完全なルック アンド フィールとして使用する場合は、テーマ ディレクトリに structure.xml を作成することもできます。

    ルック アンド フィールの /skin ディレクトリおよび /skeleton ディレクトリの structure.xml ファイルを使用しない場合は、これらのスキンとスケルトンのサブディレクトリとしてテーマを格納します。

    注意 : ユニークなリソースを作成する場合は、親スキン、親スケルトン、テーマ スキン、テーマ スケルトンのいずれかで、それらのリソースを参照する必要があります。

テーマの作成後、選択したブック、ページ、またはポートレットのプロパティ ビューでそのテーマを選択できます。

 


以前のポータル リリースからのルック アンド フィールの使用

以前の WebLogic Portal リリースで作成したルック アンド フィールを使用するには、ポータル Web プロジェクト (適切なディレクトリ) にインポートします。

WebLogic Portal 8.1 のルック アンド フィール ファイルがあり、ジーンを使用する場合は、ルック アンド フィール ファイルをアップグレードする必要があります。以前のルック アンド フィールをアップグレードするには、Workshop for WebLogic で、ポータル Web プロジェクトから .laf ファイルを開きます。ファイルを開くと、skin.xml ファイルと skeleton.xml ファイルを作成するよう求めるメッセージが表示されます。これらの新しいファイルを作成したら、WebLogic Portal の新しいルック アンド フィール機能をいつでも使用できるようになります。

注意 : WebLogic Portal 8.1 では、skin.properties ファイルにもテーマの設定を含めることができました。WebLogic Portal 9.2 以降では、テーマは独自の skin.xml ファイルを使用するスタンドアロンのルック アンド フィールです。WebLogic 8.1 の skin.properties ファイルに再利用するテーマの詳細が含まれている場合は、これらのテーマ設定をテーマの skin.xml ファイルに手動で追加する必要があります。

 


ルック アンド フィールのトラブルシューティング

ルック アンド フィールのトラブルシューティングを行う場合、またはルック アンド フィールを微調整する場合は、以下のガイダンスに従ってください。

 


ルック アンド フィール エディタ

ルック アンド フィール エディタを使用すると、ポータルのテキスト要素で使用されるテキスト スタイルを対話形式で変更できます。技術的には、このエディタは、ポータルの skin.xml ファイルで参照されているカスケーディング スタイル シート (CSS) ファイルを変更します。たとえば、ルック アンド フィール エディタを使用して、ポータルの見出しのサイズ、リスト要素の色、テーブル セルの周囲のパディングなどを変更できます。

また、ルック アンド フィール エディタを使用して、ポータルのルック アンド フィール ファイル (.laf ファイル) のプロパティ (参照するスキン ファイルやスケルトン ファイルなど) を変更できます。

さらに、このエディタでは、次の内容を一目で確認できます。

概要

ルック アンド フィール エディタでは、ポータルのルック アンド フィールを変更し、結果をすぐに確認できます。ルック アンド フィール エディタを使用すると、ポータルで使用するテキスト スタイルを対話形式で編集できます。ルック アンド フィール エディタを使用して、ポータルのテキストを選択し、フォント サイズ、色、パディングなどのテキストの特性を変更できます。加えた変更は、エディタの表示領域にすぐに反映されます。

ポータルのスキンは、ポータルの全体的なルック アンド フィールを定義する際に役立ちます。ポータルの skin.xml ファイルは、スキンで使用する 1 つまたは複数の CSS ファイルを指定します。ポータルの HTML テキストでは、これらの CSS ファイルを参照し、CSS スタイル定義を使用できます。特定のテキスト スタイルのフォント サイズを変更すると、ルック アンド フィール エディタによって、CSS ファイル内のスタイルの定義が変更されます。変更は、エディタの表示領域に表示される HTML にすぐに反映されます。

次の図に、ルック アンド フィール エディタの各部分を示します。この節では、これらの各部分について詳しく説明します。

図 6-5 ルック アンド フィール エディタのコンポーネント

ルック アンド フィール エディタのコンポーネント

ナビゲータ ビュー

ナビゲータ パネルには、ポータル プロジェクトのファイル構造が表示されます。このパネルを使用して、編集するポータルのルック アンド フィール ファイルを探して選択します。

ルック アンド フィール (.laf) ファイルには、ポータルのルック アンド フィールを定義するスキンとスケルトンへの参照が含まれます。ルック アンド フィール エディタを使用するには、ナビゲータ ビューで、編集するポータルの .laf ファイルを探す必要があります。ファイルを見つけたら、ファイル名をダブルクリックしてルック アンド フィール エディタを開きます。ポータルの .laf ファイルは、ポータル Web プロジェクトの framework/markup/lookandfeel フォルダにあります。たとえば、図 6-6 では、ナビゲータ ビューで mycustom.laf ファイルが選択されています。

図 6-6 選択されたルック アンド フィール ファイル

選択されたルック アンド フィール ファイル

[スタイル階層] タブ

[スタイル階層] タブには、選択したスタイルの CSS カスケードが表示されます。カスケードは CSS スタイルの階層であり、HTML ドキュメント構造によって定義されます。カスケードの表示が役立つのは、継承されたスタイル プロパティを見つけて適切に処理することができるためです。図 6-7 では、portlet-section-header スタイルが選択されています。この階層では、wlp-bighorn-window-content スタイルが wlp-bighorn-window の下にあります。

図 6-7 選択された CSS スタイル

選択された CSS スタイル

これは、wlp-window-content が wlp-bighorn-window だけでなく、場合によっては、さらに上位の階層にある他のすべてのスタイル クラスからプロパティを継承できるということです。継承の詳細については、「CSS 継承」を参照してください。スタイル階層ビューでスタイルを選択すると、そのスタイル定義と継承されたスタイル プロパティが次の節で説明する [スタイルの説明] ウィンドウに表示されます。

[スタイルの説明] パネル

[スタイルの説明] パネルでは、選択したスタイルのプロパティと継承されたスタイル プロパティを一目で確認できます。図 6-8 に示す [スタイル情報] セクションは、スタイルが定義されている CSS ファイルから直接取得されます。また、[継承されたスタイル] リストは、ルック アンド フィール エディタで現在開いている HTML テキストのドキュメント構造から直接構築されます。[継承されたスタイル] リストには、ドキュメント階層の上位にあるスタイルから継承されたスタイル プロパティとその値が示されます。たとえば、wlp-bighorn-window-content は、wlp-bighorn-book-content スタイルから background color プロパティを継承していることがわかります。

図 6-8 [継承されたスタイル] を表示するウィンドウ

 [継承されたスタイル] を表示するウィンドウ

[継承されたスタイル] リストの値を理解するには、HTML と CSS の基本知識が役立ちます。

CSS 継承

ヒント : この節では、CSS 継承についてごく簡単に説明します。CSS に関する書籍と Web サイトは多数あります。この重要な主題の詳細については、それらを参照してください。

HTML ドキュメントは階層状に構成されています。これは、HTML ドキュメントの各要素には、1 つまたは複数の子要素、1 つの親要素、および複数の祖先要素が存在する可能性があることを意味します。CSS の主な特徴は、HTML ドキュメント階層の下位に向かってスタイルが「継承」されることです。たとえば、図 6-9 は、単純な HTML ドキュメント階層を示しています。

図 6-9 CSS 継承

CSS 継承

このドキュメントのすべてのテキストの色を青にする場合は、body タグに青を定義します。CSS 継承によって、body より下位のすべての要素 (具体的には lih1) も青になります。一方、リスト要素以外のすべて要素を青にするには、ul タグに別の色、たとえば赤を定義します。これで、すべての li 要素は、親である ul から赤という色を継承します。同時に、h1 タグは青になります (h1 タグは、引き続き body から色を継承します)。

ルック アンド フィール エディタは、選択したスタイルが継承しているすべてのスタイルを表示します。したがって、スタイルのフォント サイズを変更する場合、そのスタイルにフォント サイズが定義されていなくても、フォント サイズの継承元のスタイルを一目で確認できます。その後、次の節で説明するように、簡単にプロパティを変更できます。

ヒント : この便利な機能がないと、特定のスタイルがどのスタイルを継承しているかを判断するのは困難です。一般的には、階層の CSS ファイルを開いて内容を確認し、特定のスタイル プロパティがどこで定義またはオーバーライドされているかを調べる必要があります。
[継承されたスタイル] リストの使用

前の節で説明したように、選択したテキストに関連付けられた CSS スタイル クラスで、変更対象のプロパティが定義されていない場合があります。たとえば、ルック アンド フィール エディタで見出しを選択したときに、フォント サイズがその見出しのスタイルのプロパティではない可能性があります。この場合、変更対象のプロパティは継承されたプロパティであると考えられます。

ルック アンド フィール エディタでは、特定のスタイルの継承されたプロパティを表示し、編集できます。たとえば、テキストのフォント サイズを変更するとします。編集するスタイルを選択 (たとえば、表示領域でテキストをクリック) した後、font-size はそのテキストの CSS スタイルのプロパティではないことがわかりました。[継承されたスタイル] リストを見ると、font-size は、カスケードの上位にあるスタイルに定義されていることがわかりました。

この時点で、現在定義されている場所 (カスケードの上位の場所) の font-size プロパティを編集するか、変更するテキストのスタイルにこのプロパティを直接追加するかを決める必要があります。カスケードの上位にあるプロパティを変更した場合、このプロパティを継承している他のテキストのプロパティが間違って変更される可能性があります。状況に応じて、どちらにするかを決定します。選択したスタイルで直接変更した場合、継承されたスタイルはオーバーライドされ、そのスタイルで新しいプロパティ値が使用されます (再びオーバーライドされない限り、階層の下位のスタイルでも同じ値が使用されます)。

ヒント : 継承されたスタイルにプロパティを追加するか、既存のプロパティを変更するには、[継承されたスタイル] リストのスタイル名をダブルクリックします。次に、CSS スタイル ウィザードを使用して、変更を行います。

HTML ドキュメントは階層状に構成されています。これは、HTML ドキュメントの各要素には、1 つまたは複数の子要素、1 つの親要素、および複数の祖先要素が存在する可能性があることを意味します。CSS の中心機能は、HTML ドキュメント階層の下位方向に向かってスタイルが継承されることです。たとえば、次のツリー図は、簡単な HTML ドキュメント階層を表しています。

このドキュメントのすべてのテキストの色を青にする場合は、body タグに青を定義します。CSS 継承によって、body より下位のすべての要素 (具体的には li と h1) も青になります。一方、リスト要素以外のすべて要素を青にするには、ul タグに別の色、たとえば赤を定義します。これで、すべての li 要素は、親である ul から赤という色を継承します。同時に、h1 タグは青になります (h1 タグは、body から引き続き色を継承します)。

ルック アンド フィール エディタは、選択したスタイルが継承しているすべてのスタイルを表示します。したがって、スタイルのフォント サイズを変更する場合、そのスタイルにフォント サイズが定義されていなくても、フォント サイズの継承元のスタイルを一目で確認できます。その後、次の節で説明するように、簡単にプロパティを変更できます。

表示領域

表示領域には、編集対象の CSS スタイルを使用する HTML が表示されます。ルック アンド フィール エディタを起動すると、テキスト要素の代表的なサンプルを示すデフォルトの HTML ページが表示されます。

注意 : ルック アンド フィール エディタを起動するには、ルック アンド フィール (.laf) ファイルを開きます。表示領域に示される HTML ファイルは、.laf ファイルがスキンで参照しているものと同じ CSS ファイルを参照している必要があります。デフォルトの HTML ページをエディタにロードした場合、この接続は自動的に確立されます。しかし、ポータルからエディタに HTML をロードした場合は、ポータルがエディタと同じ .laf ファイルを参照していることを確認する必要があります。

アウトライン ビュー

アウトライン ビューには、ポータルの skin.xml ファイルで参照されているファイルが表示されます。このパネルでは、次のプロパティを編集できます。

図 6-10 に、[ドキュメント構造] パネルの一部を示します。この図では、css/portlet.css ファイルが展開され、その中に定義されているスタイルが表示されています。スタイルをダブルクリックして、プロパティを追加または変更できます。.css ファイル、スタイル名、またはスタイル プロパティをクリックして、プロパティ ビューに値を表示し、編集することもできます。

図 6-10 スタイルをダブルクリックしてプロパティを変更

スタイルをダブルクリックしてプロパティを変更

このパネルでは、CSS スタイルにアクセスするだけでなく、図 6-11 に示すように、ポータルに関連付けられたルック アンド フィール ファイルのプロパティにアクセスし、編集することもできます。新しいスキン ファイルおよびスケルトン ファイルの選択も含め、これらのプロパティはすべて変更できます。ルック アンド フィール ファイル ノードは、ドキュメント構造の最上位にあります。

図 6-11 アウトライン ビューのルック アンド フィール ファイル

アウトライン ビューのルック アンド フィール ファイル

プロパティ ビュー

プロパティ ビューでは、選択した CSS スタイルまたはルック アンド フィール ファイルの値を対話形式で変更できます。プロパティ ビューにプロパティを表示するには、次のいずれかの操作を行います。

 


ルック アンド フィール API の使用

Javadoc に記載された次のパッケージを使用すると、ルック アンド フィールに対して多数のプログラム操作を実行できます。

 


シェルの操作

シェルは、ポータルのヘッダ領域とフッタ領域を定義します。シェルにポートレット、JSP、および HTML ファイルを組み込んで、ヘッダまたはフッタに表示するコンテンツを定義できます。

ヒント : ヘッダやフッタにポートレットを配置するには、レイアウトを各ヘッダとフッタに関連付ける必要があります。

新しいシェルを作成するか、既存のシェルを変更することができます。

注意 : 以前のバージョンで作成したシェルには、シェル エディタを使用した変更はできません。前に作成したシェルを変更するには、XML エディタを引き続き使用する必要があります。

この節では、次のトピックについて説明します。

新しいシェルの作成

新しいシェルを作成するには、以下の手順に従います。

  1. マージ済みプロジェクト ビューで、ポータル Web プロジェクトの framework/markup/shells ディレクトリからファイル システムに既存のシェルをコピーします。
  2. 注意 : GroupSpace がポータル Web プロジェクトで有効な場合は、communityFiles/shell/communityHeaderFooter.shell もコピーできます。
  3. Project Explorer でシェルを右クリックし、[アプリケーションから開く|シェル エディタ] を選択します。
  4. アウトライン ビュー内で、[シェル] をクリックし、 [プロパティ] ビューにそのプロパティを表示します。
  5. シェル プロパティ ビューで、タイトルと説明プロパティを変更します。
  6. 新しいシェルを保存します。

シェルの変更

シェルのプロパティ、およびヘッダとフッタのプロパティを変更できます。非常に一般的なシェル変更の 1 つは、ヘッダやフッタにレイアウトを追加することです。ヘッダやフッタにレイアウトを追加する場合、ヘッダまたはフッタの中にそれぞれポートレットを配置できます。

シェルを変更するには、以下の手順に従います。

  1. マージ済みプロジェクト ビューでは、シェルを右クリックし、[アプリケーションから開く|シェル エディタ] を選択します。
  2. シェル エディタで、ヘッダやフッタなどの変更する要素をクリックします。
  3. プロパティ ビューで、変更するプロパティを変更します。たとえば、使用するレイアウト タイプを選択します。
  4. 変更内容を保存します。

ポータル デスクトップへのシェルの適用

ポータル デスクトップで使用されたシェルを変更するには、ポータルに対してシェル プロパティをアップグレードする必要があります。ポータル プロパティの更新の詳細については、「ポータル プロパティの編集」を参照してください。

ポータル デスクトップでシェルを変更した場合、または新しく割り当てた場合は、シェルを再ロードして変更が保存されたことを確認する必要があります。

シェルを再ロードするには、次の手順に従います。

  1. プロパティ ビューを使用して、シェル プロパティを更新します。
  2. [シェル プロパティ] ドロップダウン リストの横にある [再ロード] ボタンをクリックします。

 


レイアウトの操作

レイアウトは、ポータル ページおよびヘッダとフッタで使用され、ページ内のポートレットやブックの配置場所を指定する構造を提供します。レイアウトは、HTML テーブルまたは CSS ベースの方法を使用して実装できます。

WebLogic Portal には、ポータルで使用できる定義済みのレイアウト セットが用意されています。ポータル エディタでページを選択すると、プロパティ ビューで、選択したページに対してこれらのレイアウトを使用できます。ページ プロパティの詳細については、「ページ プロパティ」を参照してください。

WebLogic Portal に用意された定義済みレイアウトに加え、カスタム レイアウトを作成することもできます。レイアウトには、以下のファイルが含まれます。

この節では、次のレイアウト タスクについて説明します。

標準レイアウトの作成

図 6-12 に示すように、WebLogic Portal には、独自のレイアウトの作成に使用できるボーダー レイアウト、フロー レイアウト、グリッド レイアウトの 3 種類の標準レイアウトが用意されています。

図 6-12 標準レイアウト : ボーダー、フロー、グリッド

標準レイアウト : ボーダー、フロー、グリッド

各タイプのレイアウトを作成するには、ニーズに合わせて .layout ファイルをコンフィグレーションします。たとえば、上 (N)、左 (W)、および右 (E) 領域だけを使用するボーダー レイアウトを作成できます。

各タイプの標準レイアウトには、HTML として表示するための、対応するスケルトン JSP ファイル borderlayout.jspflowlayout.jsp、および gridlayout.jsp があります。

標準レイアウトが提供している内容以上のレイアウトを作成する場合は、カスタム レイアウトを作成する必要があります。「カスタム レイアウトの作成」を参照してください。

標準レイアウトを作成するには、次の手順を実行します。

  1. マージ済みプロジェクト ビューで、ポータル Web プロジェクトの framework/markup/layouts にある共有 J2EE ライブラリから既存の .layout ファイルと対応する .html.txt ファイルをコピーします。
  2. レイアウトを開き、名前を変更します。拡張子 .layout はそのまま残します。.html.txt ファイルの名前を、拡張子 .html.txt を残して新しいレイアウトと同じ名前に変更します。
  3. .html.txt ファイルで、必要なレイアウト配置を示す HTML のテーブル構造を作成します。
  4. .layout ファイルで、作成するレイアウトのタイプに応じて、<netuix:markup> タグ内に、<netuix:gridLayout><netuix:flowLayout>、または <netuix:borderLayout> の開始タグと終了タグを挿入します (既存の <netuix:*Layout> の開始タグと終了タグを置き換えます)。
  5. 表 6-3 に示すように、<netuix:*Layout> 開始タグ内に以下の属性を追加 (または変更) します。
  6. たとえば、fourcolumn.layout のコピーを変更してボーダー レイアウトを作成する場合は、columns 属性を layoutStrategy 属性に置き換え、値を変更します。

    表 6-3 レイアウト属性
    Title
    ドロップダウン メニューでレイアウトを選択する際の名前を指定する。
    Description
    選択したレイアウトの説明を指定する。
    ボーダー レイアウト属性
    layoutStrategy - 「order」または「title」と入力する。
    order」と入力すると、プレースホルダが <netuix:placeholder> タグで指定した値に基づいて順序付けされる (次の手順で説明)。例は次のとおり。
    <netuix:placeholder>North</netuix:placeholder> は、プレースホルダを上プレースホルダに指定する。
    title」と入力すると、プレースホルダが <netuix:placeholder> title 属性値に基づいて順序付けされる。例は次のとおり。
    <netuix:placeholder title="south" ...></netuix:placeholder> は、プレースホルダを下プレースホルダに指定する。
    フロー レイアウト属性
    orientation - 「vertical」または「horizontal」と入力して、プレースホルダを配置する方向を決定する。
    グリッド レイアウト属性
    columns - レイアウトのカラム数を決定する。行数は自動的に決定される。columns 属性を使用する場合、rows 属性は使用不可。
    rows - レイアウトの行数を決定する。カラム数は自動的に決定される。rows 属性を使用する場合、columns 属性は使用不可。
    htmlLayoutUri
    作成した .html.txt ファイルへのパス (プロジェクトを基準とした相対パス) を指定する。たとえば、/framework/markup/layout/yourNewLayout.html.txt のように指定する。
    markupName
    markupName は、他のレイアウトの間でユニークにする必要がある。

  7. <netuix:*Layout> タグ内に、レイアウトに配置する各プレースホルダを表す、<netuix:placeholder> 開始タグと </netuix:placeholder> 終了タグを追加します。
  8. ボーダー レイアウトを作成する場合、使用できるプレースホルダは 5 つまでです。

  9. 各プレースホルダの開始 <netuix:placeholder> タグに、次の属性を追加します。
  10. title - プレースホルダのタイトルを入力します。layoutStrategy 属性を title に設定したボーダー レイアウトを使用する場合は、タイトルに「north」、「south」、「east」、「west」、または「center」と入力して、ボーダー レイアウト内のプレースホルダの配置を決定します。

    description - プレースホルダの説明を入力します。

    flow - オプションです。ブックおよびポートレットをレイアウトに追加したときに、自動的に水平または垂直に配置されるように制御する場合は、「true」と入力します。

    usingFlow - オプションです。flow 属性を true に設定する場合は、この属性値に「vertical」または「horizontal」と入力します。この値は、ブックおよびポートレットをプレースホルダ内で縦 (垂直) に配置するか、または横 (水平) に配置するかを決定します。

    width - オプションです。プレースホルダの幅を設定します。

    markupType - 必須です。「Placeholder」と入力します。

    markupName - 必須です。プレースホルダの ID として使用されます。各プレースホルダには、レイアウト全体においてユニークな markupName が必要です。

  11. ボーダー レイアウトを作成し、layoutStrategy 属性を order に設定した場合、<netuix:placeholder> の開始タグと終了タグの間に、コンテンツとして 「North」、「South」、「East」、「West」、または「Center」と入力して、レイアウトでの各プレースホルダの位置を決定します。たとえば、<netuix:placeholder>North</netuix:placeholder> は、プレースホルダを上プレースホルダに指定します。
  12. レイアウト ファイルを保存します。
  13. .layout ファイルと同じディレクトリに、同じ名前で拡張子を *.gif に変えた 100x75 ピクセルの .gif を作成します。この画像は、エンド ユーザがポータル デスクトップの独自にカスタマイズしたビューに対してレイアウトを選択したときに、訪問者ツールで表示されます。

これで、ポータル エディタでページを選択し、プロパティ ビューでレイアウトを選択することで、ポータルでレイアウトを使用できます。

カスタム レイアウトの作成

WebLogic Portal の標準レイアウトにニーズに合うものがない場合は、カスタム レイアウトを作成できます。カスタム レイアウトを作成する場合、次の 3 つのものを作成する必要があります。

レイアウト ファイル

カスタム レイアウトのレイアウト ファイルは、標準レイアウトの作成に使用するファイルと同じタイプです。レイアウト ファイルは、.layout 拡張子を付けた XML ファイルです。このファイルは、/WEB-INF 以外の Web アプリケーション ディレクトリ内の任意の場所に配置できます。

.layout ファイルは、手動で作成する必要があります (テキスト エディタまたは XML エディタを使用)。初めて作成する場合は、ポータル Web プロジェクトの /framework/markup/layout ディレクトリにある共有 J2EE ライブラリの既存のレイアウトをコピーすることをお勧めします。

カスタム レイアウトの例

次の例では、左側にカラムを 1 つ配置し、右側に行を 1 つ配置して、その下に 2 つのカラムを配置したカスタム レイアウトを使用します。

このレイアウトは、図 6-13 のようになります。

図 6-13 カスタム レイアウト

カスタム レイアウト

ベスト プラクティスとして、カスタム レイアウトとそのサポート ファイルを別のディレクトリに格納します。この例は、カスタム レイアウトが /webContent/custom/layout/ に格納されていると想定しています。

注意 : 新しい *.layout ファイルを作成する最も簡単な方法は、別のレイアウトからコピーすることです。

コード リスト 6-4 に示すように、この例のレイアウト ファイルは example.layout という名前です。

gridLayout、borderLayout、または flowLayout では必要なレイアウトを作成できないため、この例のレイアウトでは、汎用の netuix:layout タグを使用しています。このタグには、「left」、「upper」、「lower_left」、「lower_right」の 4 つのプレースホルダがあります。

注意 : カスタム レイアウトでは、skeletonUri 属性が重要となります。これは、カスタム レイアウトを表示するために、カスタム スケルトン JSP を開発することが多いためです。この属性は、ポータル表示フレームワークに、使用する JSP を指示します。
コード リスト 6-4 example.layout ファイルのサンプル コード
<?xml version="1.0" encoding="UTF-8"?>
<netuix:markupDefinition xmlns:netuix="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0 markup-netuix-1_0_0.xsd">
<netuix:locale language="en"/>
<netuix:markup>
<netuix:layout markupType="Layout"
markupName="exampleLayout"
title="Example Custom Layout"
description="Example with Left, Upper, Lower Left and Lower Right placeholders"
skeletonUri="/custom/layout/examplelayout.jsp"
htmlLayoutUri="/custom/layout/example.html.txt"
iconUri="/framework/markup/layout/example.gif"
thumbnailUri="/framework/markup/layout/example.gif" type="example">
<netuix:placeholder markupType="Placeholder"
markupName="exampleLayout_left" title="left" usingFlow="false" description="Left Side placeholder" width="30%">
</netuix:placeholder>
<netuix:placeholder markupType="Placeholder"
markupName="exampleLayout_upper" title="upper" usingFlow="true" flow="horizontal" description="Upper placeholder with horizontal flow" width="70%">
</netuix:placeholder>
<netuix:placeholder markupType="Placeholder"
markupName="exampleLayout_lowerLeft" title="lower_left" usingFlow="false" description="Lower Left placeholder (below Upper)" width="35%">
</netuix:placeholder>
<netuix:placeholder markupType="Placeholder"
markupName="exampleLayout_lowerRight" title="lower_right" usingFlow="false" description="Lower Right placeholder (below Upper)" width="35%">
</netuix:placeholder>
</netuix:layout>
</netuix:markup>
</netuix:markupDefinition>
スケルトン JSP

この例では、表示を実行するカスタム スケルトンが必要です (skeletonUri 属性で指定)。この JSP を作成し、レイアウトを使用するルック アンド フィールにコピーする必要があります。レイアウト ファイルと同様に、カスタム レイアウト JSP を作成する最も簡単な方法は、既存の JSP をコピーすることです。

コード リスト 6-5 に、カスタム スケルトン JSP (/framework/markup/layout/examplelayout.jsp) のレイアウトを示します。

コード リスト 6-5 exampleLayout.jsp
<jsp:root
version="2.0"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:skeleton="http://www.bea.com/servers/portal/tags/netuix/skeleton" >
<jsp:directive.page session="false" />
<jsp:directive.page isELIgnored="false" />
<skeleton:context type="layoutpc">
<skeleton:control name="table" presentationContext="${layoutpc}" class="wlp-bighorn-layout"
cellspacing="0" cellpadding="0" width="100%" >
<c:set var="ph" value="${layoutpc.placeholders}"/>
<c:set var="left" value="${ph[0]}"/>
<c:set var="upper" value="${ph[1]}"/>
<c:set var="lowerLeft" value="${ph[2]}"/>
<c:set var="lowerRight" value="${ph[3]}"/>
<tr>
<td rowspan="2" valign="top" width="${left.width}">
<skeleton:child presentationContext="${left}"/>
</td>
<td colspan="2" width="${upper.width}">
<skeleton:child presentationContext="${upper}"/>
</td>
</tr>
<tr>
<td valign="top" width="${lowerLeft.width}">
<skeleton:child presentationContext="${lowerLeft}"/>
</td>
<td valign="top" width="${lowerRight.width}">
<skeleton:child presentationContext="${lowerRight}"/>
</td>
</tr>
</skeleton:control>
</skeleton:context>
</jsp:root>

これで、カスタム レイアウトは完全に機能します。html.txt ファイルをまだ作成していなくても、レイアウトをテストできます。これを行うには、ポータル ファイルを作成し、ページを選択して、プロパティ ビューの [レイアウト] フィールドでカスタム レイアウトを選択します。

注意 : .portal ファイルで.layout ファイルを使用した後に、このファイルを変更した場合、変更したレイアウトを再ロードする必要があります。レイアウトを再ロードするには、プロパティ ビューを使用してレイアウト プロパティを更新します。次に、[再ロード] をクリックします。[再ロード] (レイアウト プロパティのドロップダウン リストの横) をクリックします。
html.txt ファイル

.html.txt は、Workshop for WebLogic で使用される HTML 断片です。このファイルにより、レイアウトの外観を視覚的に表現できるため、開発者または管理者はポートレットを適切なプレースホルダに配置できます。

この例では、custom.html.txt ファイルは、/framework/markup/layout/example.html.txt であり、コード リスト 6-6 に示すサンプルのようになります。

コード リスト 6-6 example.html.txt のサンプル コード
<table class="portalLayout" id="thePortalLayout" width="100%" height="100%">
<tr>
<td class="placeholderTD" valign="top" rowspan="2" width="30%">
<placeholder number="0"/>
</td>
<td class="placeholderTD" valign="top" colspan="2" width="70%">
<placeholder number="1"/>
</td>
</tr>
<tr>
<td class="placeholderTD" valign="top" width="35%">
<placeholder number="2"/>
</td>
<td class="placeholderTD" valign="top" width="35%">
<placeholder number="3"/>
</td>
</tr>
</table>

 


ナビゲーション メニューの操作

メニューは、ポータル ページで使用するナビゲーション スタイルを決定します。WebLogic Portal は、2 種類のメニューを提供しています。1 つは、単一レベルの 1 行分のタブで、もう 1 つは、複数レベルのネストされたドロップダウン形式のページ ナビゲーションです。

ナビゲーション メニューの動作を、デフォルト メニューで使用できる動作とは異なる動作にする場合は、ルック アンド フィールの /skeletons ディレクトリにある singlelevelmenu.jsp スケルトンまたは multilevelmenu.jsp スケルトンを共有 J2EE ライブラリからファイル システムにコピーし、必要な変更を行います。複数レベル メニューの動作を変更する場合、スキンの /js サブディレクトリにあるスキンの menu.js ファイルも変更することが必要になる場合があります。

ページ タブでの画像の使用

ページ タブで画像 (選択したブックのプロパティ ビューの [ロールオーバ画像]、[選択済み画像]、[未選択画像]) を使用するには、その画像へのパスを入力します。このパスは、skin.xml ファイルで指定されたルック アンド フィールの画像検索パスを基準とした相対パスです。

たとえば、skin.xml の画像検索パスが <path-element>images</path-element> であり、メニュー画像がスキンの /images ディレクトリに格納されている場合、プロパティ ビューで画像ファイルの名前を入力します。メニュー画像がポータル Web プロジェクトの /images サブディレクトリに格納されている場合は、../../../../images/my_rollover.gif のようにグラフィックへのパスを入力します。

 


アクセシビリティ ガイドラインをアドレス指定するユーザ インタフェースの構築

多くの組織で必要なのは、特別なニーズを持つユーザをサポートするための、業界または政府の標準を満たす Web サイトを提供することです。特定の要件がない場合でも、さまざまなユーザのニーズを満たすようにサイトを設計することが重要です。

WebLogic Portal は、アクセスしやすいポータルおよびアプリケーションの設計、開発、および管理をサポートする柔軟なアーキテクチャを提供しています。たとえば、ユーザ プリファレンス、ブラウザ属性、リクエスト属性に基づいて、特定のユーザ インタフェースを対象にする機能を提供しています。

WebLogic Portal によるユーザ インタフェースの構築の詳細については、「ルック アンド フィールのファイルの操作」を参照してください。

この節の内容は以下のとおりです。

アクセシビリティのチェックポイント

Web サイトを開発する場合、次の一般的なガイドラインを使用して、アクセシビリティを高めることができます。完全なリストについては、使用する実装に関連する、業界または政府の規定を参照してください。

W3C Web Content Accessibility Guidelines

政府の規制と標準

表 6-4 に、政府規制のリソースを示します。

表 6-4 政府標準のリソース
リソース
米国
http://www.section508.gov
カナダ
英国

アクセシビリティの評価とテスト ツール

以下のツールを使用して、Web ページのコードを検証できます。これらのツールはコードの修正は行いませんが、HTML 4.0、W3C、Section 508、および一般的なアクセシビリティの問題に関連する事項で、修復が必要なもの、必要ないものをレポートします。

W3C Web Accessibility Initiative

詳細については、W3C の評価および修復ツール ページ (http://www.w3.org/TR/2000/WD-AERT-20000426) を参照してください。

Bobby

Bobby ツールは、優先レベルおよび Section 508 の問題に従って、W3C アクセシビリティの問題を識別します。Bobby ツールをダウンロードするには、http://bobby.watchfire.com/bobby/html/en/index.jsp を参照してください。

注意 : Bobby の無償版では、一度に 1 ページずつテストできます。

Lynx Viewer

Lynx Viewer は、ページのコンテンツが Lynx (テキストのみ対応のブラウザ) でどの程度利用できるか示す HTML ページを生成します。視覚障害のあるユーザにとって、サイトがどの程度有用であるかを示すと共に、古い技術を使用するユーザにとっても適切な指標になります。 http://www.delorie.com/web/lynxview.html を参照してください。


ページの先頭       前  次