(57)【要約】      （修正有）【課題】合成ユーザインターフェイス要素の表現を簡易化する。【解決手段】選択的可視化可能ノードを定義し、その定義に従って、ノードを表示する。１つまたは複数のユーザインタフェースの表現の簡易ビューが提供される。たとえば、ユーザインタフェース要素を階層表現において表現するいくつかのノードを、選択的可視化可能にすることができる。このようなノードをある状況下で可視化させることができ、他の状況下で非可視化させることができる。この例示的方法では、簡易表現ビュー（たとえば、選択的可視化可能ノードを可視化しない）が提供される。【選択図】        図５
2004206668.tif 000002
【特許請求の範囲】
【請求項１】
オペレーションをユーザインターフェイス要素の階層表現において実行するためのリクエストを処理する方法であって、
前記オペレーションを実行するための前記リクエストを受信するステップと、
前記オペレーションを前記階層表現の簡易ビューについて実行するステップと
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法を実行するためのコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読媒体。
【請求項３】
前記階層表現は、合成ユーザインターフェイス要素を形成する複数のノードを含み、
前記ノードの適切なサブセットは、ユーザインターフェイス要素を前記合成ユーザインターフェイス要素内で形成する
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記階層表現における少なくとも１つのノードが選択的可視化可能として指定され、
前記指定されたノードが前記簡易ビューにおいて可視化されない
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記階層において選択的可視化可能として指定されたノードを、前記簡易ビューにおいてスキップすることによって、前記オペレーションが実行されることを特徴とする請求項１に記載の方法。
【請求項６】
前記階層におけるノードにおいてプロパティを設定することによって、ノードが前記階層において選択的可視化可能として指定されることを特徴とする請求項５に記載の方法。
【請求項７】
前記オペレーションは、前記表現においてノードの子ノードを列挙するためのリクエストであり、
前記オペレーションが前記簡易ビューにおいて実行され、それにより前記ノードの少なくとも１つの直接の子が前記簡易ビューにおいて可視化されない
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記オペレーションは、前記表現においてノードの親ノードを提供するためのリクエストであり、
前記オペレーションが前記簡易ビューにおいて実行され、それにより前記ノードの直接の親が前記簡易ビューにおいて可視化されない
ことを特徴とする請求項１に記載の方法。
【請求項９】
前記オペレーションは、前記表現において１つまたは複数の子ノードをノードに追加するためのリクエストであり、
前記オペレーションが前記簡易ビューにおいて実行され、それにより前記子ノードが前記ノードの子孫に追加される
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記オペレーションは、ノードについてのプロパティを提供するためのリクエストであり、
前記ノードの少なくとも１つの選択的に可視化された先祖ノードのプロパティが無視される
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記オペレーションは、ノードについてのプロパティを提供するためのリクエストであり、
前記ノードの少なくとも１つの選択的に可視化された先祖ノードのプロパティが、前記プロパティに基づいて選択的に無視あるいは考慮される
ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記オペレーションは、ノードについてのプロパティを提供するためのリクエストであり、
前記ノードの少なくとも１つの選択的に可視化された先祖ノードのプロパティルールが無視される
ことを特徴とする請求項１に記載の方法。
【請求項１３】
前記オペレーションは、ノードについてのプロパティを提供するためのリクエストであり、
前記ノードの少なくとも１つの選択的に可視化された先祖ノードのルールが、前記プロパティに基づいて選択的に無視あるいは考慮される
ことを特徴とする請求項１に記載の方法。
【請求項１４】
ユーザインターフェイス要素を表現する方法であって、
複数のノードを有する前記ユーザインターフェイス要素の階層表現を作成するステップと、
前記表現における少なくとも１つのノードを選択的可視化可能として指定するステップと
を含むことを特徴とする方法。
【請求項１５】
前記ノードの先祖においてプロパティを設定することによって、前記ノードが選択的可視化可能として指定されることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ノードの親においてプロパティを設定することによって、前記ノードが選択的可視化可能として指定されることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記選択的可視化可能ノードのうち少なくとも１つが、先祖ノードの簡易ビューの複数の子を受けるためのノードとして指定されることを特徴とする請求項１４に記載の方法。
【請求項１８】
前記選択的可視化可能ノードにおいてプロパティを設定することによって、前記選択的可視化可能ノードがそのように指定されることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記選択的可視化可能ノードは、合成ユーザインターフェイス要素内でネストされたユーザインターフェイス要素を含む複数のノードのうちの１つであることを特徴とする請求項１４に記載の方法。
【請求項２０】
前記選択的可視化可能ノードは、ユーザインターフェイス要素を表現する複数のノードのうちの１つであり、
前記ユーザインターフェイス要素を表現する前記ノードは、前記ユーザインターフェイス要素の定義内で選択的可視化可能として定義されていない少なくとも１つのノードを含み、
前記ユーザインターフェイス要素を表現する前記ノードが合成ユーザインターフェイス要素内でネストされ、
前記合成ユーザインターフェイス要素は、前記ユーザインターフェイス要素を表現する前記ノードが選択的可視化可能として指定されることの指示を含み、
選択的可視化可能でないとして指定された前記ノードを、前記ユーザインターフェイス要素を表現する前記ノードのうち１つを介して参照される場合、選択的可視化可能でないとして処理し、
そうでない場合、選択的可視化可能でないとして指定された前記ノードを、選択的可視化可能として処理する
ことを特徴とする請求項１４に記載の方法。
【請求項２１】
選択的可視化可能として指定された前記ノードは、前記階層表現において前記ノードの下に複数のノードを生成するためのデータを提供するように動作可能であることを特徴とする請求項１４に記載の方法。
【請求項２２】
前記データはデータベースから生じることを特徴とする請求項２１に記載の方法。
【請求項２３】
前記ノードの下の前記複数のノードはリストアイテムであることを特徴とする請求項２１に記載の方法。
【請求項２４】
合成ユーザインターフェイス要素を定義する方法であって、
合成ユーザインターフェイス定義におけるユーザインターフェイス要素についての複数の定義を参照するステップと、
前記合成ユーザインターフェイス定義において、前記ユーザインターフェイス要素のための少なくとも１つのノードを選択的可視化可能として指定するステップと
を含むことを特徴とする方法。
【請求項２５】
前記ユーザインターフェイス要素についての定義のうち少なくとも１つ自体は、その中の前記ノードのうち１つを選択的可視化可能として指定することを特徴とする請求項２４に記載の方法。
【請求項２６】
前記合成ユーザインターフェイス要素はコンボボックスを含むことを特徴とする請求項２４に記載の方法。
【請求項２７】
前記ユーザインターフェイス要素のためのノード、前記ユーザインターフェイス要素のための親ノード、および前記ユーザインターフェイス要素のための先祖ノードのうち１つまたは複数のプロパティを適切に指定することによって、ノードが選択的可視化可能として指定されることを特徴とする請求項２４に記載の方法。
【請求項２８】
請求項２４に記載の合成ユーザインターフェイス定義を呼び出すステップと、
前記合成ユーザインターフェイス要素の表現の簡易ビューについてのリクエストに応答して、前記選択的可視化可能ノードのユーザインターフェイス要素を可視化しないステップとを含むことを特徴とする方法。
【請求項２９】
カプセル化されたユーザインターフェイス要素を表現するデータ構造をその上で符号化しているコンピュータ可読媒体であって、前記データ構造は、
主ノードと、
前記主ノードに階層的に関係付けられた１つまたは複数の選択的可視化可能ノードと
を含むことを特徴とするコンピュータ可読媒体。
【請求項３０】
前記データ構造は、前記選択的可視化可能ノードが非可視化される場合、前記選択的可視化可能ノードのうちどのノードが前記主ノードの子を受けるかについての指定をさらに含むことを特徴とする請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
ユーザインターフェイスサービスであって、
ユーザインターフェイス要素の定義を受け入れるためのコードを含み、前記定義は簡易ビューの指定を含み、さらに、
前記ユーザインターフェイス要素の階層表現を、前記定義に基づいて作成するためのコードと、
オペレーションを前記階層表現において、前記簡易ビューを介して実行するためのリクエストに応答するコードと
を含むことを特徴とするユーザインターフェイスサービス。
【請求項３２】
前記簡易ビューは少なくとも１つの選択的可視化可能ノードを含むことを特徴とする請求項３１に記載のユーザインターフェイスサービス。
【請求項３３】
ユーザインターフェイスサービスであって、
ユーザインターフェイス要素の定義を受け入れる手段を含み、前記定義は簡易ビューの指定を含み、さらに、
前記ユーザインターフェイス要素の階層表現を、前記定義に基づいて作成する手段と、
オペレーションを前記階層表現において、前記簡易ビューを介して実行するためのリクエストに応答する手段と
を含むことを特徴とするユーザインターフェイスサービス。
【請求項３４】
ユーザインターフェイス要素関係のオペレーションを実行するための方法であって、
簡易ビューを有する前記ユーザインターフェイス要素の階層表現の定義を受信するステップと、
前記定義を呼び出すステップと、
前記オペレーションを、前記ユーザインターフェイス要素の前記階層表現の前記簡易ビューにおいて実行するステップと
を含むことを特徴とする方法。
【請求項３５】
前記定義は、前記ユーザインターフェイスの前記階層表現のフルビュー内でノードを、前記簡易ビューにおいて非可視化されるとして選択的に定義するステップを含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記階層表現を含む前記ノードのプロパティを適切に設定することによって、前記フルビューにおける前記ノードが、前記簡易ビューにおいて非可視化されるとして定義されることを特徴とする請求項３５に記載の方法。
【請求項３７】
合成ユーザインターフェイス要素の副要素を自動的に生成するための方法であって、
ユーザインターフェイス要素ジェネレータを、前記ユーザインターフェイス要素を表現するデータ構造に挿入するステップと、
前記ユーザインターフェイス要素ジェネレータをデータソースに関連付けるステップと、
前記データソースを使用してユーザインターフェイス要素を生成するステップとを含み、
前記ユーザインターフェイス要素ジェネレータは、前記合成ユーザインターフェイス要素の階層表現の簡易ビューにおいて選択的可視化可能である
ことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
技術分野は、ユーザインターフェイス要素の内部表現に関する。
【０００２】
【従来の技術】
コンピュータの急増により、ソフトウェアユーザインターフェイスの分野において革新が起こっている。たとえば、ユーザインターフェイスをプログラマによって作成かつ操作することができる多数のツールが現在、入手可能である。さらに現在、ユーザインターフェイス要素を、ｗｅｂページまたはワードプロセッシングドキュメントなど、ドキュメントに入れることができる。
【０００３】
ユーザインターフェイス要素は多数の形態を取ることができ、これら形態は編集ボックス、リストボックス、スクロールバー、ピックリスト、プッシュボタンなどである。ユーザインターフェイス要素はユーザに対して単一の合成アイテムのように見える可能性があるが、これは実際にはコンピュータ内で、いくつかの別々のアイテムまたは副要素が共に結合されているものとして表現することができる。さらに、これらの各副要素自体を他の副要素から合成することができる。この方法では、ユーザインターフェイス要素が、他のより複雑なユーザインターフェイス要素を構築するためのビルディングブロックとしての機能を果たすことができる。このような手法は有用であり、これはユーザインターフェイスを管理するソフトウェア（たとえば、ユーザインターフェイスフレームワーク）がある共通要素を合成要素に組み立てる場合、その定義を再利用できるからである。
【０００４】
【発明が解決しようとする課題】
しかし、ユーザインターフェイス要素を合成ユーザインターフェイス要素として表現することによって導入された複雑さには、問題がある可能性がある。たとえば、新しい、あるいは臨時のプログラマは、どのように合成ユーザインターフェイスが組み立てられるかということ、または第１にその合成ユーザインターフェイスが合成であることさえも知ることを望まないかも知れない。このようなプログラマはむしろ、合成ユーザインターフェイス要素を扱うときにこのような複雑さを避けるであろう。実際には、経験のあるプログラマでさえ、このような複雑さを扱うことを避けることを望む可能性がある。したがって、合成ユーザインターフェイス要素の表現をどうにか簡易化する必要がある。
【０００５】
【課題を解決するための手段】
本明細書に記載するように、１つまたは複数のユーザインターフェイスの表現の簡易ビューが提供される。たとえば、ユーザインターフェイス要素を階層表現において表現するいくつかのノードを、選択的可視化可能（ｓｅｌｅｃｔｉｖｅｌｙ  ｅｘｐｏｓａｂｌｅ）にすることができる。このようなノードをある状況下で可視化させることができ、他の状況下で非可視化（ｕｎｅｘｐｏｓｅｄ）させることができる。この例示的方法では、簡易表現ビュー（たとえば、選択的可視化可能ノードを可視化しない）が提供される。
【０００６】
１つの実施では、ユーザインターフェイスサービスを提供する場合、様々なオペレーションを、ユーザインターフェイスの表現の簡易ビューにおいて実行することができる。たとえば、オペレーションを実行する場合、選択的可視化可能ノードを非可視化させることができる。このような手法は、表現の詳細を知られることを望まないプログラマにとって有用となる可能性がある。
【０００７】
たとえば、複数のユーザインターフェイス要素を単一の合成ユニットに合成することができ、単一の合成ユニットにおいてオペレーションを実行することができる。合成ユニットが複数のユーザインターフェイス要素から構成されるという事実を、ユーザインターフェイス要素の表現の簡易ビューにおいてはっきり見ることができる。したがって、プログラムはこの表現を、非可視化されたノードにかまわずに調査かつ操作することができる。結果として、プログラマはより単純なコードまたはマークアップを書くことができる。また、プログラマは、合成ユニットのための複数のノードを含む可能性のある、下にある構造を完全に熟知する必要がない。
【０００８】
したがって、簡易ビューを提供するユーザインターフェイスサービスは、ソフトウェアを再利用することができる強力なツールを提供することができ、レベルが高度でないユーザはユーザインターフェイス要素と基礎的レベルで対話することができる。
【０００９】
さらなる特徴および利点は、添付の図面を参照して行われる、例示した実施形態の以下の詳細な説明から明らかになるであろう。
【００１０】
【発明の実施の形態】
概観
ここに記載する様々な技術は、ユーザインターフェイス要素の作成、提示および操作に有用である。ユーザインターフェイス要素は多数の形態を取ることができ、これはグラフィカルなプッシュボタン、編集ボックス、スクロールバー、ピックリスト、ドロップダウンメニュー、ＡＣＴＩＶＥＸコントロール、イメージなどである。ユーザインターフェイス要素はプログラムの一部として（たとえば、プログラムの機能をコントロールするために）、あるいはドキュメント内に出現させることができる。このようなユーザインターフェイス要素の内部表現の簡易ビューは、ユーザインターフェイス要素のためのプログラミングをより単純にすることができる。たとえば、臨時のまたは高度でないプログラマは簡易ビューと対話しながらプログラムを書くことができ、ある複雑さを熟知するようになる必要はない。また、より高度なプログラマは、このような複雑さを阻止し、可能性のあるプログラミングの誤りを回避することを望むことができる。
【００１１】
望むなら、ここに記載する技術（たとえば、簡易ビュー）を、ユーザインターフェイスサービスの一部として提供することができる。したがって、このサービスと対話するプログラムは、この機能を望むように利用することができる。
【００１２】
ある実施形態では、ユーザインターフェイス要素を、簡易ビューと共に階層表現を有するものとして定義することができる。このような定義を呼び出して、簡易ビューと共に階層表現を作成することができる。続いて、オペレーションを階層表現において実行することができる。このようなオペレーションを、階層表現のフル（詳細）または簡易ビューのいずれにおいても実行することができる。
【００１３】
ユーザインターフェイス要素は、複数のユーザインターフェイス要素を含む合成ユーザインターフェイス要素であり、主（たとえば、親）ノードを可視化することができ、合成ユーザインターフェイス要素のための他のノードを選択的可視化可能として定義することができる。非可視化される場合、表現のビューは主ノードを示すが、他の選択的可視化可能ノードを示さない。したがって、合成ユーザインターフェイス要素のための、複数のノードではなく１つのノードを可視化することができる。
【００１４】
合成ユーザインターフェイス要素の表現のフルビューを比較的複雑にすることができ、ここでは、ユーザインターフェイス要素を表現する階層表現に複数のノードが存在する可能性がある。フルビューを操作することを望むプログラマは、様々なノードおよびそれらの階層関係を知るようになることに直面する。ここで説明するように、代わりに、プログラムは簡易ビューを使用してオペレーションを実行することができる。
【００１５】
簡易ビューでは、オペレーションをノード（たとえば、階層における親または子ノード）上で実行する場合、非可視化されたノードを無視することができる。たとえば、子をノードに追加する場合、非可視化された中間ノードを無視またはスキップすることができる。したがって、ユーザインターフェイスの階層表現の簡易ビューにおいて子をノードに追加するためのリクエストは実際には、そのノードの適切な子ノード（たとえば、合成ユーザインターフェイス要素の１つの要素を表現するもの）に子を追加する結果となる可能性がある。このような手法は有用であり、これは簡易ビューにおいて子を追加するために、ユーザインターフェイス要素を形成する複数のノードの複雑さおよびそれらの相互関係の知識が必要とされないからである。
【００１６】
たとえば、リストボックスを、階層関係における複数のノードとして表現することができ、ノードのうち１つを、特定のノードとして指定し、子ノードとしてリストボックスについて表示された選択を受けることができる。しかし、プログラマは、このような複雑さを熟知するようになることを望まない可能性がある。
【００１７】
簡易ビューを使用すると、このようなオペレーションを容易に実行することができ、これは、追加のユーザ選択をユーザインターフェイス要素の主ノードの子として追加する（たとえば、簡易ビューを介する）ことによって行われる。簡易ビューでは、子を主ノードに追加するためのリクエストが、子を適切なノード（たとえば、主ノードの子孫）に追加するためのリクエストとして実施される。このように、プログラムは、ユーザインターフェイス要素の簡易表現を使用して、オペレーションをユーザインターフェイス要素において実行することができる。結果として、プログラマはフルビューの複雑さを知るようになる必要がなく、より単純なコードまたはマークアップを使用することができる。
【００１８】
簡易ビューを実施する１つの方法は、表現における様々なノードをカプセル化の親またはカプセル化のコンテナとして定義することである。このように、特定のノードを主ノード（たとえば、カプセル化の親）として指定することができ、別の（たとえば、子）ノードを、（たとえば、親ノードが簡易ビューにおいて複数の子を有するか、あるいはこれから有するようになる場合に）子を受けるための特定のノードとして指定することができる。
【００１９】
簡易ビューを実施するもう１つの方法は、選択的可視化可能ノードを定義することであり、これは、その複数の子が、簡易ビューにおける選択的可視化可能ノードの兄弟の兄弟と見なされるような方法で行われる。
【００２０】
本明細書に記載するように、子を追加すること以外のいくつかのオペレーションを実行して、ユーザインターフェイス要素表現について学習し、あるいはこれを操作することができる。加えて、オペレーションを、表現におけるいずれかのノードにおいて実行することができ、およびオペレーションはなお簡易ビューを利用することができる。
【００２１】
さらに、（たとえば、追加されたノードについての）プロパティ値を、選択的可視化可能ノードに照らして決定することができる。いくつかの場合、主ノード（たとえば、選択的可視化可能ノードを無視する主ノード）、直接の（たとえば、非可視化された）親、またはそれらの組み合わせに関連付けられたプロパティ値を使用することが望ましい可能性がある。
【００２２】
ユーザインターフェイス要素表現に関するいくつかの詳細が隠されるが、合成ユーザインターフェイス要素のための主ノードおよび選択的可視化可能ノードは時として、「カプセル化された」ユーザインターフェイス要素を形成すると言われる。
【００２３】
簡易ビューと対話するプログラムまたはマークアップ言語を、存在の表現の複雑さのいくつかについて阻止することができる。したがって、合成ユーザインターフェイス要素を複数のユーザインターフェイス要素から組み立てることができ、合成ユーザインターフェイスを使用するプログラムのための追加の複雑さを導入することはない。このような手法は、ユーザインターフェイス要素の開発者が新しいものを作成する場合、既存のユーザインターフェイス要素を再利用するように助長することができ、ユーザインターフェイス要素を扱うときに不要な複雑さを導入することがないので有用である可能性がある。さらに、選択的可視化可能ノードを指定する定義のネスティングをサポートすることができる。
【００２４】
ユーザインターフェイス要素の例示的階層表現
ユーザインターフェイス要素をソフトウェアにおいて表現するための１つの方法は、これを、様々なノードを有する階層ツリーの形態で格納することである。図１は、ユーザインターフェイス要素の例示的階層表現１００を示す。ノード１１０および１２０は、図では親子関係を有する。たとえば、ノード１１０は、子要素１２０の親要素である。表現１００は複数のノードを含むので、これは時として「合成」ユーザインターフェイス要素を表現すると言われる。合成ユーザインターフェイス要素の場合、ノード１１０は１つの視覚的提示に対応することができ、ノード１２０は別の視覚的提示に対応することができる。しかし、ノード１１０または１２０のうち少なくとも１つは視覚的描写を有していない可能性がある。
【００２５】
表現１００における１つまたは複数のノードを、選択的可視化可能として指定することができる。この実施例では、ノード１２０がそのように指定される。表現１００の簡易ビューを提示する場合、選択的可視化可能ノード１２０が非可視化される。結果として、ユーザインターフェイス要素の階層表現１００を表現するノードのうちルートノード１１０のみが可視化される。したがって、可視化されたノード１１０は時として「主」ノードと呼ばれる。
【００２６】
多数の要素を含むはるかにより多くの複雑なユーザインターフェイスを、図１に示す方法で表現することができる。各要素はそれ自体で他のユーザインターフェイス要素を含んでおり、図１に図示しない複雑さの追加のレイヤ（たとえば、選択的可視化可能ノードを含む、より多くのノード）を追加することができる。さらに、様々な子ノードを、他のユーザインターフェイス要素の表現のための主ノードにすることができる。
【００２７】
図１は、ユーザインターフェイス要素の階層表現のフルビューを示し、これは選択的可視化可能な子ノード（たとえば、ノード１２０）を含む。しかし、様々なオペレーションをユーザインターフェイス要素の表現について実行する場合、階層表現１００のフルビューは望ましくない可能性がある。たとえば、ノード１２０との直接対話は、ある状況では不要である可能性がある。そうである場合、図２に示す表現の例示的簡易ビュー２００を提示することができる。
【００２８】
例示的簡易ビュー２００はただ１つのノード２１０のみを示す。ノード２１０は、フルビューのノード１１０および１２０の組み合わせの表現（たとえば、ノード１２０がノード１１０内にカプセル化される）、または単にフルビューのノード１１０の表現にすることができる。
【００２９】
ユーザインターフェイス要素の別の例示的階層表現
別の例示的階層表現３００を図３に示す。この実施例では、ノード３１０、３２０および３２５が、合成ユーザインターフェイス要素を表現するノードのセット３３０である。ノードのセット３３０のうち、ノード３１０は主ノードであり、残りのノード３２０および３２５が選択的可視化可能として定義される。もう１つのノード３４０は選択的可視化可能ではなく、選択的可視化可能ノード３２０のうち１つの子として示される。表現３００は選択的可視化可能ノードを含み、フルビューがリクエストされた場合、これが提供される。
【００３０】
対応する簡易ビューを図４に示す。簡易ビューがリクエストされる場合、選択的可視化可能ノード３２０および３２５は可視化されない。その代わりに、簡易ビュー４００はノード４１０（たとえば、ノード３１０、または、ノード３１０、３２０および３２５の組み合わせ）およびノード３４０を示す。
【００３１】
このとき図３を参照すると、ノード３２０のうち１つを、その下に簡易ビューの子（たとえばノード３４０）が格納されるノードとして指定することができる。このようなノードは時として（たとえば、カプセル化されたノードについての）「コンテナ」ノードと呼ばれる。
【００３２】
したがって、ユーザインターフェイスの比較的複雑な表現を、望むなら簡易形態で提示することができる。このような複雑なユーザインターフェイスの階層表現のフルビュー３００を、階層表現における選択的可視化可能ノードに関心を有していないユーザによって書かれたプログラムについては提供する必要がない可能性がある。たとえば、プログラマは、選択的可視化可能ノード３２０および３２５に関係するユーザインターフェイス要素の存在、または、それらの機能性または外観の定義に関心を有していない可能性がある。しかし、プログラムはノード３４０と対話する必要がある可能性がある。したがって、時として、関心のあるノードのみを示すユーザインターフェイスの階層表現の簡易ビュー４００を提供することが望ましい。
【００３３】
本明細書に記載する技術を、追加またはより少数のノードを有する様々な他の表現に適用することができる。
【００３４】
例示的簡易ビュー実施の概観
図５は、ユーザインターフェイス要素の表現の簡易ビューを（たとえば、ユーザインターフェイスサービスにおいて）実施するための例示的方法５００を示す。５１０で、階層表現を有するユーザインターフェイス要素が定義される。たとえば、この定義は複数のノードを含むことができ、そのうちのいくつかが選択的可視化可能である。
【００３５】
定義が作成された後、５２０で、これを呼び出してユーザインターフェイスを作成することができる。たとえば、定義済ユーザインターフェイス要素の階層表現を、この定義を介して作成し、格納することができる。
【００３６】
５３０で、１つまたは複数のオペレーションをこの表現において実行することができる。このようなオペレーションを、この表現における選択的可視化可能ノードを可視化することなく、階層表現の簡易ビューを介して実行することができる。
【００３７】
望むなら、この定義の呼び出し、および表現におけるオペレーションの実行を、表現のフルビューを参照することなく行うことができる。したがって、プログラマはフルビューの詳細を知る必要がなく、コードまたはマークアップを書くことができる。実際には、図示したアクションのいずれか１つが独立して有用である可能性があり、すべてを一度に、あるいは同じプログラムによって実行する必要はない。
【００３８】
簡易ビューを有するユーザインターフェイス要素を定義するための例示的方法図６は、簡易ビューと共に階層表現を有するユーザインターフェイス要素の定義を受信するための例示的方法を示す。この定義は、マークアップ言語（たとえば、ＸＭＬまたはＨＴＭＬ）またはプログラミング言語（たとえば、Ｊａｖａ（登録商標）またはＣ＋＋）など様々な言語を使用して作成することができる。したがって、この定義をプログラムから受信することができ、あるいはマークアップドキュメントにおいて指定することができる。
【００３９】
６１０で、ユーザインターフェイス要素の表現について格納される１つまたは複数のノードの指示が受信される。たとえば、ユーザインターフェイス要素（たとえば、副要素）を指定することができる。この定義は、複数の要素の間の階層関係を指示することができる。このような定義は、合成ユーザインターフェイス要素を形成する様々な要素のためのノード定義を含むことができる。
【００４０】
６２０で、少なくとも１つの選択的可視化可能ノードの指示が受信される。望むなら、選択的可視化可能ノードを、定義において指定するのではなく自動的に選択することができる。定義済ユーザインターフェイス要素の表現の簡易ビューが提供される場合、選択的可視化可能ノードが非可視化される。次いで６３０で、この定義を後に呼び出すために格納することができる。
【００４１】
簡易ビューを有する定義済ユーザインターフェイス要素を呼び出すための例示的方法
定義（たとえば、図６に示す方法を介して定義されたものなど）を呼び出すことによって、ユーザインターフェイス要素のインスタンスを作成することができる。図７は、簡易ビューを有するユーザインターフェイス要素の定義を呼び出すための例示的方法を示す。７１０で、ユーザインターフェイス要素を作成するためのリクエストが受信される。このようなリクエストを、プログラムにより（たとえば、ソフトウェアプログラムから）、あるいはマークアップドキュメントから受信することができる。このリクエストが、ユーザインターフェイス要素を定義したものと同じエンティティから受信される必要はない。
【００４２】
７２０で、ユーザインターフェイス要素の階層表現の定義を使用して、（たとえば、合成ユーザインターフェイス要素を形成するユーザインターフェイス要素に対応する）ユーザインターフェイスの階層表現における適切なノードを作成する。表現のフルビューがリクエストされた場合、作成されたノードが提供される。
【００４３】
７３０で、適切なノード（たとえば、定義によって指定されたもの）が、選択的可視化可能として指定される。簡易ビュー（たとえば、その中でユーザインターフェイス要素が表現される表現のもの）がリクエストされる場合、このような選択的可視化可能ノードは可視化されない（たとえば、遭遇されない）。
【００４４】
ノードがユーザインターフェイス要素の表現のビューにおいて可視化されるかどうかは、ユーザインターフェイス要素がレンダリングされる場合、対応するユーザインターフェイス要素が表示装置上で表示される（たとえば、隠される）かどうかに無関係である。
【００４５】
簡易ビューを有するユーザインターフェイス要素においてオペレーションを実行するための例示的方法
ユーザインターフェイスの定義が呼び出されて、ユーザインターフェイス要素の階層表現が作成された後（たとえば、図７に示すように）、オペレーションをこの表現について実行することができる。このようなオペレーションは、表現のフルまたは簡易ビューのいずれについても実行することができる。簡易ビューにおいて実行されるオペレーションには、たとえば、ノードの子を列挙すること、子をノードに追加すること、ノードの子を除去すること、および階層表現内でナビゲートすることが含まれる。
【００４６】
ユーザインターフェイス要素の表現の簡易ビューにおいてオペレーションを実行するための例示的方法を図８に示す。８１０で、オペレーションをユーザインターフェイス要素（たとえば、合成ユーザインターフェイス要素の主ノード）において実行するためのリクエストが受信される。８２０で、リクエストされたオペレーションが、ユーザインターフェイス要素の階層表現の簡易ビューを使用して実行される。このオペレーションは、結果として階層表現の修正となる可能性があり（たとえば、ノードを追加あるいは除去するとき）、あるいは、表現が変更されない可能性がある（たとえば、ノードを列挙するか、あるいはノード内でナビゲートするとき）。
【００４７】
たとえば、簡易ビューを使用してノードの子を列挙するためのリクエストは、子ノードが選択的可視化可能として指定される場合、結果としてノードの子ノード（または孫ノード）に格納された子の列挙となる可能性がある。
【００４８】
簡易ビューにおいて選択的可視化可能な子を有する親ノードに子を追加するためのリクエストは、簡易ビューにおいて可視の親ノードにすることができるか、あるいはそうすることができないユーザ要素の表現のフルビューの階層において、その子がその適切な場所に追加される結果となる可能性がある。
【００４９】
したがって、簡易ビューでは、子が親ノードの真下に直接追加されたかのように見えるようになる。子を含むオペレーションでは、ユーザインターフェイス要素の階層表現の定義を使用して、階層表現のフルビュー内で子を追加あるいは発見するための適切な場所を発見することができる。このように、プログラムを、簡易ビューと対話するように書くことができ、プログラマが、隠されたノードおよび階層内のそれらの構成を含むフルビューの詳細を知る必要のある困難から保護される。
【００５０】
コンボボックスに関係する例示的実施
以下の実施例のいくつかは、コンボボックスとして知られる例示的ユーザインターフェイス要素に関係する様々な処理を記載する。記載する技術を、このとき存在するかあるいは後に開発されるいかなる数のユーザインターフェイス要素にも適用することができる。
【００５１】
例示的コンボボックスユーザインターフェイス要素
図９は、一般にコンボボックスとして知られる例示的ユーザインターフェイス要素９０５を示す。この実施例では、コンボボックス９０５は、いくつかのユーザインターフェイス要素を含む合成ユーザインターフェイス要素であり、いくつかのユーザインターフェイス要素はさらにユーザインターフェイス要素を含む。コンボボックス９０５は、入力ボックス９１０、ドロップダウンボタン９３０およびポップアップウィンドウ９２０を含む。一般に、ユーザがドロップダウンボタン９３０をクリックする場合、ポップウィンドウ９２０が表示される。この実施例では、ポップアップウィンドウ９２０はリストボックス９２５を含む（たとえば、ポップアップウィンドウ９２０から視覚的に区別がつかない）。しかし、ポップアップウィンドウ９２０は、代替または追加のユーザインターフェイス要素（たとえば、ドロップダウンメニュー）を含むことができる。リストボックス９２５はまた、それ自体の要素を有する合成ユーザインターフェイス要素でもあり、これは、グリッドパネル９３５、および、グリッドパネル９３５内に含まれるリストアイテム９４０中をスクロールするためのスクロールバー９４５を含む、スクロールビューワ９２６（たとえば、これもまたポップアップウィンドウ９２０から視覚的に区別がつかない）などである。
【００５２】
コンボボックス９０５の例示的例示では、リストボックス要素９２５が、スクロールビューワ要素９２６およびポップアップ要素９２０から視覚的に区別がつかないものとして示される。したがって、この例示では、ポップアップウィンドウ９２０はリストボックス要素９２５を含み、これは、グリッドパネル９３５をスクロールビューワ９２６内に含まれた空のプレースホルダに追加することによって形成される。他の構成が可能である。たとえば、ポップウィンドウ９２０はリストボックス９２５以外のユーザ要素を含むことが可能である。さらに、スクロールビューワ９２６が、その空のプレースホルダ内に含まれたグリッドパネル９３５以外の要素（たとえば、メニュー）を有することも可能である。
【００５３】
スクロールバー９４５をまた、合成ユーザインターフェイス要素として表現することもでき、これは、スクロールボタン９５０、９５１、９５５および９５６およびスクロールサム９６０などの要素を含む。いかなる数の変形形態も、図示のコンボボックス９０５の代わりに使用することができる。たとえば、要素を除去することができ、追加の要素を追加することができ、あるいは代替要素を定義することができる。たとえば、水平スクロールバー（図示せず）を追加して、水平に長いリストアイテム中のスクロールにおいてユーザを支援することもできる。
【００５４】
コンボボックスユーザインターフェイス要素の例示的表現（フルビュー）
図１０Ａは、フルビューがリクエストされるときに（たとえば、ユーザインターフェイスサービスによって）提供されるコンボボックス（たとえば、図９に示すもの）の例示的階層表現１０００を示す。図のように、ノードが階層様式におけるツリー構造において構成される。
【００５５】
コンボボックスのための主ノードが１００５で、階層の最上位ノードとして表現される。コンボボックスの他の要素（たとえば、図９に示すものなど）も階層表現内のノードとして、ポップアップ１０２０、入力ボックス１０１０、およびドロップダウンボタン１０３０として表現される。ポップアップ１０２０が、リストボックス１０２５を含むものとして示される。リストボックス１０２５は、スクロールビューワ１０２６をさらに含む階層表現の親ノードである。
【００５６】
スクロールビューワ１０２６自体が、階層表現内の親ノードである。スクロールビューワノード１０２６は、プレースホルダ要素１０３５、垂直スクロールバー１０３０および水平スクロールバー１０４０に対する親ノードである。上で図９に関して述べたように、親のリストボックス１０２５とその子要素のスクロールビューワ１０２６の間に視覚的な違いはない。これは、グリッドパネル要素１０４５をプレースホルダ要素ノード１０３５の子ノードとして追加することによって、リストボックス１０２５が形成されるからである。しかし、スクロールビューワ１０２６を他のユーザ要素と組み合わせて使用して、他のより複雑なユーザインターフェイス要素を形成するために、他の子ノードをプレースホルダ要素の下に追加することができる。最後に、リストアイテム１０５０Ａ、１０５０Ｂおよび１０５０Ｃは、グリッドパネル１０４５の子である。
【００５７】
この実施例は、どのように合成ユーザインターフェイス要素を他のユーザインターフェイス要素から構築することができ、およびしたがって多数のノードによって表現することができるかを例示する。たとえば、リストボックス合成ユーザインターフェイス要素を、リストボックスノード１０２５およびその子孫ノードとして定義することができる。コンボボックス合成ユーザインターフェイス要素を構築するために、入力ノード１０１０、ポップアップノード１０２０およびボタンノード１０３０をコンボボックスノード１００５の下で結合することができる。最後に、リストボックス合成ユーザインターフェイス要素（たとえば、リストボックスノード１０２０およびその子孫）を（たとえば、マークアップを介して、あるいはプログラムにより）ポップアップノード１０２０の下に挿入することができる。リストボックス合成ユーザインターフェイス要素への単純な参照は、結果としてリストボックスノード１０２５およびその子孫の作成となる可能性がある。実際には、リストアイテムに関係付けられたノード（たとえば、ノード１０５０Ａ、１０５０Ｂおよび１０５０Ｃ）が、リストボックスユーザインターフェイス要素の定義内に含まれない可能性がある。
【００５８】
この実施例に示す多数のノードのネスティングが、ユーザインターフェイス要素の定義および操作の複雑さを増す可能性がある。コンボボックス表現は比較的複雑であるが、さらにより複雑な実施例を実施することができる。しかし、これらの技術を、より単純な実施例に適用することもできる。
【００５９】
この実施例では、ノードのセット１０６０はノード１０１０、１０２０、１０２５、１０２６、１０３０、１０３１Ａ、１０３１Ｂ、１０３３、１０３４Ａ、１０３４Ｂ、１０３５、１０４０、１０４１Ａ、１０４１Ｂ、１０４３、１０４４Ａ、１０４４Ｂおよび１０４５を含み、これらが選択的可視化可能として定義されている。この表現の簡易ビューが提示される場合、選択的可視化可能ノードが可視化されない。
【００６０】
ユーザインターフェイス要素の階層表現の簡易ビューが望まれる可能性がある。たとえば、階層表現の相対的複雑さ（たとえば、どこにリストアイテムを子として追加するか）を扱う必要なしに、追加のリストアイテムを追加することが望ましい可能性がある。
【００６１】
コンボボックスユーザインターフェイス要素の例示的表現（簡易ビュー）
合成ユーザインターフェイス要素は複雑な複数のノードを含むことができるが、ユーザインターフェイス要素の階層表現の簡易ビューを提供することが望ましい可能性がある。図１１は、コンボボックス（たとえば、図９のものなど）の簡易ビューがリクエストされるときに提供される例示的階層表現１１００（たとえば、図１０Ａの表現１０００に対応するもの）を示す。この実施例では、リストアイテムのためのノード１０５０Ａ、１０５０Ｂおよび１０５０Ｃが、コンボボックスの主ノード１１０５の直接の子として示される。図示しない他のノードは時として、コンボボックスノード１１０５によって「カプセル化」されると言われる。簡易ビューを使用すると、リストアイテムの操作に関係するプログラムはリストアイテムを主ノード１１０５の子として見なすことができ、合成ユーザインターフェイス要素における他の要素に関係するロジックを含む必要がない。コンボボックスユーザインターフェイス要素の定義は十分な情報を含むことができ、これにより簡易ビューのためのオペレーションを階層表現のフルビューのための適切なオペレーションに変換することができる。
【００６２】
簡易ビューを有するユーザインターフェイス要素の例示的ネスティング
本明細書に記載する構成はまたネスティングをサポートすることもできる。ネスティングでは、他のユーザインターフェイス要素内の選択的可視化可能ノードを有するユーザインターフェイス要素が存在する可能性があり、他のユーザインターフェイス要素自体は選択的可視化可能ノードを有する。このようなネスティングを様々な方法で解決することができる。たとえば、合成ユーザインターフェイス要素におけるノードのいくつかを、可視化されるもの（たとえば、簡易ビューにおいて視認可能）として指定することができるが、ユーザインターフェイス要素が部分的に別の合成ユーザインターフェイス要素からなる（たとえば、その内部にカプセル化される）場合、このようなノードを選択的可視化可能（たとえば、簡易ビューにおいて不可視）と見なすことができ、これは、このようなノードが、（たとえば、カプセル化実行合成ユーザインターフェイス要素によって）選択的可視化可能として指定されるカプセル化実行合成ユーザインターフェイス要素を表現する階層の領域内にあるという事実による。
【００６３】
さらに、このようなネスティングは相対性をサポートすることができる。たとえば、ノードを、それにおいてオペレーションを実行するためのリクエストが行われるノードに応じて、選択的可視化可能と見なされる可能性があり、あるいは見なされる可能性がない。すなわち、別のユーザインターフェイス要素内にカプセル化されたノードにおいてオペレーションを実行するためのリクエストは、結果として、カプセル化実行ユーザインターフェイス要素においてオペレーションを実行するときに見られないノードを示すビューとなる可能性がある。
【００６４】
図１０Ｂは、図１０Ａで表現するものなど、コンボボックスの例示的階層表現を示す。簡潔にするため、スクロールバーに関係付けられたノードのいくつかを省略する。
【００６５】
この実施例では、スクロールビューワノード１０２６が、スクロールビューワノード１０２６、コンテナ要素ノード１０３５および様々なスクロールバーノード（たとえば、ノード１０３０）を含む合成ユーザインターフェイス要素の主ノードである。簡易ビューにおいてスクロールビューワノード１０２６において実行されるオペレーションでは、合成ユーザインターフェイス要素の他のノードが選択的可視化可能であると見なされ（たとえば、スキップされ）、スクロールビューワノード１０２６によってカプセル化される。たとえば、子ノードを簡易ビューにおいてスクロールビューワノード１０２６に追加するためのリクエストは、子ノードがコンテナ要素ノード１０３５に追加される結果となる。このように、カプセル化境界（ｅｎｃａｐｓｕｌａｔｉｏｎ  ｂｏｕｎｄａｒｙ）１０９０が定義される。
【００６６】
同様に、リストボックスノード１０２５は、スクロールビューワノード１０２６（たとえば、およびそれによってカプセル化されたノード）およびグリッドパネル１０４５を含む合成ユーザインターフェイス要素の主ノードである。リストボックスノード１０２５において実行されるオペレーションでは、合成ユーザインターフェイス要素の他のノードが選択的可視化可能であると見なされ（たとえば、スキップされ）、リストボックスノード１０２５によってカプセル化される。このように、カプセル化境界１０８０が定義される。
【００６７】
さらに、コンボボックスノード１００５は、入力ノード１０１０、ポップアップノード１０２０、ボタンノード１０３０およびリストボックスノード１０２５（たとえば、およびそれによってカプセル化されたノード）を含む合成ユーザインターフェイスの主ノードである。コンボボックスノード１００５において実行されるオペレーションでは、合成ユーザインターフェイス要素の他のノードが選択的可視化可能であると見なされ（たとえば、スキップされ）、コンボボックスノード１００５によってカプセル化される。このように、カプセル化境界１０７０が定義される。リストボックスノード１０２５自体がカプセル化境界の一部であるので、有効カプセル化境界１０９５が実施される。すなわち、コンボボックスノード１００５において実行されるオペレーションでは、コンボボックスノード１００５およびリストアイテムノード１０５０Ａ−Ｃを除く図示のノードが選択的可視化可能であると見なされ（たとえば、スキップされ）、コンボボックス１００５によってカプセル化される。たとえば、子ノードを簡易ビューにおいてコンボボックスノード１００５に追加するためのリクエストは、子ノードがグリッドパネルノード１０４５に追加される結果となる。
【００６８】
簡易ビューを有するユーザインターフェイス要素を表現するための例示的方法様々な方法を使用して簡易ビューを提供することができる。１つのこのような方法は、ユーザインターフェイス要素の表現内に、ノードについての様々なプロパティを格納することである。以下の実施例は、プロパティ（たとえば、「カプセル化の親」および「カプセル化のコンテナ」）を使用して、表現におけるどのノードが選択的可視化可能であるかを指定することを記載する。
【００６９】
ノードの適切なプロパティ（たとえば、「カプセル化の親」）をＴＲＵＥに設定することによって、階層におけるそのノードの下のノードが選択的可視化可能として指定される（たとえば、簡易ビューにおいて可視化されない）。
【００７０】
本明細書に記載したように、このようなノードは時として「主」ノードと呼ばれる。さらに、階層における主ノードの下の特定のノードが、ＴＲＵＥに設定された適切なプロパティ（たとえば、「カプセル化のコンテナ」）を有する場合、特定のノードの子が選択的可視化可能ではないとして指定される（たとえば、簡易ビューにおいて可視化される）。このような場合、特定のノードの子が、簡易ビューのための主ノードの子であると見なされる。そのため、子が簡易ビューを介して主ノードに追加される場合、子が実際には、ＴＲＵＥに設定されたプロパティ（たとえば、「カプセル化のコンテナ」）を有する特定のノードの子として追加される。
【００７１】
図１０Ｂに関して記載するようなネスティングをサポートすることができる。この実施例では、カプセル化境界の最上部のノード（たとえば、主ノード）は適切なプロパティ（たとえば、「カプセル化の親」プロパティ）を設定することができ、カプセル化境界の最下部のノードは適切なプロパティ（たとえば、「カプセル化のコンテナ」プロパティ）を設定することができる。このように、カプセル化境界を、適切な設定を介して定義することができる。
【００７２】
図１２は、ユーザインターフェイス要素の階層表現内のノードの様々なプロパティの値を示すことを介して、簡易ビューを有するユーザインターフェイス要素を表現するための例示的方法１２００を示す。階層表現のノードは、ノード自体、その子またはその親を選択的に可視化することに関係付けられたプロパティを有することができる。このようなプロパティを設定することによって、簡易ビューを有するユーザインターフェイス要素を表現することができ、簡易ビューを介してオペレーションを表現において実行することができる。
【００７３】
１２１０で、ユーザインターフェイスの階層表現の少なくとも１つのノードが、主ノード（たとえば、選択的非可視化されたノードをカプセル化するもの）としての機能を果たすように選択される。１２２０で、選択されたノードにおけるＩｓＥｎｃａｐｓｕｌａｔｉｎｇＰａｒｅｎｔプロパティが「ＴＲＵＥ」に設定される。１２３０で、主ノードの子孫が、簡易ビューにおける主ノードのいずれかの子（たとえば、このとき存在するか、あるいは後に追加されるもの）のためのコンテナとしての機能を果たすように選択される。次いで１２４０で、子孫ノードのＩｓＥｎｃａｐｓｕｌａｔｉｎｇＣｏｎｔａｉｎｅｒプロパティが「ＴＲＵＥ」に設定される。
【００７４】
この実施例において説明したようにプロパティを設定することによって、それによりコンテナ、および、主ノードとコンテナの間のいずれかの中間子孫（たとえば、子）が選択的可視化可能として定義される（たとえば、簡易ビューにおいてスキップされ、あるいは親内に「カプセル化」される）。コンテナの下の子ノードは簡易ビューにおいて可視化される（たとえば、可視となる）。
【００７５】
いくつかの構成では、なおいかなる子要素も存在しない可能性がある。このような場合、葉ノードの適切なプロパティを設定することができる。続いて、簡易ビューを介して子が追加される場合、子が葉ノードの下に入れられる。
【００７６】
コンボボックスの例示的マークアップ定義
その表現の簡易ビューを有するユーザインターフェイス要素を、様々な方法で定義することができる。１つのこのような方法は、マークアップ言語（たとえば、ＨＴＭＬまたはＸＭＬ）を介するものであり、これを処理し、後に呼び出すために格納することができる。図１３は、ＸＭＬで書かれた簡易ビュー（たとえば、図１１に示すものなど）を有するコンボボックスの例示的定義を示す。
【００７７】
定義されたコンボボックスのインスタンスが作成される場合、適切なプロパティを階層表現の様々なノードについて設定して、所望の簡易ビューを達成することができる。階層表現の様々なノードのプロパティを定義するスキームを、マークアップ言語を除く他のタイプの言語において使用するように適合可能にすることができる。
【００７８】
この実施例では、ネスティングが達成される。図１３の定義は、結果として図１０Ｂに示す構成となる可能性がある。
【００７９】
コンボボックスの例示的プログラム定義
簡易ビューを有するユーザインターフェイス要素をプログラムにより定義することもできる（たとえば、Ｃ＋＋またはＪａｖａ（登録商標）などのプログラミング言語による）。たとえば、図１４Ａおよび１４Ｂは、簡易ビューを有するコンボボックスの階層表現のプログラム定義を示す。
【００８０】
図１３のマークアップ定義および図１４Ａおよび１４Ｂのプログラム定義は共に、簡易ビューにおいて可視化されたコンボボックスの子（すなわち、リストアイテム）を保持するためのリストボックス要素を含むポップアップ要素を有するものとして定義されたコンボボックスを示す。リストボックス要素（それ自体が合成コントロールであるもの）がさらに、簡易ビューにおいて可視化されるリストボックスの子（すなわち、リストアイテム）を保持するためのグリッドパネルを含むスクロールビューワ要素を有するものとして定義される。
【００８１】
再度、プログラム定義の実施例では、ネスティングが達成される。図１４Ａおよび１４Ｂの定義は、結果として図１０Ｂに示す構成となる可能性がある。したがって、合成ユーザインターフェイス要素（たとえば、コンボボックス）が様々なユーザインターフェイス要素の組み立てを介して定義され、そのそれぞれが選択的可視化可能ノードを備えることができる。合成ユーザインターフェイス要素に組み立てられる場合、カプセル化されたユーザインターフェイス要素内で選択的可視化可能ノードがどのように定義されるかの詳細が、外側のレベルの（たとえば、カプセル化を実行する）ユーザインターフェイス要素において動作するときに透過的なままであるような方法で、ネスティングを処理することができる。
【００８２】
コンボボックス定義の例示的マークアップ呼び出し
ユーザインターフェイス要素の定義（たとえば、図１３および１４に示すものなど）を呼び出して、ユーザインターフェイス要素の表現を作成することができ、これは簡易ビューにおいて非可視化されたままであるいかなる選択的可視化可能ノードをも含む。このような呼び出しを様々な方法で達成することができる（たとえば、マークアップ言語を介して、あるいはプログラムによる）。
【００８３】
定義（たとえば、図１３および１４に示すものなど）の例示的呼び出し１５００を図１５に、ＸＭＬで書かれたものとして示す。タグ「＜ＣＯＭＢＯ  ＢＯＸ＞」を１５１０に含めることによって、この呼び出しが先に作成されたコンボボックスの定義を使用し、これによりコンボボックスの階層表現の簡易ビューを容易にする。この実施例のように、呼び出しの一部における他の労力は、コンボボックスの完全な階層表現のいかなる知識も有することなくリストアイテム１５２０を指定することのみである。したがって、コンボボックスが実際には複数の他のユーザインターフェイス要素から構成されるとしても、図１５の呼び出しの構造は、コンボボックスの階層表現の簡易ビューに対応することができる。このように、ユーザインターフェイス要素を再利用して合成コントロールを作成することが助長される。この実施例では、簡易ビューをシステムによって使用することができ、これは呼び出しがＸＭＬにおいて実行されるという事実による。
【００８４】
コンボボックス定義の例示的プログラム呼び出し
同様に、コンボボックスを呼び出すスキームが、図１６に示す定義のプログラム呼び出し１６００に引き継がれる。この実施例を、様々なプログラミング言語（たとえば、Ｊａｖａ（登録商標）およびＣ＋＋）において実施することができる。１６１０のコード行「ＣＯＭＢＯＢＯＸ＝ＮＥＷ  ＣＯＭＢＯＢＯＸ（）」は、先に作成された定義を呼び出す。上でマークアップバージョンについて記載した利点はまたプログラム呼び出しにも当てはまる。簡易ビューではなくフルビューにアクセスするために、他の言語を使用することができる（たとえば、「ＣＯＭＢＯＢＯＸ．ＦＵＬＬＶＩＥＷ．ＥＬＥＭＥＮＴＳ」など）。
【００８５】
簡易ビューにおいてオペレーションを実行するための例示的方法
ソフトウェアまたはマークアップが定義済ユーザインターフェイス要素を呼び出した後、簡易ビューを有するユーザインターフェイス要素の階層表現が作成され、オペレーションのために使用可能である。オペレーションには、子の追加、子の除去、子の列挙、何が簡易ビューにおけるノードの親ノードであるかを問い合わせること、および、ユーザインターフェイス要素の階層表現をナビゲートするための様々なオペレーションが含まれる。これらのオペレーションの結果は、それらが階層表現の簡易ビューを使用して実行されるか、フルビューを使用して実行されるかによって異なる可能性がある。
【００８６】
様々な実施形態では、プログラムは、簡易ビューが望まれるかどうかを指定することができる。あるいは、いくつかのシナリオでは、コンテキストから簡易ビューが望まれることを仮定することができる。
【００８７】
簡易ビューにおける子の追加または子の除去など、いくつかのオペレーションでは、ユーザインターフェイス要素の階層表現の定義を使用して、どのようにオペレーションをフルビューにおいて実行するべきであるかを決定することができる。
【００８８】
図１７は、簡易ビューにおいてオペレーションを実行する、すなわち、子をユーザインターフェイス要素（たとえば、このような要素を表現するノード）に追加するための例示的方法１７００を示す。１７１０で、ユーザインターフェイス要素の階層表現の簡易ビューにおけるノードに子を追加するための指示が受信される。１７２０で、ユーザインターフェイスの階層表現が定義されている方法に基づいて、選択的可視化可能ノードがスキップされ、１７３０で、新しい子ノードが、定義に従って適切なノードに（たとえば、「ＴＲＵＥ」に設定された「カプセル化のコンテナ」プロパティを有するノードに）追加される。
【００８９】
図１７に例示したプロセスを、図１８に示すように使用して、新しい子１８５０を、コンボボックスの階層表現の簡易ビューに追加することができる。コンボボックスの定義が呼び出された後、新しい子１８５０Ｄなど、新しい子をコンボボックスの階層表現の簡易ビューに追加することができ、これを図１９に示す。階層表現の定義を使用して、図１９の簡易ビューにおける新しい子１８５０Ｄの追加が、図１８に示すような階層表現のフルビューにおける適切な場所への追加として変換されるようになる。
【００９０】
オペレーションを実行するための例示的詳細
コンボボックスユーザインターフェイス要素の例示的階層表現１８００を図１８に示す。子をコンボボックス（たとえば、ノード１００５）に追加するためのリクエストが受信される場合、「カプセル化の親」プロパティがノード１００５で検出され、トラバーサルが、「カプセル化のコンテナ」プロパティを有する関連付けられた子孫ノードまで進行する。この実施例では、ポインタ１８５５を介してトラバーサルを達成することができる。「カプセル化の親」プロパティがノード１０２５で検出されるので、トラバーサルが継続して、「カプセル化のコンテナ」プロパティを有する関連付けられた子孫ノードまで進行する。この実施例では、ノード１０４５へのポインタ１８６０を介してトラバーサルを達成することができる。次いで、新しい子が子ノード１８５０Ｄとしてノード１０４５に追加される。
【００９１】
望むなら、直接ポインタ１８８０を実施して、子が追加される適切なノードへより直接的にナビゲートすることができる。加えて、主ノードへ戻るポインタ１８８５を含めることができる。
【００９２】
図１９に示すように、新しい子が簡易ビューに追加される場合、呼び出し側プログラムには、新しい子１８５０Ｄがコンボボックスの主ノード１９０５の子として追加されているかのように見えるようになる。しかし、このオペレーションは実際には（たとえば、ユーザインターフェイスサービスによって）、図１８のフルビューにおいて新しい子１８５０Ｄを（たとえば、グリッドパネルノード１０４５の下に）追加することとして実施される。
【００９３】
ネスティングを様々な方法で処理することができる。たとえば、ポインタを図のように使用して、カプセル化の中間レベルをスキップすることができる。または、階層表現のトラバース中にネスティングのレベルを追跡することができる。レベルに基づいて、どのノードがスキップされるかを決定することができる。トラバーサルはまた、（たとえば、子ノードによる、その親を列挙するためのリクエストにおいて）階層の最下部から最上部へ進行することもできる。
【００９４】
選択的可視化可能ノードの代替表現
選択的可視化可能ノードの代替表現２０００を図２０Ａに示す。この実施例では、特定のノード２０２０が特に、表現のフルビューにおいて選択的可視化可能として指定される。
【００９５】
対応する簡易ビュー２０５０を図２０Ｂに示す。図のように、特定のノード２０２０の子２０３０Ｂおよび２０３０Ｃが、親ノード２０１０の子（たとえば、ノード２０３０Ａ）の兄弟であると見なされる。すなわち、特定のノード２０２０の子２０３０Ｂおよび２０３０Ｃが、親ノード２０２０の兄弟（たとえば、フルビューにおける兄弟２０３０Ａ）の兄弟であると見なされる。
【００９６】
このような実施を様々な方法で達成することができる。１つの実施例では、特殊なプロパティ（たとえば、「隠れコンテナ」）が、簡易ビューがリクエストされるときに可視化されない特定のノード２０２０についてｔｒｕｅに設定される。
【００９７】
代替表現の例示的実施
いくつかのユーザインターフェイス要素のシナリオでは、ノードを、指定された位置から（たとえば、データベースから）生成することが望ましい可能性がある。たとえば、図２１は例示的リストボックス２１００を例示する。１つまたは複数のリストアイテム２１１０をデータベースまたは他のデータソースから生成することが望ましい可能性がある。
【００９８】
コンテンツをデータベースから生成する、１つのこのような方法は、特殊な要素をユーザインターフェイス要素の階層表現内に含めることである。特殊な要素は簡易ビューでは非可視化されたままであることが可能であるが、なおコンテンツを生成し、およびフルビューにおいて存在するように動作することができる。望むなら、特殊な要素をデータソースにバインドして、コンテンツをリストアイテム２１１０などのユーザインターフェイス要素に自動的に挿入することができる。
【００９９】
１つのこのような要素が「リピータ」と呼ばれる。図２２は、リストボックス（たとえば、図２１に示すものなど）の階層表現２２００を例示し、これは、リストアイテム２２３０および２２４０など、リストアイテムのいくつかを自動的に生成するために階層表現に挿入されたリピータノード２２２０を含む。
【０１００】
リピータの使用により、ユーザインターフェイス開発者が、リピータを（たとえば、データベースからの）レコードの集まりにバインドすることによって、自動的にコンテンツを生成することもできる。さらに、テンプレートコンテナ２２２１および２２２２をリピータ２２２０に関連付けて、リピータの特定の子についてのコンテンツを生成中であるデータベースにおける特定のレコードに関係付けられた情報を含めることができる。この実施例では、リストアイテム２２３０および２２４０がデータソースのレコードにバインドされて、テキストコンテンツ２２３５および２２４５（たとえば、レコードの名前、位置または別のフィールド）が生成される。図２２は、各テンプレートコンテナ２２２１および２２２２に関連付けられた単一の子要素（リストアイテム２２３５および２２４０）のみを示すが、多数の子要素（たとえば、人の電話番号、名前およびイメージ）を有することが可能である。
【０１０１】
リストボックスの階層表現２２００のフルビューでは、リピータ２２２０が、リストボックスノード２２０５およびフローパネルノード２２１０の子ノードのうちの１つであるかのように見える。テンプレートコンテナ２２２１および２２２２はリピータ２２２０の子として現れる。
【０１０２】
しかし、リストボックスの定義を呼び出すプログラムは、リピータをフローパネルノード２２１０の子として見ることを予想することができない。また、リストボックスの定義はルールを、リストアイテム以外の何物をもフローパネル２２１０の子として受け入れないように設定することができる。したがって、リピータ２２２０およびテンプレートコンテナ２２２１および２２２２が、簡易ビューが使用されるときにリストボックスの階層表現内で可視化されることは望ましくない（たとえば、隠されるべきである）。
【０１０３】
リピータ２２２０およびテンプレートコンテナ２２２１および２２２２をリストボックスの階層表現の簡易ビューにおいて可視化しないことによって、リストアイテム２２３０および２２４０が効果的に、それらの親の兄弟の兄弟、リピータ２２２０（たとえば、リストアイテムノード２２５０の兄弟）としてプロモートされる。このような簡易ビュー２３００を図２３に示し、ここでは図２２のリピータ２２２０が可視化されず、リストアイテム２２３０、２２４０および２２５０が図２３において兄弟として現れる。
【０１０４】
例示的代替表現の作成
選択的可視化可能ノード（たとえば、リピータ）の代替表現を作成するための例示的方法２４００を図２４に示す。２４１０で、階層表現を有するユーザインターフェイス要素が選択される。２４３０で、階層表現のうち少なくとも１つのノードが、選択的可視化可能である（たとえば、階層表現の簡易ビューにおいて可視化されない）として指定される。
【０１０５】
たとえば、このような指定を、指定されたノードの「隠れコンテナ」プロパティを「ＴＲＵＥ」に設定することによって達成することができる。リピータのクラスコンストラクタはこのようなプロパティを、リピータがインスタンス化されるときにそのプロパティが設定されるように、設定することができる。
【０１０６】
リピータを望むように達成することができる（たとえば、リピータを有するものとして定義されたユーザインターフェイス要素の呼び出しにおいて自動的に）。しかし、呼び出し側プログラムは、非可視化されるリピータを説明する必要はなく、これは自動的にリストアイテムをポピュレートする。呼び出し側プログラムに関する限り、これはただユーザインターフェイス要素の定義を呼び出しているだけであり、ユーザインターフェイス要素がリピータを有するものとして定義されるという知識を有していない。
【０１０７】
または、呼び出し側プログラムがリピータに気付いている場合でさえ、リピータに関連付けられたリストアイテムを処理するソフトウェアまたはマークアップは、リピータに関係する複雑さを熟知する必要がない。簡易ビューでは、ユーザインターフェイス要素は単に、リピータなしにリストアイテムを有するように現れる。
【０１０８】
ユーザインターフェイス要素におけるリピータの例示的マークアップ呼び出し
ユーザインターフェイス要素はリピータを様々な方法で呼び出すことができる。１つのこのような方法は、マークアップ言語（たとえば、ＸＭＬまたはＨＴＭＬ）を介することである。図２５は、ＸＭＬを使用して、リピータノードを含む例示的な２５００のリストボックスを例示する。このリピータの呼び出しは、（たとえば、適切なコンストラクタを含む）リピータクラスの以前の定義に依拠し、したがって、リピータの「隠れコンテナ」プロパティを「ＴＲＵＥ」として指定することは必要ではない。
【０１０９】
ユーザインターフェイス要素におけるリピータの例示的プログラム呼び出し
リピータを、ユーザインターフェイス要素において使用するために、プログラムによって（たとえば、Ｃ＋＋またはＪＡＶＡ（登録商標）など、プログラミング言語において）呼び出すこともできる。図２６は、リストボックスのためのリピータの例示的プログラム呼び出しを有するコード２６００を例示する。
【０１１０】
ユーザインターフェイス要素におけるリピータの例示的代替呼び出し
図２７は、ユーザインターフェイス要素におけるリピータの代替マークアップ呼び出し２７１０を含むマークアップ言語を例示する。図示の実施例は、テンプレートコンテナについての複数（たとえば、２つ）の子ノード（たとえば、テンプレートコンテナ２２２１および２２２２）の結果となり、その一方は図についてのもの、もう一方は顧客名についてのものである。
【０１１１】
実施例のいずれかにおいて、リピータを呼び出すことによって、２７１０で、呼び出し側ユーザまたはプロセスはただ１つのリストアイテム（たとえば、ソースを指示するもの）を定義してリストボックスを完成させる必要があり、結果として生じるリストアイテムがリピータによって、（たとえば、ソースへの参照を介した）呼び出しにおいて自動的に生成される。
【０１１２】
図２８は、リピータ機能を使用することなく、多数のリストアイテムを有するリストボックスの例示的定義を示す。したがって、リストアイテム２８１０が明示的にマークアップにおいてリストされ、対応するデータベースが更新されるときに更新されないようになる。したがって、ユーザインターフェイス要素内のリピータの可用性（たとえば、データソースにバインドする能力を含む）は、多数のあるいは動的に更新された選択を有するユーザインターフェイス要素を提供する場合、結果としてより効率的なコードまたはマークアップを生じる可能性がある。
【０１１３】
代替表現を介したオペレーションの実行
オペレーションが、簡易ビューを介して、記載された表現において実行される場合、「隠れコンテナ」として指定された、適切に指定されたノード（たとえば、リピータノード）が可視化されない。再度図２２を参照すると、リストアイテム２２３０および２２４０は、他のいずれかのリストアイテムとしての挙動を示すことができ、レンダリングされたリストボックスのユーザによって選択することができる。
【０１１４】
さらに、簡易ビューを介したリストアイテム２２３０の親を求めるリクエストには、２２３０の親ノードがフローパネルノード２２１０である（リピータ２２２０またはテンプレート２２２１ではない）ことを指示することによって答えられる。したがって、ノード２２２０および２２２１（たとえば、「隠れコンテナ」として指定されたもの）がスキップされる（たとえば、可視化されない）。別法として、フローパネルおよびスクロールビューワが選択的可視化可能として指定された場合、リストアイテム２２３０の親が簡易ビューではリストボックス２２０５となる。
【０１１５】
ある機能性を、望むなら禁止にすることができる。たとえば、リピータ２２２０によってポピュレートされたリストアイテム２２３０および２２４０の追加または削除を禁止することができる。
【０１１６】
別の代替表現の例示的実施
選択的可視化可能ノードを有するユーザインターフェイス要素の別の例示的表現を、指定されたノードのみが簡易ビューにおいて可視化されるようにノードを指定することによって、達成することができる。たとえば、ノードの子孫（たとえば、すべての子孫）が選択的可視化可能と見なされ、簡易ビューにおいて表示されない。このような表現は、ユーザインターフェイス要素のための唯一のノードが簡易ビューにおいて可視化されるものとなる。
【０１１７】
たとえば、図２０Ａに示すユーザインターフェイス要素の表現では、ノード２０１０がそのように指定された場合、子孫（たとえば、ノード２０２０、２０３０Ａ、２０３０Ｂおよび２０３０Ｃ）が選択的可視化可能であると指定される。結果として生じる表現は、ノード２０１０（たとえば、主ノード）のみがその簡易ビューにおいて可視化されるものとなる。
【０１１８】
望むなら、子をこのような簡易ビューに追加するためのオペレーションが結果としてエラーとなる可能性があり、これは、ノード２０１０が簡易ビューの子ノードをサポートしないものとして定義されるからである。このような簡易ビューを使用した子列挙オペレーションの実行は、同じ理由で誤ったものとなる可能性があるか、あるいは空のセットが提供される可能性がある。
【０１１９】
このような表現は、あるユーザにとってほとんど関心のないものであるユーザインターフェイスのビューのすべての詳細を隠すために有用である可能性がある。記載した表現を、いくつかの方法で達成することができる。たとえば、子孫が選択的可視化可能であることを指示する単一のプロパティを設定することができる。「カプセル化の親」コンテナプロパティをＴＲＵＥに設定して、結果としてこのような構成を生じることができる（たとえば、ＴＲＵＥに設定された「カプセル化のコンテナ」を有する、対応するノードがない場合）。
【０１２０】
イメージの例示的表現
これらの技術の別の例示的実施は、イメージの内部表現を、イメージが使用不可能である場合に提示されるテキストを指示するテキストを有する選択的可視化可能な子を有するものとして実施することである。主ノードはイメージを含むことができ、選択的可視化可能な子は対応するテキストを表現することができる。このように、簡易ビューを、選択的可視化可能な子の知識なしに操作することができる。
【０１２１】
ノードのプロパティを決定する例示的方法
どのプロパティ値をノードが引き受ける（たとえば、継承する）かを決定する場合、選択的可視化可能ノードを考慮に入れることができる。望むなら、このようなノード（たとえば、および主ノードから取られたプロパティ）を無視することができ、このようなノードは、引き受けられるためのプロパティ値を決定することができ、あるいは選択的可視化可能ノードが主ノードと結合して動作して、どのプロパティ値が引き受けられるかを決定することができる。このような決定は、たとえば、ノードを表現に追加するときに関連する可能性がある。
【０１２２】
階層におけるノードは、他のノードについての所望のプロパティを、（たとえば、スタイルシートを介して設定された）プロパティルールを介して指示することができる。たとえば、ノードは、子のフォントプロパティが「太字」となるように指定することができる。
【０１２３】
たとえば、図１０Ａにおいて、プロパティルールで主ノード１００５の子のフォントプロパティが「太字」となるべきであると述べているが、リストボックスノード１０２５に関連付けられたプロパティルールはその子が「斜体」のフォントプロパティを有することを要求する場合、１０５０Ａなどのリストアイテムのプロパティが何になるべきであるかについて不明瞭である。
【０１２４】
１つの実施では、選択的可視化可能でない子ノードの継承可能プロパティは、簡易ビューにおいて最も近い親から継承される。上の実施例では、簡易ビューが図１１に示すものなら、簡易ビューにおいてリストアイテム１０５０Ａ、１０５０Ｂおよび１０５０Ｃについて最も近い親は主ノード１１０５である。したがって、この実施形態では、コンボボックスのフォントプロパティがリストアイテムによって引き受けられるようになる。
【０１２５】
別の実施では、簡易ビューにおいて最も近い親は、その選択的可視化可能な子ノードのいずれかのプロパティルールのいずれかが、選択的可視化可能でない子ノードに適用されるべきであるかどうかを問い合わせるためのルールを含むことができる。たとえば、プロパティルールを適用するプロセスは、リストボックスに関連付けられたプロパティルールが、コンボボックスに関連付けられたプロパティルールの代わりにリストアイテムに適用される必要があるかどうかを問い合わせることができる。
【０１２６】
別の実施では、上に記載したような隠れコンテナの子ノードのプロパティを、階層表現の簡易ビューにおける直接の親ノードではなく、隠れコンテナ自体によって設定されたプロパティルールから決定することができる。
【０１２７】
望むなら、柔軟性のあるプロパティ決定をサポートすることができる実施の組み合わせを提供することができる。
【０１２８】
合成ユーザインターフェイス要素を容易にすること
本明細書に記載した様々な技術を使用して、合成ユーザインターフェイス要素の定義、作成およびそれとの対話を容易にすることができる。たとえば、呼び出しを、合成ユーザインターフェイスとなることが起こる特定のユーザインターフェイス要素の単純な指示にすることができる。この呼び出しは、ユーザインターフェイス要素を表現するための複数のノードを作成する結果となる可能性がある。
【０１２９】
しかし、合成ユーザインターフェイス要素を定義するプログラマは、様々なノードが選択的可視化可能であることを指示するための処置を取ることができる。したがって、定義を呼び出すプログラマは、このようなノードが可視化されない簡易ビューへプログラムすることを選択すること（または、デフォルトによりこのようなビューを提供されること）ができる。このような場合、定義を呼び出すプログラマは、合成コントロールが実際には複数のノードから構成されることを承知している必要はない。
【０１３０】
さらに、これらの追加のコントロールの定義は、それらのコントロール定義内で合成コントロールをネストすることができる。どのノードが選択的可視化可能にされるかについての指示を保持して、ネスティングを容易に実施できるようにすることができる。このように、第１の合成コントロールを、第２の合成コントロールを含むものとして定義することができ、簡易ビューが正しく提示されるようになる（たとえば、第２の合成コントロールについて選択的可視化可能として指定されたノードが、第２の合成コントロールについて選択的可視化可能となる）。望むなら、第２の合成コントロールの主ノードをまた選択的可視化可能として指示することもできる。
【０１３１】
ネスティングを例示するために有用な実施例には、図１４Ａおよび１４Ｂに示すコンボボックスのプログラム定義が含まれる。この実施例では、コンボボックスがリストボックスから構成される。リストボックス定義は、リストボックス内で選択的に可視化されたノードを達成するためにプロパティを設定することを含む。さらに、リストボックス自体はスクロールビューワの定義を呼び出し、これ自体は、スクロールビュー内で選択的に可視化されたノードを達成するためにプロパティを設定する。しかし、コンボボックスにアクセスするソフトウェアまたはマークアップに対して、ネスティングを実施して、リストボックスの内部の詳細（たとえば、選択的可視化可能ノードをその中に含むもの）が（たとえば、コンボボックスの簡易ビューにアクセスするときに）現れないようにすることができる。
【０１３２】
他方では、リストボックスにおいて実行されたオペレーションはなお、その中のノードが選択的可視化可能であるという事実を利用することができる（たとえば、オペレーションを簡易ビューにおけるリストボックスにおいて実行するとき）。したがって、選択的可視化可能性（ｓｅｌｅｃｔｉｖｅ  ｅｘｐｏｓａｂｉｌｉｔｙ）をネスト可能かつ相対的にすることができる。
【０１３３】
代替物
例示した実施形態を参照して、本発明の原理を記載かつ例示したが、例示した実施形態を、このような原理から逸脱することなく、構成および詳細において修正できることは理解されよう。
【０１３４】
たとえば、様々なユーザインターフェイス要素を共に組み合わせ、およびネストして、より複雑な表現を提供することができる。ユーザインターフェイス要素を、プログラムへのインターフェイスの一部として提供することができ、あるいはドキュメント（たとえば、ｗｅｂページまたはワードプロセッシングドキュメント）内に埋め込むことができる。本明細書に記載した技術をまた、階層形態において表現することができる他のいかなるドキュメントまたはファイルにも適用することができる。
【０１３５】
特定のプロパティ名を上で使用するが、他のプロパティスキームを使用して、階層表現においてノードを選択的に可視化することができる。
【０１３６】
本明細書に記載したプログラム、プロセスまたは方法は、いかなる特定のタイプのコンピュータ装置にも関係付けられず、あるいはそれに限定されないことを理解されたい。様々なタイプの汎用または専用コンピュータ装置を、本明細書に記載した教示と共に使用することができ、あるいはこれに従ってこれらのコンピュータ装置はオペレーションを実行することができる。本明細書に記載したアクションを、このようなアクションを実行するためのコンピュータ実行可能命令を含むコンピュータ可読媒体によって達成することができる。ソフトウェアにおいて図示した、例示した実施形態の要素を、ハードウェアにおいて実施することができ、その逆も可能である。本発明の原理を適用することができる多数の可能な実施形態に鑑みて、詳細な実施形態は例示的でしかなく、本発明の範囲を限定するものとして取られるべきでないことを理解されたい。むしろ、本発明として、特許請求の範囲およびその同等物の範囲および精神内に入る可能性のあるこのようなすべての実施形態を主張する。
【図面の簡単な説明】
【図１】簡易ビューを有するユーザインターフェイス要素の例示的表現の図である。
【図２】図１のユーザインターフェイス要素表現の例示的簡易ビューの図である。
【図３】簡易ビューを有するもう１つの例示的ユーザインターフェイス要素の表現の図である。
【図４】図３のユーザインターフェイス要素表現の例示的簡易ビューの図である。
【図５】ユーザインターフェイス要素の表現の簡易ビューを実施するための例示的方法の流れ図である。
【図６】簡易ビューによる表現を有するユーザインターフェイス要素の定義を処理するための例示的方法の流れ図である。
【図７】図６で処理されるものなど、簡易ビューを有するユーザインターフェイス要素の定義を呼び出すための例示的方法の流れ図である。
【図８】図７で作成されるものなど、ユーザインターフェイス要素の階層表現においてオペレーションを実行するための例示的方法の流れ図である。
【図９】コンボボックスと呼ばれる例示的ユーザインターフェイス要素のスクリーンショットの図である。
【図１０Ａ】図９に示すものなど、コンボボックスの例示的階層表現の図である。
【図１０Ｂ】図１０のものに類似したコンボボックスの例示的階層表現の図であり、および例示的カプセル化境界を含む図である。
【図１１】図１０に示すものなど、コンボボックスの階層表現の例示的簡易ビューの図である。
【図１２】選択的可視化可能ノードを有するユーザインターフェイス要素の階層表現を作成するための例示的方法の流れ図である。
【図１３】少なくとも１つの要素を選択的可視化可能として指示することを含む、コンボボックスのための例示的マークアップ定義の図である。
【図１４Ａ】
少なくとも１つの要素を選択的可視化可能として指示することを含む、コンボ
ボックスのための例示的プログラム定義の図である。
【図１４Ｂ】
図１４Ａの例示的プログラム定義の続きの図である。
【図１５】
図１３または図１４ＡおよびＢで定義されるものなど、コンボボックスの例示
的マークアップ呼び出しの図である。
【図１６】
図１３または図１４ＡおよびＢで定義されるものなど、コンボボックスの例示
的プログラム呼び出しの図である。
【図１７】
ユーザインターフェイス要素表現の簡易ビューを使用してオペレーションを実
行するための例示的方法の流れ図である。
【図１８】
図９のものなど、コンボボックスの階層表現の例示的フルビューの図であり、
簡易ビューを介してオペレーションを実行した後、適切なノードが簡易ビューに
おいて非可視化されるとして指定される図である。
【図１９】
図１８の表現に対応する例示的簡易ビューの図である。
【図２０Ａ】
ユーザインターフェイス要素のための選択的可視化可能ユーザノードの代替表
現の図である。
【図２０Ｂ】
図２０Ａに示す表現に対応する簡易ビューの図である。
【図２１】
リピータ機能を使用するリストボックスユーザインターフェイス要素のスクリ
ーンショットの図である。
【図２２】リピータを含むユーザインターフェイス要素の例示的階層表現の図である。
【図２３】図２２に対応する例示的簡易ビューの図である。
【図２４】図２２のものなど、リピータを含むユーザインターフェイス要素の階層表現を作成するための例示的方法の流れ図である。
【図２５】選択的可視化可能として指定されたリピータの例示的マークアップ呼び出しの図である。
【図２６】選択的可視化可能として指定されたリピータの例示的プログラム呼び出しの図である。
【図２７】選択的可視化可能として指定されたリピータのもう１つの例示的マークアップ呼び出しの図である。
【図２８】リピータ機能を使用することのない、図２１のものなど、リストボックスの例示的マークアップ定義の図である。
【符号の説明】
１００、３００、１０００、１１００、１８００、２２００  階層表現
１１０、３１０、１００５、１１０５、１９０５、２０１０  主ノード
２００、４００、２０５０、２３００  簡易ビュー
１２０、３２０、３２５、１０１０、１０２０、１０２５、１０２６、１０３０、１０３１Ａ、１０３１Ｂ、１０３３、１０３４Ａ、１０３４Ｂ、１０３５、１０４０、１０４１Ａ、１０４１Ｂ、１０４３、１０４４Ａ、１０４４Ｂ、１０４５、２０２０  選択的可視化可能ノード
１０５０Ａ、１０５０Ｂ、１０５０Ｃ、２２５０、２２３０、２２４０  リストアイテム
１８５０Ｄ  新しい子
【図１】
2004206668.tif 000003
【図２】
2004206668.tif 000004
【図３】
2004206668.tif 000005
【図４】
2004206668.tif 000006
【図５】
2004206668.tif 000007
【図６】
2004206668.tif 000008
【図７】
2004206668.tif 000009
【図８】
2004206668.tif 000010
【図９】
2004206668.tif 000011
【図１０Ａ】
2004206668.tif 000012
【図１０Ｂ】
2004206668.tif 000013
【図１１】
2004206668.tif 000014
【図１２】
2004206668.tif 000015
【図１３】
2004206668.tif 000016
【図１４Ａ】
2004206668.tif 000017
【図１４Ｂ】
2004206668.tif 000018
【図１５】
2004206668.tif 000019
【図１６】
2004206668.tif 000020
【図１７】
2004206668.tif 000021
【図１８】
2004206668.tif 000022
【図１９】
2004206668.tif 000023
【図２０Ａ】
2004206668.tif 000024
【図２０Ｂ】
2004206668.tif 000025
【図２１】
2004206668.tif 000026
【図２２】
2004206668.tif 000027
【図２３】
2004206668.tif 000028
【図２４】
2004206668.tif 000029
【図２５】
2004206668.tif 000030
【図２６】
2004206668.tif 000031
【図２７】
2004206668.tif 000032
【図２８】
2004206668.tif 000033