(57)【要約】【課題】表示画面上でオブジェクトの選択を容易にすること。【解決手段】本発明によれば、表示画面上でオブジェクトの選択を容易にするための方法であって、ユーザ入力に応じて表示画面上の特定のオブジェクトを選択するステップと、前記表示画面に表示されている複数のオブジェクトのツリー構造を辿ることにより、該複数のオブジェクトのうち、選択された特定のオブジェクトと重なっているオブジェクトを選択候補として抽出するステップと、前記選択候補を示す要素を含む選択切替ビューを前記選択された特定のオブジェクトの近傍に表示するステップと、を含む方法、この方法を実現するための装置、およびコンピュータを該装置として機能させるためのプログラムが提供される。
2009035097.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの表示画面上でオブジェクトの選択を容易にするための方法であって、
前記コンピュータがユーザ入力に応じて表示画面上の特定のオブジェクトを選択するステップと、
前記コンピュータが前記表示画面に表示されている複数のオブジェクトのツリー構造を辿ることにより、該複数のオブジェクトのうち、選択された特定のオブジェクトと重なっているオブジェクトを選択候補として抽出するステップと、
前記コンピュータが前記選択候補を示す要素を含む選択切替ビューを前記選択された特定のオブジェクトの近傍に表示するステップと、
を含む方法。
【請求項２】
ユーザが前記選択切替ビューに含まれる特定の要素を選択したことに応じて、該特定の要素に対応するオブジェクトを強調表示することにより、該オブジェクトに選択が切り替えられたことを示すステップを更に含む、請求項１に記載の方法。
【請求項３】
ユーザが前記選択切替ビューに含まれる特定の要素を選択したことに応じて、該特定の要素に対応するオブジェクトを新たな特定のオブジェクトとして前記抽出するステップを繰り返し、該繰り返しで新たに抽出された選択候補を示す要素で前記選択切替ビューの内容を書き換える、請求項１または２に記載の方法。
【請求項４】
前記抽出するステップは、
前記選択された特定のオブジェクトの親オブジェクトを探索するステップと、
前記親オブジェクトのすべての子オブジェクトについて、前記選択された特定のオブジェクトと重なっているかどうかを判断するステップと、
前記判断するステップで重なっていると判断された子オブジェクトを示す要素を前記選択切替ビューに追加するステップと、
前記親オブジェクトの親オブジェクトに関して、当該親オブジェクトが見つからなくなるまで、前記探索するステップ、前記判断するステップおよび前記追加するステップを繰り返すステップと、
前記選択切替ビューに追加される要素の数が所定数に達したときに前記抽出するステップを終了するステップと、
を含む、請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記判断するステップで重なっていると判断された子オブジェクトが前記選択された特定のオブジェクトを含む、請求項４に記載の方法。
【請求項６】
前記選択切替ビューが複数のタブを含み、該タブに前記要素が表示される、請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記要素のそれぞれが対応する選択候補の識別子である、請求項１乃至６のいずれかに記載の方法。
【請求項８】
表示画面上でオブジェクトの選択を容易にするための装置であって、
ユーザ入力に応じて表示画面上の特定のオブジェクトを選択するオブジェクト選択部と、
前記表示画面に表示されている複数のオブジェクトのツリー構造を辿ることにより、該複数のオブジェクトのうち、選択された特定のオブジェクトと重なっているオブジェクトを選択候補として抽出する選択候補抽出部と、
前記選択候補を示す要素を含む選択切替ビューを前記選択された特定のオブジェクトの近傍に表示する表示制御部と
を含む装置。
【請求項９】
前記選択候補抽出部は、前記選択切替ビューに追加される要素の数が所定数に達するまで、
前記オブジェクト選択部により選択された特定のオブジェクトの親オブジェクトを探索し、
前記親オブジェクトのすべての子オブジェクトについて、前記選択された特定のオブジェクトと重なっているかどうかを判断し、
前記判断で重なっていると判断された子オブジェクトを示す要素を前記選択切替ビューに追加し、
前記親オブジェクトの親オブジェクトに関して、当該親オブジェクトが見つからなくなるまで、前記探索、前記判断および前記追加を繰り返す、
請求項８に記載の装置。
【請求項１０】
表示画面上でオブジェクトの選択を容易にするためのプログラムであって、
コンピュータを、
ユーザ入力に応じて表示画面上の特定のオブジェクトを選択するオブジェクト選択部、
前記表示画面に表示されている複数のオブジェクトのツリー構造を辿ることにより、該複数のオブジェクトのうち、選択された特定のオブジェクトと重なっているオブジェクトを選択候補として抽出する選択候補抽出部、および
前記選択候補を示す要素を含む選択切替ビューを前記選択された特定のオブジェクトの近傍に表示する表示制御部
として機能させるためのプログラム。
【請求項１１】
前記選択候補抽出部は、前記選択切替ビューに追加される要素の数が所定数に達するまで、
前記オブジェクト選択部により選択された特定のオブジェクトの親オブジェクトを探索し、
前記親オブジェクトのすべての子オブジェクトについて、前記選択された特定のオブジェクトと重なっているかどうかを判断し、
前記判断で重なっていると判断された子オブジェクトを示す要素を前記選択切替ビューに追加し、
前記親オブジェクトの親オブジェクトに関して、当該親オブジェクトが見つからなくなるまで、前記探索、前記判断および前記追加を繰り返す、
請求項１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトの選択に関するものであり、特に、表示画面上で所望のオブジェクトを容易に選択するための方法、装置およびプログラムに関するものである。
【背景技術】
【０００２】
ワードプロセッサ、ＷＹＳＩＷＹＧ型のＨＴＭＬエディタ、グラフィックツールなどのツールでは、オブジェクトのコピー、切り取り、貼り付け、削除、属性値の変更等の編集作業を行うためにオブジェクトを「選択」する必要があり、そのための一番簡単な方法としてマウスクリックによる選択が行われる。しかし、例えばＷｅｂページのように、オブジェクトが多数配置されていて重なりや入れ子構造を持つ場合には、クリック可能な領域が狭いため目的とするオブジェクトをクリックすることは難しく、その結果、目的とするオブジェクトのクリックに何度も失敗したり、矩形領域の指定、キーボード操作などの代替手段を取る必要があるケースがある。そこで、そのように複雑にオブジェクトが配置されたケースでも、目的とするオブジェクトを簡単に選択できる方法が望まれる。【０００３】
表示画面上に複雑に配置されたオブジェクトの選択を可能にする手法として、ＩＢＭ（Ｒ）ホームページ・ビルダー（Ｒ）に含まれるウェブアートデザイナーのオブジェクトスタック（非特許文献１）、およびＡｄｏｂｅ（Ｒ）  Ｐｈｏｔｏｓｈｏｐ（Ｒ）のレイヤーパレット（非特許文献２）が知られている。オブジェクトスタックおよびレイヤーパレットは、表示画面上に配置された全オブジェクトに対応するアイテムを選択のために特定の場所（オブジェクトスタックまたはレイヤーパレット）に一覧表示するものである。一覧表示では、各アイテムは対応するオブジェクトの重なりの順に表示され、その中の特定のアイテムをクリックすると、対応するオブジェクトが選択状態になる。これとは別に、オブジェクト要素をツリー形式で表示して、ツリー上の要素をクリックすることによって、エディタ上で対応するオブジェクトを選択するようにした技術も知られている。【０００４】
上述の従来技術はいずれも全オブジェクトを一覧表示するものであるが、所定の条件を満たすオブジェクトだけを抽出して一覧表示する技術も知られている（特許文献１）。この公知技術では、視点とカーソル位置とを結ぶ直線が透過するオブジェクトが選択候補オブジェクトとして抽出され、一覧ダイアログに一覧表示される。
【特許文献１】特開２００２−３６６９７４号公報
【非特許文献１】「ウェブアートデザイナーでオブジェクトを同時に複数選択する方法について」（http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/all/hpb0720）
【非特許文献２】「レイヤーパレットの概要」（http://help.adobe.com/ja_JP/Photoshop/10.0/help.html?content=WSfd1234e1c4b69f30ea53e41001031ab64-78e1.html）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
全オブジェクトを一覧表示する手法では、一覧表示の場所が一定であるため、その場所と選択されたオブジェクトが離れていた場合は、比較的長いマウス移動距離が必要となる。更に、全オブジェクトを一覧表示しているため、オブジェクトの数が多くなると、所望のオブジェクトを選ぶのに手間が掛かる場合がある。特許文献１の手法では、そのような手間は掛からないかもしれないが、視点とカーソル位置を結ぶ直線がオブジェクトを透過すかどうかで選択候補を決めているため、大きなオブジェクトの後ろに隠れている小さなオブジェクトを選択候補に加えたい場合は、何回かのクリック操作を必要とするであろう。【０００６】
従って、本発明の目的は、上述のような課題を解決するオブジェクト選択を実現することにある。
【課題を解決するための手段】
【０００７】
本発明によれば、コンピュータの表示画面上でオブジェクトの選択を容易にするための方法であって、ユーザ入力に応じて表示画面上の特定のオブジェクトを選択するステップと、前記表示画面に表示されている複数のオブジェクトのツリー構造を辿ることにより、該複数のオブジェクトのうち、選択された特定のオブジェクトと重なっているオブジェクトを選択候補として抽出するステップと、前記選択候補を示す要素を含む選択切替ビューを前記選択された特定のオブジェクトの近傍に表示するステップと、を含む方法が提供される。更に、この方法を実現するための装置、およびこの方法をコンピュータに実行させるためのプログラムも提供される。【０００８】
好ましくは、ユーザが選択切替ビューに含まれる特定の要素を選択したことに応じて、該特定の要素に対応するオブジェクトが強調表示され、該オブジェクトに選択が切り替えられる。ユーザは、選択されたオブジェクトに対し、編集等の操作を実行することができる。【０００９】
選択切替ビューは、表示面積が少ないという点でタブ形式が好ましいが、選択候補を示す要素を一覧形式で表示することができるものであれば、タブ形式にこだわらなくてもよい。例えば、ツリー形式での表示も可能である。【００１０】
選択切替ビューに含まれる要素の数が多くなりすぎると、一覧表示に支障を来すので、抽出された選択候補の数が所定数に達したときは、その時点で選択候補の抽出を終了するのが好ましい。【００１１】
以下、図面を参照しながら、本発明を実施するための最良の形態（以下、単に実施形態という）について説明するが、実施形態の説明はあくまでも例示のためにのみなされるものであって、本発明が実施形態の構成に限定されないことは言うまでもない。
【発明を実施するための最良の形態】
【００１２】
本発明が対象とする表示画面の一例を図１に示す。図１はＷｅｂページの表示画面を想定しているが、本発明は、複数のオブジェクトが重なり合っているような表示画面であれば、Ｗｅｂページに限らず適用可能である。図１に示すＷｅｂページは、図２のようなツリー構造になっている。図２は、ツリー構造をＨＴＭＬコードで表しているが、本発明は、ＨＴＭＬに限らず、他の形式のツリー構造も使用可能である。【００１３】
図１の例では、Ｗｅｂページの本体（ＢＯＤＹ）１０はテーブル（ＴＡＢＬＥ）１２および順不同リスト（ＵＬ）（番号なしリストともいう）１４で構成されている。テーブル１２は２つの行ＴＲ１およびＴＲ２を含み、第１の行ＴＲ１は２つのデータセルＴＤ１およびＴＤ２を含み、第２の行ＴＲ２は２つのデータセルＴＤ３およびＴＤ４を含んでいる。順不同リスト１４は３つのリスト項目ＬＩ１、ＬＩ２およびＬＩ３を含んでいる。ここで、本体１０、テーブル１２、順不同リスト１４、行ＴＲ１、ＴＲ２、データセルＴＤ１−ＴＤ４、およびリスト項目ＬＩ１−ＬＩ３は、いずれも操作対象として選択可能なオブジェクトである。【００１４】
オブジェクトの選択は、例えばマウスカーソル１６を選択したいオブジェクトに合わせてクリックすることで可能である。しかし、選択したいオブジェクトがより大きなオブジェクトの下に隠れていたり、クリック可能な領域の面積が小さい場合は、マウス操作に不慣れな人にとっては、所望のオブジェクトを素早く選択するのは難しい。また、例えばテーブル１２を選択するつもりで、データセルＴＤまたは行ＴＲのところをクリックしてしまうこともあり得る。【００１５】
本発明は、ユーザが表示画面上で特定のオブジェクトのところにカーソル１６を移動させてクリックしたときに、図２のようなツリー構造を辿ることによって、その選択された特定のオブジェクトと重なっているオブジェクトを選択候補として抽出し、それらの選択候補を示す要素を含む選択切替ビューを、当該オブジェクトの近傍に表示することで、オブジェクトの選択を容易にしている。詳細についてはあとで説明するが、本発明は、オブジェクト同士の重なりを検出することによって選択候補を抽出するものであり、ユーザ入力に応じて選択された特定のオブジェクトもそれ自身と重なっているということで選択候補として抽出されるようになっている。【００１６】
本発明によるオブジェクト選択の一例を図３に示す。図３は、ユーザがカーソル１６をリスト項目ＬＩ１の上に移動させてクリックしたときの様子を示している。本発明は、ユーザが特定のオブジェクト、例えばリスト項目ＬＩ１上でクリックしたことに応じて、そのオブジェクトの近傍に選択切替ビュー３０を表示する。選択切替ビュー３０は、少なくとも１つのタブを含み、各タブには、選択候補を示す要素（本例ではオブジェクト名が使用されているが、選択候補を識別できるもの(識別子)であれば何でもよい）が表示される。図３の例では、選択切替ビュー３０は５つのタブを含み、それぞれのタブには、クリックにより選択されたリスト項目ＬＩ１と重なっている５つのオブジェクト、すなわちリスト項目ＬＩ１自体、順不同リスト１４、テーブル１２、行ＴＲ２およびデータセルＴＤ４の名前が表示されている。【００１７】
図３の例では、選択切替ビュー３０は、表示画面上で占める面積が少なくてすむタブ形式を採用しているが、スペースを気にしなくてもよければ、レイヤーパレット形式やツリー形式のビューも可能である。【００１８】
表示画面上でオブジェクトの選択を容易にするために選択切替ビュー３０を生成する装置の機能構成例を図４に示す。図４の選択切替ビュー生成装置４０は、ユーザ入力に応じて表示画面上の特定のオブジェクトを選択するオブジェクト選択部４２と、表示画面に表示されている複数のオブジェクトのうち、選択された特定のオブジェクト（以下、選択オブジェクトという）と重なっているオブジェクトを選択候補として抽出する選択候補抽出部４４と、選択候補を示す要素を含む選択切替ビューを選択オブジェクトの近傍に表示する表示制御部４６と、記憶部４８とを含んでいる。記憶部４８には、画面に表示される複数のオブジェクトに関する情報、例えば各オブジェクトの識別子、座標、表示優先順位などを示す属性情報がオブジェクト毎に記憶され、更に、オブジェクトのツリー構造を示す構造情報（図２のようなＨＴＭＬコードでもよい）も記憶される。【００１９】
オブジェクト選択部４２は、例えばユーザがマウス（図示せず）の左ボタンをクリックしたときに、そのクリック位置を内部に含むオブジェクトを選択する。この選択は、ユーザ入力に含まれるクリック位置の座標と、記憶部４８に記憶されている各オブジェクトの座標情報を比較することにより可能である。クリック位置を内部に含むオブジェクトが複数あった場合には、そのうち重なりが最も前面のオブジェクトが選択される。【００２０】
選択候補抽出部４４は、オブジェクト選択部４２により選択されたオブジェクトと、この選択オブジェクトと特定の関係にあるオブジェクト、すなわち選択オブジェクトと重なっているオブジェクトを選択候補として抽出する。オブジェクトの重なりは、関連するオブジェクトの座標を比較することにより検知可能である。選択候補抽出部４４は、選択候補として抽出したオブジェクトの識別子を用いて、例えば図５に示すようなテーブルの形で選択切替ビューを作成し、記憶部４８に記憶する。図５の選択切替ビューは、図３に示した選択切替ビュー３０に対応しており、タブ番号の列とオブジェクトＩＤの列を含んでいる。タブ番号は、図３に示した選択切替ビュー３０におけるタブの番号を左から順に示し、オブジェクトＩＤは、それぞれのタブに対応する選択候補オブジェクトの識別子を示している。オブジェクトＩＤは、例えば図２のようなＨＴＭＬコードにおいて“ｉｄ＝”の形で識別子が与えられていればそれを使用すればよい。また、識別子が与えられていなければ、タグの名前を使用できるが、ページ内に同一タグが複数ある場合は、その同一タグのうちの何番目のタグかを示す数値を、例えば［］で括ってタグ名の後ろに付けて表示すればよい。その場合、図５のオブジェクトＩＤは、上から順に、ＬＩ［１］、ＵＬ、ＴＡＢＬＥ、ＴＲ［２］、ＴＤ［４］となる。選択候補抽出部４４による選択候補抽出動作の詳細については、図６および図７のフローチャートのところで説明する。【００２１】
表示制御部４６は、選択候補抽出部４４により作成された、選択候補を示す要素（例えば選択候補の名前）を含む選択切替ビューを選択オブジェクトの近傍に可視表示する。図３の例では、選択切替ビュー３０はタブ形式になっており、ユーザがいずれかのタブをクリックすると、そのタブおよび対応するオブジェクトが強調表示されて、当該オブジェクトに選択が切り替えられたことを示す。ユーザは選択オブジェクトに対して編集等の操作を実行することができる。【００２２】
次に、図６および図７のフローチャートを参照しながら、図４の選択切替ビュー生成装置４０の動作について説明する。図６は動作のメインフローを示し、図７はメインフローで呼び出されるサブルーチンを示している。【００２３】
まず、図６の最初のステップＳ１で、オブジェクト選択部４２が、上述のようにして、ユーザ入力に応じて特定のオブジェクトを選択し、それをパラメータＹとして設定して、選択候補抽出部４４に伝える。ここでは、図３に示すように、リスト項目ＬＩ１が選択されたものとすると、その識別子「ＬＩ１」をパラメータＹとして設定して、選択候補抽出部４４に伝えてもよい。【００２４】
次に、ステップＳ２で、選択候補抽出部４４が、選択オブジェクトＹの親オブジェクト（図３の例では、順不同リスト（ＵＬ）１４）を検索し、その識別子をパラメータＸとして設定する。親オブジェクトの検索は、例えば図２に示すＨＴＭＬコードのようなツリー構造を、「ＬＩ１」のところから上方に辿ることにより可能である。【００２５】
次に、ステップＳ３で、入力をＸとして、選択候補抽出部４４の動作が図７のサブルーチンＡに移る。図７のサブルーチンＡは、入力オブジェクトＸの子孫要素のうち、選択オブジェクトＹと重なっているものがあるかどうかを調べ、もし重なっている要素があれば、それを選択切替ビューに追加するものである。【００２６】
サブルーチンＡの最初のステップＳ１１で、選択候補抽出部４４は入力オブジェクトをパラメータＺとして設定し、次のステップＳ１２で、Ｚの全子要素Ｚｉ（ｉ＝０、１、２、・・・）について、以下のステップＳ１３〜Ｓ１９を繰り返す。子要素Ｚｉは、例えば、図２のようなツリー構造において、＜Ｚ＞と＜／Ｚ＞の間にある要素である。上述の例では、最初はＺ＝ＵＬであるから、その子要素として、＜ＵＬ＞と＜／ＵＬ＞の間にあるリスト項目ＬＩ１〜ＬＩ３がステップＳ１３〜Ｓ１９で処理されることになる。【００２７】
繰り返しループの最初のステップＳ１３で、選択候補抽出部４４は、選択切替ビューに含まれるオブジェクトの数が閾値未満かどうかを調べる。選択切替ビューに表示されるオブジェクトの数が多くなりすぎると見づらくなるので、選択候補となるオブジェクトの数を所定数以下、例えば５以下に抑えるのが好ましい。もし選択切替ビューに含まれるオブジェクトの数が閾値に達していると、図６のメインフローに戻り、さもなければ次のステップＳ１４に進む。【００２８】
ステップＳ１４で、選択候補抽出部４４は、子要素Ｚｉが、前のサブルーチン呼び出しで、選択オブジェクトＹとの重なりをチェック済みかどうかを調べ、もしチェック済みであれば、次の子要素Ｚｉ＋１についてステップＳ１３以下を繰り返し、まだチェックがすんでいなければ、ステップＳ１５に進んで、子要素Ｚｉが選択オブジェクトＹと重なっているかどうかを調べる。オブジェクトの重なりは、上述のように、記憶部４８に記憶されているオブジェクトの座標を比較することによって検出することができる。ＺｉがＹと重なっているとステップＳ１６に進み、さもなければステップＳ１８に進む。【００２９】
ステップＳ１６で、選択候補抽出部４４は、選択オブジェクトＹと重なっている子要素Ｚｉを選択候補として選択切替ビューに追加し、選択切替ビューに含まれるオブジェクトの数を１だけ増分する。選択切替ビューへの子要素(オブジェクト)の追加は、例えば、図５に示した選択切替ビュー３０において、対応するタブ番号のオブジェクトＩＤとして当該子要素の識別子を書き込むことにより可能である。また、選択切替ビューに含まれるオブジェクトの数は、例えばオブジェクトカウンタ（図示せず）をゼロに初期設定しておいて、選択切替ビューにオブジェクトが追加される度に１ずつカウントアップすることにより、追跡可能である。【００３０】
次のステップＳ１７で、選択候補抽出部４４は、選択切替ビュー３０に追加した子要素Ｚｉが選択オブジェクトＹであるかどうかを調べる。ステップＳ１７は、選択オブジェクトＹの子要素については重なりをチェックしないということで設けられているが、そのような考慮が不要であれば、ステップＳ１７を省略することができる。ステップＳ１７で、もしＺｉ＝Ｙであれば、次の子要素Ｚｉ＋１についてステップＳ１３以下を繰り返し、さもなければステップＳ１８に進んで、子要素Ｚｉが子要素を持っているかどうかを調べる。もし持っていれば、ステップＳ１９に進んで、子要素Ｚｉの全子要素について、同じサブルーチンＡを実行する。すべての子要素Ｚｉのチェックが終わると、図７のサブルーチンから出て、図６のメインフローに戻る。【００３１】
メインフローのステップＳ４で、選択候補抽出部４４は親オブジェクトＸがルートオブジェクトかどうかを調べる。もしＸがルートオブジェクトであれば、メインフローを終了し、さもなければステップＳ５に進む。ステップＳ５で、選択候補抽出部４４は、選択切替ビューに含まれるオブジェクトの数が閾値未満かどうかを調べる。もし閾値未満でない場合、すなわち閾値に達しているとメインフローを終了し、さもなければステップＳ６に進んで、Ｘの親オブジェクトを新たな親オブジェクトＸとし、ステップＳ３に戻って、図７のサブルーチンを呼び出す。【００３２】
次に、図３の例が図６および図７のフローチャートで具体的にどのように処理されるかを説明する。例えば、ユーザのマウスクリック操作によりリスト項目ＬＩ１が選択されると、ステップＳ１で、その識別子「ＬＩ１」がパラメータＹとして設定される。次のステップＳ２で、リスト項目ＬＩ１の親オブジェクトである順不同リスト１４の識別子「ＵＬ」がパラメータＸとして設定され、それを入力としてステップＳ３で図７のサブルーチンが呼び出される。【００３３】
サブルーチンの最初のステップＳ１１で、入力オブジェクトである順不同リストの識別子「ＵＬ」がパラメータＺとして設定され、ステップＳ１２以下で、その全子要素、すなわちリスト項目ＬＩ１〜ＬＩ３がチェックされる。最初は、選択切替ビューには何も入っておらず、またリスト項目ＬＩ１〜ＬＩ３はいずれも未チェックであるから、ステップＳ１３からＳ１４を経てＳ１５に進む。図３から明らかなように、リスト項目ＬＩ１〜ＬＩ３のうち選択オブジェクトＹ（＝ＬＩ１）と重なっているのはリスト項目ＬＩ１だけなので、ステップ１６では、リスト項目ＬＩ１だけが選択候補として選択切替ビューに追加され、選択切替ビューに含まれるオブジェクトの数が１に増分される。続いてステップＳ１７からＹＥＳのパスに出る。残りのリスト項目ＬＩ２およびＬＩ３については、ステップＳ１５からＮＯのパスに出て、ステップＳ１８に進むが、図２から明らかなように、リスト項目ＬＩ２およびＬＩ３はいずれも子要素を持っていないので、ステップＳ１９でサブルーチンが呼び出されることはない。【００３４】
リスト項目ＬＩ１〜ＬＩ３のチェックが終わると、図６のメインフローに戻る。図３の例では、順不同リスト（ＵＬ）１４はルートオブジェクトではなく（Ｓ４：ＮＯ）、選択切替ビューのオブジェクト数（今は１）は閾値（例えば５）未満であるから（Ｓ５：ＹＥＳ）、ステップＳ６で、親オブジェクトＸであった順不同リスト（ＵＬ）１４の親オブジェクトが、例えば図２のようなツリー構造を辿ることにより検索され、その結果、本体（ＢＯＤＹ）１０を新たな親オブジェクトとして、ステップＳ３で図７のサブルーチンが呼び出される。【００３５】
この２回目の呼び出しでは、ステップＳ１３〜Ｓ１９で、本体（ＢＯＤＹ）１０の子要素であるテーブル（ＴＡＢＬＥ）１２および順不同リスト（ＵＬ）１４がチェックされる。ここでは、選択オブジェクトＹの親オブジェクトが最初にチェックされるものとして、すなわちＺ０＝ＵＬ、Ｚ１＝ＴＡＢＬＥであるとして説明を続けるが、この順番は任意に決めて構わない。【００３６】
ステップＳ１３でチェックされる選択切替ビューのオブジェクト数は、現時点では１であり（上述のように、リスト項目ＬＩ１だけが含まれている）、ここで、閾値を例えば５とすると、オブジェクト数は閾値未満であるから、ステップＳ１３からステップＳ１４に進む。ステップＳ１４では、ＢＯＤＹ１４の最初の子要素すなわちＵＬ１４はまだチェックされていないので、ステップＳ１５に進んで選択オブジェクトＹすなわちリスト項目ＬＩ１との重なりをチェックされる。図３から明らかなように、ＵＬ１４はリスト項目ＬＩ１と重なっているから、ステップＳ１６に進んで、ＵＬが選択候補として選択切替ビューに追加され、そのオブジェクト数が１だけ増分されて、２になる。ステップＳ１７で、Ｚ０＝Ｙではないから、すなわちＵＬ１４は選択オブジェクトであるリスト項目ＬＩ１とは異なっているから、ステップＳ１８に進む。図３の例では、ＵＬ１４はリスト項目ＬＩ１〜ＬＩ３を子要素として持っているので、ステップＳ１８からＳ１９に進んで、ＵＬ１４を入力オブジェクトとして図７のサブルーチンを再帰的に呼び出す。しかし、ＵＬ１４の子要素であるリスト項目ＬＩ１〜ＬＩ３は、いずれも、最初のサブルーチン呼び出しでチェック済みであるから、ステップＳ１４でＹＥＳのパスに出て、再帰的呼び出しを終了し、Ｚ１（＝ＴＡＢＬＥ）のチェックに進む。【００３７】
ＴＡＢＬＥ１２のチェックにおいて、選択切替ビューのオブジェクト数（今は２）はまだ閾値未満であり（Ｓ１３：ＹＥＳ）、ＴＡＢＬＥ１２はまだチェックされておらず（Ｓ１４：ＮＯ）、更にＴＡＢＬＥ１２は選択オブジェクトであるリスト項目ＬＩ１と重なっているから（Ｓ１５：ＹＥＳ）、ステップＳ１６で、ＴＡＢＬＥ１２が選択候補として選択切替ビューに追加され、そのオブジェクト数が１だけ増分されて、３になる。ＵＬ１４の場合と同じくＴＡＢＬＥ１２も選択オブジェクトであるリスト項目ＬＩ１とは異なっているので、ステップＳ１７からＳ１８に進む。図３の例では、ＴＡＢＬＥ１２は行ＴＲ１およびＴＲ２を子要素として持っているので、ステップＳ１８からＳ１９に進んで、ＴＡＢＬＥ１２を入力オブジェクトとして図７のサブルーチンを再帰的に呼び出す。【００３８】
この再帰的呼び出しでは、ステップＳ１３〜Ｓ１９で、ＴＡＢＬＥ１２の子要素である行ＴＲ１およびＴＲ２がチェックされる。今回は、選択オブジェクトＹであるリスト項目ＬＩ１と重なっているのは行ＴＲ２だけであるから、ステップＳ１６で、行ＴＲ２が選択候補として選択切替ビューに追加され、更にそのオブジェクト数が１だけ増分されて、４になる。行ＴＲ２はリスト項目ＬＩ１とは異なっており（Ｓ１７：ＮＯ）、更にデータセルＴＤ３およびＴＤ４を子要素として持っているので（Ｓ１８：ＹＥＳ）、ステップＳ１９で、行ＴＲ２を入力オブジェクトとして図７のサブルーチンを再帰的に呼び出す。【００３９】
今回チェックされるのは、行ＴＲ２の子要素であるデータセルＴＤ３およびＴＤ４であり、そのうちリスト項目ＬＩ１と重なっているのはデータセルＴＤ４であるから、この再帰的呼び出しのステップＳ１６では、データセルＴＤ４が選択候補として選択切替ビューに追加され、選択切替ビューのオブジェクト数が１だけ増分されて、５になる。ここでは、データセルＴＤ４はリスト項目ＬＩ１とは異なっているが（Ｓ１７：ＮＯ）、データセルＴＤ３およびＴＤ４はいずれも子要素を持っていないので（Ｓ１８：ＮＯ）、再帰的呼び出しが終了し、更にＢＯＤＹ１０の全子要素のチェックが終わったので、メインフローのステップＳ４に戻る。このとき、親オブジェクトＸであったＢＯＤＹ１０はルートオブジェクトであるから（Ｓ４：ＹＥＳ）、この時点でメインフローが終了する。記憶部４８には、図５に示すような選択切替ビューが記憶されており、表示制御部４６がこれを記憶部４８から読み出して、表示画面上において、選択オブジェクトであるリスト項目ＬＩ１の近傍にタブ形式で可視表示する。【００４０】
図３の表示画面例では、選択切替ビュー３０は全部で５つのタブを含んでおり、ユーザはそのいずれかをクリックすることにより、所望のオブジェクトを選択することができる。例えば、図８に示すように、ユーザがカーソル１６をタブ「ＴＤ４」のところに移動させてクリックすると、表示制御部４６は、それに応答して、クリックされたタブと、それに対応するオブジェクト（今の場合はデータセルＴＤ４）を強調表示することによって、特定のオブジェクトに選択が切り替えられたことをユーザに知らせることができる。この状態で、例えばユーザがカーソル１６をデータセルＴＤ４の上に移動させてクリックすると、図９に示すように、今度はデータセルＴＤ４を新たな選択オブジェクトとして、図６および図７のフローが繰り返され、データセルＴＤ４の近傍に新たな選択切替ビュー６０が可視表示される。この選択切替ビュー６０のための選択候補の抽出は、選択切替ビュー３０の場合と同じであるから、詳細については省略する。【００４１】
なお、図８において、ユーザがタブ「ＴＤ４」をクリックしたときに、対応するオブジェクト（データセルＴＤ４）を新たな選択オブジェクトＹとして、図６および図７に示した選択候補抽出処理を繰り返し、そのとき抽出された選択候補の名前で選択切替ビュー３０を書き換えるようにしてもよい。【００４２】
以上から明らかなように、図６および図７に示したフローチャートによれば、ユーザ入力に応じて選択された特定のオブジェクト、すなわち選択オブジェクト（上例ではリスト項目ＬＩ１）と、画面に表示されているすべてのオブジェクト（選択オブジェクト自身を含む）の重なりを、選択候補の数が所定数に達するまでチェックすることができる。【００４３】
図１０は、図４の選択切替ビュー生成装置として実施可能なデータ処理システムの構成例を示している。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２および２０４を備えた対称型マルチプロセッサ（ＳＭＰ）であってもよく、またシングル・プロセッサ・システムであってもよい。システム・バス２０６にはメモリ・コントローラ／キャッシュ２０８も接続されており、これはローカル・メモリ２０９に対するインターフェースを提供する。Ｉ／Ｏバス・ブリッジ２１０がシステム・バス２０６に接続されており、Ｉ／Ｏバス２１２に対するインターフェースを提供する。メモリ・コントローラ／キャッシュ２０６とＩ／Ｏバス・ブリッジ２１０は、図示されているように１つに統合することも可能である。【００４４】
Ｉ／Ｏバス２１２に接続されたＰＣＩバス・ブリッジ２１４は、ＰＣＩローカル・バス２１６に対するインターフェースを提供する。ＰＣＩローカル・バスには、モデム２１８、ネットワークアダプタ２２０などの通信機器、およびその他の周辺機器を接続可能である。典型的なＰＣＩバスの実装では、４つのＰＣＩ拡張用スロットないしは拡張用コネクタを備えている。【００４５】
追加のＰＣＩバス・ブリッジ２２２および２２４は、追加のＰＣＩローカル・バス２２６および２２８のためのインターフェースを提供し、それにより追加の周辺機器を扱うことが可能となる。図示のように、Ｉ／Ｏローカル・バス２１２には、メモリ・マップ式グラフィクス・アダプタ２３０およびハード・ディスク・ドライブ２３２も接続可能である。グラフィクス・アダプタ２３０には液晶ディスプレイなどの表示装置２３４が接続される。【００４６】
オペレーティング・システムはプロセッサ２０２、２０４上で動作し、図１０のデータ処理システム２００にある各種コンポーネントを制御する。オペレーティング・システムは、マイクロソフト・コーポレーションから入手可能なＷｉｎｄｏｗｓ (登録商標）（Ｒ）  ＸＰといった市販のオペレーティング・システムであってもよい。オペレーティング・システム上で動作する、本発明に従うプログラムは、例えばハード・ディスク・ドライブ２３２などのストレージ・デバイスに記憶されており、実行時にメモリ２０９にロードされて、データ処理システム２００をオブジェクト選択部４２、選択候補抽出部４４および表示制御部４６として機能させる。記憶部４８は、ローカル・メモリ２０９により実装可能である。【００４７】
当業者であれば、図１０のハードウェアが実装に応じて変わり得ることを十分理解できよう。フラッシュＲＯＭ（または同等の不揮発性メモリ）や光ディスク・ドライブなどといった、その他の内部ハードウェアや周辺機器が、図１０に示したハードウェアに加えて、またはそれらに代えて使うことができる。【００４８】
本発明は完全に機能するデータ処理システムとの関連で説明されたが、本発明のプロセスは、命令のコンピュータ可読媒体の形式および様々な形式で配布できること、ならびに本発明は配布を実行するため実際に使用される信号担持媒体の特定のタイプに関係なく等しく適用されることは、当業者に理解されるであろう。コンピュータ可読媒体の例は、フレキシブル・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記録可能タイプの媒体、ならびに、ディジタルおよびアナログ通信リンク、無線周波数および光波伝送を使用する有線または無線通信リンクのような伝送タイプの媒体を含む。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用するためデコードされる符号化フォーマットの形式を取ってもよい。【００４９】
本発明の記述は、例示及び説明を目的として提示されており、網羅的であること及び開示された形式の発明に限定されることを意図しない。多くの修正および変形が、当業者に明らかであろう。実施形態は、本発明の原理および実際の応用を最もよく説明し、当業者が、想定される特定の使用に適した様々な修正を有する様々な実施形態について本発明を理解できるように、選択され説明された。
【図面の簡単な説明】
【００５０】
【図１】本発明が対象とする表示画面の一例を示す図。
【図２】図２に示す表示画面のＨＴＭＬ表記を示す図。
【図３】本発明によるオブジェクト選択の一例を示す図。
【図４】本発明に従ってオブジェクト選択を容易にするために選択切替ビューを生成する装置の機能構成例を示すブロック図。
【図５】図４に示す装置により生成される選択切替ビューの記憶例を示す図。
【図６】図４に示す装置の動作のメインフローを示すフローチャート。
【図７】図６に示すメインフローで使用されるサブルーチンのフローチャート。
【図８】図３の表示画面でユーザが特定のタブを選択したときの画面例を示す図。
【図９】図８の表示画面でユーザが新たなオブジェクトを選択したときの画面例を示す図。
【図１０】図４の選択切替ビュー生成装置を実施できるデータ処理システムの構成例を示すブロック図。
【符号の説明】
【００５１】
１０  本体（ＢＯＤＹ）
１２  テーブル（ＴＡＢＬＥ）
１４  順不同リスト（ＵＬ）
１６  カーソル
３０  選択切替ビュー
４０  選択切替ビュー生成装置
４２  オブジェクト選択部
４４  選択候補抽出部
４６  表示制御部
４８  記憶部
【図１】
2009035097.tif 000003
【図２】
2009035097.tif 000004
【図３】
2009035097.tif 000005
【図４】
2009035097.tif 000006
【図５】
2009035097.tif 000007
【図６】
2009035097.tif 000008
【図７】
2009035097.tif 000009
【図８】
2009035097.tif 000010
【図９】
2009035097.tif 000011
【図１０】
2009035097.tif 000012
【国際調査報告】
2009035097.tif 000013
2009035097.tif 000014