(57)【特許請求の範囲】
【請求項１】
コンポーネント化されたアプリケーション環境のためのユーザ・インターフェース拡張方法であって、
ユーザ・インターフェース・コントロールのセットをマークアップで指定するステップと、
前記セット内のユーザ・インターフェース・コントロールの拡張子をマークアップでさらに指定するステップであって、前記ユーザ・インターフェース・コントロールの拡張子は、既存のユーザ・インターフェース・コントロールを置換するためのプラグインであるステップと、
マニフェストを取得するステップと、
前記ユーザ・インターフェース・コントロールのセットをロードするステップと、
前記ユーザ・インターフェース・コントロールのための前記マークアップを前記拡張子のための前記マークアップで置き換えるステップと、
コンフィギュレータをロードするステップと、
前記コンフィギュレータが、コントロールの参照された拡張子に基づいて、ユーザ・インターフェース・コントロールを修正すべきかどうか判断し、もしそうなら、置換すべき既存のコントロールを識別し、ユーザ・インターフェース・コントロールを置換するステップと、
前記拡張子と、ユーザ・インターフェース・コントロールの前記セットとを、対応のコントロール・ファクトリのセットに提供して、前記コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースを定義するユーザ・インターフェース・コントロール・インスタンスを生成するステップと
を含む、方法。
【請求項２】
ユーザ・インターフェース・コントロールのセットをマークアップで指定するステップは、前記ユーザ・インターフェース・コントロール毎にタイプを定義するステップであって、前記タイプは、前記定義されたタイプを有するユーザ・インターフェース・コントロールのインスタンスを生じさせることができるユーザ・インターフェース・コントロール・ファクトリに対応している、ステップと、マネージャ・タイプを、前記ユーザ・インターフェース・コントロール毎にさらに定義するステップであって、前記マネージャ・タイプは、前記さらに定義されたマネージャ・タイプを有するユーザ・インターフェース・コントロールのインスタンスについての動作を管理することができるウィジェット・マネージャに対応している、ステップとを含む、請求項１に記載の方法。
【請求項３】
ユーザ・インターフェース・コントロールのための前記マークアップを前記拡張子のた
めの前記マークアップで置き換えるステップは、前記ユーザ・インターフェース・コントロールの拡張子のための環境のユーザ・インターフェース・コントロール拡張ポイントを指定するステップと、前記拡張子のためのユーザ・インターフェース・コントロール定義をさらに指定するステップと、前記拡張ポイントを前記拡張子のためのユーザ・インターフェース・コントロール定義に関連付けるステップと、前記環境のためのユーザ・インターフェースを組み立てる際に前記拡張子が代用されるべき前記ユーザ・インターフェース・コントロールの代わりとして前記拡張子を識別するステップとを含む、請求項２に記載の方法。
【請求項４】
ユーザ・インターフェース・コントロールのセットの構成をマークアップで宣言するステップと、前記構成の拡張子をマークアップでさらに宣言するステップと、構成のための前記マークアップを前記構成の前記拡張子のための前記マークアップで置き換えるステップと、前記構成の前記拡張子のための前記マークアップをコントロール・ファクトリに提供して、前記コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースを定義するユーザ・インターフェース・コントロールのインスタンスの構成のインスタンスを生成するステップとをさらに含む、請求項１に記載の方法。
【請求項５】
ユーザ・インターフェース・コントロールのセットの構成をマークアップで宣言するステップは、ユーザ・インターフェース・コントロールのセットのグリッド・レイアウト構成をマークアップで宣言するステップを含む、請求項４に記載の方法。
【請求項６】
ユーザ・インターフェース・コントロールのセットの構成をマークアップで宣言するステップは、ユーザ・インターフェース・コントロールのセットのフォーム・レイアウト構成をマークアップで宣言するステップを含む、請求項４に記載の方法。
【請求項７】
ユーザ・インターフェース・コントロールのための前記マークアップを前記拡張子のた
めの前記マークアップで置き換えるステップは、マニフェスト内で、前記ユーザ・インターフェース内のユーザ・インターフェース・コントロールの拡張子のセットを識別するステップと、前記マニフェスト内の前記識別された各ユーザ・インターフェース・コントロールのためのマークアップを対応する識別された前記拡張子のうちの１つのためのマークアップで置き換えるステップとを含む、請求項１に記載の方法。
【請求項８】
コンポーネント化されたアプリケーション環境のためのユーザ・インターフェース拡張のためのコンピュータ使用可能なプログラム・コードを実施するコンピュータ・プログラムであって、
ユーザ・インターフェース・コントロールのセットをマークアップで指定するためのコンピュータ使用可能なプログラム・コードと、
前記セット内のユーザ・インターフェース・コントロールの拡張子をマークアップでさらに指定するためのコンピュータ使用可能なプログラム・コードであって、前記ユーザ・インターフェース・コントロールの拡張子は、既存のユーザ・インターフェース・コントロールを置換するためのプラグインであるステップと、
マニフェストを取得するためのコンピュータ使用可能なプログラム・コードと、
前記ユーザ・インターフェース・コントロールのセットをロードするためのコンピュータ使用可能なプログラム・コードと、
前記ユーザ・インターフェース・コントロールのための前記マークアップを前記拡張子のための前記マークアップで置き換えるためのコンピュータ使用可能なプログラム・コードと、
コンフィギュレータをロードするためのコンピュータ使用可能なプログラム・コードと、
前記コンフィギュレータが、コントロールの参照された拡張子に基づいて、ユーザ・インターフェース・コントロールを修正すべきかどうか判断し、もしそうなら、置換すべき既存のコントロールを識別し、ユーザ・インターフェース・コントロールを置換するためのコンピュータ使用可能なプログラム・コードと、
前記拡張子と、ユーザ・インターフェース・コントロールの前記セットとを、対応のコントロール・ファクトリのセットに提供して、前記コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースを定義するユーザ・インターフェース・コントロール・インスタンスを生成するためのコンピュータ使用可能なプログラム・コードとを含む、コンピュータ・プログラム。
【請求項９】
ユーザ・インターフェース・コントロールのセットをマークアップで指定するためのコ
ンピュータ使用可能なプログラム・コードは、前記ユーザ・インターフェース・コントロール毎にタイプを定義するためのコンピュータ使用可能なプログラム・コードであって、前記タイプは、前記定義されたタイプを有するユーザ・インターフェース・コントロールのインスタンスを生じさせることができるユーザ・インターフェース・コントロール・ファクトリに対応している、コンピュータ使用可能なプログラム・コードと、マネージャ・タイプを、前記ユーザ・インターフェース・コントロール毎にさらに定義するためのコンピュータ使用可能なプログラム・コードであって、前記マネージャ・タイプは、前記さらに定義されたマネージャ・タイプを有するユーザ・インターフェース・コントロールのインスタンスについての動作を管理することができるウィジェット・マネージャに対応している、コンピュータ使用可能なプログラム・コードとを含む、請求項８に記載のコンピュータ・プログラム。
【請求項１０】
ユーザ・インターフェース・コントロールのための前記マークアップを前記拡張子のための前記マークアップで置き換えるためのコンピュータ使用可能なプログラム・コードは、前記ユーザ・インターフェース・コントロールの拡張子のための前記環境のユーザ・インターフェース・コントロール拡張ポイントを指定するためのコンピュータ使用可能なプログラム・コードと、前記拡張子のためのユーザ・インターフェース・コントロール定義をさらに指定するためのコンピュータ使用可能なプログラム・コードと、前記拡張ポイントを前記拡張子のためのユーザ・インターフェース・コントロール定義に関連付けるためのコンピュータ使用可能なプログラム・コードと、前記環境のためのユーザ・インターフェースを組み立てる際に前記拡張子が代用されるべき前記ユーザ・インターフェース・コントロールの代わりとして前記拡張子を識別するためのコンピュータ使用可能なプログラム・コードとを含む、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
ユーザ・インターフェース・コントロールのセットの構成をマークアップで宣言するためのコンピュータ使用可能なプログラム・コードと、前記構成の拡張子をマークアップでさらに宣言するためのコンピュータ使用可能なプログラム・コードと、構成のための前記マークアップを前記構成の前記拡張子のための前記マークアップで置き換えるためのコンピュータ使用可能なプログラム・コードと、前記構成の前記拡張子のための前記マークアップをコントロール・ファクトリに提供して、前記コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースを定義するユーザ・インターフェース・コントロールのインスタンスの構成のインスタンスを生成するためのコンピュータ使用可能なプログラム・コードとをさらに含む、請求項８に記載のコンピュータ・プログラム。
【請求項１２】
ユーザ・インターフェース・コントロールのセットの構成をマークアップで宣言するためのコンピュータ使用可能なプログラム・コードは、ユーザ・インターフェース・コントロールのセットのグリッド・レイアウト構成をマークアップで宣言するためのコンピュータ使用可能なプログラム・コードを含む、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
ユーザ・インターフェース・コントロールのセットの構成をマークアップで宣言するためのコンピュータ使用可能なプログラム・コードは、ユーザ・インターフェース・コントロールのセットのフォーム・レイアウト構成をマークアップで宣言するためのコンピュータ使用可能なプログラム・コードを含む、請求項１１に記載のコンピュータ・プログラム。
【請求項１４】
ユーザ・インターフェース・コントロールのための前記マークアップを前記拡張子のための前記マークアップで置き換えるためのコンピュータ使用可能なプログラム・コードは、マニフェスト内で、前記ユーザ・インターフェース内のユーザ・インターフェース・コントロールの拡張子のセットを識別するためのコンピュータ使用可能なプログラム・コードと、前記マニフェスト内の前記識別された各ユーザ・インターフェース・コントロールのためのマークアップを対応する識別された前記拡張子のうちの１つのためのマークアップで置き換えるためのコンピュータ使用可能なプログラム・コードとを含む、請求項８に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンポーネント化されたアプリケーション環境の分野に関し、より特定的には、コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースの拡張に関する。
【背景技術】
【０００２】
コンポーネント化されたアプリケーション環境とは、コンポーネント化されたアプリケーション環境の拡張ポイントへのプラグインとして指定されるアプリケーション・コンポーネントの配置から実行時に構築されるアプリケーション環境である。Ｅｃｌｉｐｓｅ（商標）プラットフォーム（Ｅｃｌｉｐｓｅは、ｅｃｌｉｐｓｅ．ｏｒｇというドメインでのウェブ・サイトを有するエクリプス・ファウンデーションの商標である）によって実施されるように、コンポーネント化されたアプリケーション環境は、既存のアプリケーション・コンポーネントの露出部分への拡張ポイントを宣言して、当該アプリケーション・コンポーネントへのプラグインを登録して追加の機能または外観を提供することによって、アプリケーションの機能または外観の拡大を提供する。このように、アプリケーション・コンポーネントの基礎をなすコードを改変せずに、既存のアプリケーションを容易に拡張することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般的に、Ｅｃｌｉｐｓｅプラットフォームを含むコンポーネント化されたアプリケーション環境は、アプリケーション寄与者が新規のユーザ・インターフェース・コンポーネントを既存のアプリケーションへ追加することができるようにする拡張モデルを提供することができる。具体的には、既存のアプリケーションのユーザ・インターフェースは、コンポーネント化されたアプリケーション環境への新規のプラグインを作成して、既存の拡張ポイントに対する拡張定義を提供することによって拡張できる。拡張モデルは、新規の機能をアプリケーションに追加するための強力な方法を提供するものの、これまでの拡張モデルは、既存のアプリケーション・コンポーネントの修正または除去に対応していない。
【０００４】
より具体的に述べると、アプリケーションのできるだけ多くの展開においてアプリケーションを再使用できることを確かなものにするためには、アプリケーションが特定の展開の要求に合うように修正できるようなアプリケーションを構築するのが望ましい。また、効果的なサポートおよび展開されたアプリケーションのための「フィックス・パック（ｆｉｘ−ｐａｃｋ）」配信を提供するためには、アプリケーションの長所を直接変更せずに展開固有の修正を適用するのが望ましい。にもかかわらず、現在、展開されたアプリケーションを特定の展開の要件に合うように修正するには、または、フィックス・パックを既存の展開に適用するには、展開されたアプリケーションを直接修正する必要がある。
【０００５】
例えば、Ｅｃｌｉｐｓｅ環境において、ユーザ・インターフェースは、標準的なウィジェット・ツールキットを使用してプログラム・コードの直接的な命令を通じて作成できる。その結果、ユーザ・インターフェースの外部的な修正をプログラム的に許可するには、開発者は、ユーザ・インターフェースの該当するデータおよびメソッド・メンバーを公開することを確実にしなければならない。代替的に、アプリケーション内のＥｃｌｉｐｓｅユーザ・インターフェース・コンポーネントのマークアップ言語記述を使用することもよく知られている。後者の場合、標準的なウィジェット・ツールキットの本来の機能が、ユーザ・インターフェースの拡張性のために犠牲となることがある。さらに、マークアップ言語仕様で定義されたユーザ・インターフェースを拡張するには、マークアップ言語使用の修正が必要であり、Ｅｃｌｉｐｓｅプログラミング・モデルの少なくとも１つの前提に違反することとになり、リリース毎の移動を提供する際のフィックス・パックの配布を阻害することになる。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、アプリケーションのユーザ・インターフェースの拡張に関する技術の不備に対処するものであり、コンポーネント化されたアプリケーション環境におけるアプリケーションのユーザ・インターフェースを拡張するための新規で非自明な方法、システム、装置を提供する。本発明の一実施形態において、コンポーネント化されたアプリケーション環境のためのユーザ・インターフェース拡張方法は、ユーザ・インターフェース・コントロールのセットをマークアップで指定するステップと、当該セット内のユーザ・インターフェース・コントロールの拡張子をマークアップでさらに指定するステップとを含むことができる。ユーザ・インターフェース・コントロールのためのマークアップを拡張子のためのマークアップで置き換えてもよい。そして、拡張子のためのマークアップと、ユーザ・インターフェース・コントロールのセットとを、対応のコントロール・ファクトリのセットに提供することができ、置換ユーザ・インターフェース・コントロールがない場合には、コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースを定義するユーザ・インターフェース・コントロール・インスタンスを生成する。
【０００７】
実施形態の一側面において、ユーザ・インターフェース・コントロールのセットをマークアップで指定するステップは、ユーザ・インターフェース・コントロール毎にタイプを定義するステップを含むことができる。そのタイプは、定義されたタイプを有するユーザ・インターフェース・コントロールのインスタンスを生じさせることができるユーザ・インターフェース・コントロール・ファクトリに対応しうるものである。また、マネージャ・タイプを、ユーザ・インターフェース・コントロール毎にさらに定義することもできる。マネージャ・タイプは、さらに定義されたマネージャ・タイプを有するユーザ・インターフェース・コントロールのインスタンスについての動作を管理することができるウィジェット・マネージャに対応することができる。
【０００８】
本発明の別の側面において、ユーザ・インターフェース・コントロールのためのマークアップを拡張子のためのマークアップで置き換えるステップは、ユーザ・インターフェース・コントロールの拡張子のための環境のユーザ・インターフェース・コントロール拡張ポイントを指定するステップと、拡張子のためのユーザ・インターフェース・コントロール定義をさらに指定するステップとを含むことができる。このように、拡張ポイントは、拡張子のためのユーザ・インターフェース・コントロール定義に関連付けることができ、拡張子は、環境のためのユーザ・インターフェースを組み立てる際に拡張子が代用されるべきユーザ・インターフェース・コントロールの代わりとして識別できる。
【０００９】
本発明のさらに他の局面において、ユーザ・インターフェース・コントロールのセットの構成は、マークアップで宣言することができる。加えて、構成の拡張子は、マークアップでさらに宣言することができる。そして、構成のためのマークアップを構成の拡張子のためのマークアップで置き換えることができる。そして、構成の拡張子のためのマークアップは、コントロール・ファクトリに提供されて、コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースを定義するユーザ・インターフェース・コントロールのインスタンスの構成のインスタンスを生成することができる。
【００１０】
本発明の他の実施形態において、コンポーネント化されたアプリケーション環境データ処理システムは、ユーザ・インターフェース拡張のために構成できる。本システムは、コンポーネント化されたアプリケーション環境を定義するプラグインと、コンポーネント化されたアプリケーション環境のためのユーザ・インターフェース・フレームワークとを含むことができる。ユーザ・インターフェース・フレームワークは、コントロール・ファクトリを含むことができ、各コントロール・ファクトリは、指定されたタイプを有するユーザ・インターフェース・コントロールを、当該指定されたタイプを宣言するユーザ・インターフェース・コントロール定義から生成することができるプログラム・コードを含む。
【００１１】
ユーザ・インターフェース・フレームワークは、ウィジェット・マネージャも含んでいてよい。各ウィジェット・マネージャは、指定されたマネージャ・タイプを有する、当該指定されたマネージャ・タイプを宣言するユーザ・インターフェース・コントロール定義からのユーザ・インターフェース・コントロールのための動作を管理することができるプログラム・コードを含む。
【００１２】
最後に、ユーザ・インターフェース・フレームワークは、コンフィギュレータも含んでいてよい。コンフィギュレータは、定義されたユーザ・インターフェース・コントロールの拡張子を識別することができるプログラム・コードを含むことができる。各拡張子は、定義されたユーザ・インターフェース・コントロールのうちの１つの置換を指定しうる。よって、コンフィギュレータは、どのコントロールおよび構成定義が新たなコントロールおよび構成定義によって置換されるかを識別することができる。
【００１３】
オプションとして、少なくとも１つのコントロール・ファクトリは、ユーザ・インターフェース・コントロールの構成をユーザ・インターフェース・コントロールの構成のために定義された構成宣言から生成することができるプログラム・コードを含むことができる。これに関して、構成宣言は、グリッド・レイアウト、フォーム・レイアウト、スタック・レイアウト、および行レイアウトからなる群から選ばれたユーザ・インターフェース・コントロールのためのレイアウトを指定することができる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施形態は、複合アプリケーション環境のための拡張可能なユーザ・インターフェース・フレームワークのための方法、システム、およびコンピュータ・プログラムを提供する。本発明の一実施形態によれば、複合アプリケーション環境におけるユーザ・インターフェース・コントロールは、環境の拡張ポイントとして定義することができる。当該環境について定義された元来指定のユーザ・インターフェース・コントロールは、置換ユーザ・インターフェース・コントロールを拡張ポイントとして定義することを通じて拡張でき、置換ユーザ・インターフェース・コントロールは、元来指定のユーザ・インターフェース・コントロールの身元を参照することができる。このように、環境のためのユーザ・インターフェース・コントロールは、ユーザ・インターフェース・コントロールのロジックを修正せずに、修正することができる。
【００１５】
とりわけ、本発明のフレームワークは、ユーザ・インターフェース・コントロールの定義に関するだけではなく、環境のユーザ・インターフェース内のユーザ・インターフェース・コントロールの構成または配置にも関しうる。このように、環境のためのユーザ・インターフェース・コントロールのもともとの指定された構成および配置は、ユーザ・インターフェース・コントロールの置換構成または配置を拡張ポイントとして定義することを通じて拡張でき、ユーザ・インターフェース・コントロールの置換構成または配列は、ユーザ・インターフェース・コントロールのもともとの指定された構成または配列の身元を参照することができる。上述のように、環境のためのユーザ・インターフェース・コントロールの構成および配列は、ユーザ・インターフェース・コントロールの構成および配列のロジックを修正せずに、修正することができる。
【００１６】
さらなる図示において、図１は、アプリケーション・ユーザ・インターフェース拡張性のために構成された、コンポーネント化されたアプリケーション環境に対するホストとしてのデータ処理システムの概略図を示す。データ処理システム１１０は、コンポーネント化されたアプリケーション環境１３０を含むことができ、コンポーネント化されたアプリケーション環境１３０は、環境１３０に対する１つ以上のプラグイン１２０をサポートする。環境１３０は、コントロール・ファクトリ１５０と、ウィジェット・マネージャ１８０と、コンフィギュレータ拡張ポイント１９０と含むユーザ・インターフェース・フレームワークへ結合されることができる。ユーザ・インターフェース・フレームワークは、１つ以上の定義されたコントロール１４０と、定義されたコントロール１４０のセットの１つ以上の定義された構成１７０と、それぞれが定義されたコントロール１４０のうちの既存の１つおよび定義された構成１７０のうちの既存の１つのうちのいずれかの代わりとして定義される１つ以上のユーザ・インターフェース拡張子１６０とをさらに含むことができる。
【００１７】
動作において、ユーザ・インターフェースは、定義されたコントロール１４０の選択から組み立てることができる。定義された各コントロール１４０は、当該コントロールについての文書型定義（ＤＴＤ）に従ってマークアップで定義することができる。同様に、各構成１７０は、当該構成についてのＤＴＤに従って、マークアップで定義することができる。その定義の一部として、コントロール１４０は、コントロール・タイプおよびマネージャ・タイプを指定することができる。定義内の指定されたコントロール・タイプを使用して、ユーザ・インターフェース・フレームワークは、コントロール・ファクトリ１５０のうち、環境１３０への拡張ポイントとして登録された関連する１つを呼び出して、コントロール１４０のうち、定義された１つのインスタンスを作成することができる。同様に、定義内の指定されたマネージャ・タイプを使用して、ユーザ・インターフェース・フレームワークは、ウィジェット・マネージャ１８０のうち、関連する１つを呼び出して、コントロール１４０のうち、定義された１つの動作を管理することができる
【００１８】
フレームワークを使用するアプリケーション・インテグレータは、修正すべき環境のユーザ・インターフェース内のコントロール１４０を識別し、拡張子１６０の形式のコントロール１４０のうちの対応する置換コントロールをさらに識別することによって、環境１３０のユーザ・インターフェースをカスタマイズすることができる。コンフィギュレータ拡張ポイント１９０は、拡張子１６０の中のどの新規のコントロール定義がユーザ・インターフェース内のコントロール１４０についての既存のコントロール定義を置き換えるかを指定するプロパティ・ファイル（図示せず）を定義することができるプログラム・コードを含む。コンフィギュレータ拡張ポイント１９０は、環境１３０のユーザ・インターフェースを構築する際に、コントロール１４０の既存のコントロール定義に代えて、拡張子１６０内の新規のコントロール定義を適用する。その結果、環境１３０の基礎となるアプリケーション・コンポーネントは、環境１３０のユーザ・インターフェースを修正するために修正される必要がない。
【００１９】
より詳しく図示すると、図２は、図１のコンポーネント化されたアプリケーション環境におけるユーザ・インターフェースの拡張子についてのアーキテクチャのためのＤＴＤを示すブロック図である。アーキテクチャは、コンポーネント化されたアプリケーション環境のユーザ・インターフェースの拡張子２０５を含むことができる。拡張子２０５は、拡張ポイントであってもよく、プロパティとして、拡張子２０５の完全に認定された識別子２１０と、拡張子２０５によって拡張される対象ユーザ・インターフェース・コントロールの固有のオプションの識別子２１５と、拡張子２０５のインスタンスのためのオプションの名前２２０とを含むことができる。とりわけ、拡張子２０５は、１つ以上のコントロール定義２２５を含むことができる。
【００２０】
各コントロール定義２２５は、コントロール定義２２５のための固有の識別子２３０と、コントロール定義２２５によって定義されるコントロールのインスタンスを作成するのに必要とされるタイプ・コントロール・ファクトリを指定するコントロール・タイプ２３５とを含むことができる。コントロール・タイプ２３５は、例えば、いくつか挙げると、テキスト・コントロール、ラベル・コントロール、必要なラベル、コンボ・ボックス、リスト・ボックス、押しボタン、チェック・ボックス、ラジオ・ボタン、表、構成、群、セパレータ、スクロールされた構成、およびツールバーを含むことができる。コントロール定義２２５は、コントロール定義によって定義されたコントロールのインスタンスを管理することが期待されるウィジェット・マネージャのタイプを指定するマネージャ・タイプ２４０と、コントロール定義２２５の基礎となり、かつ、コントロール定義内の明示的に定義されたプロパティによって上書き可能なプロパティをコントロール定義２２５が継承する他のコントロール定義を識別する参照識別子２４５とをさらに含むことができる。
【００２１】
各コントロール定義２２５は、プロパティ要素２５０を参照できる。プロパティ要素２５０は、コントロール定義２２５のプロパティを説明するために使用でき、コントロール・インスタンスがコントロール定義２２５について作成される場合に、コントロール・ファクトリにとって利用可能にすることができる。同様に、コントロール定義２２５のインスタンスが管理される場合に、プロパティ要素２５０を、ウィジェット・マネージャに与えることができる。プロパティ要素２５０は、名前属性２５５と、値属性２６０とを含むことができる。名前属性２５５は、プロパティ要素２５０のインスタンスの名前を参照することができ、値属性２６０は、プロパティ要素２５０のインスタンスの単一の値を有することができる。しかしながら、リスト内の複数の値については、値要素２６５がプロパティ要素２５０に提供されて、値要素２６５のインスタンスは、プロパティ要素２５０のインスタンスに複数の値を提供することができる。
【００２２】
一旦ユーザ・インターフェース・コントロールが環境のためのユーザ・インターフェースのために定義されると、ユーザ・インターフェース・コントロールのレイアウトを定義できる。例えば、レイアウトを指定するための構成およびレイアウト定義を提供することができる。本発明において、構成自体がコントロールのインスタントであり、コントロール・タイプが「構成」である図２のコントロールの拡張ポイントを使用して、宣言することができる。加えて、「ｃｏｍｐｏｓｉｔｅＤｅｆｉｎｉｔｉｏｎｓ」と称される、例えば、いくつか挙げると、グリッド・レイアウト・タイプ、フォーム・レイアウト・タイプ、スタック・レイアウト・タイプ、および行レイアウト・タイプなどの構成タイプに従った構成レイアウトの宣言を可能にする、環境の他の拡張ポイントを提供できる。このように、構成コントロール・ファクトリが、１つ以上のコントロールに関連した構成定義を処理して、構成についてのレイアウトおよび子コントロールを識別することができる。
【００２３】
さらに詳しく図示すると、図３は、図１のコンポーネント化されたアプリケーション環境におけるユーザ・インターフェースの構成定義拡張ポイントについてのアーキテクチャのためのＤＴＤを示すブロック図である。アーキテクチャは、構成定義のための構成拡張子３０５を含むことができる。構成拡張子３０５は、拡張ポイントであってもよく、プロパティとして、拡張子３０５の完全に認定された識別子３１０と、拡張子３０５によって拡張される対象ユーザ・インターフェース構成の固有のオプションの識別子３１５と、拡張子３０５のインスタンスのためのオプションの名前３２０とを含むことができる。とりわけ、拡張子３０５は、１つ以上の構成宣言３２５を含むことができる。
【００２４】
各構成宣言３２５は、構成宣言３２５のための固有の識別子２３０を含むことができる。各構成宣言３２５は、レイアウト識別子３３５をさらに含むことができる。レイアウト識別子３３５は、構成宣言３２５に関連したレイアウト宣言を参照することができる。レイアウト宣言の例には、グリッド・レイアウト宣言、フォーム・レイアウト宣言、スタック・レイアウト宣言、および行レイアウト宣言が含まれる。最後に、各構成宣言３２５は、参照識別子３４５を含むことができる。参照識別子３４５は、構成宣言３２５の基礎となり、かつ、構成宣言３２５内の明示的に定義されたプロパティによって上書き可能なプロパティを構成宣言３２５が継承する他の構成宣言を識別することができる。
【００２５】
各構成宣言３２５は、１つ以上の子コントロール要素３５０を参照することができる。子コントロール要素３５０は、子コントロールを作成するために使用されるコントロール識別子３５５を含むことができる。コントロール識別子３５５は、コントロールの拡張ポイントの拡張子として定義されたコントロール要素の識別子属性に適合することができる。コントロール識別子３５５は、関連構成宣言３２５のレイアウト・タイプによっては、他の属性を含むことができる。例えば、グリッド・レイアウトの場合、子コントロール要素３５０は、特にグリッド・レイアウトとグリッド・データ・宣言とを参照するデータ識別子３６０を含むこともでき、グリッド・データ拡張ポイントの拡張子として定義されたグリッド・データ要素の識別子属性に適合することができる。それに比べて、フォーム・レイアウトの場合、子コントロール３５０は、フォーム構成定義内で使用される高さ属性３６５、幅属性３７０、およびスパン属性３７５をも含むことができる。
【００２６】
構成宣言３２５についてのフォーム・レイアウトを特に参照して、コントロール識別子３５５は、付加要素３８０を含むことができる。付加要素３８０は、左、右、上、下というタイプを含むことができ、それぞれは、フォーム構成内の関連コントロールの指定された側のフォームの付加を記述することができる。付加要素３８０は、フォームの付加位置からのコントロール側のオフセット３８５をピクセルで指定することができる。付加要素３８０は、フォームの配置を指定するための分子属性３９０および分母属性３９５と、フォームの位置合わせを指定する位置合わせ属性４００とを含むこともできる。最後に、フォームが付加されるべきコントロールを識別するために、関係コントロール識別子４０５を提供することができる。
【００２７】
動作において、図２および図３のＤＴＤ定義されたアーキテクチャを活用して、環境において各アプリケーション・コンポーネントの基礎となるコードを配信せずに、コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースの修正が可能となる。さらなる図示において、図４は、コンポーネント化されたアプリケーション環境内のアプリケーションのユーザ・インターフェースにおけるユーザ・インターフェース・コントロールを拡張するための処理を示すフローチャートである。ブロック４１０において開始し、環境のためのユーザ・インターフェースに含まれるユーザ・インターフェース・コントロールの選択を示すマニフェストが取り出される。ブロック４２０において、ユーザ・インターフェース・コントロールのためのコントロールのＤＴＤに準拠するマークアップ言語仕様をロードでき、ブロック４３０において、コンフィギュレータをロードして、どのユーザ・インターフェース・コントロールがコントロールの参照された拡張子に基づいて修正されるべきかを判断することができる。
【００２８】
判断ブロック４４０において、ユーザ・インターフェース・コントロールを修正すべきとコンフィギュレータが判断する場合には、ブロック４５０において、置換すべき既存のコントロールが識別されて、置換ユーザ・インターフェース・コントロールに置換できる。その後、ブロック４６０において、ユーザ・インターフェース・コントロールのためのレイアウトを示す構成を取り出すことができる。再び、コンフィギュレータは、判断ブロック４７０において、コントロールのための既存のレイアウトを置換すべきかどうかを判断できる。もし置換すべきであれば、ブロック４８０において、ユーザ・インターフェース・コントロールの既存の構成は、修正された構成に置換できる。最後に、ブロック４９０において、ユーザ・インターフェースは、構成によって定義されたレイアウトに従って配置されたユーザ・インターフェース・コントロールを含む環境のために提供される。これに関して、コントロールのためのマークアップおよび構成は、ユーザ・インターフェースにおける定義されたコントロールのインスタンスをそれぞれ生成するための該当するコントロール・ファクトリへ渡すことができる。
【００２９】
ユーザ・インターフェースは、ユーザ・インターフェース・コントロールのマークアップ言語定義と、ユーザ・インターフェース・コントロールの構成のマークアップ言語定義とを通じて指定できることが、本発明の当業者によって理解されるだろう。特定のタイプのコントロールおよび構成を生成することができるコントロール・ファクトリは、各ユーザ・インターフェース・コントロールおよび構成を生成するために、マークアップ言語で定義されたコントロールおよび構成を処理するように構成することができる。
【００３０】
そして、ユーザ・インターフェース・コントロールまたは構成を修正することは、コントロールまたは構成の拡張子のマークアップ言語定義のみを要求する。コンフィギュレータは、拡張子付きのユーザ・インターフェース・コントロールまたは構成の置換を示すマニフェストを理解でき、後者のマークアップは、前者のものに置き換えられてもよい。その後、置換された拡張子は、コンポーネント化されたアプリケーション環境のためのユーザ・インターフェースを定義するインスタンスを生成するための適切なファクトリに提供できる。しかも、環境内の任意のアプリケーション・コンポーネントについてのユーザ・インターフェースのための基礎となるソース・コードのいずれも修正することなく、ユーザ・インターフェースに対する修正が適用できる。
【００３１】
本発明の実施形態は、完全にハードウェアによる実施形態、完全にソフトウェアによる実施形態、またはハードウェアおよびソフトウェア要素を共に含む実施形態の形態を取ることができる。好ましい一実施形態において、本発明は、ソフトウェアで実施され、当該ソフトウェアには、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されない。さらに、本発明は、コンピュータまたは任意の命令実行システムによってまたは関連して使用されるプログラム・コードを提供するコンピュータ使用可能な、またはコンピュータ読み出し可能な媒体からアクセス可能なコンピュータ・プログラムの形態を取ることができる。
【００３２】
本説明の目的のために、コンピュータ使用可能またはコンピュータ読み出し可能な媒体は、命令実行システム、装置、またはデバイスによって使用されるか、またはそれらに関連して使用される、プログラムを包含、記憶、通信、伝搬、または移植できる任意の装置であってもよい。媒体は、電子的、磁気的、光学的、電磁的、赤外線、または半導体システム（または装置またはデバイス）、または伝搬媒体であってもよい。コンピュータ読み出し可能な媒体の例には、半導体、固体メモリ、磁気テープ、着脱可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ），読み出し専用メモリ（ＲＯＭ）、固定型磁気ディスク、および光ディスクが含まれる。光ディスクの現時点における例には、コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み出し／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【００３３】
プログラム・コードを記憶または実行あるいはその両方を行うのに適切なデータ処理システムは、システム・バスを通じてメモリ要素と直接的または間接的に結合された少なくとも１つのプロセッサを含むことになる。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを取り出さなければならない回数を削減するために、少なくともいくつかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリとを含むことができる。入力／出力またはＩ／Ｏ装置（キーボード、ディスプレイ、ポインテインング・デバイスなどを含むがこれらに限定されない）は、直接または介在Ｉ／Ｏコントローラを通じてシステムと結合できる。また、ネットワーク・アダプタがシステムに結合されて、データ処理システムが他のデータ処理システムまたは遠隔プリンタまたは記憶装置と介在私的または公的ネットワークを通じて他のデータ処理システムに結合されてるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット・カードは、現在利用可能なネットワーク・アダプタのうちのいくつかのものである。
【図面の簡単な説明】
【００３４】
【図１】ユーザ・インターフェース拡張性のために構成された、コンポーネント化されたアプリケーション環境の概略図である。
【図２】図１のコンポーネント化されたアプリケーション環境において使用される拡張可能なユーザ・インターフェース・コントロールを示すブロック図である。
【図３】図１のコンポーネント化されたアプリケーション環境において使用される拡張可能なユーザ・インターフェース・コントロール構成を示すブロック図である。
【図４】コンポーネント化されたアプリケーション環境内のアプリケーションのユーザ・インターフェースにおけるユーザ・インターフェース・コントロールを拡張するための処理を示すフローチャートである。
【符号の説明】
【００３５】
１２０  プラグイン
１３０  コンポーネント化されたアプリケーション環境
１４０  コントロール
１５０  コントロール・ファクトリ
１６０  拡張子
１７０  構成
１８０  ウィジェット・マネージャ
１９０  コンフィギュレータ拡張ポイント
【図１】
0005165886.tif 000002
【図２】
0005165886.tif 000003
【図３】
0005165886.tif 000004
【図４】
0005165886.tif 000005