(57)【要約】【課題】  異質なデータを含む表の生成を可能にし、これを一貫した方法で整列させること。【解決手段】  リスト制御は、少なくとも２つのテンプレートを使用することによって異質なリスト要素データの調整された表示を可能にする。このテンプレートは、リスト要素データのレイアウトを規定する。テンプレートは、レイアウトの算出中インターフェースに問い合わせを行う。インターフェースは、少なくとも１つのグリッドライン位置に関する情報を提供し、リスト要素データのレイアウトはその位置に基づく。リスト制御はこのインターフェースを実装し、異質なテンプレートは１つのグリッドライン位置を提供する１つのインターフェースに依存することができる。インターフェースは、グリッドライン位置に対して各リスト要素の要件を考慮するため、各リスト要素の予備的なグリッドライン位置に関する情報を求め、最終的なグリッドライン位置の基本をこの情報に置く。【選択図】  図５
2006018822.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１セットのリスト要素データを備えるリスト・データのセットに対するディスプレイ情報を作成する方法であって、
可能なテンプレートのそれぞれが、前記リスト要素データのサブセットのグラフィカル・レイアウトを算出するための対応するレイアウト・ポリシーを提供し、前記対応するレイアウト・ポリシーの少なくとも２つが、グリッドラインの位置に基づいてグラフィカル・レイアウトを規定しており、少なくとも２つの可能な前記テンプレートから成るテンプレート・セットから、前記リスト要素データの各セットに対して、１つのテンプレートを選択すること、および
前記テンプレートのそれぞれに使用するためのインターフェースであって、前記グリッドラインの前記位置を確立する情報を提供するインターフェースを提供すること
を備えることを特徴とする方法。
【請求項２】
前記選択されたテンプレートおよび前記対応するレイアウト・ポリシーに従って前記リスト要素データのセットのそれぞれを表示することによって前記リスト・データを表示することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記セットに対する前記選択されたテンプレートは、少なくとも１つのグリッドラインの前記位置に基づいてリスト要素データを表示するための対応するレイアウト・ポリシーを提供し、前記インターフェースは、リスト要素データの各セットに対して、前記グリッドラインの位置の予備的な算出結果を判定することによって、前記グリッドラインの前記位置を確立することを特徴とする請求項１に記載の方法。
【請求項４】
前記グリッドラインは、前記リスト・データの列の境界を備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記方法は、リスト制御において実施されることを特徴とする請求項１に記載の方法。
【請求項６】
前記グラフィカル・レイアウトは、リスト要素データの前記セット内におけるリスト要素データの少なくとも１つの項目に対する境界情報を備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記セットに対する前記選択されたテンプレートは、前記グリッドラインの前記位置に基づいてリスト要素データを表示するための対応するレイアウト・ポリシーを提供し、リスト要素データの各セットに対して、前記境界情報は、前記グリッドラインに基づいて、リスト要素データの少なくとも１つの項目の境界を画定することを特徴とする請求項１に記載の方法。
【請求項８】
前記対応するレイアウト・ポリシーの少なくとも２つは、複数のグリッドラインの位置に基づいてグラフィカル・レイアウトを規定し、前記インターフェースは、前記複数のグリッドラインのそれぞれに対して位置を確立する情報を提供することを特徴とする請求項１に記載の方法。
【請求項９】
リスト要素データのグラフィカル・レイアウトを決定する方法において、
それぞれが、少なくとも１つのグリッドラインの位置に基づいて前記リスト要素データのグラフィカル・レイアウトを算出するための対応するレイアウト・ポリシーを提供する、少なくとも２つの可能なテンプレートから成るテンプレート・セットからテンプレートを選択すること、
インターフェースを使用して、前記少なくとも１つのグリッドラインの中から選択されたグリッドラインの位置を求めること、および
前記位置を使用して、前記リスト要素データのグラフィカル・レイアウトを算出すること
を備えることを特徴とする方法。
【請求項１０】
前記インターフェースからの要求に応答して、前記少なくとも１つのグリッドラインの予備的な位置データを算出することをさらに備えることを特徴とする請求項９に記載の方法。
【請求項１１】
前記選択されたグリッドラインは、前記リスト・データの列の境界を備えることを特徴とする請求項９に記載の方法。
【請求項１２】
前記インターフェースは、リスト制御において実装されることを特徴とする請求項９に記載の方法。
【請求項１３】
前記グラフィカル・レイアウトは、前記リスト要素データ内のデータの少なくとも１つの項目に対する境界情報を備えることを特徴とする請求項９に記載の方法。
【請求項１４】
前記境界情報は、前記少なくとも１つのグリッドライン群の１つのグリッドラインに基づいてリスト要素データの少なくとも１つの項目に対する境界を画定することを特徴とする請求項９に記載の方法。
【請求項１５】
インターフェースを使用して位置を求めることは、前記少なくとも１つのグリッドライン群のそれぞれのグリッドラインの位置を求めることを特徴とする請求項９に記載の方法。
【請求項１６】
前記インターフェースからの要求に基づいて、前記リスト要素データに対する予備的なグリッドラインの位置を算出することをさらに備えることを特徴とする請求項９に記載の方法。
【請求項１７】
少なくとも１セットのリスト要素レイアウト・データを備えるリスト・レイアウト・データをその上にレンダリングさせるディスプレイ・デバイスであって、
前記リスト要素レイアウト・データのそれぞれは、
リスト要素レイアウト・データのセットに対応し、
少なくとも２つの可能なテンプレートであって、それぞれは、リスト要素データの前記サブセットのグラフィカル・レイアウトを算出するための対応するレイアウト・ポリシーを提供し、前記対応するレイアウト・ポリシーの少なくとも２つが、少なくとも１つのグリッドラインの位置に基づいてグラフィカル・レイアウトを規定するテンプレートから成るテンプレート・セットから１つのテンプレートを、リスト要素データの各セットに対して選択すること、および
前記テンプレートのそれぞれによって使用され、前記少なくとも１つのグリッドラインの前記位置を確立する情報を提供するためのインターフェースを提供すること
を備えた処理を実行することによって求められる
ことを特徴とするディスプレイ・デバイス。
【請求項１８】
前記セットに対する前記選択されたテンプレートは、少なくとも１つのグリッドラインの前記位置に基づいてリスト要素データを表示するための対応するレイアウト・ポリシーを提供し、前記インターフェースは、リスト要素データの各セットに対して、前記グリッドラインの位置の予備的な算出結果を判定することによって、前記グリッドラインの前記位置を確立することを特徴とする請求項１７に記載のリスト制御。
【請求項１９】
前記少なくとも１つのグリッドラインは、前記リスト・データの列の境界を備えることを特徴とする請求項１７に記載のリスト制御。
【請求項２０】
前記リスト・レイアウト・データは、リスト制御によって算出されることを特徴とする請求項１７に記載のリスト制御。
【請求項２１】
前記グラフィカル・レイアウトは、リスト要素データの前記セット内におけるリスト要素データの少なくとも１つの項目に対する境界情報を備えることを特徴とする請求項１７に記載のリスト制御。
【請求項２２】
前記セットに対する前記選択されたテンプレートは、少なくとも１つのグリッドラインの前記位置に基づいてリスト要素データを表示するための対応するレイアウト・ポリシーを提供し、リスト要素データの各セットに対して、前記境界情報は、前記グリッドラインに基づいて、リスト要素データの少なくとも１つの項目の境界を画定することを特徴とする請求項１７に記載のリスト制御。
【請求項２３】
少なくとも１セットのリスト要素データを備えるリスト・データのセットに対するディスプレイ情報を作成するためのコンピュータ実行可能命令を有するコンピュータ可読媒体あって、前記命令は、
可能なテンプレートのそれぞれが、リスト要素データの前記サブセットのグラフィカル・レイアウトを計算するための対応するレイアウト・ポリシーを提供し、前記対応するレイアウト・ポリシーの少なくとも２つが、グリッドラインの位置に基づいてグラフィカル・レイアウトを規定しており、少なくとも２つの可能なテンプレートからなるテンプレート・セットから、前記リスト要素データの各セットに対して、１つのテンプレートを選択すること、および
前記テンプレートのそれぞれに使用するためのインターフェースであって、前記グリッドラインの前記位置を確立する情報を提供するインターフェースを提供すること
を備える各ステップを実行することを特徴とするコンピュータ可読媒体。
【請求項２４】
前記命令は、前記選択されたテンプレートおよび前記対応するレイアウト・ポリシーに従ってリスト要素データの前記セットのそれぞれを表示することによって前記リスト・データを表示することをさらに備えることを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項２５】
前記セットに対する前記選択されたテンプレートは、少なくとも１つのグリッドラインの前記位置に基づいてリスト要素データを表示するための対応するレイアウト・ポリシーを提供し、前記インターフェースは、リスト要素データの各セットに対して、前記グリッドラインの位置の予備的な算出結果を判定することによって、前記グリッドラインの前記位置を確立することを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項２６】
前記少なくとも１つのグリッドラインは、前記リスト・データの列の境界を備えることを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項２７】
前記グラフィカル・レイアウトは、リスト要素データの前記セット内におけるリスト要素データの少なくとも１つの項目に対する境界情報を備えることを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項２８】
前記セットに対する前記選択されたテンプレートは、少なくとも１つのグリッドラインの前記位置に基づいてリスト要素データを表示するための対応するレイアウト・ポリシーを提供し、リスト要素データの各セットに対して、前記境界情報は、前記グリッドラインに基づいて、リスト要素データの少なくとも１つの項目の境界を画定することを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項２９】
前記対応するレイアウト・ポリシーの少なくとも２つは、複数のグリッドラインの位置に基づいてグラフィカル・レイアウトを規定し、前記インターフェースは、前記複数のグリッドラインのそれぞれに対して位置を確立する情報を提供することを特徴とする請求項２３に記載のコンピュータ可読媒体。
【請求項３０】
リスト要素データのグラフィカル・レイアウトを決定するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記命令は、
それぞれが、少なくとも１つのグリッドラインの位置に基づいて前記リスト要素データのグラフィカル・レイアウトを計算するための対応するレイアウト・ポリシーを提供する、少なくとも２つの可能なテンプレートからなるテンプレート・セットからテンプレートを選択することと、および
インターフェースを使用して、前記少なくとも１つのグリッドラインの中から選択されたグリッドラインの位置を求めること、および
前記位置を使用して、前記リスト要素データのグラフィカル・レイアウトを算出すること
を備えることを特徴とするコンピュータ可読媒体。
【請求項３１】
前記命令は、前記インターフェースからの要求に応答して、前記少なくとも１つのグリッドラインの予備的な位置データを算出することをさらに備えることを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記選択されたグリッドラインは、前記リスト・データの列の境界を備えることを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３３】
前記インターフェースはリスト制御において実装されることを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３４】
前記グラフィカル・レイアウトは、リスト要素データの前記セット内の少なくとも１つの項目に対する境界情報を備えることを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３５】
前記境界情報は、前記少なくとも１つのグリッドラインの１つに基づいてリスト要素データの少なくとも１つの項目の境界を画定することを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３６】
インターフェースを使用して位置を求めることは、前記少なくとも１つのグリッドライン群のそれぞれのグリッドラインの位置を求めることを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３７】
前記命令は、前記インターフェースからの要求に基づいて前記リスト要素データに対する予備的なグリッドラインの位置を算出することをさらに備えることを特徴とする請求項３０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータ・グラフィックスの分野に関する。より詳細には、本発明はディスプレイ上におけるオブジェクトのレイアウトに関する。
【背景技術】
【０００２】
首尾一貫した分かりやすい方法でユーザにデータを表示するために、さまざまな技術が使用されている。たとえば、データは、番号の付いたリストの形態で表示されることがある。複数のコンポーネントを有するデータをより首尾一貫して提示するために、データは、表（table）形式で表示されることもある。その利用可能なスペースは、別々のセルに切り分けられる。この各セルはそのコンテンツ用のコンテナである。より大きな要素（たとえば画像）は、希望のレイアウトを作成するために、複数のセルの間で切り分けなければならないことが多い。
【０００３】
表内のセルは、行（rows：横）および列（columns：縦）の形で配置される。列の幅および行の高さを決定するために使用する情報が提供され、この情報によって表内における各セルの大きさおよび配置が決定される。たとえば、固定した幅を列に割り当てることができる。あるいは、列内のデータに基づいて列の幅を調整することもできる。やや複雑な表示を規定するために、表のセルをマージすることもできる。しかし列の幅は（マージの場合を除いて）一般に表全体を通して一定であるため、そうしたマージを複数行うと、結果として得られる表が明確で歪みのないものになるように行および列の幅を設定することが可能でなくなる場合がある。
【０００４】
ブラウザ型のユーザ・インターフェースの登場によって、データ表示内に画像および流れるテキストを含める形の新しい強調が、開発されている。より複雑な表の振る舞い（table behavior）を可能にするために、Tａｂｕｌａｒリスト（tabular list；表形式リスト）として知られているユーザ・インターフェース（ＵＩ）制御を使用することができる。このTａｂｕｌａｒリストのＵＩ制御は、データをユーザに表示するための複雑なリストの振る舞いを可能にするために使用される。TａｂｕｌａｒリストのＵＩ制御は、表の作成を可能にするための単一の振る舞いの実装を提供する、という大きな利点を提供する。TａｂｕｌａｒリストのＵＩ制御は、リスト内の各項目の外観について記述するために使用される視覚的な「テンプレート」を提供することによって、これを行う。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
TａｂｕｌａｒリストのＵＩ制御を使用する際に依然として残された１つの問題は、リスト内の要素を相互に整列させることである。Tａｂｕｌａｒリストの制御を介して異質なデータを提示することが役に立つ場合がある。データは、サイズ、タイプ、またはその他の点で異質なものである可能性がある。また異質なデータは、背景などのデザイン要素を含むこともできる。現行の実施態様では、最初および表の修正時にユーザの手間を必要とせずに、異質なデータを含む表を作成できるようにしつつ、そうした異質なデータを一貫した方法（uniform manner）で整列できるようにするような、リストの要素の正しい配置を可能にするために、データの異質性を考慮に入れたTａｂｕｌａｒリストを作成することは、可能ではない。その上、現行の実施態様では複雑な重なり合う振る舞いを可能にしてはいない。こうした振る舞いは、ユーザに対してより分かりやすくデザインのすぐれた表示を作成する上で望ましい可能性がある。
【０００６】
このような状況を考慮すると、従来技術の限界および欠点を克服するシステムおよび方法に対するニーズが存在する。
【課題を解決するための手段】
【０００７】
本発明の対象は、複雑な重なり合う振る舞いを可能にし、複雑さを排して賢明にサイズの算出（calculations）を行う改良型のリスト制御である。これを達成するために、グリッド・レイアウト機能を有するリスト制御が提供される。
【０００８】
リストとテンプレート化されたリスト要素とのやり取りを可能にするインターフェースが提供される。異質なテンプレートを使用する複数の要素を有するリスト内で、列（column）が整列した（または行（row）が整列した）結果を提供するために、テンプレートはインターフェースに依存して、列の計算（または行の計算）を実行する。テンプレートは、リストの一部として含まれる場合、インターフェースのインプリメンタとしてのリストに従う。初期設定では、そのインプリメンタはそのテンプレート自身であり、したがってリストのコンテクスト内に配置されていないテンプレートは、自分自身の列または行の幅を算出（計算）する。
【０００９】
本発明のさらなる特徴および利点は、以降で添付の図面を参照しながら進める例示的な実施形態の詳細な説明から明らかになるであろう。
【００１０】
前述した概要、ならびに後述する好ましい実施形態の詳細な説明は、添付の図面と併せて読むとより良く理解される。本発明について説明する目的で、本発明の例示的な構造が図面にされているが、本発明は、開示された特定の方法および手段に限定されるものではない。
【発明を実施するための最良の形態】
【００１１】
例示的なコンピューティング環境
図１は、本発明の態様を実施できる例示的なコンピューティング環境を示している。このコンピューティング・システム環境１００は好ましいコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に対して何らかの限定を提示することを意図するものではない。またコンピューティング環境１００が、この例示的な動作環境１００内に示されたコンポーネントの任意の１つまたは組合せに関して何らかの依存性または要件を有すると解釈すべきでもない。
【００１２】
本発明は、他の多くの汎用または専用のコンピューティング・システム環境または構成と共に使用することができる。本発明と共に使用するのに適する可能性のあるよく知られたコンピューティング・システム、環境、および／または構成の例としては、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニ・コンピュータ、メインフレーム・コンピュータ、組み込みシステム、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などがあるが、これらには限定されない。
【００１３】
本発明は、コンピュータによって実行される、プログラム・モジュールなどのコンピュータ実行可能命令という一般的なコンテクストで説明することができる。一般にプログラム・モジュールは、特定のタスクを実行、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また本発明は、通信ネットワークまたは他のデータ伝送媒体を介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラム・モジュールおよび他のデータは、メモリ・ストレージ・デバイスを含むローカル・コンピュータ・ストレージ媒体およびリモート・コンピュータ・ストレージ媒体の双方に配置することができる。
【００１４】
図１を参照すると、本発明を実施するための例示的なシステムは、汎用コンピューティング・デバイスをコンピュータ１１０の形態で含む。コンピュータ１１０のコンポーネントは、処理装置１２０と、システム・メモリ１３０と、システム・メモリを含むさまざまなシステム・コンポーネントを処理装置１２０に結合するシステム・バス１２１とを含むことができるが、これらには限定されない。処理装置１２０は、マルチ・スレッド・プロセッサ上でサポートされるものなど、複数の論理処理装置を表すことができる。システム・バス１２１は、メモリ・バスまたはメモリ・コントローラと、周辺バスと、さまざまなバス・アーキテクチャのいずれかを使用するローカル・バスとを含む複数のタイプのバス構造のいずれにすることもできる。たとえばこうしたアーキテクチャとしては、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、および（メザニン・バスとしても知られている）ＰＣＩ（Peripheral Component Interconnect）バスがあるが、これらには限定されない。またシステム・バス１２１は、通信デバイス間におけるポイント・ツー・ポイント接続やスイッチング・ファブリックなどとして実装することもできる。
【００１５】
通常、コンピュータ１１０はさまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセス可能な、揮発性媒体および不揮発性媒体、ならびに取外し可能媒体および取外し不能媒体の双方を含む利用可能な任意の媒体とすることができる。たとえばコンピュータ可読媒体はコンピュータ・ストレージ媒体および通信媒体を含むことができるが、これらには限定されない。コンピュータ・ストレージ媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなどの情報を記憶するための任意の方法または技術において実装される揮発性媒体および不揮発性媒体、ならびに取外し可能媒体および取外し不能媒体を含む。コンピュータ・ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気ストレージ・デバイス、あるいは希望の情報を記憶するために使用可能で、コンピュータ１１０によってアクセス可能な他の任意の媒体を含むが、これらには限定されない。通信媒体は、通常、搬送波や他の伝送メカニズムなどの変調されたデータ信号内に、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを具現化し、何らかの情報伝達媒体を含む。「変調されたデータ信号」という用語は、情報を信号に符号化するような方法でその特性の１つまたは複数が設定または変更された信号を意味する。たとえば通信媒体は、有線ネットワークや直接有線接続などの有線媒体と、音波媒体、ＲＦ媒体、赤外線媒体、および他の無線媒体などの無線媒体とを含むが、これらには限定されない。また上記のいずれの組合せも、コンピュータ可読媒体の範囲内に含まれるものである。
【００１６】
システム・メモリ１３０はコンピュータ・ストレージ媒体を読取り専用メモリ（ＲＯＭ）１３１およびランダム・アクセス・メモリ（ＲＡＭ）１３２などの揮発性メモリおよび／または不揮発性メモリの形態で含む。基本入出力システム１３３（ＢＩＯＳ）は、起動中などにコンピュータ１１０内の要素間における情報伝達を補助する基本ルーチンを含み、通常はＲＯＭ１３１内に格納されている。ＲＡＭ１３２は通常、処理装置１２０がダイレクトにアクセスできるか、および／または処理装置１２０によってその時点で使用されているデータ・モジュールおよび／またはプログラム・モジュールを含む。図１は、例としてオペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７を示しているが、これらには限定されない。
【００１７】
またコンピュータ１１０は、他の取外し可能／取外し不能、揮発性／不揮発性コンピュータ・ストレージ媒体を含むこともできる。図１は、例示のみを目的として、取外し不能な不揮発性の磁気媒体との間で読取りや書込みを行うハードディスク・ドライブ１４０と、取外し可能な不揮発性の磁気ディスク１５２との間で読取りや書込みを行う磁気ディスク・ドライブ１５１と、ＣＤ−ＲＯＭや他の光媒体などの取外し可能な不揮発性の光ディスク１５６との間で読取りや書込みを行う光ディスク・ドライブ１５５とを示している。例示的な動作環境において使用できる他の取外し可能／取外し不能、揮発性／不揮発性コンピュータ・ストレージ媒体としては、磁気テープカセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭなどがあるが、これらには限定されない。ハードディスク・ドライブ１４１は通常、インターフェース１４０などの取外し不能なメモリ・インターフェースを介してシステム・バス１２１に接続されており、磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は通常、インターフェース１５０などの取外し可能なメモリ・インターフェースによってシステム・バス１２１に接続されている。
【００１８】
図１に示した上述のドライブおよびそれに関連するコンピュータ・ストレージ媒体は、コンピュータ１１０用のコンピュータ可読命令、データ構造、プログラム・モジュール、および他のデータの記憶を提供する。たとえば図１において、ハードディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７を記憶するものとして図示されている。これらのコンポーネントは、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７と同一とするか、または異なっていてもよい点に留意されたい。ここでは、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７が、少なくとも、異なるコピーであることを示すために、異なる番号を割り当てている。ユーザは、キーボード１６２、および一般にマウス、トラック・ボール、またはタッチ・パッドと呼ばれるポインティング・デバイス１６１などの入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星パラボラ・アンテナ、スキャナなどを含むことができる。これらの入力デバイスおよび他の入力デバイスは、システム・バスに結合されているユーザ入力インターフェース１６０を介して処理装置１２０に接続される場合が多いが、パラレル・ポート、ゲーム・ポート、ユニバーサル・シリアル・バス（ＵＳＢ）などの他のインターフェースおよびバス構造によって接続することもできる。またモニタ１９１や他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース１９０などのインターフェースを介してシステム・バス１２１に接続される。コンピュータはモニタに加えて、周辺出力インターフェース１９５を介して接続できるスピーカ１９７やプリンタ１９６などの他の周辺出力デバイスを含むこともできる。
【００１９】
コンピュータ１１０は、リモート・コンピュータ１８０などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク化された環境内で動作することができる。リモート・コンピュータ１８０は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、または他の一般的なネットワーク・ノードとすることができ、図１にはメモリ・ストレージ・デバイス１８１しか示されていないが、通常はコンピュータ１１０に関連する上述の要素の多くまたはすべてを含む。図１に示されている論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）１７１およびワイド・エリア・ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータ・ネットワーク、イントラネット、およびインターネットにおいてよく見受けられる。
【００２０】
ＬＡＮネットワーキング環境において使用する場合、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境において使用する場合、コンピュータ１１０は通常、モデム１７２、またはインターネットなどのＷＡＮ１７３上で通信を確立するための他の手段を含む。モデム１７２は内蔵型または外付け型とすることができ、ユーザ入力インターフェース１６０または他の適切なメカニズムを介してシステム・バス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関連して示されているプログラム・モジュール、またはその一部をリモート・メモリ・ストレージ・デバイス内に格納することができる。図１は、例としてリモート・アプリケーション・プログラム１８５をメモリ・デバイス１８１上に常駐するものとして示しているが、この形態には限定されない。示したネットワーク接続は代表的なものであり、コンピュータ間に通信リンクを確立する他の手段も使用できることを理解できるであろう。
【００２１】
異質のレイアウトをリスト内に整列させること
リスト内に提供される異質な情報を規定するために、リスト異質なテンプレートが、リスト要素毎に作成される。このリスト要素は、リスト要素の包括的なコンテナであるリスト制御内に含まれる。リスト制御は、リスト・データのレイアウトを提供するためにテンプレートを使用する。
【００２２】
図２Ａは、リスト要素の１つの例示的なテンプレートを示すブロック図である。図２Ａは、写真フィールド２１０、名前フィールド２２０、および連絡先情報フィールド２４０から成る部分要素を含む第１のテンプレート２００を示している。写真フィールド２１０および名前フィールド２２０は、重なっているものとして示されている。テンプレートは、これらのフィールドをお互いに対してどのように配置するかに関する情報を含むことができる。
【００２３】
こうしたテンプレートは、データを表示するために使用される。第１のテンプレート２００などのテンプレートを１つだけ使用する場合、そのリストは、第１のテンプレート２００の仕様に従って配置された１つまたは複数のリスト要素から構成される。第１のテンプレート２００は、テンプレートの部分要素２１０、２２０、および２４０のそれぞれに対して特定のサイズのみを認めることができる。この場合、そのリストの外観は、部分要素内に表示されるデータが割り当てられたサイズを超えると、その部分要素に割り当てられた領域内に表示できないことがあるけれども、整然としたものになるであろう。
【００２４】
あるいは、このテンプレートは、このリスト要素の部分要素に対して異なるサイズを認めることもできる。たとえば第１のテンプレート２００は、名前フィールド２２０および連絡先情報フィールド２４０が、異なる長さのテキスト文字列によって満たされることを認めることができる。また名前フィールド２２０を図によって満たすこともでき、たとえば名前フィールド２２０は企業の名前に使用され、その使用される名前フィールド２２０が企業のロゴの図とすることができる。写真２１０はテンプレートによって特定のサイズに制限することができ、あるいは使用する写真に応じてサイズを変更することもできる。このテンプレートは、写真がまったく提供されない状況にも十分対応できるように柔軟性を持たせることができる。これらの個々の状況では、第１のテンプレート２００に従って入力される個々のリスト要素は、サイズの異なる部分要素を有することができることが分かる。
【００２５】
さらに、個々のテンプレートは、個々の部分要素を含むことができる。図２Ｂは、リスト要素の第２の例示的なテンプレートを示すブロック図である。図２Ｂは、名前フィールド２２２、会員情報フィールド２３２、および連絡先情報フィールド２４２という部分要素を含む第２のテンプレート２０２を示している。第２のテンプレート２０２には、写真フィールドが含まれていない。第２のテンプレート２０２に含まれている会員情報の部分要素は、第１のテンプレート２００には含まれていない。
【００２６】
所与のリストにおいては、第１のテンプレート２００および第２のテンプレート２０２などの複数のテンプレートが使用される。類似の要素をお互いに対して整列させるために、テンプレートはグリッドライン群を含む。図３Ａは、グリッドライン群を有する第１の例示的なテンプレートを示すブロック図である。図３Ａには、第１の例示的なテンプレート２００に対して４本のグリッドラインが示されている。第１のグリッドライン３００は、名前フィールド２２０の始まりを示している。第２のグリッドライン３１０は、名前フィールド２２０の終わりを示している。第３のグリッドライン３２０は、連絡先情報フィールド２４０の始まりを示しており、第４のグリッドライン３３０は、連絡先情報フィールド２４０の終わりを示している。第１のテンプレート２００に従って複数のリスト要素におけるグリッドライン群の位置が調整されると、そのリスト要素は、異質な方法でデータを表示することになる。
【００２７】
図３Ｂは、グリッドライン群を有する第２の例示的なテンプレートを示すブロック図である。図３Ｂには、第２の例示的なテンプレート２０２に対して４本のグリッドラインが示されている。第１のグリッドライン３０２は、名前フィールド２２２の始まりを示している。第２のグリッドライン３１２は、名前フィールド２２２の終わりを示している。第３のグリッドライン３２２は、連絡先情報フィールド２４２の始まりを示しており、第４のグリッドライン３３２は、連絡先情報フィールド２４２の終わりを示している。
【００２８】
第１のテンプレート２００および第２のテンプレート２０２に従ってテンプレート化されているリスト要素を含むリストでは、第１のグリッドライン３００および３０２のすべての位置が整列すると、名前フィールド２２０および２２２の個々のインスタンスが同じ位置で始まる。同様に、すべてのリスト要素において第２のグリッドライン３１０および３１２のすべての位置が整列すると、名前フィールド２２０および２２２のすべての異なるインスタンスが同じ位置で終わる。このことは、テンプレートが、名前フィールドに関して、異なる情報の包含、または情報に対して異なるレイアウトの使用を命じる場合でさえ、リストの外観をいくらか統一することができる。
【００２９】
同様に、第３のグリッドライン３２０および３２２のすべての位置が整列し、第４のグリッドライン３３０および３３２がすべて整列すると、リスト要素のそれぞれの個々のインスタンスにおいて、連絡先情報フィールド２４０および２４２が整列する。図４は、第１および第２の例示的なテンプレートにおいてグリッドライン群に従って整列したリストを示すブロック図である。図４では、リスト４００は３つのリスト要素４０１、４０２、および４０３から構成される。リスト要素４０１および４０２は、第１の例示的なテンプレートに従って配置される。したがって写真４１１および４１２は、第１のテンプレート内の写真情報フィールドに従って配置される。名前情報４２１および４２２は、第１のテンプレート内の名前情報フィールドに従って配置される。連絡先情報４４１および４４２は、第１のテンプレート内の連絡先情報フィールドに従って配置される。
【００３０】
リスト要素４０３は、第２の例示的なテンプレートに従って配置される。したがって名前情報４２３は、第２のテンプレート内の名前フィールド情報に従って配置され、会員情報４３３は、第２のテンプレート内の会員フィールド情報に従って配置され、連絡先情報４４３は、第２のテンプレート内の連絡先フィールド情報に従って配置される。
【００３１】
リスト４００では、名前情報４２１、４２２、および４２３を含む領域の始まりおよび終わりが整列し、連絡先情報４４１、４４２、および４４３を含む領域の始まりおよび終わりが整列することが分かる。この整列は、リスト要素４０１、４０２、および４０３のそれぞれを表示するために使用されるテンプレート内のグリッドライン群を整列させた結果である。
【００３２】
異質なテンプレートに対する整列を作り出すこと
異質なテンプレートを使用して、所定のグリッドライン群に対して整列したリストを作成できるようにするために、リスト要素毎に使用されている各テンプレートは、インターフェースに特定の列の算出結果を出力する。テンプレートは、グリッドライン群の位置を算出しているときは常に、インターフェースのインプリメンタに従う。インターフェースのインプリメンタに対する初期設定はテンプレート自身であり、したがってリストのコンテクスト内に配置されていないテンプレートは、グリッドライン群の位置を自分で算出する。
【００３３】
一実施形態では、リスト制御は、リストの各データ項目を通して、各データ項目に対して適切なテンプレートを選択すること、そのテンプレートから制御のインスタンスを作成すること、その制御を子として追加すること、を繰り返すことによって、コンテンツを作成する。それぞれの子制御が追加される際、列の計算を制御するインターフェースが、リスト制御の列計算インターフェースに設定される。この方法は、子のテンプレートが列の幅を決定する上でグリッドライン群の位置を算出している場合、リスト制御、具体的には、リスト制御の実装された列計算インターフェース、に従う。
【００３４】
一実施形態では、テンプレートは、そのテンプレートおよびそのテンプレート内に配置されるデータによって定義されるフィールドのスペース要件に基づいて、グリッドライン群の予備の算出を行う。リスト制御の列計算インターフェースは、この予備の算出結果を求めて各リスト要素に問い合わせを行う。次いでリスト制御の列計算インターフェースは、これらの計算およびさらなる任意のポリシーまたは制約に基づいて各グリッドラインの位置を算出する。そして各グリッドラインの各位置は、そのインターフェースを介して各テンプレートへ戻される。
【００３５】
図５は、本発明の一実施形態によるリスト制御を示すブロック図である。図５に示されているように、リスト制御５３０は列計算インターフェース−グリッドラインマネージャー・インターフェース５２０を含む。各リスト要素５００Ａから５００Ｎは、（それぞれ）テンプレート・レイアウト・ポリシー５１０Ａから５１０Ｎを含む。異なるテンプレートを使用して、リスト要素５００Ａから５００Ｎを作成することができる。各テンプレート・レイアウト・ポリシー５１０Ａから５１０Ｎは、リスト要素に使用されるテンプレートから得られる。テンプレート・レイアウト・ポリシーは、リスト要素のレイアウトについて記述する。しかし図５に示されているように、リスト制御５３０においては、レイアウト・ポリシー５１０Ａから５１０Ｎは、特定の列の配置に対してグリッドラインマネージャー・インターフェース５２０に従う。前述のように、特定のグリッドライン群の配置は、グリッドラインマネージャー・インターフェース５２０によって決定される。このように、異質なテンプレートを調整することができる。
【００３６】
リスト制御は、テンプレートおよびそのリスト・データを使用してディスプレイ情報を作成する。図６は、本発明の一実施形態によるリスト・データのセットのディスプレイ情報を作成する例示的な方法を示している。リスト・データは、リスト要素データのセットにグループ化される。リスト要素データの各セットは、リスト要素の部分要素を含む。たとえばリスト要素データは、１つのリスト要素内に表示される写真、名前、および連絡先を含むことができる。
【００３７】
図６に示されているように、ステップ６００では、リスト要素データの各セットに対してテンプレートが選択される。このテンプレートは、少なくとも２つの可能なテンプレートのテンプレート・セットから選択される。この可能なテンプレートのそれぞれは、リスト要素データのグラフィカル・レイアウトを算出するためのレイアウト・ポリシーを提供する。可能なテンプレートの少なくとも２つは、リスト要素データのグラフィカル・レイアウトを決定する上で、少なくとも１つのグリッドラインの位置に依存する。一実施形態では、テンプレートによって複数のグリッドラインが使用されて、リスト要素データのグラフィカル・レイアウトを決定することができる。
【００３８】
ステップ６１０では、任意のテンプレートが使用するインターフェースが提供される。このインターフェースは、使用されるグリッドライン群の位置を確立する情報を提供する。これは、グリッドラインの位置に関する予備情報をそのグリッドラインを使用するテンプレートに要求することによって行うことができる。このように、リスト要素に対するテンプレートの要件は、インターフェースがグリッドラインの位置を決定する際に考慮される。１つのグリッドラインの位置決めについて説明しているが、テンプレート化されたリスト要素に対して予備的なグリッドラインの位置について問い合わせを行い、およびこれらの位置（および他のリスト・レイアウト情報）を使用して、グリッドラインの位置を決定する、インターフェースを介して、同じ方法で複数のグリッドラインの位置を決定することもできる。
【００３９】
テンプレートおよび特定のグリッドライン群の位置を決定するためのインターフェースを使用して、各リスト要素のレイアウトが決定される。図７は、本発明の一実施形態によるリスト要素データのグラフィカル・レイアウトを決定する例示的な方法を示している。このリスト要素データ対して、図７に示されているように、ステップ７００において、少なくとも２つの可能なテンプレートのテンプレート・セットから１つのテンプレートが選択される。この可能なテンプレートのそれぞれは、少なくとも１つのグリッドラインの位置に基づいてリスト要素データの前記サブセットのグラフィカル・レイアウトを算出するための対応するレイアウト・ポリシーを提供する。ステップ７１０では、インターフェースが、選択されたグリッドラインの位置を求めるために使用される。ステップ７２０では、選択されたグリッドラインの位置を使用して、リスト要素データのグラフィカル・レイアウトを算出する。
【００４０】
１次元レイアウト制御（One-Dimensional Layout Control）
本発明の例示的な実施形態について列幅制御との関連から説明したが、任意次元のリスト要素を調整することも意図されている。したがって、お互いの隣に横方向に整列したリスト要素の状態でリストが配置される場合、本発明の技術を使用して、リスト要素内の部分要素の縦方向の整列を制御することができる。本発明の技術によって、１つの次元の複数のリスト要素に対して任意の調整を行うこともできる。
【００４１】
結論
前述のように、本発明の例示的な実施形態についてさまざまなコンピューティング・デバイスとの関連から説明したが、根底をなす発想は、いかなるコンピューティング・デバイスまたはシステムにも適用することができる。
【００４２】
本明細書に開示したさまざまな技術は、ハードウェアまたはソフトウェアに関連して、あるいは適切な場合は双方の組合せに関連して実装することができる。したがって本発明の方法および装置、または特定の態様、あるいはその一部は、プログラム・コード（すなわち命令）の形態を取ることができ、このプログラム・コードは、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブなどの有形の媒体、または他の任意の機械可読ストレージ媒体において具体化され、このプログラム・コードがコンピュータなどのマシンにロードされ、そのマシンによって実行されると、そのマシンは、本発明を実施するための装置となる。プログラム可能なコンピュータ上でプログラム・コードを実行する場合、コンピューティング・デバイスは一般に、プロセッサ、そのプロセッサによって読み取ることができるストレージ媒体（揮発性および不揮発性のメモリおよび／またはストレージ要素を含む）、少なくとも１つの入力デバイス、ならびに少なくとも１つの出力デバイスを含むであろう。（１つまたは複数の）プログラムは、希望に応じてアセンブリ言語またはマシン言語で実装することができる。いずれの場合も、その言語はコンパイラ型言語またはインタープリタ型言語とすることができ、ハードウェアの実施態様と組み合わせることができる。
【００４３】
また本発明の方法および装置は、プログラム・コードの形態で具体化される通信を介して実施することもでき、このプログラム・コードは、電気配線またはケーブル、光ファイバなど、何らかの伝送媒体を介して、あるいは他の任意の伝送形態を介して伝送され、このプログラム・コードが、ＥＰＲＯＭ、ゲートアレイ、プログラム可能論理回路（ＰＬＤ）、クライアント・コンピュータなどのマシンに受信およびロードされ、そのマシンによって実行されると、そのマシンは、本発明を実施するための装置となる。このプログラム・コードは、汎用プロセッサ上に実装されると、そのプロセッサと一体化して、本発明の機能性を引き出すように動作する独特な装置を提供する。さらに、本発明に関連して使用されるいかなるストレージ技術も、ハードウェアとソフトウェアの組合せであることに変わりはない。
【００４４】
本発明についてさまざまな図からなる好ましい実施形態との関連から説明したが、他の類似の実施形態を使用することができ、あるいは記載した実施形態に対して、本発明から逸脱することなく本発明と同じ機能を実行するための修正および追加を実施できることを理解されたい。したがって本発明は、何らかの単一の実施形態に限定されるべきものではなく、むしろ特許請求の範囲による範囲内で解釈されるべきものである。
【図面の簡単な説明】
【００４５】
【図１】本発明の態様を実装できる例示的なコンピューティング環境を示すブロック図である。
【図２Ａ】リスト要素の１つの例示的なテンプレートを示すブロック図である。
【図２Ｂ】リスト要素の第２の例示的なテンプレートを示すブロック図である。
【図３Ａ】グリッドライン群を有する第１の例示的なテンプレートを示すブロック図である。
【図３Ｂ】グリッドライン群を有する第２の例示的なテンプレートを示すブロック図である。
【図４】第１および第２の例示的なテンプレート内のグリッドライン群に従って整列したリストを示すブロック図である。
【図５】本発明の一実施形態によるリスト制御を示すブロック図である。
【図６】本発明の一実施形態によるリスト・データのセットのディスプレイ情報を作成する例示的な方法を示す図である。
【図７】本発明の一実施形態によるリスト要素データのグラフィカル・レイアウトを決定する例示的な方法を示す図である。
【符号の説明】
【００４６】
１００    コンピューティング環境
１２０    処理装置
１２１    システム・バス
１３０    システム・メモリ
１３３    基本入出力システム
１３４    オペレーティング・システム
１３５    アプリケーション・プログラム
１３６    他のプログラム・モジュール
１３７    プログラム・データ
１４０    取外し不能不揮発性メモリ・インターフェース
１４４    オペレーティング・システム
１４５    アプリケーション・プログラム
１４６    他のプログラム・モジュール
１４７    プログラム・データ
１５０    取外し可能不揮発性メモリ・インターフェース
１５１    磁気ディスク・ドライブ
１５２    磁気ディスク１５２
１５５    光ディスク・ドライブ
１５６    光ディスク
１６０    ユーザ入力インターフェース
１６１    ポインティング・デバイス
１６２    キーボード
１７０    ネットワーク・インターフェース
１７１    ローカル・エリア・ネットワーク
１７２    モデム
１７３    ワイド・エリア・ネットワーク
１８０    リモート・コンピュータ
１８２    グラフィックス・インターフェース
１８５    リモート・アプリケーション・プログラム
１８６    ビデオ・メモリ
１９０    ビデオ・インターフェース
１９１    モニタ
１９５    周辺出力インターフェース
１９６    プリンタ
１９７    スピーカ
２００、２０２    テンプレート
２１０    写真
２２０    名前
２４０    連絡先情報
２２２    名前
２３２    会員情報
２４２    連絡先情報
３００、３１０、３２０、３３０    グリッドライン
３０２、３１２、３２２、３３２    グリッドライン
４００    リスト
４０１、４０２、４０３    リスト要素
４１１、４１２    写真
４２１、４２２、４２３    名前情報
４３３    会員フィールド情報
４４１、４４２、４４３    連絡先情報
【図１】
2006018822.tif 000003
【図２Ａ】
2006018822.tif 000004
【図２Ｂ】
2006018822.tif 000005
【図３Ａ】
2006018822.tif 000006
【図３Ｂ】
2006018822.tif 000007
【図４】
2006018822.tif 000008
【図５】
2006018822.tif 000009
【図６】
2006018822.tif 000010
【図７】
2006018822.tif 000011