(58)【調査した分野】(Int.Cl.,DB名)
描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画する、コンピュータによって実施される方法であって、
複数のブランチで構成される前記木構造の少なくともツリー・ビューを生成するステップと、
前記ツリー・ビューに対する前記ポインティング・カーソルの位置を特定するステップであって、前記位置は、第1の方向に従う第1の位置値と、前記第1の方向に直交する第2の方向に従う第2の位置値とで構成されており、前記第1の位置値が、前記ポインティング・カーソルの位置が前記第1の方向に従って合わされたブランチとして選択されたアクティブなブランチを特定し、前記第2の位置値の増加する値が、前記木構造のより深いサブレベルを特定し、且つ、前記第2の位置値の減少する値が、前記木構造のより高いサブレベルを特定するように、前記第2の位置値が、展開されるべき前記アクティブなブランチのサブレベルを、前記サブレベルのインデントに対する前記第2の位置値によって特定する、ステップと、
前記第1の位置値又は前記第2の位置値の少なくとも一つが変化するときに、前記アクティブなブランチの前記特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、前記ツリー・ビューを更新するステップと、
を含む、前記コンピュータによって実施される方法。
前記グラフィカル・ユーザ・インタフェース内において前記ツリー・ビューを表示する表示デバイスのスクリーン上において、前記第1の方向が垂直方向に対応し、前記第2の方向が水平方向に対応する、請求項1に記載のコンピュータによって実施される方法。
前記展開されるべきサブレベルの量が現在展開されているサブレベルの量よりも少ない場合、前記ツリー・ビューが、前記アクティブなブランチの超過分のサブレベルを折り畳むことによって更新され、かつ、前記更新されたツリー・ビューが、前記折り畳まれた超過分のサブレベルを隠している対応する要素が前記第1の方向に従う前記ポインティング・カーソルの位置に合わされるまで、前記第1の方向に動かされる、請求項1から3のいずれか1項に記載のコンピュータによって実施される方法。
前記ポインティング・カーソルが、前記ツリー・ビューとのユーザ・インタラクション用に生成される、請求項1から7のいずれか1項に記載のコンピュータによって実施される方法。
前記位置特定ユニットを用いて前記ポインティング・カーソルの位置を特定することと、前記アクティブ・ブランチ選択ユニットを用いて前記アクティブなブランチを選択することと、前記展開特定ユニットを用いて前記展開されるべきサブレベルを特定することと、前記グラフィック描写ユニットを用いて前記ツリー・ビューを更新することとを連続的に繰り返すように構成されている、請求項9に記載のデータ処理装置。
前記展開特定ユニットが、前記展開されるべきサブレベルの量が現在展開されているサブレベルの量よりも少ないと判定した場合、前記グラフィック描写ユニットが、前記アクティブなブランチの超過分のサブレベルを折り畳むことによって前記ツリー・ビューを更新し、かつ、前記更新されたツリー・ビューを、前記折り畳まれた超過分のサブレベルを隠している対応する要素が前記第1の方向に従う前記ポインティング・カーソルの位置に合わされるまで、前記第1の方向に動かすように構成されている、請求項9又は10に記載のデータ処理装置。
前記ポインティング・カーソルを前記ツリー・ビューとのユーザ・インタラクション用に生成するように構成されている、請求項9から12のいずれか1項に記載のデータ処理装置。
描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画することを可能にする命令を記憶しているコンピュータ可読記憶媒体であって、前記命令は、コンピュータによって実行されると、
複数のブランチで構成される前記木構造の少なくともツリー・ビューを生成することと、
前記ツリー・ビューに対する前記ポインティング・カーソルの位置を特定することであって、前記位置は、第1の方向に従う第1の位置値と、前記第1の方向に直交する第2の方向に従う第2の位置値とで構成されており、前記第1の位置値が、前記ポインティング・カーソルの位置が前記第1の方向に従って合わされたブランチとして選択されたアクティブなブランチを特定し、前記第2の位置値の増加する値が、前記木構造のより深いサブレベルを特定し、且つ、前記第2の位置値の減少する値が、前記木構造のより高いサブレベルを特定するように、前記第2の位置値が、展開されるべき前記アクティブなブランチのサブレベルを、前記サブレベルのインデントに対する前記第2の位置値によって特定することと、
前記第1の位置値又は前記第2の位置値の少なくとも一つが変化するときに、前記アクティブなブランチの前記特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、前記ツリー・ビューを更新することと、
を前記コンピュータに行わせる、前記コンピュータ可読記憶媒体。
【発明の概要】
【0008】
添付された特許請求の範囲による、描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェース(GUI)において描画する、コンピュータによって実施される方法及びデータ処理装置、並びに、コンピュータ可読記憶媒体を提案する。
【0009】
一態様によれば、描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画する、コンピュータによって実施される方法は、
複数のブランチで構成される木構造のツリー・ビューを生成することと、
ツリー・ビューに対するポインティング・カーソルの位置を特定することであって、その位置は、第1の方向に従う第1の位置値と、第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、上記特定することと、
ポインティング・カーソルの位置が第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択することと、
展開されるべきアクティブなブランチのサブレベルを、サブレベルのインデントに対する第2の位置値によって特定することと、
アクティブなブランチの特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、ツリー・ビューを自動的に更新することと、を含む。
【0010】
従って、描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置は、
複数のブランチで構成される木構造のツリー・ビューを生成するように構成されたグラフィック描写ユニットと、
ツリー・ビューに対するポインティング・カーソルの位置を特定するように構成された位置特定ユニットであって、その位置は、第1の方向に従う第1の位置値と、第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、上記位置特定ユニットと、
ポインティング・カーソルの位置が第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択するように構成されたアクティブ・ブランチ選択ユニットと、
展開されるべきアクティブなブランチのサブレベルを、サブレベルのインデントに対する前記第2の位置値によって特定するように構成された展開特定ユニットと、を備えており、
グラフィック描写ユニットは、アクティブなブランチの特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、ツリー・ビューを自動的に更新するように更に構成されている。
【0011】
グラフィック描写ユニット、位置特定ユニット、アクティブ・ブランチ選択ユニット、及び、展開特定ユニットのような、この装置に備えられたユニットは、個別のデバイスとして、或いは、組み合わされて少なくとも1つのデバイス又は論理回路として設けられてもよいし、或いは、マイクロプロセッサか、マイクロコントローラ又はその他の処理デバイスか、コンピュータか、或いは、その他のプログラム可能な装置によって実行される機能であってもよい。
【0012】
一態様によれば、描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置は、
処理デバイスと、
表示デバイスと、
命令を記憶しているメモリデバイスと、
を備えており、
命令は、実行されると、
複数のブランチで構成される木構造を表示デバイスを用いて示すツリー・ビューを生成することと、
ツリー・ビューに対するポインティング・カーソルの位置を特定することであって、その位置は、第1の方向に従う第1の位置値と、第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、上記特定することと、
ポインティング・カーソルの位置が第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択することと、
展開されるべきアクティブなブランチのサブレベルを、サブレベルのインデントに対する第2の位置値によって特定することと、
アクティブなブランチの特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、表示デバイスに示されるツリー・ビューを自動的に更新することと、を処理ユニットに行わせる。これらのユニットは、バス又はその他の通信線路によって接続されている。
【0013】
更に、コンピュータ可読記憶媒体は、描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画することを可能にする命令を記憶しており、命令は、コンピュータによって実行されると、
複数のブランチで構成される木構造のツリー・ビューを生成することと、
ツリー・ビューに対するポインティング・カーソルの位置を特定することであって、その位置は、第1の方向に従う第1の位置値と、第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、上記特定することと、
ポインティング・カーソルの位置が第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択することと、
展開されるべきアクティブなブランチのサブレベルを、サブレベルのインデントに対する第2の位置値によって特定することと、
アクティブなブランチの特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、ツリー・ビューを自動的に更新することと、をコンピュータに行わせる。
【0014】
このコンピュータ可読記憶媒体は命令のプログラムを有形に具現化し、この命令のプログラムは、コンピュータによって実行されると、このコンピュータに上述の方法のステップを行わせる。
【0015】
グラフィカル・ユーザ・インタフェースは、描画された要素の木構造に対するポインティング・カーソルの位置を制御するユーザ入力に応答する。ポインティング・カーソルは、ポインティング・カーソル操作デバイス、例えば、コンピュータ・マウス、トラックボール、トラックポイント又はタッチパッドを用いて、移動させる、即ち、操作することができる。表示デバイスがタッチスクリーン・デバイスである場合、ポインティング・カーソルは、例えば、ユーザの指又はスタイラスを用いて、移動させる、即ち、操作することもできる。一実施態様において、ポインティング・カーソルは、カメラによって提供される、ユーザを表示するライブ・ビデオを分析する際の手又は指の追跡及びジェスチャの認識に応じて、移動させることができる。
【0016】
木構造は、複数のブランチあるいは接続されたノードの経路で構成され、即ち、複数のブランチあるいは接続されたノードの経路を備え、これは、サブレベル、即ち、親ノードより下の木レベルで構成されていてもよく、あるサブレベルに含まれる要素あるいはノードは、同じ親ノードのシブリング(sibling)として、同じインデントに接続されている。
【0017】
ツリー・ビューは、木構造のグラフィック表現である。ツリー・ビューは、GUI構成要素内で、例えばウィンドウ又はフレーム内で示される。これは、アクティブなブランチの自動的な選択を可能にする、即ち、ポインティング・カーソルの位置が、クリックしないで、単にツリー・ビューに対するポインティング・カーソルの位置を評価することによって特定される。アクティブなブランチは、例えば、サブレベルを展開することによって探索する対象として、ユーザによって選択されるブランチである。この相対的なポインティング・カーソルの位置は、ポインティング・カーソルをツリー・ビュー上で移動させることによって、或いは、ツリー・ビューを示すビューイング・ウィンドウをスクロールすることによって変更できるが、その一方で、ポインティング・カーソルの絶対的な位置、即ち、ツリー・ビューを含んでいるビューイング・ウィンドウの境界、或いは、そのビューイング・ウィンドウを表示している表示デバイスのスクリーンの境界に対する位置は、不変のままである場合もあれば、そうでない場合もある。
【0018】
次に、アクティブなブランチの何個のサブレベルを展開すべきかが、そのサブレベルのインデントに対する第2の位置値のオフセットの評価に従って計算される。その後、ユーザによる手動のインタラクションなしに、自動ツリー・ビュー再構成機構が、アクティブなブランチの特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、ツリー・ビューを自動的に更新する。
【0019】
ここに提案された解決手段によるこの自動ツリー・ビュー再構成機構は、データ構造のような複雑な木を速く検査することを可能にする。これは、木構造で構成されて、ツリー・ビューにおける木として表示される、例えば分類、ファイル・システム又はデータベースのネスト化されたデータをブラウズして、目的とする要素、即ち、それぞれ、概念、ファイル又はデータベース・エントリを見つけて選択すべく、トップ・レベルの要素から開始して、1度に木の1つのブランチのみをドリル・ダウンして、場合により、目的とする要素が見つからなければ、残されるサブレベルの折り畳みも含めて、再度ドリル・アップする手動の制御を用いたユーザの動作を模倣している。このメカニズムは、ツリー・ビューに対するポインティング・カーソルの位置を用いて、木のどのブランチを自動的に展開する/折り畳むべきかを制御する。これは、マウスのクリック、キーストローク、或いは、タッチスクリーンのタップなどによるあからさまな展開/折り畳み操作を必要とせずに、また、対応する手動の制御方式に必要なほどの多くのポインティング・カーソルの移動を必要とせずに、木のコンパクトな提示用にツリー・ビューを再構成する。
【0020】
ここに提案された解決手段による本メカニズムは、少なくとも、ユーザが、目的とする要素の発見/選択の作業を、手動の制御を用いた場合よりも速く且つ簡便に行える、即ち、より効率的なマン・マシン・インタフェースが提供される、という効果を有する。
【0021】
一態様において、グラフィカル・ユーザ・インタフェース内においてツリー・ビューを表示する表示デバイスのスクリーン上において、第1の方向は垂直方向に対応しており、第2の方向は水平方向に対応している。ここで、木要素に対するポインティング・カーソルの垂直方向の位置が、木のどのブランチが展開され得るアクティブなブランチとして選択されるかを制御するのに使用され、木レベルのインデントに対するポインティング・カーソルの水平方向の位置が、アクティブなブランチの何個のサブレベルが展開されるかを制御するのに使用される。アクティブなブランチの1つのサブレベルのインデントがポインティング・カーソルの位置の左に在ると分かった場合、そのサブレベルが展開されるべきであると判定される。別の一実施態様においては、第1の方向は水平方向に対応しており、第2の方向は垂直方向に対応している。
【0022】
一態様において、ポインティング・カーソルの位置を特定するステップと、アクティブなブランチを自動的に選択するステップと、展開されるべきサブレベルを特定するステップと、ツリー・ビューを自動的に更新するステップとは、連続的に繰り返される。本自動メカニズムは、ポインティング・カーソルのあらゆる移動を常に追跡しており、もし必要ならば、ツリー・ビューを、木のコンパクトな提示用に即座に自動的に再構成する。一実施態様において、展開/折り畳みの操作を自動的に行う前に、短い遅延を導入できる。別の一実施態様において、展開及び/又は折り畳みの操作は、例えば矢印キーの付加的なキーストロークが行われるまで遅延される。
【0023】
一態様において、展開されるべきサブレベルの量が、現在展開されているサブレベルの量よりも少ない場合、ツリー・ビューは、アクティブなブランチの超過分のサブレベルが折り畳まれることによって更新され、この更新されたツリー・ビューは、折り畳まれた超過分のサブレベルを隠す、即ち、備えている対応する要素が、第1の方向に従うポインティング・カーソルの位置に合わされるまで、更なるユーザ・インタラクションなしに、自動的に第1の方向に動かされる。換言すれば、ポインティング・カーソルの表示された位置が、展開/折り畳みの操作のために、自動的に再構成されたツリー・ビューと整合しなくなる場合、更新されたツリー・ビューは、実際のポインティング・カーソル位置が更新されたツリー・ビューに対する新たな論理的なポインティング・カーソル位置を反映するように、第1の方向に、例えば垂直方向に、自動的に動かされる。第1の方向が垂直方向であり、且つ、ポインティング・カーソルを左に移動させることによって、ポインティング・カーソルが、折り畳まれる木レベルの直接の、又は、間接的な上位要素に垂直方向に位置合わせされない場合、本実施態様以外においては、単にこの木レベルを折り畳めば、ある任意の木要素が、存在する場合には、この木レベルの要素によって以前占められていたスペースと、これらの要素に対するポインティング・カーソルの垂直方向の位置とに従って、ポインティング・カーソルに垂直方向に位置合わせされることになり得る。その結果として、もはやアクティブなブランチは存在しないことになり得るか、或いは、自動的に選択される新たなアクティブなブランチがこの任意の木要素を備えていることになり得る。一方、本実施態様によってツリー・ビューを動かすことによって、上位要素を備えたブランチがアクティブなブランチとして維持されて、木におけるシームレスな更なるナビゲーションが可能になる。いくつかのケースでは、このような自動的な再構成によって、或いは、ツリー・ビューを含むビューイング・ウィンドウの手動の垂直方向のスクロールによって、木の一番上の要素が、ビューイング・ウィンドウの上側縁端からある程度の距離だけ離れて表示されることがある。従って、一実施態様において、ツリー・ビューは、表示されたポインティング・カーソルと共に、その距離だけ、その縁端の方にシフトされる。
【0024】
一態様において、要素の木構造は、分類、即ち、概念の区分化体系に対応しており、概念とは、例えばマルチメディア・データに用いられる分類から得られる概念である。ここで、インタラクティブな(対話型の)ツリー・ビューを有するグラフィカル・ユーザ・インタフェースは、階層的なメタデータ用の分類ブラウザに対応しており、即ち、分類が、GUIにおいて、例えば、マルチメディア・データに対するセマンティックなメタデータの注釈について描画される。ここに提案された解決手段による、ツリー・ビューにおいて木として表示される分類における概念を発見して選択する作業に適合化された自動ツリー・ビュー再構成メカニズムは、さらに大きい分類の効率的な描画を可能にする。
【0025】
別の一態様において、要素の木構造は、ファイルのディレクトリ構造に対応している。一般に、ここに提案された解決手段による自動ツリー・ビュー再構成メカニズムは、ツリー・ビューの意図される用途が木の要素を速くブラウズして選択することであれば、種々のアプリケーションにおいて、分類以外のコンテンツを示すツリー・ビューについても使用できる。例えば、ここに提案されたツリー・ビュー再構成メカニズムを用いたツリー・ビューを含む任意のデータベース、ドキュメント・アウトライニング・ツール、ファイル・エクスプローラ又は「オープン・ファイル」ダイアログは、サブツリー(部分木)、例えばサブフォルダを展開する/折り畳むあからさまな操作を必要とする標準的なツリー・ビューを用いたアプリケーションに比べて、要素を発見して選択するのに要する制御操作が少なくなり得る。
【0026】
一態様において、コンピュータによって実施される方法は、
ユーザが入力したモード選択に応じて、自動モードと手動モードとのいずれかを選択することを含み、
ポインティング・カーソルの位置を特定することと、アクティブなブランチを自動的に選択することと、展開されるべきサブレベルを特定することと、ツリー・ビューを自動的に更新することとが、自動モードにおいてのみ実行され、
ツリー・ビューが、手動モードにおいて、グラフィカル・ユーザ・インタフェースに対する更なる手動のユーザ入力に応じて更新される。
【0027】
ここに提案された解決手段による方法を実施する装置は、手動のツリー・ビュー構成機能とここに提案された自動機構との両方を、2つのモードを切り替える手段を用いて提供できる。一実施態様において、この装置は、自動モードがオンに切り替えられると、手動で設定されたビュー構成を記憶して、自動モードがオフに再び切り替えられると、前に記憶した構成を復元する。
【0028】
一態様において、ポインティング・カーソルは、ツリー・ビューとのユーザ・インタラクション用に生成される。これは、例えば、標準的なポインティング・カーソルを使用しないシステムに適用される。標準的な入力として、例えばマウス・ポインタを使用するデバイスについては、スクロール・バーに依存しないスクロールの解決手段を設けることができ、一方、そのような標準的なポインティング・カーソルを使用しないタッチスクリーン制御のデバイスは、スクロールについて、標準的なスワイプのジェスチャを使用できる。ポインティング入力デバイス、例えば、マウス、トラックボール、タッチパッド又はトラックポイントによって制御されるポインティング・カーソルを使用するシステム上では、ポインティング・カーソル位置は、このポインティング・カーソルの位置によって規定される。そのような標準的なポインティング・カーソルを使用しないシステム、例えば、タッチスクリーン制御のデバイス上では、ツリー・ビューのビューイング・ウィンドウ用のポインティング・カーソルが、その代わりに使用される。この専用のポインティング・カーソルの位置は、例えばユーザの指又はスタイラスを用いて、ポインティング・カーソルをビューイング・ウィンドウ上でドラッグすることによって制御される。特に、標準的なポインティング・カーソルを使用するシステム上において、且つ、ここに提案された解決手段による自動メカニズムがアクティブである時に、この自動メカニズムを使用するアプリケーションは、ビューをスクロールするためには、ビューイング・ウィンドウの縁端に在る標準的なスクロール・バーを使用しない。その理由は、そのようなスクロール・バーにアクセスするためにポインティング・カーソルをツリー・ビュー上で移動させることによって、ビューが再構成され得るからである。その代わりに、その他のスクロール制御手段、例えば、キーボード制御、マウス・ホイール(例えば、ホイールを通常のように用いた垂直方向のスクロール、及び、ホイールを押して、マウス移動と組み合わせることによる、或いは、もしサポートされているならば、ホイールの左右のティルティング(tilting)による、水平方向のスクロール)、或いは、ポインティング・カーソルをビューイング・ウィンドウの縁端に移動させた際の自動的なスクロールが使用される。一方、タッチスクリーン制御のアプリケーションは、ビューをスクロールするために、ビューイング・ウィンドウ上で標準的なスワイプのジェスチャを使用でき、但し、これは、スワイプのジェスチャをポインティング・カーソル位置から開始しないことを前提条件としており、そのように開始することは、その代わりに、ポインティング・カーソルのドラッグと解釈され得る。
【0029】
一態様において、ツリー・ビューには、木要素が、インデントに対応しており、且つ、サブ要素を有する、即ち、サブツリーを隠しているか否かの視覚的表示が備えられている。この視覚的表示は、プラス、右向き三角形又は矢印のようなアイコンであってもよい。別の一例として、この視覚的表示は、木要素を様々な様式で、例えば、種々の色又は字形、太字体/斜字体か否か、などで描画することによって設けてもよい。一実施態様において、この視覚的表示には、未展開のレベル、即ち、サブツリーの複雑度のグラフィック的な示唆、例えば、隠された要素の量を示す数又はバーが付加的に備えられている。
【0030】
更に、一態様において、ツリー・ビューに対する木構造の可視区画の位置を視覚化する1つ又は複数の位置インジケータが、ビューイング・ウィンドウの一部として示される。これは、例えば、ビューをスクロールすることによって、或いは、ビューの自動的な再構成によって、ビューイング・ウィンドウ内でツリー・ビューのいずれの部分も実際に見えなくなった場合に、ナビゲーション情報を提供する。位置インジケータは、例えば、スクロール・バー、より広い部分がその位置を示している小さいライン、及び/又は、ビューイング・ウィンドウの高さ/幅に対するその位置を示している簡素なラインであってもよい。位置インジケータがスクロール制御機能を提供する場合、それらの位置インジケータはビューイング・ウィンドウのスクロールには使用されない。その理由は、ポインティング・カーソルをツリー・ビュー上で移動させる際のビューの潜在的に不所望な再構成を回避するためである。別の一態様において、位置インジケータは、グラフィカル・ユーザ・インタフェースの別個のウィンドウ又はフレーム内に示される。
【0031】
明示的に説明されていないが、これらの態様は、任意に組み合わせて、或いは、部分的に組み合わせて使用してもよい。
【図面の簡単な説明】
【0032】
【
図1】描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画する方法の一実施形態を概略的に例示する図である。
【
図2】描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置の一実施形態を概略的に例示する図である。
【
図3】描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置の別の実施形態を概略的に例示する図である。
【
図4】
図4から
図32はポインティング・カーソルを介したユーザ・インタラクションの際にツリー・ビュー再構成メカニズムの影響を受けるツリー・ビューの一実施態様を概略的に例示する図である。特に、
図4はツリー・ビューの一例を例示する図である。
【
図5】ポインティング・カーソルがツリー・ビューのビューイング・ウィンドウの外側に在る状況を例示する図である。
【
図6】ポインティング・カーソルがツリー要素に対して垂直方向に位置合わせされていない状況を例示する図である。
【
図7】トップ・レベルの要素のみを有するアクティブなブランチが表示されている状況を例示する図である。
【
図8】アクティブなブランチの次のサブレベルが自動的に展開されている状況を例示する図である。
【
図9】アクティブなブランチの更なるサブレベルが自動的に展開されている状況を例示する図である。
【
図10】アクティブなブランチがサブレベルのツリー要素を介して選択される状況を例示する図である。
【
図11】上記サブレベルのツリー要素の下の次のサブレベルが自動的に展開されている状況を例示する図である。
【
図12】ツリー・レベルが自動的に折り畳まれる状況の第1の部分を例示する図である。
【
図13】ツリー・レベルが自動的に折り畳まれる状況の第2の部分を例示する図である。
【
図14】ツリー・レベルが自動的に折り畳まれる状況の第3の部分を例示する図である。
【
図15】サブレベルがスクロールによって自動的に展開される状況の第1の部分を例示する図である。
【
図16】サブレベルがスクロールによって自動的に展開される状況の第2の部分を例示する図である。
【
図17】サブレベルがスクロールによって自動的に展開される状況の第3の部分を例示する図である。
【
図18】サブレベルがスクロールによって自動的に折り畳まれる状況の第1の部分を例示する図である。
【
図19】サブレベルがスクロールによって自動的に折り畳まれる状況の第2の部分を例示する図である。
【
図20】サブレベルがスクロールによって自動的に折り畳まれる状況の第3の部分を例示する図である。
【
図21】一番上のブランチが自動的に展開される状況の第1の部分を例示する図である。
【
図22】一番上のブランチが自動的に展開される状況の第2の部分を例示する図である。
【
図23】一番下のブランチが自動的に展開される状況の第1の部分を例示する図である。
【
図24】一番下のブランチが自動的に展開される状況の第2の部分を例示する図である。
【
図25】アクティブなブランチが変更したときに自動的に折り畳み/展開する状況の第1の部分を例示する図である。
【
図26】アクティブなブランチが変更したときに自動的に折り畳み/展開する状況の第2の部分を例示する図である。
【
図27】一番上のブランチのスクロールによる自動的な展開の状況の第1の部分を例示する図である。
【
図28】一番上のブランチのスクロールによる自動的な展開の状況の第2の部分を例示する図である。
【
図29】一番下のブランチのスクロールによる自動的な展開の状況の第1の部分を例示する図である。
【
図30】一番下のブランチのスクロールによる自動的な展開の状況の第2の部分を例示する図である。
【
図31】スクロールによってアクティブなブランチが変更したときに自動的に折り畳み/展開する状況の第1の部分を例示する図である。
【
図32】スクロールによってアクティブなブランチが変更したときに自動的に折り畳み/展開する状況の第2の部分を例示する図である。
【発明を実施するための形態】
【0033】
より良い理解のために、ここに提案した解決手段を、図面を参照しながら以下の記載において更に詳しく説明する。尚、この解決手段は、これらの代表的な実施形態には限定されないこと、また、明示する特徴は、添付の特許請求の範囲に規定された本発明の権利範囲から逸脱することなく、適宜、組み合わせる、及び/又は、修正することができることを理解されたい。
【0034】
図1を参照すると、描画される木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画する、コンピュータによって実施される方法10の一実施形態が概略的に示されている。この図示の実施形態によれば、この方法は、ツリーのコンパクトな提示のために、常時、ツリー・ビューを再構成する自動メカニズムを提供する。
【0035】
最初のステップ11において、複数のブランチで構成される木構造のツリー・ビューが生成される。図示された実施形態によれば、次のステップ12において、ユーザが入力したモード選択に応じて、自動モードと手動モードとのいずれかの選択が行われる。手動モードでは、次のステップ13において、ツリー・ビューがグラフィカル・ユーザ・インタフェースに対する更なる手動のユーザ入力に応じて更新される。
【0036】
自動モードでは、下記のステップが行われる。
【0037】
次のステップ14で、ツリー・ビューに対するポインティング・カーソルの位置が特定される。この位置は、第1の方向に従う第1の位置値と、第1の方向に直交する第2の方向に従う第2の位置値とで構成される。
【0038】
次のステップ15で、ポインティング・カーソルの位置が第1の方向に従って合わされたブランチが、アクティブなブランチとして自動的に選択される。次のステップ16で、展開されるべきアクティブなブランチのサブレベルが、そのサブレベルのインデント(indentation:字下げ)に対する第2の位置値によって特定される。次のステップ17で、ツリー・ビューが、アクティブなブランチの特定されたサブレベルを展開してその他のブランチを折り畳むことによって、自動的に更新される。
【0039】
次のステップ18で、ツリー・ビューに対するポインティング・カーソルの位置が引き続き変更された場合、ポインティング・カーソル位置特定ステップ14、アクティブ・ブランチ選択ステップ15、サブレベル展開特定ステップ16、及び、自動ツリー更新ステップ17が、連続的に繰り返される。それ以外の場合、図示の実施形態において、本方法は、ツリー・ビューに対するポインティング・カーソルの任意の更なる位置変更を待つ。
【0040】
次に、
図2と
図3を参照すると、描画される木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置の実施形態が概略的に示されている。
図2に示された装置と
図3に示された装置は、描画される木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画する装置の一部分として、上述の木構造描画方法の利点と特徴を実現できる。
【0041】
図2に示されたデータ処理装置20は、ユーザによるモード選択入力22に応じて自動モードと手動モードとのいずれかを選択するように構成された選択ユニット21を含んでいる。
【0042】
グラフィック描写ユニット23が、複数のブランチで構成される木構造のツリー・ビューを生成するように構成されている。グラフィック描写ユニット23は、ツリー・ビューを表示する表示デバイスに接続されているか、或いは、接続可能であるか、或いは、この表示デバイスを含んでいる。手動モードにおいて、グラフィック描写ユニット23は、グラフィカル・ユーザ・インタフェースへの更なる手動のユーザ入力に応じて、ツリー・ビューを更新する。自動モードにおいて、グラフィック描写ユニット23は、少なくとも展開特定ユニット27からの入力に応じて、ツリー・ビューを更新する。
【0043】
位置特定ユニット24が、グラフィック描写ユニット23に接続されており、ツリー・ビューに対するポインティング・カーソルの位置を特定するように構成されている。この位置は、第1の方向に従う第1の位置値と、この第1の方向に直交する第2の方向に従う第2の位置値とで構成される。この位置は、ポインティング・カーソルをスクロールする又は移動させることによってポインティング・カーソルの位置を制御するユーザからの入力25に基づいて特定される。
【0044】
アクティブ・ブランチ選択ユニット26が、ポインティング・カーソルの位置が第1の方向に従って合わされたブランチを、アクティブなブランチとして自動的に選択するように構成されており、また、展開特定ユニット27が、展開されるべきアクティブなブランチのサブレベルを、そのサブレベルのインデントに対する第2の位置値によって特定するように構成されている。
【0045】
グラフィック描写ユニット23は、アクティブなブランチの特定されたサブレベルを展開してその他のブランチを折り畳むことによって、ツリー・ビューを自動的に更新するように構成されている。
【0046】
図2に示された実施形態において、選択ユニット21、グラフィック描写ユニット23、位置特定ユニット24、アクティブ・ブランチ選択ユニット26、及び、展開特定ユニット27は、直接、互いに通信する。別の一実施形態において、本装置は、これらのユニットのうちの1つ又は複数のユニットに接続され、それらの通信を制御する制御ユニットを有する。
【0047】
選択ユニット21、グラフィック描写ユニット23、位置特定ユニット24、アクティブ・ブランチ選択ユニット26、及び、展開特定ユニット27は、個別のデバイスとして、或いは、組み合わされて少なくとも1つのデバイス又は論理回路として設けられてもよいし、或いは、その処理を行うように構成されているか、少なくとも1つのメモリデバイスに接続されているか又はその少なくとも1つのメモリデバイスを含んでいるマイクロプロセッサか、マイクロコントローラ又はその他の処理デバイスか、コンピュータか、或いは、その他のプログラム可能な装置によって実行される機能であってもよい。
【0048】
図3に示されているように、描画される木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置30の一実施形態は、処理デバイス31、表示デバイス32、及び、命令を記憶しているメモリデバイス33を備えており、メモリデバイス33に記憶されている命令は、実行される際、処理デバイスに、
複数のブランチに編成される木構造を表示デバイス器32によって示すツリー・ビューを生成させ、
ツリー・ビューに対するポインティング・カーソルの位置であって、第1の方向に従う第1の位置値と、この第1の方向に直交する第2の方向に従う第2の位置値とで構成されるこの位置を特定させ、
ポインティング・カーソルの位置が第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択させ、
展開されるべきアクティブなブランチのサブレベルを、そのサブレベルのインデントに対する第2の位置値によって、特定させ、
アクティブなブランチの特定されたサブレベルを展開してその他のブランチを折り畳むことによって、表示デバイスが示すツリー・ビューを自動的に更新させる。
【0049】
例えば、この処理デバイスは、前述の方法の1つに従って上述のステップを行うように適合化されたプロセッサであってもよい。一実施形態において、この適合化には、このプロセッサが前述の方法の1つに従ってステップを行うように構成される、例えば、プログラムされることが含まれる。
【0050】
次に、
図4から
図32を参照すると、一例として、自動モードにおけるポインティング・カーソルを介したユーザ・インタラクションの際にツリー・ビュー再構成メカニズムの影響を受ける分類ツリー・ビューの一実施態様が概略的に例示されている。
【0051】
図4は、現在4個のサブレベルが展開されている、ビューイング・ウィンドウ内における分類木のツリー・ビューの一例を示している。ポインティング・カーソルの位置が、矢印によって示されている。このツリー・ビューにおいて木として表示されている分類は、9個のトップ・レベルの概念(Concept_1,…,Concept_9)を有しており、各々の上位概念、即ち、親のノード/要素が、9個の下位概念、即ち、子のノード/要素を備えており、全部で5つのレベルの階層が設けられている。
図4から
図32に例示された例において、この分類が操作される。
図4において、ポインティング・カーソルが垂直方向に位置合わせされたブランチのみが展開される一方で、その他のブランチが折り畳まれることによって、レベル5までの木要素が可視であるにもかかわらず、コンパクトな木の提示が実現されている。ここに提案された解決手段によれば、ツリー・ビューに対するポインティング・カーソルの位置が、ツリー・ビューの自動的な展開/折り畳みの操作の制御に使用される。木要素に対するポインティング・カーソルの垂直方向の位置が、その木のどのブランチをアクティブなブランチとして展開すべきかを制御する。その木のその他のブランチは、自動的に折り畳まれる。これらを非アクティブなブランチと呼称する。また、木レベルのインデントに対するポインティング・カーソルの水平方向の位置が、アクティブなブランチの何個のサブレベルを展開すべきかを制御する。木要素の自動的な展開/折り畳みに際して、実際のポインティング・カーソル位置が、更新されたツリー・ビューに対する新たな論理的なポインティング・カーソル位置を反映するように、更新されたツリー・ビューも自動的に垂直方向に動かされることがある。
【0052】
図5は、ポインティング・カーソルがビューイング・ウィンドウを指し示していない時のツリー・ビューを示している。この状況は、ポインティング・カーソルが、システムのポインティング・カーソルである、即ち、特にツリー・ビューと相互作用するように作成されてはいない標準的なポインティング・カーソルである場合にのみ起こり得る。この場合においては、ポインティング・カーソルの垂直方向の位置にかかわらず、当然、アクティブなブランチは無い。従って、木のトップ・レベルの要素のみが表示されている。更に、図示された実施形態では、サブ要素インジケータがトップ・レベルの木要素に付与されている場合は、この木は、その一番上の要素が、その対応付けられたサブ要素インジケータも含めて、常に、ビューイング・ウィンドウの左上の隅に表示されている。これによって、この木のコンパクトで一貫した提示が、ポインティング・カーソルがビューイング・ウィンドウ内に移動させられた際のこの木におけるナビゲーション用の開始点として、ユーザに提供される。また、このような移動によって、ポインティング・カーソルがビューイング・ウィンドウに入った際のツリー・ビューに対する位置とその移動の方向とに従って、ツリー・ビューの自動的な再構成が早くも生じ得る。
【0053】
図6は、ポインティング・カーソルが、ビューイング・ウィンドウを指し示しているが、いずれの木要素にも垂直方向に位置合わせされていない状況を例示している。いずれのブランチもアクティブなブランチとして選択されていないので、同じく、この木のトップ・レベルの要素のみが表示されている。従って、システムのポインティング・カーソルが、ビューイング・ウィンドウ内へ移動させられて、いずれの木要素にも垂直方向に位置合わせされていない場合は、ツリー・ビューは変化しない。しかしながら、表示すべき木が全く無い場合ではない限り、ポインティング・カーソルがビューイング・ウィンドウを指し示していない時には、一番上の木要素がビューイング・ウィンドウの上側縁端に表示されているので、ポインティング・カーソルを頂部からビューイング・ウィンドウ内へ移動させると、その進入位置は、一番上の木要素に垂直方向に位置合わせされることになる。ポインティング・カーソルが、ビューイング・ウィンドウを指し示しており、且つ、1つの木要素に垂直方向に位置合わせされている場合、この要素が属しているブランチが、アクティブなブランチである。アクティブなブランチのサブレベルがいくつ展開されてよいかは、ポインティング・カーソルの水平方向の位置によって決まる。この位置が、木レベル1と呼称されるトップの木レベルに対応している場合、即ち、ポインティング・カーソルが、木レベル2のインデントの左側に配置されている場合、アクティブなブランチのトップ・レベルの要素のみが、非アクティブなブランチのトップ・レベルの要素と共に表示される(
図7参照)。ポインティング・カーソルは、
図7に示された位置から、ツリー・ビューを変更せずに、ビューイング・ウィンドウ内で上下に移動させることができる。単にアクティブなブランチが在るか否かと、どのトップ・レベルの木要素がアクティブなブランチに対応付けられているかとは、ツリー・ビューに対するポインティング・カーソルの垂直方向の移動と共に変わる。
【0054】
アクティブなブランチが在り、且つ、ポインティング・カーソルが右に移動させられて次の木レベルのインデントを越えると、そのアクティブなブランチの次のサブレベルが、もし存在すれば、自動的に展開される。ポインティング・カーソルが、展開されている木レベルの直接の上位要素に垂直方向に位置合わせされている場合、この次のサブレベルは、当然、この直接の上位要素のサブレベルである。それ以外の場合、この次のサブレベルは、アクティブなブランチの最も低い現在展開されている木レベルの一番上の木要素のサブレベルになるように規定されている。例えば、ポインティング・カーソルが、
図7に示されたツリー・ビューにおける木インデントの1レベル分に等しい距離だけ右に移動させられた場合、その結果として生じるツリー・ビューは、
図8に対応しており、その理由は、その結果として生じる水平方向のポインティング・カーソルの位置が木レベル2に対応している、即ち、ポインティング・カーソルが木レベル2のインデントと木レベル3のインデントとの間に配置されているからである。従って、ポインティング・カーソルが途中で木レベル2のインデントを通過すると、アクティブなブランチの木レベル2が自動的に展開される。ポインティング・カーソルを更に右に、木インデントの4レベル分の距離だけ移動させることによって、それぞれの対応するインデントを越える度に、アクティブなブランチのサブレベルが益々展開され、その結果、
図9に示された再構成済みツリー・ビューが得られるが、結果として生じた水平方向のポインティング・カーソルの位置は、意図的に木レベル6に対応しており、これは、ポインティング・カーソルを、アクティブなブランチの最も低い木レベルのインデントの右側に在る更なるインデントへ移動させても、ツリー・ビューには更なる変化が生じないことを例示している。水平方向のポインティング・カーソルの位置に従う、アクティブなブランチのサブレベルの自動的な展開は、システムのポインティング・カーソルが、ビューイング・ウィンドウ内へ、その左側、右側又は上側から移動させられ、且つ、その進入位置が1つの木要素に垂直方向に位置合わせされている場合にも起こり、この1つの木要素は、常に、トップ・レベルの木要素の1つであり、その理由は、ポインティング・カーソルがビューイング・ウィンドウを指し示していない時には、これらのトップ・レベルの木要素のみが表示されているからである。ポインティング・カーソルが垂直方向に位置合わせされるトップ・レベルの木要素を備えたブランチは、アクティブなブランチに成り、ツリー・ビューに対するポインティング・カーソルの水平方向の位置に従って自動的に展開されるが、これは、アクティブなブランチのサブレベル数によって制限される。
【0055】
通常、ユーザは、一度にアクティブなブランチの複数のサブレベルを展開しようとはせずに、先ず、現在展開されているサブレベルの木要素をブラウズして、目的とする要素が在るか否かを確認して、この要素の下のサブレベルを展開したいか否かを考える。例えば、ユーザが、
図8に示されたツリー・ビューにおけるConcept_3_3の下のサブレベルを展開することに決めた場合、ユーザは、恐らく、ポインティング・カーソルを下方にConcept_3_3まで移動させて、Concept_3_3を備えたブランチをアクティブなブランチにして(
図10参照)、次に、ポインティング・カーソルを右に移動させて、次のサブレベルを展開するであろう(
図11参照)。ユーザが、
図11に示されたツリー・ビューにおける各々の木レベルの各3番目の要素のサブレベルを連続して展開する場合、ツリー・ビューは、より小さいビューイング・ウィンドウの下側縁端によって部分的に切り取られることを除けば、最終的に
図4に対応することになる。
【0056】
アクティブなブランチが存在し、且つ、ポインティング・カーソルが、左に移動させられて、木レベル1以外の最も低い現在展開されている木レベルのインデントを通過すると、この木レベルは自動的に折り畳まれる。ポインティング・カーソルが、折り畳まれる木レベルの直接の又は間接的な上位要素に垂直方向に位置合わせされている場合、アクティブなブランチは変わらない。例えば、ポインティング・カーソルが、
図9に示されたツリー・ビューにおける木インデントの4レベル分に等しい距離だけ左に移動させられる場合、結果として生じるツリー・ビューは
図8に対応しており、その理由は、結果として生じる水平方向のポインティング・カーソルの位置が木レベル2に対応しているからである。従って、アクティブなブランチの木レベル5は、ポインティング・カーソルが木レベル5のインデントを途中で通過した途端に自動的に折り畳まれ、その後、アクティブなブランチの木レベル4及び3は、それぞれの対応するインデントが通過された途端に、自動的に折り畳まれる。ポインティング・カーソルを更に左に木インデントの1レベル分だけ移動させることによって、アクティブなブランチの木レベル2も折り畳まれて、その結果として、
図7に示されたツリー・ビューが生じる。同様に、
図11に示されたツリー・ビューにおいて、ポインティング・カーソルを左に移動させることによって、木レベル3のインデントがポインティング・カーソルによって通過された途端に、
図10に示されたツリー・ビューが生じる。
【0057】
ポインティング・カーソルを左に移動させることによって、ポインティング・カーソルが、折り畳まれる木レベルの直接の、又は、間接的な上位要素に垂直方向に位置合わせされない場合は、単にこの木レベルを折り畳むことによって、ある任意の木要素が、もし在れば、この木レベルの要素によって以前占められていたスペースと、これらの要素に対するポインティング・カーソルの垂直方向の位置とに従って、ポインティング・カーソルに垂直方向に位置合わせされることになるであろう。従って、この任意の木要素を備えた新たなアクティブなブランチが存在することになるか、或いは、ユーザによる制御がなければ、もはやアクティブなブランチは存在しないことになるであろう。従って、図示の実施形態においては、更新されたツリー・ビューは、このケースでは、折り畳まれた木レベルの直接の上位要素がポインティング・カーソルに垂直方向に位置合わせされるように自動的に垂直方向に動かされ、その際、ポインティング・カーソルに対するこの上位要素の垂直方向の変位は、ポインティング・カーソルがツリー・ビューの更新前に垂直方向に位置合わせされた木要素に対するものと同じであり、その理由は、この位置が、更新されたツリー・ビュー内における新たな論理的なポインティング・カーソル位置になるからである。また、これによって、この上位要素を備えたブランチがアクティブなブランチになり、木に対するシームレスな更なるナビゲーションが可能になる。もう一つの手法は、代わりに、ポインティング・カーソルをこの上位要素の位置に移動させることであるが、これは、ユーザにとって紛らわしいと考えられる。更に、この上位要素は、現時点で可視でなくてもよいが、いずれにしても、更新されたツリー・ビューを動かす必要がある。
【0058】
更新されたツリー・ビューを自動的に垂直方向に動かすことによって、木の一番上の要素が、ビューイング・ウィンドウの上側縁端からある程度の距離だけ離れて表示されることがある。そのような変位は、ユーザが目的とする次のサブレベルを展開してスクロールした途端に素早く解消される。利便性のために、別の実施形態において、本メカニズムには、ツリー・ビューの一番上の要素を再びビューイング・ウィンドウの上側縁端に移動させる補正機能が含まれており、これには、ポインティング・カーソルを、ポインティング・カーソルがツリー・ビューに対して同じ位置に留まるように移動させることが含まれている。この補正機能は、ユーザの要求に基づいて、例えばキーボード又はマウス制御又はマルチタッチ・ジェスチャによってトリガされてもよく、或いは、ユーザによる好みの設定に従って、そのような変位の発生時に自動的にトリガされてもよい。
【0059】
図12から
図14には、ポインティング・カーソルを左に移動させることによって生じる、更新されたツリー・ビューの垂直方向の動きを結果として伴う木レベルの自動的な折り畳みの一例が例示されている。
図12は、ポインティング・カーソルの移動前のビューを示している。今、ポインティング・カーソルが、木インデントの1レベル分に等しい距離だけ左に移動させられると、その結果として、
図13に示されたツリー・ビューが生じ、その理由は、ポインティング・カーソルが途中で木レベル3のインデントを通過した途端に、木レベル3が自動的に折り畳まれて、Concept_3_3_3の直接の上位要素であるConcept_3_3が、Concept_3_3_3がツリー・ビューの更新前に表示されていた垂直方向の位置に表示されるように、更新されたツリー・ビューが自動的に下方に動かされるからである。ポインティング・カーソルが、更に、木インデントの1レベル分だけ左に移動させられると、
図14に示されたツリー・ビューが生じ、その際、
図14におけるConcept_3が、
図13におけるConcept_3_3と同じ垂直方向の位置に表示される。
【0060】
また、木レベルの自動的な展開又は折り畳みは、ツリー・ビューが、不変のポインティング・カーソル位置に対して水平方向に変位して、その結果として、水平方向のポインティング・カーソル位置が、前と異なる木レベルに対応する場合、ビューイング・ウィンドウの水平方向のスクロールによってトリガされてもよく、その際、自動的な展開は、アクティブなブランチのサブレベル数によって制限される。原則として、ビューイング・ウィンドウを右にスクロールすることは、右に最大限に到達したツリー・ビューの要素が、この要素がビューイング・ウィンドウ内で実際に可視であるか否かに関わらず、ビューイング・ウィンドウの右側縁端に右詰めされることによって、制限される。しかしながら、アクティブなブランチの次のサブレベルが存在する場合には、展開可能であるためには、アクティブなブランチの最も低い現在展開されている木レベルのインデントの右に在る次の木レベルのインデントが、水平方向のスクロールと水平方向のポインティング・カーソル移動との任意の組み合わせにより、ポインティング・カーソルによってアクセス可能であるべきであるので、ビューイング・ウィンドウは、このインデントがポインティング・カーソルによって明らかにアクセス可能であるように右にスクロールされることを許容する。この結果、右に最大限に到達したツリー・ビューの要素は、この要素が実際に可視であり、且つ、明らかにこのインデントに伸延するほど長くなければ、ビューイング・ウィンドウの右側縁端からある程度の距離だけ離れて示される。他方、木のトップ・レベルの要素の左側にはアクセスされる木レベルのインデントが無いので、ビューイング・ウィンドウを左にスクロールすることは、これらのトップ・レベルの要素が、これらに対応付けられたサブ要素インジケータが付けられている場合はそれらのサブ要素インジケータも含めて、ビューイング・ウィンドウの左側縁端に示されることによって、制限され得る。
【0061】
図15から
図17には、ビューイング・ウィンドウを右にスクロールすることによって生じる、アクティブなブランチのサブレベルの自動的な展開の一例が例示されている。
図15は、スクロール前のビューを示している。ポインティング・カーソルがビューイング・ウィンドウの右側縁端に殆ど到達しているので、アクティブなブランチの更なるサブレベルは、ポインティング・カーソルを右に移動させることによっては展開できず、その代わりにビューイング・ウィンドウを右にスクロールすることによって展開しなければならない。更に、アクティブなブランチの木レベル3の要素がビューイング・ウィンドウの右側縁端によって切られているので、ユーザは、これらの要素のテキストをもっと読めるようにビューを右にスクロールしたいとも思うかもしれない。次に、ビューイング・ウィンドウが、木インデントの1レベル分に等しい距離だけ、右にスクロールされ、その結果として、不変のポインティング・カーソル位置が水平方向に木レベル4に対応し、これにより、アクティブなブランチの木レベル4が自動的に展開される(
図16参照)。アクティブなブランチの次のサブレベルを展開する場合、或いは、アクティブなブランチの木レベル3の依然として切られた要素を読めるようにする場合、ビューイング・ウィンドウが、今再び、木インデントの1レベル分だけ右にスクロールされ、その結果として、不変のポインティング・カーソル位置が水平方向に木レベル5に対応し、これにより、アクティブなブランチの木レベル5が自動的に展開される(
図17参照)。次に、ユーザは、アクティブなブランチの更なるサブレベルを展開しようとして、ビューイング・ウィンドウを更に右にスクロールするかもしれないが、これは、そのようなサブレベルが無いので、不変のツリー・ビューが、アクティブなブランチの木レベル5の要素が、これら全ての要素が木レベル6のインデントに明らかに伸延するほどに長い場合に、もはやビューイング・ウィンドウの右側縁端によって切られなくなり、ビューイング・ウィンドウの右側縁端に対するこれらの要素の更なる変位が不要となるまで、ビューイング・ウィンドウ内で左に動かされることになるだけである。その代わりに、アクティブなブランチの木レベル3の要素のテキストを読めるようにスクロールが行われた場合、ユーザは、次に、おそらく、ポインティング・カーソルを、その水平方向の位置が木レベル3に対応して自動的にアクティブなブランチの木レベル4及び5を再び折り畳むまで、左に移動させるであろう。ポインティング・カーソルが、ビューイング・ウィンドウの、左へのスクロールによって折り畳まれる木レベルの直接の又は間接的な上位要素に垂直方向に合わせされている場合、アクティブなブランチは変わらない。例えば、
図17に示されたビューイング・ウィンドウが、木インデントの1レベル分に等しい距離だけ左にスクロールされると、その結果として生じるツリー・ビューは
図16に対応しており、その理由は、不変のポインティング・カーソル位置が木レベル4に水平方向に対応しており、従って、アクティブなブランチの木レベル5が単純に自動的に折り畳まれるからである。更なる木インデントの1レベル分の左へのスクロール操作によって、アクティブなブランチの木レベル4も自動的に折り畳まれて、その結果として、
図15に示されたツリー・ビューが生じる。ポインティング・カーソルが、ビューイング・ウィンドウの、左へのスクロールによって折り畳まれる木レベルの直接の又は間接的な上位要素に垂直方向に位置合わせされていない場合、同様の状況下でポインティング・カーソルを左に移動させる際の動作と同様に且つ同じ理由で、この更新されたツリー・ビューも、折り畳まれた木レベルの直接の上位要素が不変のポインティング・カーソル位置に垂直方向に位置合わせされるように垂直方向に動かされる。これによって、再び、ツリー・ビューの一番上の要素がビューイング・ウィンドウの上側縁端に対して変位し得るが、これは前述の如く解消できる。
【0062】
図18から
図20には、ビューイング・ウィンドウを左にスクロールすることによって生じる、更新されたツリー・ビューの垂直方向の動きを結果として伴う木レベルの自動的な折り畳みの一例が例示されている。
図18は、スクロール前のビューを示している。次に、ビューイング・ウィンドウが、木インデントの1レベル分に等しい距離だけ左にスクロールされ、その結果として、不変のポインティング・カーソル位置が水平方向において木レベル4に対応し、これにより、Concept_2_2_2_2_2の直接の上位要素であるConcept_2_2_2_2が、Concept_2_2_2_2_2がツリー・ビューの更新前に表示されていた垂直方向の位置に表示されるように、木レベル5が自動的に折り畳まれて、更新されたツリー・ビューが自動的に下方に動かされる(
図19参照)。更なる左への木インデントの1レベル分のスクロール操作によって、
図20に示されたツリー・ビューが生じ、
図20におけるConcept_2_2_2が、
図19におけるConcept_2_2_2_2と同じ垂直方向の位置に表示される。
【0063】
また、木レベルの自動的な展開又は折り畳みは、ツリー・ビューに対するポインティング・カーソルの結果として生じる垂直方向の移動によって非アクティブなブランチがアクティブなブランチになる、或いは、その逆が生じる場合に、ビューイング・ウィンドウ内におけるポインティング・カーソルの垂直方向の移動によって、或いは、ビューイング・ウィンドウの垂直方向のスクロールによって、トリガされてもよい。これには、現在のアクティブなブランチが存在する場合には、その現在のアクティブなブランチの自動的な折り畳みと、新たなアクティブなブランチが存在する場合には、その新たなアクティブなブランチの自動的な展開とが含まれ、後者は、ツリー・ビューに対するポインティング・カーソルの水平方向の位置に依存し、且つ、その新たなアクティブなブランチのサブレベル数によって制限される。これらの動作の前後で表示されるツリー・ビューは、ある程度の木要素を共通に有することがあるので、ツリー・ビューの結果として生じる更新は、全く変化が見られなくなる時点まで、実際にある程度見て分かることがある。更に、ここに提案されたメカニズムは、実際のポインティング・カーソル位置が、更新されたツリー・ビューに対する新たな論理的なポインティング・カーソル位置を反映するように、この更新されたツリー・ビューを自動的に垂直方向に動かしてもよい。これによって、再び、ツリー・ビューの一番上の要素がビューイング・ウィンドウの上側縁端に対して変位し得るが、これは前述のように解消できる。
【0064】
標準的なツリー・ビューの垂直方向のスクロールは、通常、ツリー・ビューの一番上の要素がビューイング・ウィンドウの上側縁端に示されることと、ツリー・ビューの一番下の要素がビューイング・ウィンドウの下側縁端に示されることと、によって制限される。しかしながら、この方式は、ここに提案されたメカニズムを用いるツリー・ビューには、うまく適合しない。第一に、ツリー・ビューに対するポインティング・カーソルの移動に基づくツリー・ビューの自動的な再構成は、ビューイング・ウィンドウの上側又は下側の縁端に対する、それぞれ、ツリー・ビューの一番上又は一番下の要素の垂直方向の変位をとにかく頻繁に生じさせるので、この動作を、ビューイング・ウィンドウの垂直方向のスクロールについてのみ回避する効用は殆ど無い。第二に、ビューイング・ウィンドウの垂直方向のスクロール自体が頻繁にビューの再構成を生じさせるので、スクロールの前に表示されているツリー・ビューに従って、そのようなスクロールを制限すれば、その結果として、目的とする木要素に到達するために、スクロール操作とポインティング・カーソルの移動とが交互に必要となる。その理由は、更なるスクロールが、それが更なるポインティング・カーソルの移動によって再びロック解除されるまで妨げられ得るからである。更に、仮に、ここに提案されたメカニズムを用いるアプリケーションが、その代わりに、更新されたツリー・ビューがそのような標準的なスクロールの制限に従って表示され得るかをチェックして、意図されるスクロール距離がこれらの制限に違反するならば、そのスクロール距離は低減される必要があり、このチェックが、再び、或いは、複数回行われる必要があるであろう。従って、図示の実施形態において、ここに提案された解決手段による垂直方向のスクロールは、ツリー・ビューの一番上又は一番下の要素が、それぞれ、ビューイング・ウィンドウの上方又は下方のスクロールについて、ビューイング・ウィンドウ内においてポインティング・カーソルに垂直方向に位置合わせされることによって制限される。これによって、ユーザは、不変のポインティング・カーソルの位置の下で、ツリー・ビュー全体を上方又は下方にスクロールできるようになる。更に、ユーザは、ツリー・ビューのうちのどれだけが、ポインティング・カーソルの上方又は下方に表示できるかを、ビューイング・ウィンドウ内において、対応する垂直方向のポインティング・カーソルの位置を選ぶことによって、容易に選択できる。ビューイング・ウィンドウ内におけるポインティング・カーソルの垂直方向の移動によって、或いは、ビューイング・ウィンドウの垂直方向のスクロールによって生じた、ツリー・ビューに対するポインティング・カーソルの垂直方向の変位の結果生じた、ツリー・ビューに対する新たな論理的なポインティング・カーソル位置は、以下、新論理的ポインティング・カーソル位置と呼称するが、以下、適合化ツリー・ビュー(tailored tree view)と呼称する概念的なツリー・ビューによって規定される。この適合化ツリー・ビューは、全ての要素とブランチが、垂直方向のポインティング・カーソル位置に関わらず、ポインティング・カーソルの水平方向の位置に対応する木レベルまで展開された実際のツリー・ビューであり、その際、実際のツリー・ビューに対する水平方向のポインティング・カーソル位置と、適合化ツリー・ビューに対する水平方向のポインティング・カーソル位置とが同じであると定義される。実際のツリー・ビューに対する垂直方向のポインティング・カーソル位置と、適合化ツリー・ビューに対する垂直方向のポインティング・カーソル位置とは、次のように定義される。即ち、ポインティング・カーソルが、実際のツリー・ビューの一番上の要素の上方に置かれている時に、このポインティング・カーソルは、概念的に、適合化ツリー・ビューの一番上の要素の上方にも置かれており、且つ、これらの要素からの垂直方向の距離は同じである。ポインティング・カーソルが、実際のツリー・ビューの1つの要素に垂直方向に位置合わせされている時に、このポインティング・カーソルは、概念的に、適合化ツリー・ビューの同じ要素にも垂直方向に位置合わせされており、且つ、これらの要素に対する垂直方向の変位は同じである。ポインティング・カーソルが、実際のツリー・ビューの一番下の要素の下方に置かれている時に、このポインティング・カーソルは、概念的に、適合化ツリー・ビューの一番下の要素の下方にも置かれており、且つ、これらの要素からの垂直方向の距離は同じである。新論理的ポインティング・カーソル位置は、実際のツリー・ビューに対するポインティング・カーソルの垂直方向の変位が、同じ方向と距離で適合化ツリー・ビューに対して代わりに適用された場合に、ポインティング・カーソルが適合化ツリー・ビューに対して有する位置であると定義される。
【0065】
ポインティング・カーソルがビューイング・ウィンドウ内においてツリー・ビューの一番上の要素の上方に置かれている時には、アクティブなブランチは存在せず、その結果として、木のトップ・レベルの要素のみが表示されている(
図21参照)。ポインティング・カーソルは、ビューイング・ウィンドウ内において、ツリー・ビューの一番上の要素の上方に留まる限り、ツリー・ビューを変更せずに、
図21に示された位置から上下に移動させることができる。ポインティング・カーソルが下方に移動させられて空の領域とツリー・ビューの一番上の要素との間の垂直方向の境界を通過する時に、このポインティング・カーソルは、空の領域と適合化ツリー・ビューの一番上の要素との間の垂直方向の境界も通過することになる。従って、新論理的ポインティング・カーソル位置が、適合化ツリー・ビューの一番上の要素に垂直方向に位置合わせされ、この一番上の要素を備えたブランチが新たなアクティブなブランチになって自動的に展開される。ツリー・ビューの一番上の要素は、常に、適合化ツリー・ビューの一番上の要素と同じ木要素であるから、新論理的ポインティング・カーソル位置は実際のポインティング・カーソル位置と一致しており、更新されたツリー・ビューの垂直方向の動きは必要ない。例えば、
図21に示されたビューイング・ウィンドウにおけるポインティング・カーソルが、
図22に示された位置まで下方に移動させられた場合、その結果として生じるツリー・ビューは、
図22に対応しており、その理由は、ポインティング・カーソルが空の領域とConcept_1との間の垂直方向の境界を途中で通過した途端に、新論理的ポインティング・カーソル位置が垂直方向にConcept_1に合わされて、Concept_1を備えたブランチが、アクティブなブランチになり、水平方向のポインティング・カーソル位置に従って、木レベル2まで展開されるからである。ポインティング・カーソルが、ビューイング・ウィンドウ内において上方に移動させられてツリー・ビューの一番上の要素とその上の空の領域との間の垂直方向の境界を通過する時に、そのポインティング・カーソルは、適合化ツリー・ビューの一番上の要素とその上の空の領域との間の垂直方向の境界も通過することになる。従って、新論理的ポインティング・カーソル位置は、正に、ツリー・ビューの一番上の要素の上方に在り、この一番上の要素を備えたブランチは、もはやアクティブなブランチではなくなり、自動的に折り畳まれる。ツリー・ビューの一番上の要素と適合化ツリー・ビューの一番上の要素とは同一であるので、新論理的ポインティング・カーソル位置は実際のポインティング・カーソル位置と一致して、更新されたツリー・ビューの垂直方向の動きは必要ない。例えば、
図22に示されたビューイング・ウィンドウ内におけるポインティング・カーソルが、
図21に示された位置まで上方に移動させられた場合、その結果として生じるツリー・ビューは
図21に対応しており、その理由は、ポインティング・カーソルがConcept_1とその上の空の領域との間の垂直方向の境界を途中で通過した途端に、新論理的ポインティング・カーソル位置がいずれの木要素にも垂直方向に合わされず、Concept_1を備えたブランチは、もはやアクティブなブランチではなくなり、自動的に折り畳まれるからである。
【0066】
ポインティング・カーソルがビューイング・ウィンドウ内においてツリー・ビューの一番下の要素の下方に置かれている時には、アクティブなブランチは存在せず、その結果として、木のトップ・レベルの要素のみが表示されている(
図23参照)。ポインティング・カーソルは、ビューイング・ウィンドウ内において、ツリー・ビューの一番下の要素の下方に留まる限り、ツリー・ビューを変更せずに、
図23に示された位置から上下に移動させることができる。ポインティング・カーソルが上方に移動させられて空の領域とツリー・ビューの一番下の要素との間の垂直方向の境界を通過する時に、このポインティング・カーソルは、空の領域と適合化ツリー・ビューの一番下の要素との間の垂直方向の境界も通過することになる。従って、新論理的ポインティング・カーソル位置が、適合化ツリー・ビューの一番下の要素に垂直方向に位置合わせされ、この一番下の要素を備えたブランチがアクティブなブランチになって自動的に展開される。ツリー・ビューの一番下の要素は、適合化ツリー・ビューの一番下の要素と同じ木要素ではないこともあるので、この結果として、新論理的ポインティング・カーソル位置は実際のポインティング・カーソル位置と一致しないこともある。これが事実である場合、更新されたツリー・ビューも、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように、自動的に垂直方向に動かされて、その結果として、更新されたツリー・ビューの一番下の要素が、ツリー・ビューの一番下の要素がツリー・ビューの更新前に表示されていた垂直方向の位置に表示される。例えば、
図23に示されたビューイング・ウィンドウにおけるポインティング・カーソルが
図24に示された位置まで上方に移動させられた場合、その結果として生じるツリー・ビューは
図24に対応しており、その理由は、ポインティング・カーソルが空の領域とConcept_9との間の垂直方向の境界を途中で通過した途端に、新論理的ポインティング・カーソル位置が垂直方向にConcept_9_9に合わされて、Concept_9_9を備えたブランチが、アクティブなブランチになり、水平方向のポインティング・カーソル位置に従って木レベル2まで展開され、そして、更新されたツリー・ビューは、Concept_9_9が、Concept_9がツリー・ビューの更新前に表示されていた垂直方向の位置に表示されるように上方に動かされるからである。ポインティング・カーソルがビューイング・ウィンドウ内において下方に移動させられて、ツリー・ビューの一番下の要素とその下の空の領域との間の垂直方向の境界を通過する時に、そのポインティング・カーソルは、適合化ツリー・ビューの一番下の要素とその下の空の領域との間の垂直方向の境界も通過することになる。従って、新論理的ポインティング・カーソル位置は、正に、ツリー・ビューの一番下の要素の下方に在り、この一番下の要素を備えたブランチは、もはやアクティブなブランチではなくなり、自動的に折り畳まれる。ツリー・ビューの一番下の要素は、更新されたツリー・ビューの一番下の要素と同じ木要素ではないこともあるので、この結果として、新論理的ポインティング・カーソル位置は実際のポインティング・カーソル位置と一致しないこともある。これが事実である場合、更新されたツリー・ビューも、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように、自動的に垂直方向に動かされ、その結果として、更新されたツリー・ビューの一番下の要素が、ツリー・ビューの一番下の要素がツリー・ビューの更新前に表示されていた垂直方向の位置に表示される。例えば、
図24に示されたビューイング・ウィンドウにおけるポインティング・カーソルが、
図23に示された位置まで下方に移動させられた場合、その結果として生じるツリー・ビューは
図23に対応しており、その理由は、ポインティング・カーソルがConcept_9_9とその下の空の領域との間の垂直方向の境界を途中で通過した途端に、新論理的ポインティング・カーソル位置がいずれの木要素にも垂直方向に位置合わせされず、Concept_9_9を備えたブランチは、もはやアクティブなブランチではなくなって自動的に折り畳まれ、そして、更新されたツリー・ビューは、Concept_9が、Concept_9_9がツリー・ビューの更新前に表示されていた垂直方向の位置に表示されるように下方に動かされるからである。
【0067】
ポインティング・カーソルが移動してツリー・ビューの2つの垂直方向に隣接する要素相互間の垂直方向の境界を通過すると、その結果として、現在のアクティブなブランチが自動的に折り畳まれて新たなアクティブなブランチが自動的に展開されることによって、アクティブなブランチが変更される。新論理的ポインティング・カーソル位置は、移動の方向に従って、ポインティング・カーソルが前に垂直方向に位置合わせされていた木要素の直ぐ上の又は下の、適合化ツリー・ビューの要素に垂直方向に合わされる。ツリー・ビューの更新によって、新論理的ポインティング・カーソル位置が実際のポインティング・カーソル位置と一致しない場合、更新されたツリー・ビューも、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように、自動的に垂直方向に動かされ、その結果として、ポインティング・カーソルに垂直方向に位置合わせされている更新されたツリー・ビューの要素が、ポインティング・カーソルが移動させられたツリー・ビューの要素がツリー・ビューの更新前に表示されていた垂直方向の位置に表示される。例えば、
図25に示されたビューイング・ウィンドウにおけるポインティング・カーソルが、
図26に示された位置まで下方に移動させられた場合、その結果として生じるツリー・ビューは
図26に対応しており、その理由は、ポインティング・カーソルがConcept_1_9とConcept_2との間の垂直方向の境界を途中で通過した途端に、新論理的ポインティング・カーソル位置が垂直方向にConcept_2に合わされて、Concept_1_9を備えたブランチは、もはやアクティブなブランチではなくなり、自動的に折り畳まれて、Concept_2を備えたブランチが、新たなアクティブなブランチになり、水平方向のポインティング・カーソル位置に従って木レベル2まで展開され、そして、更新されたツリー・ビューは、Concept_2が、これがツリー・ビューの更新前に表示されていた同じ垂直方向の位置に表示されるように、下方に動かされるからである。
図26に示されたビューイング・ウィンドウにおけるポインティング・カーソルが、
図25に示された位置まで上方に移動させられた場合、その結果として生じるツリー・ビューは
図25に対応しており、その理由は、ポインティング・カーソルがConcept_2とConcept_1との間の垂直方向の境界を途中で通過した途端に、新論理的ポインティング・カーソル位置が垂直方向にConcept_1_9に合わされて、Concept_2を備えたブランチは、もはやアクティブなブランチではなくなり、自動的に折り畳まれて、Concept_1_9を備えたブランチが、新たなアクティブなブランチになり、水平方向のポインティング・カーソル位置に従って木レベル2まで展開され、そして、更新されたツリー・ビューは、Concept_1_9が、Concept_1がツリー・ビューの更新前に表示されていた垂直方向の位置に表示されるように、上方に動かされるからである。
【0068】
一貫性を保つために、ポインティング・カーソルが新たなアクティブなブランチに下側から、且つ、空の領域から又は現在のアクティブなブランチから移動させられた場合のようなアクティブなブランチのサブレベルの自動的な展開は、システムのポインティング・カーソルがビューイング・ウィンドウ内に下側から移動させられて、その進入位置が木要素に垂直方向に位置合わせされる時にも生じ、この木要素は、常にトップ・レベルの木要素の1つである。その理由は、ポインティング・カーソルがビューイング・ウィンドウを指し示していない時にはそれらのトップ・レベルの木要素のみが表示されているからである。新論理的ポインティング・カーソル位置が垂直方向に位置合わせされたこの木要素を備えたブランチが、アクティブなブランチになり、ツリー・ビューに対するポインティング・カーソルの水平方向の位置に従って、且つ、このアクティブなブランチのサブレベル数による制限の下で自動的に展開され、そして、更新されたツリー・ビューは、新論理的ポインティング・カーソル位置が実際のポインティング・カーソル位置と一致するように、自動的に垂直方向に動かされる。
【0069】
ビューイング・ウィンドウの垂直方向のスクロールは、ビューイング・ウィンドウ内におけるポインティング・カーソルの垂直方向の移動と同様に処理されるが、次の2つの顕著な違いがある。第一に、垂直方向のポインティング・カーソルの移動が常に連続しているのに対して、垂直方向のスクロールは連続していないこともあり、その結果として、新論理的ポインティング・カーソル位置が、適合化ツリー・ビューの一番上の要素、一番下の要素、或いは、垂直方向に隣接した要素ではなく、任意の要素に垂直方向に位置合わせされることがある。第二に、ビューイング・ウィンドウ内において、ポインティング・カーソルをツリー・ビューの上側又は下側で移動させることは制限されないのに対して、ビューイング・ウィンドウの垂直方向のスクロールは、前述のように制限されることがある。図示の実施形態においては、垂直方向のスクロールの制限が適用される。更に、次の例では、木要素の高さの倍数に等しい距離分の垂直方向のスクロールのみを例示する。ポインティング・カーソルがツリー・ビューの再構成の前後で木要素に垂直方向に位置合わせされることを前提条件とすると、その他のスクロール距離によれば、再構成されたツリー・ビュー内においてポインティング・カーソルが垂直方向に位置合わせされる木要素と、ツリー・ビューの再構成の前にポインティング・カーソルが垂直方向に位置合わせされていた木要素とのポインティング・カーソルに対する垂直方向の変位はさらに異なることになるであろう。
【0070】
ポインティング・カーソルがビューイング・ウィンドウ内においてツリー・ビューの一番上の要素の上方に置かれている時、新論理的ポインティング・カーソル位置が、適合化ツリー・ビューのいずれの要素にも垂直方向にまだ位置合わせされていない限り、ビューイング・ウィンドウは下方のみにスクロールでき、その結果として、不変のツリー・ビューが、ビューイング・ウィンドウ内において上方に単純に動かされる。新論理的ポインティング・カーソル位置が初めて適合化ツリー・ビューの要素に垂直方向に位置合わせされた途端に、この要素を備えたブランチがアクティブなブランチになって自動的に展開される。ツリー・ビューの更新によって、新論理的ポインティング・カーソル位置が実際のポインティング・カーソル位置と一致しない場合、更新されたツリー・ビューも、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように自動的に垂直方向に動かされる。例えば、
図27に示されたビューイング・ウィンドウが4個の木要素の高さに等しい距離だけ下方にスクロールされると、その結果として生じるツリー・ビューは、
図28に対応しており、その理由は、新論理的ポインティング・カーソル位置が垂直方向にConcept_1_1_1に合わされて、このConcept_1_1_1を備えたブランチが、アクティブなブランチになり、水平方向のポインティング・カーソル位置に従って、木レベル3まで展開されるからである。新論理的ポインティング・カーソル位置が既に実際のポインティング・カーソル位置と一致しているので、更新されたツリー・ビューが垂直方向に動かされる必要はない。
【0071】
ポインティング・カーソルがビューイング・ウィンドウ内においてツリー・ビューの一番下の要素の下方に置かれている時、新論理的ポインティング・カーソル位置が、適合化ツリー・ビューのいずれの要素にも垂直方向にまだ位置合わせされていない限り、ビューイング・ウィンドウは上方のみにスクロールでき、その結果として、不変のツリー・ビューが、ビューイング・ウィンドウ内において下方に単純に動かされる。新論理的ポインティング・カーソル位置が初めて適合化ツリー・ビューの要素に垂直方向に位置合わせされた途端に、この要素を備えたブランチがアクティブなブランチになって自動的に展開される。ツリー・ビューの更新によって、新論理的ポインティング・カーソル位置が実際のポインティング・カーソル位置と一致しない場合、更新されたツリー・ビューも、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように自動的に垂直方向に動かされる。例えば、
図29に示されたビューイング・ウィンドウが4個の木要素の高さに等しい距離だけ上方にスクロールされると、その結果として生じるツリー・ビューは、
図30に対応しており、その理由は、新論理的ポインティング・カーソル位置が垂直方向にConcept_9_9_7に合わされて、このConcept_9_9_7を備えたブランチが、アクティブなブランチになり、水平方向のポインティング・カーソル位置に従って、木レベル3まで展開され、更新されたツリー・ビューは、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように、上方に動かされるからである。
【0072】
アクティブなブランチが存在し、且つ、ビューイング・ウィンドウの垂直方向のスクロールによって、新論理的ポインティング・カーソル位置が適合化ツリー・ビューの要素に垂直方向に位置合わせされ、その際、この木要素が、ポインティング・カーソルが前に垂直方向に位置合わせされていた木要素と異なる場合、アクティブなブランチが変わる。従って、現在のアクティブなブランチが自動的に折り畳まれて、新たなアクティブなブランチが自動的に展開される。ツリー・ビューの更新によって、新論理的ポインティング・カーソル位置が実際のポインティング・カーソル位置と一致しない場合、更新されたツリー・ビューも、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように自動的に垂直方向に動かされる。例えば、
図31に示されたビューイング・ウィンドウが4個の木要素の高さに等しい距離だけ下方にスクロールされると、その結果として生じるツリー・ビューは、
図32に対応しており、その理由は、新論理的ポインティング・カーソル位置が垂直方向にConcept_8_9_2に合わされて、Concept_8_8_8を備えたブランチは、もはやアクティブなブランチではなくなって自動的に折り畳まれ、Concept_8_9_2を備えたブランチが、新たなアクティブなブランチになり、水平方向のポインティング・カーソル位置に従って、木レベル3まで展開され、更新されたツリー・ビューは、Concept_8_9_2が、Concept_8_8_8がツリー・ビューの更新前に表示されていた垂直方向の位置に表示されるように、下方に動かされるからである。
図32に示されたビューイング・ウィンドウが4個の木要素の高さに等しい距離だけ上方にスクロールされると、その結果として生じるツリー・ビューは、
図31に対応しており、その理由は、新論理的ポインティング・カーソル位置が垂直方向にConcept_8_8_8に合わされて、Concept_8_9_2を備えたブランチは、もはやアクティブなブランチではなくなって自動的に折り畳まれ、Concept_8_8_8を備えたブランチが、新たなアクティブなブランチになり、水平方向のポインティング・カーソル位置に従って、木レベル3まで展開され、更新されたツリー・ビューは、Concept_8_8_8が、Concept_8_9_2がツリー・ビューの更新前に表示されていた垂直方向の位置に表示されるように、上方に動かされるからである。
【0073】
ビューイング・ウィンドウを上方又は下方にスクロールすることによって、新論理的ポインティング・カーソル位置がツリー・ビューの、それぞれ、一番上の要素の上側又は一番下の要素の下側になるかもしれない場合、スクロールの制限が機能して、新論理的ポインティング・カーソル位置が垂直方向に適合化ツリー・ビューの、それぞれ、一番上又は一番下の要素に合わされるようにスクロールの距離を低減する。従って、現在のアクティブなブランチが、存在する場合には、自動的に折り畳まれて、適合化ツリー・ビューの、それぞれ、一番上又は一番下の要素を備えたブランチが新たなアクティブなブランチになり、自動的に展開される。ツリー・ビューの更新によって、新論理的ポインティング・カーソル位置が実際のポインティング・カーソル位置と一致しない場合、更新されたツリー・ビューも、新論理的ポインティング・カーソル位置と実際のポインティング・カーソル位置とが同じになるように、自動的に垂直方向に動かされる。これは、ビューイング・ウィンドウの垂直方向のスクロールによって、直接、新論理的ポインティング・カーソル位置が適合化ツリー・ビューの、それぞれ、一番上又は一番下の要素に垂直方向に合わされることによって生じる動作と同じ動作である。
【0074】
当業者であれば理解できるように、本原理の態様は、装置、システム、方法、或いは、コンピュータ可読媒体として実施できる。従って、本原理の態様は、ハードウェアの実施形態、ソフトウェアの実施形態、或いは、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形を取ることができる。更に、本原理の態様は、コンピュータ可読記憶媒体の形態を取ることができる。1つ又は複数のコンピュータ可読記憶媒体の任意の組み合わせも利用できる。
【0075】
本原理の態様は、例えば、少なくとも部分的に、プログラム可能な装置上で実行された際に本発明の実施形態による方法のステップを実行するための、或いは、プログラム可能な装置が本発明の実施形態による装置又はシステムの機能を実行できるようにするためのコード部分を備えたコンピュータ・プログラムの形態で実施されてもよい。
【0076】
更に、
図2と
図3に示されたあらゆる接続は、直接の又は間接的な接続であってもよい。更に、当業者であれば、論理ブロック相互間の境界が単なる例示であること、及び、代替の実施形態において、論理ブロックが統合されてもよく、或いは、種々の論理ブロックについての機能が分解されてもよいことが分かるであろう。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画する、コンピュータによって実施される方法(10)であって、
複数のブランチで構成される前記木構造のツリー・ビューを生成すること(11)と、
前記ツリー・ビューに対する前記ポインティング・カーソルの位置を特定すること(14)であって、該位置は、第1の方向に従う第1の位置値と、該第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、前記特定することと、
前記ポインティング・カーソルの位置が前記第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択すること(15)と、
展開されるべき前記アクティブなブランチのサブレベルを、該サブレベルのインデントに対する前記第2の位置値によって特定すること(16)と、
前記アクティブなブランチの前記特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、前記ツリー・ビューを自動的に更新すること(17)と、
を含む、前記コンピュータによって実施される方法。
(付記2)
前記グラフィカル・ユーザ・インタフェース内において前記ツリー・ビューを表示する表示デバイスのスクリーン上において、前記第1の方向が垂直方向に対応し、前記第2の方向が水平方向に対応する、付記1に記載のコンピュータによって実施される方法。
(付記3)
前記ポインティング・カーソルの位置を特定すること(14)と、前記アクティブなブランチを自動的に選択すること(15)と、前記展開されるべきサブレベルを特定すること(16)と、前記ツリー・ビューを自動的に更新すること(17)とが連続的に繰り返される、付記1又は2に記載のコンピュータによって実施される方法。
(付記4)
前記展開されるべきサブレベルの量が現在展開されているサブレベルの量よりも少ない場合、前記ツリー・ビューが、前記アクティブなブランチの超過分のサブレベルを折り畳むことによって更新され、かつ、該更新されたツリー・ビューが、前記折り畳まれた超過分のサブレベルを隠している対応する要素が前記第1の方向に従う前記ポインティング・カーソルの位置に合わされるまで、前記第1の方向に動かされる、付記1から3のいずれか1つに記載のコンピュータによって実施される方法。
(付記5)
前記要素の木構造が概念の分類に対応している、付記1から4のいずれか1つに記載のコンピュータによって実施される方法。
(付記6)
前記要素の木構造がファイルのディレクトリ構造に対応している、付記1から4のいずれか1つに記載のコンピュータによって実施される方法。
(付記7)
ユーザによって入力されたモード選択に応じて、自動モードと手動モードとのいずれかを選択すること(12)を含み、
前記ポインティング・カーソルの位置を特定すること(14)と、前記アクティブなブランチを自動的に選択すること(15)と、前記展開されるべきサブレベルを特定すること(16)と、前記ツリー・ビューを自動的に更新すること(17)とが、前記自動モードにおいてのみ実行され、
前記ツリー・ビューが、前記手動モードにおいて、前記グラフィカル・ユーザ・インタフェースに対する更なる手動のユーザ入力に応じて更新される(13)、
付記1から6のいずれか1つに記載のコンピュータによって実施される方法。
(付記8)
前記ポインティング・カーソルが、前記ツリー・ビューとのユーザ・インタラクション用に生成される、付記1から7のいずれか1つに記載のコンピュータによって実施される方法。
(付記9)
描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置(20)であって、
複数のブランチで構成される前記木構造のツリー・ビューを生成するように構成されたグラフィック描写ユニット(23)と、
前記ツリー・ビューに対する前記ポインティング・カーソルの位置を特定するように構成された位置特定ユニット(24)であって、該位置は、第1の方向に従う第1の位置値と、該第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、前記位置特定ユニットと、
前記ポインティング・カーソルの位置が前記第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択するように構成されたアクティブ・ブランチ選択ユニット(26)と、
展開されるべき前記アクティブなブランチのサブレベルを、該サブレベルのインデントに対する前記第2の位置値によって特定するように構成された展開特定ユニット(27)と、
を備えており、
前記グラフィック描写ユニット(23)は、前記アクティブなブランチの前記特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、前記ツリー・ビューを自動的に更新するように更に構成されている、前記データ処理装置。
(付記10)
前記位置特定ユニット(24)を用いて前記ポインティング・カーソルの位置を特定することと、前記アクティブ・ブランチ選択ユニット(26)を用いて前記アクティブなブランチを自動的に選択することと、前記展開特定ユニット(27)を用いて前記展開されるべきサブレベルを特定することと、前記グラフィック描写ユニット(23)を用いて前記ツリー・ビューを自動的に更新することとを連続的に繰り返すように構成されている、付記9に記載のデータ処理装置。
(付記11)
前記展開特定ユニット(27)が、前記展開されるべきサブレベルの量が現在展開されているサブレベルの量よりも少ないと判定した場合、前記グラフィック描写ユニット(23)が、前記アクティブなブランチの超過分のサブレベルを折り畳むことによって前記ツリー・ビューを更新し、かつ、該更新されたツリー・ビューを、前記折り畳まれた超過分のサブレベルを隠している対応する要素が前記第1の方向に従う前記ポインティング・カーソルの位置に合わされるまで、前記第1の方向に動かすように構成されている、付記9又は10に記載のデータ処理装置。
(付記12)
ユーザによって入力されたモード選択に応じて、自動モードと手動モードとのいずれかを選択するように構成された選択ユニット(21)を備えており、
前記データ処理装置(21)は、前記位置特定ユニット(24)を用いて前記ポインティング・カーソルの位置を特定することと、前記アクティブ・ブランチ選択ユニット(26)を用いて前記アクティブなブランチを自動的に選択することと、前記展開特定ユニット(27)を用いて前記展開されるべきサブレベルを特定することと、前記グラフィック描写ユニット(23)を用いて前記ツリー・ビューを自動的に更新することとを、前記自動モードにおいてのみ実行するように構成されており、
前記グラフィック描写ユニット(23)は、前記手動モードにおいて、前記グラフィカル・ユーザ・インタフェースに対する更なる手動のユーザ入力に応じて、前記ツリー・ビューを更新するように構成されている、付記9から11のいずれか1つに記載のデータ処理装置。
(付記13)
前記ポインティング・カーソルを前記ツリー・ビューとのユーザ・インタラクション用に生成するように構成されている、付記9から12のいずれか1つに記載のデータ処理装置。
(付記14)
描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画するデータ処理装置(30)であって、
処理デバイス(31)と、
表示デバイス(32)と、
命令を記憶しているメモリデバイス(33)と、
を備えており、
前記命令は、実行されると、
複数のブランチで構成される前記木構造を前記表示デバイスを用いて示すツリー・ビューを生成することと、
前記ツリー・ビューに対する前記ポインティング・カーソルの位置を特定することであって、該位置は、第1の方向に従う第1の位置値と、前記第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、前記特定することと、
前記ポインティング・カーソルの位置が前記第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択することと、
展開されるべき前記アクティブなブランチのサブレベルを、該サブレベルのインデントに対する前記第2の位置値によって特定することと、
前記アクティブなブランチの前記特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、前記表示デバイスに示される前記ツリー・ビューを自動的に更新することと、
を前記処理デバイスに行わせる、前記データ処理装置。
(付記15)
描画された木構造に対するポインティング・カーソルの位置に従って要素の木構造をグラフィカル・ユーザ・インタフェースにおいて描画することを可能にする命令を記憶しているコンピュータ可読記憶媒体であって、前記命令は、コンピュータによって実行されると、
複数のブランチで構成される前記木構造のツリー・ビューを生成すること(11)と、
前記ツリー・ビューに対する前記ポインティング・カーソルの位置を特定すること(14)であって、該位置は、第1の方向に従う第1の位置値と、該第1の方向に直交する第2の方向に従う第2の位置値とで構成されている、前記特定することと、
前記ポインティング・カーソルの位置が前記第1の方向に従って合わされたブランチをアクティブなブランチとして自動的に選択すること(15)と、
展開されるべき前記アクティブなブランチのサブレベルを、該サブレベルのインデントに対する前記第2の位置値によって特定すること(16)と、
前記アクティブなブランチの前記特定されたサブレベルを展開し、かつその他のブランチを折り畳むことによって、前記ツリー・ビューを自動的に更新すること(17)と、
を前記コンピュータに行わせる、前記コンピュータ可読記憶媒体。