UIX開発者ガイド | ![]() 目次 |
![]() 前へ |
![]() 次へ |
UIXの各機能は、Webアプリケーションの各機能の開発に使用されます。これは、ユーザーが必要なUIX機能のみを利用できることを意味します。このトピックでは、UIXの各種の機能およびテクノロジについて簡単に説明します。項目は、次のとおりです。
次のどの開発環境を使用しても、UIXアプリケーションを開発できます。
Java。UIXには、UIXアプリケーションを完全にJavaで開発するためのJavaクラスおよびAPIが組み込まれています。すべてのUIXクラスは、oracle.cabo
パッケージとそのサブパッケージに含まれます。
uiXML。uiXMLは、uiXML要素を使用してUIXアプリケーションを宣言的に開発するためのXML言語です。これはUIXで開発する場合に推奨される方法です。(uiXMLの詳細は、後述する「uiXMLについて」を参照してください。)
JSPタグ。UIXには、JSPで作業するユーザー用に、JavaServer Pages(JSP)のタグ・ライブラリも組み込まれています。
uiXMLとJavaの例は、このヘルプを通して提供されます。UIX JSPタグ・ライブラリの使用方法の詳細は、「UIX JSPタグ・ライブラリ」を参照してください。
UIXには、2つの主要な機能領域があります。ユーザー・インタフェースでページを定義およびレンダリングするためのUIX Componentsと、アプリケーションにおけるイベントおよびページ間の相互作用を管理するためのUIX Controllerです。
UIX Componentsには、ユーザー・インタフェース・コンポーネントのセットと、それをレンダリングするための手段が組み込まれています。
ユーザー・インタフェース・コンポーネントはJavaBeansとして実装されます。これにはページ・レイアウトや、ボタン、フォームおよびチェックボックスなどの標準のHTMLコントロールにマップされるユーザー・インタフェース・オブジェクトが含まれています。また、ツリー、表示/非表示コントロール、値リスト(LOV)およびシャトルなどの複合コンポーネントも含まれています。すべてのUIXコンポーネントに、ローカライズ、アクセシビリティ・サポートおよび一貫性のあるルック&フィールに対する機能が備えられています。
レンダラは、ユーザー・インタフェース・コンポーネントをターゲットのクライアントまたはデバイスにレンダリングするためのJavaクラスです。これらのコンポーネントはターゲットによってレンダリング方法が変わります。たとえば、Webブラウザで使用する場合はHTML、携帯情報端末で使用する場合はWML(Wireless Markup Language)でレンダリングされます。そのベースの実装では、レンダラは、Oracle Browser Look and Feel(BLAF)の視覚的および動作的特性を持つHTMLを生成します。UIXには将来、他のルック&フィール実装も組み込まれますが、独自のものを作成することは可能です。ページまたはコンポーネントの定義を変更せずに、レンダラのセットに追加することや、そのセットと置き換えることも可能です。UIXレンダラには複数のロケールおよび言語に対するビルトイン・サポートも含まれています。
UIX ComponentsをサポートするJavaコードおよびクラスは、oracle.cabo.ui
パッケージとそのサブパッケージに含まれています。
UIXには動的なイメージ生成のためのユーティリティ(後述の「UIX Dynamic Images」を参照)や、Cascading Style Sheet(CSS)(後述の「UIX Styles」を参照)も含まれています。これらのユーティリティをレンダラとともに使用すると、異なるロケール、フォントおよびブラウザ間でUIXユーザー・インタフェースが移植可能になります。
UIX Controllerは、UIXの中央処理モジュールであるJ2EEベース・サーブレットです。Webリクエスト(イベント)の受信、処理およびディスパッチを担当し、アプリケーション内のページ間のナビゲーションを管理します。通常、コントローラはHTTPリクエストに応答してアプリケーションおよびビジネス・ロジックを実行した後、それに応じてアプリケーションの状態を更新します。この処理の結果として、コントローラはブラウザにページをレンダリングします。
UIX Controllerは、アプリケーションによるHTMLイベントの処理方法を標準化し、エラー・ページのループ、ログインのサポートおよびファイルのアップロードなど、ビルトインのサービスを提供します。UIX Controllerは、UIX Components、JSPまたはeXtensible Stylesheet Language Transformations(XSLT)など、個々のページのレンダリングに使用されるテクノロジとは独立して動作しますが、UIX Componentsなどのテクノロジを使用する際に開発を容易にするビルトインのサポートが含まれています。
UIX ControllerをサポートするJavaコードおよびクラスは、oracle.cabo.servlet
パッケージとそのサブパッケージに含まれています。
UIXにはその他の機能、ユーティリティおよびクラス・サポートが含まれており、これらを使用するとWebアプリケーションの作成により広範なコントロールおよび柔軟性を持たせることができます。
UIX Dynamic Imagesでは、テキストを含むイメージを生成するための手段が提供され、ボタンやタブのサポートも組み込まれています。ローカライズおよびアクセシビリティのサポートや、パフォーマンス向上のためのキャッシュ・サポートの提供だけでなく、カラー・スキームをサポートするためにアプリケーションのイメージの色を変えることも行います。UIX Dynamic Imagesでは、イメージとイメージ・マップ(必要な場合)が生成されます。
テキストがイメージとは別に処理されるため、UIX Dynamic Imagesを使用したローカライズは容易で効率も高くなります。翻訳者はテキストのみを処理し、イメージを編集する必要はありません。翻訳されたテキストは別の場所(たとえばリソース・ファイル)に保存でき、必要時に抽出してイメージと結合できます。このようにテキストとイメージの処理を分離することにより、漢字など複雑な文字の場合にテキストのサイズを大きくするなど、特別な目的に応じてテキストの様々なスタイルやサイズを使用したり、色盲など視覚障害を持つユーザーのために視覚的属性を調整したりできます。
UIX Dynamic ImagesをサポートするJavaコードおよびクラスは、oracle.cabo.image
パッケージとそのサブパッケージに含まれています。UIX Componentsでは、レンダリング済のイメージについてはUIX Dynamic Imagesが使用されます。
UIX Stylesは、様々なエンド・ユーザー環境(ロケール、ブラウザまたはプラットフォームなど)についてのスタイルシートの定義とカスタマイズのためのアーキテクチャを提供します。スタイルシートによって、ページのコンテンツとは別に、ページの表示形式の定義や変更を集中的に行うメカニズムが提供されます。
UIX Stylesには、環境固有のスタイルシートを定義するための新しいXML Style Sheet Language(XSS)が含まれています。XSSは、Cascading Style Sheet(CSS)に基づいています。UIX Stylesは、スタイル情報を管理するためのサーバー側APIも備えています。CSSスタイルシートを実行時に動的に生成するための機能も含まれます。
UIX StylesをサポートするJavaコードおよびクラスは、oracle.cabo.style
パッケージとそのサブパッケージに含まれています。UIX ComponentsおよびUIX Dynamic Imagesでは、スタイル情報についてはUIX Stylesが使用されます。
すべてのUIXプロジェクトは、UIX Shareによって提供される共通ユーティリティ・クラスに依存しています。UIX Shareクラスには、構成サポートやローカライズなど、すべてのUIX Webアプリケーションに役立つ機能が含まれています。UIX ShareをサポートするJavaコードおよびクラスは、oracle.cabo.share
パッケージとそのサブパッケージに含まれています。
uiXMLはUIXアプリケーションをプログラミングするためのXML言語です。uiXMLは他のUIXテクノロジの上位に位置し、ユーザー・インタフェースの指定とそのインタフェースのデータおよびイベントへのリンクのためのXML言語を提供します。uiXMLは、UIX Java APIを使用したプログラミングによるWebアプリケーション作成にかわる、宣言的開発手法です。uiXML要素で定義したページ、イベントおよびその他のアイテムはすべてJavaオブジェクトに自動的に変換されるため、UIXによって同等に扱われます。コンパイルは不要です。
ボタンを定義するuiXML要素の例を示します。
<button text="Policy"
destination="http://www.mycompany.com/policy"
disabled="false"/>
次のuiXMLはイベント・ハンドラを定義します。
<handlers>
<event name="goto">
<navigate parameter="value">
<when value="1" page="first"/>
<when value="2" page="second"/>
<when value="3" page="third"/>
</navigate>
</event>
</handlers>
uiXMLがXML言語であるという事実は、設計面にも影響します。
uiXML文書はテキスト形式であり、各文書がUIXページまたは他のページに組み込まれるページのサブセットを表します。
uiXMLのページは、多くの場合ファイル拡張子 .uix
のファイルとして格納されます。ただし、これは必須ではありません。uiXML文書はサーバー上のメモリーに完全に常駐し、ファイル・システムにファイルが存在しないこともあります。
uiXML文書は、XML標準で定義されているとおり整形式で妥当な文書である必要があります。
整形式のuiXML文書は、すべての要素の開始タグに終了タグが対応するなど(省略形の要素形式を使用していない場合)、すべてのXML構文の要件に準拠しています。これらの構文規則はXMLバージョン1.0標準のものです。
uiXML文書が妥当であるのは、各要素について定義されているセマンティック規則に準拠している場合です。たとえば、uiXML規則で、<foo>
要素には1つの<bar>
子要素が必要であり属性が不要であると規定されていれば、妥当な文書となるためには、文書内のすべての<foo>
要素がこの規則に準拠している必要があります。
uiXML文書の規則(文法)はスキーマで定義されています。スキーマとは、XML文法を定義するXML Schema標準に書き込まれたXML文書のことです(www.w3.org/XML/Schemaを参照してください)。スキーマは、文法の定義にXML以外の書式を使用するDocument Type Defintion(DTD)にかわるものです。
uiXML要素について記述されているスキーマは .xsd
というファイル拡張子を持ち、UIXリリースのoracle\cabo\ui\xml\schemas
ディレクトリにあります。妥当な文書となるためには、uiXML文書がこれらのスキーマの規則に準拠している必要があります。ただし、UIXには文書およびツールが含まれており、準拠したuiXML文書の記述に使用できるため、スキーマそのものについて調べたり、理解する必要はありません。
uiXMLをサポートするJavaコードおよびクラスは、oracle.cabo.ui.xml
およびoracle.cabo.servlet.xml
のパッケージとそのサブパッケージに含まれています。
UIXテクノロジ・スタックはオープンで柔軟性が高いため、ユーザーは必要に応じて任意の数の機能を選択して使用できます。ただし、様々なUIXテクノロジが連動するように設計されていることに注意する必要があります。つまり、あるUIXテクノロジによって別のテクノロジが簡単に使用できるようになる可能性があります。たとえば、UIX Controllerが、uiXMLで指定されたページを自動的に作成してキャッシュするのは、これに対するビルトイン・サポートがあるためです。UIX ComponentsのUIコンポーネントを使わずにuiXMLを使用する場合は、ロードするコードをuiXML文書に記述して表示する必要があります。逆に、uiXMLによる宣言的手法を使わずにUIX ComponentsのUIコンポーネントを使用する場合は、ページの表示方法をUIXフレームワークに対して指定する、コードを記述する必要があります。
次に、推奨されるテクノロジの組合せを示します。
Webアプリケーションを新規作成する場合
UIX Controllerを使用してアプリケーション・フローを管理し、UIX ComponentsおよびuiXMLを使用してページのレイアウトとイベントを指定します。これにより作業量を最小限に抑えつつUIXの機能を最大限に活用できます。
既存のアプリケーション・フロー管理テクノロジは置き換えられないが、ページ・レンダリングには柔軟性を持たせる場合
UIX ComponentsおよびuiXMLを使用して、ページの作成とレンダリングを行います。UIXスタック全体を使用できない場合でも、UIX Components(エージェント・ベースのレンダリング・アーキテクチャ、高レベルのページBean、ローカライズなど)を活用できます。ただし、UIX Controller全体を適用しない場合でも、UIX Controllerコードの一部がサーバー側のフロー管理に役立つことに注意してください。たとえば、UIX Controllerには、ファイル・アップロードを処理するためのユーティリティ・コードが含まれています。これは、一般的にJavaサーブレット・ベースのアプリケーションに対して役立ちます。
サーブレット経由で管理する必要がある既存ページ(JSPまたは動的HTML)がある場合
UIX Controllerサーブレットを使用して、ログインの管理、エラーの処理、基本サーブレット・アーキテクチャに含まれないユーティリティの提供を行います。UIX Componentsに基づく追加ページを後で容易に組み込むこともできます。
HTMLまたはJSPで設計された既存ページがあり、アプリケーションに新規ページを実装する必要もある場合
UIX ComponentsおよびuiXMLをすべてのページで使用します。UIX ComponentsおよびuiXMLを使用できるのは、これらによって、パススルー機能を使用し、既存のJSPやHTMLなどその他のコンテンツを同一ページ上に点在させる簡単な方法が提供されるためです。これにより、後からページを1つのテクノロジに統一する機会が得られ、徐々に移行することが可能になります。
UIX Components Beanの使用を希望しているが、ページ内の他の部分ですでにJavaベースのページ・レンダリングを使用している場合
Java Web Beanクラスを介しても、ページ上でUIX Componentsを使用できます。生成される出力は、既存のJava生成ページ出力とマージできます。ページ管理についてUIX Controllerを使用するかどうかの決定は、この選択には依存しません。
現在のページ・レンダリング・テクノロジを変更できないが、Webアプリケーションのイメージをローカライズする必要がある場合
UIX Dynamic Imagesを使用して、ローカライズするテキストを含むイメージを生成します。
現在のページ・レンダリング・テクノロジを変更できないが、各ページ利用者のブラウザ、ロケールまたは作業環境に合せた製品のスタイルシートが必要な場合
UIX Stylesを使用して、可変値に基づいて個々のスタイルシートを生成およびキャッシュします。
UIXプロジェクトのほとんどすべての部分を開発者が利用できますが、開発者によるJava APIでの利用がごく一部で禁止されています。特に一部のクラスには、APIアクセス・レベル以外の、互換性に対する制限があります。これらのクラスの互換性は、UIXの将来のバージョンでは保証されません。アップグレード後にこれらのクラスを使用するとコードが機能しない場合があります。
oracle.cabo.ui.laf.LookAndFeel
クラスまたはoracle.cabo.ui.laf.*
サブパッケージのすべてのクラスを直接コールしないでください。これらのクラスには、下位互換性の維持が保証されていない内部レンダリング・コードが含まれています。
JavaScriptコードを記述し、既存のJavaScriptライブラリをUIXで使用する場合は、下線(_)が最初に付いているメソッドを使用しないでください。これは、変更される可能性がある内部の専用関数を示す表記規則です。JavaScriptそのものには制限の機能はありません。
UIXの完全なカスタマイズまたは変更を行う場合は、次のインタフェースを直接実装しないでください。
oracle.cabo.ui.Renderer
oracle.cabo.ui.UINode
oracle.cabo.ui.RenderingContext
oracle.cabo.ui.io.OutputMethod
Cabo、BajaおよびMarlinなどの名前が、UIXのファイル名、パッケージ名およびクラス名の一部で使用されています。これらはプロジェクトの初期のコード名の名残です。特別な意味はありません。ただし、これらは下位互換性を保つために使用されています。