(57)【要約】【課題】部分階層を効率的に表示することを可能にし、階層全体における部分階層の位置が認識可能で、部分階層の表示の容易な変更を可能にする仕組みを提供すること。【解決手段】ツリーコントロールとともに、表示上のルートノードとして設定するノードの階層を指定するためのスライダーコントロールを関連させて表示する、そして、スライダーコントロールの指定位置に応じて、どのノード以下の部分階層をツリー表示するかを決定し、表示の制御を行う。【選択図】図１７
2010146439.tif 000002
【特許請求の範囲】
【請求項１】
階層構造を持つデータを、前記階層構造に従ってツリー表示する第一の表示制御手段と、
表示上のルートノードとして設定されているノードの階層レベルの表示およびルートノードの階層レベルの変更指定の入力受付を行うための階層指定部を表示する第二の表示制御手段と、
前記階層指定部を介して、前記ツリー表示されているデータのルートノードの階層レベルの変更指定の入力を受け付け、前記第一の表示手段で表示されているノードのうちのフォーカスノードと、変更指定を受け付けた階層レベルとに従って、第一のノードを設定する設定手段とを備え、
前記第一の表示制御手段は、前記変更指定を受け付けた場合に、前記設定手段により設定された前記第一のノードを新たなルートノードとして前記データをツリー表示すること
を特徴とする情報処理装置。
【請求項２】
前記階層指定部は、ポインティングデバイスのドラッグ処理により、前記階層レベルの入力の受け付けることが可能であり、
前記階層指定部を介していずれかの階層が指定された場合に、前記設定手段により前記第一のノードとして設定されうる第二のノードを特定する特定手段を更に備え
前記第一の表示制御手段は、ドラッグ処理が継続している間、前記第二のノードを他のノードと異ならせて表示すること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段はさらに、ポインティングデバイスのドラッグ処理中に、前記ポインティングデバイスが指定している位置で入力が確定した場合に、前記設定手段により前記第一のノードとして設定される第三のノードを特定し、
前記第一の表示制御手段は、ドラッグ処理が継続している間、前記第二のノードを他のノードと異ならせて表示すること
を特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
ユーザ毎にデフォルトのルートノード情報を記憶する記憶手段を備え、
前記第一の表示手段は、初期表示情報として、前記ユーザ毎に設定された前記デフォルトのルートノード情報が示すノードをルートノードとしたツリー表示を行うこと
を特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
階層構造を持つデータを、前記階層構造に従って表示部にツリー表示する第一の表示制御工程と、
表示上のルートノードとして設定されているノードの階層レベルの表示およびルートノードの階層レベルの変更指定の入力受付を行うための階層指定部を表示部に表示する第二の表示制御手段と、
前記階層指定部を介して、前記ツリー表示されているデータのルートノードの階層レベルの変更指定の入力を受け付け、前記表示部にツリー表示されている表示されているノードのうちのフォーカスノードと、変更指定を受け付けた階層レベルとに従って、第一のノードを設定する設定工程とを備え、
前記第一の表示制御工程は、前記変更指定を受け付けた場合に、前記設定工程により設定された前記第一のノードを新たなルートノードとしたツリー表示を前記表示部に対して行うこと
を特徴とする情報処理方法。
【請求項６】
請求項５に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、階層情報を持つデータを階層構造の形式で表示する処理において、部分階層を効率的に表示することを可能にし、階層における部分階層の深さが認識可能で、部分階層の表示の容易な変更を可能にする技術に関する。
【背景技術】
【０００２】
コンピュータのプログラムにおいて、階層構造になっている情報をユーザに提示する手段としてツリービューがある。このツリービューでは、たとえばＯＳ（オペレーティングシステム）のディレクトリ構造を表示する場合など、展開したツリーがツリービューの描画領域より大きくなるときには、ユーザはスクロールバーを操作して目的のノードを探すことを行っている。
【０００３】
ユーザが階層構造のある部分に注目したい場合、階層構造を探索しながら特定の部分について操作するような状況において、情報の閲覧がしづらく、また、手間もかかる。一つは視認性の低下である。ツリービューで階層構造を表示する場合、階層が深くなったり、1つのノードに多数の子ノードが存在することがある。そのためユーザにとって必要で無いノードが多数表示されると、注目したい部分が見づらくなる。
【０００４】
次に、操作性の低下が挙げられる。ユーザは目的のノードを見つけるのに限られたビューの領域でスクロール操作を行わなくてはならない。またユーザが所望する部分がビューの領域に収まるようスクロールバーを操作する必要がある。またユーザが必要としないノードが描画領域を占める場合は階層を折りたたむ操作を必要とする。したがって階層構造を探索する場合、ツリービューの操作回数が増えてしまう。
【０００５】
こうした問題を解決する手段として、階層構造の部分を表示するアイデアがいくつかある。例えば、部分階層を表示するアイデアとして「お気に入り」機能をもつプログラムがある。特定のノードを登録しておけば、登録ノードを頂点とする部分階層を表示できるものである。特許文献１には、部分階層の頂点を仮想的なルートノードとしてツリー表示するアイデアが開示されている。また、特許文献２には、表示させたい部分階層の頂点を固定する方法としてノードをピン止めするアイデアが開示されている。さらに特許文献３には、描画領域を垂直方向にはノード単位、水平方向には階層単位でスクロールするアイデアが開示されている。
【特許文献１】特開２００７−０２６２１０号公報
【特許文献２】特開２００７−１７２２８３号公報
【特許文献３】特開２００５−２４２９４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献1で示された技術では、ツリービューの一般的な階層関係と異なる解釈を取り入れているためノードの階層構造が理解しにくく、操作しにくい。特許文献２で示された技術では、ノードを固定し、上位ノードを閉じるという２種類の操作を必要とするため、直感的に操作しにくい。特許文献３で示された技術では、ビューにユーザが必要としない要素も表示されるため、見やすさの改善になっていない。
【０００７】
また、お気に入り機能では、ユーザが見たい部分階層を固定するため、見たい部分の切り替えができない。あるいは部分を切り替えるためには、事前に階層構造を探索してお気に入りの登録作業を繰り返し行わなくてはならない。また以前に登録したお気に入りノードを選択する場合、それが階層全体のどの部分にあたるのか判断しづらい。
【０００８】
つまり、従来の方法では、階層構造の情報を閲覧する場合における視認性低下と操作性低下の問題は同時には解決されない。
【０００９】
そこで、本願発明は、階層構造の情報を閲覧する場合の上記の問題点を解決するために、部分階層を効率的に表示することを可能にし、階層全体における部分階層の位置が認識可能で、部分階層の表示の容易な変更を可能にする仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本願発明の情報処理装置は以下の構成を備える。即ち、
階層構造を持つデータを、前記階層構造に従ってツリー表示する第一の表示制御手段と、
表示上のルートノードとして設定されているノードの階層レベルの表示およびルートノードの階層レベルの変更指定の入力受付を行うための階層指定部を表示する第二の表示制御手段と、
前記階層指定部を介して、前記ツリー表示されているデータのルートノードの階層レベルの変更指定の入力を受け付け、前記第一の表示手段で表示されているノードのうちのフォーカスノードと、変更指定を受け付けた階層レベルとに従って、第一のノードを設定する設定手段とを備え、
前記第一の表示制御手段は、前記変更指定を受け付けた場合に、前記設定手段により設定された前記第一のノードを新たなルートノードとして前記データをツリー表示すること
を特徴とする。
【００１１】
上記の課題を解決するために、本願発明の情報処理方法は以下の構成を備える。即ち、
階層構造を持つデータを、前記階層構造に従って表示部にツリー表示する第一の表示制御工程と、
表示上のルートノードとして設定されているノードの階層レベルの表示およびルートノードの階層レベルの変更指定の入力受付を行うための階層指定部を表示部に表示する第二の表示制御手段と、
前記階層指定部を介して、前記ツリー表示されているデータのルートノードの階層レベルの変更指定の入力を受け付け、前記表示部にツリー表示されている表示されているノードのうちのフォーカスノードと、変更指定を受け付けた階層レベルとに従って、第一のノードを設定する設定工程とを備え、
前記第一の表示制御工程は、前記変更指定を受け付けた場合に、前記設定工程により設定された前記第一のノードを新たなルートノードとしたツリー表示を前記表示部に対して行うことを特徴とする
【発明の効果】
【００１２】
本願発明によれば、階層構造の情報を閲覧する場合、部分階層を選択して表示する操作が容易に行える。これによりユーザは注目したい情報を閲覧できるため、情報の視認性が向上する。また階層構造の全体と部分の切り替えが単純な操作で行えるため、余計なスクロール操作が減少するという効果も奏する。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本願発明の実施の形態の一例を説明する。
【００１４】
図１は本願発明の情報処理装置のハードウェア構成の一例を示す図である。
【００１５】
図１において、１０１はＣＰＵで、システムバス１０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ１０３あるいは外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input / Output System）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
【００１６】
１０２はＲＡＭで、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＯＭ１０３あるいは外部メモリ１１１からＲＡＭ１０２にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００１７】
また、１０５は入力コントローラで、キーボードやマウス等のポインティングデバイス等で構成される入力部１０９からの入力を制御する。１０６はビデオコントローラで、ディスプレイ装置１１０等の表示器への表示を制御する。
【００１８】
１０７はメモリコントローラで、ブートプログラム，各種のアプリケーション，フォントデータ，ユーザファイル，編集ファイル，各種データ等を記憶するハードディスク（ＨＤ）や、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ１１１へのアクセスを制御する。
【００１９】
１０８は通信Ｉ／Ｆコントローラで、ネットワーク（例えば、ＬＡＮ（ローカルエリアネットワーク））を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００２０】
なお、ＣＰＵ１０１は、例えばＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ装置１１０上での表示を可能としている。また、ＣＰＵ１０１は、ディスプレイ装置１１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２１】
本願発明を実現するための後述する各種プログラムは、外部メモリ１１１に記録されており、必要に応じてＲＡＭ１０２にロードされることによりＣＰＵ１０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ１１１に格納されており、これらについての詳細な説明も後述する。
【００２２】
図２は、本願発明の情報処理装置１００の機能構成の一例を示すブロック図である。
【００２３】
図中、２０１はツリー初期表示処理部であって、ユーザのログイン後、ツリーコントロールの初期表示を行う機能部である。このツリー初期表示処理部２０１によって行われる処理の一例については、図３を参照して後述する。
【００２４】
２０２はノード展開処理部であって、ツリーコントロールのノードの展開処理を行う機能部である。このノード展開処理部２０２によって行われる処理の一例については、図４を参照して後述する。
【００２５】
２０３はノード選択処理部であって、ノードの選択変更に伴い実行される処理を行う機能部である。このノード選択処理部によって行われる処理の一例については、図５を参照して後述することにする。
【００２６】
２０４はスライダー設定処理部であって、スライダーコントロールの設定変更に伴い実行される処理を行う機能部である。このスライダー設定処理部２０４によって行われる処理の一例については、図６を参照して後述する。
【００２７】
２０５はスライダー操作時処理部であって、スライダーコントロールが入力部１０９からの指示により操作された際のツリーコントロールの制御を行うための機能部である。このスライダー操作時処理部２０５によって行われる処理の一例については、図７を参照して後述する。
【００２８】
２０６はノード削除処理部であって、ツリーコントロール上のノードの削除処理を行うための機能部である。このノード削除処理部２０６によって行われる処理の一例については、図８を参照して後述する。
【００２９】
２０７はノード追加処理部であって、ツリーコントロールにノードを追加する処理を行うための機能部である。このノード追加処理部２０７によって行われる処理の一例については、図９を参照して後述する。
【００３０】
２０８はノード格納処理部であって、ツリーコントロール中の展開されているノードの格納処理を行うための機能部である。このノード格納処理部２０８によって行われる処理の一例については、図１０を参照して後述する。
【００３１】
２０９はツリー再表示処理部であって、ツリーコントロールのルートノードの変更に応じて行われるツリーコントロールの再表示を行うための機能部である。このツリー再表示処理部２０９によって行われる処理の一例については、図１１を参照して後述することにする。
【００３２】
２１０は子ノード再表示処理部であって、ツリーコントロールの再表示に応じて行われる、子ノードの再表示を行うための機能部である。この子ノード再表示処理部２１０によって行われる処理の一例については、図１２を参照して後述する。
【００３３】
次に、図１７から図２０を参照して、情報処理装置１００によって行われるツリーコントロールの表示制御処理の概要について説明する。尚、これら図で、同一のコントロール、ノード等については同一の符号を付すものとする。
【００３４】
図１７に示すように本願発明では、ツリーコントロール１７０７の表示を行う際に、スライダーコントロール１７０８をあわせて表示することになる。スライダーコントロール１７０８は、ツリーコントロールの表示上のルートノードの階層レベルを指定するために用いられる。
【００３５】
この説明では、小分類２ノード１７１４が現在選択されているフォーカスノードであるものとして説明する。尚、フォーカスノードについては、そのノードがフォーカスノードであることを認識可能なように、ノードを示すアイコンを他のものと異ならせたり、名称部分１７０５を図に示すように強調表示したりする。フォーカスノード１７１４のルートノードからのパス情報は、商品／大分類２／中分類３／小分類２と表記できる。
【００３６】
図１７ではスライダーコントロールの現在値１７０６が第一階層指定部１７０１に設定されている。よって、ツリーコントロール１７０７には上記パス情報の第一階層である「商品」ノード（ルートノード）１７０１以下の全てのノード（展開されている部分のみ）が表示されることになる。
【００３７】
ここで、スライダーコントロール１７０６の現在値１７０６の設定を第二階層指定部１７０２に変更すると、情報処理装置１００はツリーコントロール１７０７の表示を図１８のように変更する。
【００３８】
図１８ではスライダーコントロールの現在値１７０６が第二階層指定部１７０２に設定されているので、図１７の第一階層である「商品」ノード１７１１の表示は行わず、第二階層の「大分類２」ノード１７１２を表示上のルートノードとしてツリーコントロールの表示を行っている。
【００３９】
スライダーコントロールの現在値１７０６を第三階層指定部１７０３に設定した場合には図１９のように、第四階層指定部１７０４に設定した場合には図２０のようにツリーコントロールを表示制御する。
【００４０】
このような表示制御をさせることで、部分階層を選択して表示する操作を容易に行うことが可能となり、ユーザは注目したい情報を閲覧できるため、情報の視認性が向上する。また、スライダーコントロールの現在値により、どの階層のノードがツリーコントロールの表示上のルートノードとして設定されているかについても、ユーザは容易に確認することができる。
【００４１】
以上が、本願発明における情報処理装置１００が行うツリーコントロール表示制御処理の概要である。
【００４２】
図３は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第１の制御処理の一例を示すフローチャートであり、図２のツリー初期表示処理部２０１によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、ツリー初期表示処理部２０１として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。
【００４３】
まずＣＰＵ１０１は、外部メモリ１１１に設定されているノードデータ登録部（図１３）に登録されているノードデータの中から、最上位階層となる（階層レベルが「０」の）ノードデータを取得する（ステップＳ３０１）。
【００４４】
その後、ＣＰＵ１０１は最上位階層のノードデータをＲＡＭ１０２上に作成した図１４に示すノード情報１４００に格納し、図１５に示すノード情報マップ１５０１にそのＩＤとノード情報の対応を登録する（ステップＳ３０２）。
【００４５】
ここで、図１３に示すノードデータ登録部のデータ構成について説明する。ノードデータ登録部１３００には、ＩＤ１３０１、親ＩＤ１３０２、階層レベル１３０３、名称１３０４、及び属性１から属性Ｎまでの属性情報１３０５が登録されている。
【００４６】
ＩＤ１３０１には、当該ノードデータを一意に示すＩＤ情報が登録されている。親ＩＤ１３０２には、当該ノードデータの親ノードデータであるノードデータのＩＤ情報が登録されている。尚、親ノードＩＤが「０」である場合には、そのノードデータは親ノードデータを有さないことを意味する。階層レベル１３００には、当該ノードデータの階層レベルを示すデータが登録されている。階層レベルが「０」の場合には最上位階層のデータであることを示している。階層レベル「０」のノードデータのＩＤが親ＩＤ１３０２に設定されているノードデータの階層レベルは「１」に、階層レベル「１」のノードデータのＩＤが親ＩＤ１３０２に設定されているノードデータの階層レベルは「２」が設定されることになる。
【００４７】
名称１３０４には、当該ノードデータがツリーコントロール上に表示される際にそのノードの名称として使用される文字列が登録されている。属性１３０５には、当該ノードデータに設定する各種データの属性情報が登録される。
【００４８】
次に、図１４を参照して、ＲＡＭ１０２上に作成されるノード情報１４００のデータ構成の一例を説明する。ノード情報１４００は、ＩＤ１４０１、親ＩＤ１４０２、階層レベル１４０３、名称１４０４、属性１４０５、子ノードロード済みフラグ１４０５、子ノード展開フラグ１４０７、子ノードＩＤリスト１４０８で構成されている。
【００４９】
ＩＤ１４０１〜属性１４０５には、それぞれ、ノードデータ登録部１３００に登録されている当該ノードデータの情報が設定されることになる。子ノードロード済みフラグ１４０６は、このノード情報で示されるノードデータの子ノードであるノードデータについて既にノード情報１４００が生成されているかを示す情報であり、「Ｙ」が設定されている場合には、すでに子ノードがロード済みである（ノード情報１４００が作成されている）ことを示している。「Ｎ」が設定されている場合には、まだ子ノードがロードされていないことを示している。
【００５０】
子ノード展開フラグ１４０７、このノードデータが展開状態であるか否かを示すフラグ情報であり、「Ｙ」が設定されている場合には当該ノード情報１４００で示されるノードが展開状態であることを示している。「Ｎ」が設定されている場合には、子ノードが格納状態であることを示している。
【００５１】
子ノードＩＤリスト１４０８には、当該ノード情報１４００で示されるノードデータの子ノードであるノードデータのＩＤ情報が設定されることになる。
【００５２】
以上が図１４に示すノード情報の説明である。
【００５３】
図３の説明に戻る。ステップＳ３０２の処理が終了後、ＣＰＵ１０１はツリーコントロールのノード追加関数を呼び出して、ノード情報から作成したノードをツリーコントロールに追加する（ステップＳ３０３）。このとき、図１５に示すノードＩＤマップ１５０２にノードとＩＤの対応を、また同じく図１５に示すノードマップ１５０３にノード情報とノードの対応を登録する。
【００５４】
図１５は、本願発明において、情報処理装置１００がＲＡＭ１０２上に設定するメモリマップの種類とその設定方法を示す図である。
【００５５】
ノード情報マップ１５０１は、図１３のノードデータ登録部１３００に示すノードデータのＩＤ１３０１とその情報を示すノード情報１４００の対応関係を格納するメモリマップ情報である。このノードマップ情報１５０１をＩＤをもとに検索することにより当該ＩＤに対応するノードマップ情報１４００を取得することが可能である。
【００５６】
ノードＩＤマップ１５０２は、ツリーコントロール上に表示されているノードとＩＤとの対応関係を格納するメモリマップ情報である。このノードＩＤマップ１５０２を用いることで、ツリーコントロールのノードを取得する取得関数で得られるノードを示す情報から、そのノードが示しているＩＤを取得することが可能である。
【００５７】
ノードマップ１５０３は、ノード情報１４００とツリーコントロール上に表示されているノードの対応関係を格納するメモリマップ情報である。このノードマップを用いることで、ノード情報１４００からツリーコントロール中のノードを取得することが可能である。
【００５８】
以上が図１５に示すメモリマップの説明である。
【００５９】
図３の説明に戻る。ステップＳ３０３の処理が終了後、外部メモリ１１１に記憶されている図１６に示すデフォルト設定データから、当該ユーザに対応付けられたデフォルトノード情報を取得する（ステップＳ３０４）。この際には、ログイン時に用いられたユーザ情報に基づいて、そのユーザ情報に対応するデフォルトノード１６０２を取得することになる。
【００６０】
図１６は、外部メモリ１１１に記憶されているデフォルト設定データ１６００の一例である。図に示すように、デフォルト設定データ１６００は、ユーザ情報１６０１及びデフォルトノード１６０２より構成されている。ユーザ情報１６０１には、ユーザを識別するためのユーザＩＤ情報が登録されている。デフォルトノード１６０２には、当該ユーザのデフォルトノードがルートノードからのパス情報として登録されている。尚、このパス情報を示す各種のノードデータのＩＤが「／」で接続されて登録されている。
【００６１】
以上が図１６のデフォルトユーザ設定データ１６００の説明である。
【００６２】
図３の説明に戻る。ステップＳ３０４の処理を終了後、ＣＰＵ１０１は、ステップＳ３０５乃至ステップＳ３１６の処理を行うことで、デフォルト設定データ１６００中の当該ユーザに対応するデフォルトノード１６０２に設定されているそれぞれのノードＩＤを順に読み出して、初期ルートノードを特定する。
【００６３】
ステップＳ３０５においてＣＰＵ１０１は、初期ルートノードを示す一時ノードポインタ変数（ノードのポインタを格納する変数）を準備し、ステップＳ３０３で追加したノードで初期化する。そして、デフォルト設定のノードＩＤの位置を示す変数Ｎ（整数）を準備し、０で初期化する（ステップＳ３０６）。
【００６４】
そして、その後、ステップＳ３０４による処理で当該ユーザのデフォルト設定データが取得できた／できなかったによって、ＣＰＵ１０１は当該ユーザのデフォルト設定データが存在するかどうか判断する（ステップＳ３０７）。そして、デフォルト設定データが存在しないと判断した場合（ステップＳ３０７でＮO）、処理をステップＳ３１７に進める。
【００６５】
一方、ステップＳ３０７において、ＣＰＵ１０１がデフォルト設定データ１６００が存在すると判断した場合（ステップＳ３０７でＹＥＳ）、デフォルトノード１６０２からN番目に区切られたノードＩＤを取得する（ステップＳ３０８）。
【００６６】
そしてその後、ＣＰＵ１０１は、Nが1以上かどうか判断する（ステップＳ３０９）。尚Ｎが０の場合にはそのノードはルートノードであることを示している。ステップＳ３０９でＮが１以上でない（つまりＮは「０」）と判断した場合（ステップＳ３０９でＮＯ）、ＣＰＵ１０１は処理をステップＳ３１４に進める。一方、ステップＳ３０９でＮが１以上であると判断した場合（ステップＳ３０９でＹＥＳ）、ＣＰＵ１０１はノード情報マップ１５０１に当該ＩＤのデータが存在するかどうか判断する（Ｓ３１０）。
【００６７】
ステップＳ３１０でノード情報マップ１５０１に当該ＩＤのノード情報１４００が存在しないと判断した場合(Ｓ３１０でＮＯ)、ＣＰＵ１０１は処理をステップＳ３１７に進める。
【００６８】
一方、ステップＳ３１０でノード情報マップ１５０１に当該IDのデータが存在すると判断した場合（Ｓ３１０でＹＥＳ）、ＣＰＵ１０１はノード情報マップ１５０１からＩＤに対応するノード情報１４００を取得する（Ｓ３１１）。その後、ＣＰＵ１０１はノードマップ１５０３に当該ノード情報のデータが存在し、かつ親ＩＤが一時ノードのＩＤに一致するかどうか判断する（Ｓ３１２）。
【００６９】
ステップＳ３１２でノードマップ１５０３に当該ノード情報のデータが存在しないか親ＩＤが一時ノードのＩＤに一致しないと判断した場合（Ｓ３１２でＮＯ）、ＣＰＵ１０１は処理をステップＳ３１７に進める。
【００７０】
ＣＰＵ１０１が、ステップＳ３１２でノードマップ１５０３に当該ノード情報のデータが存在し、かつ親ＩＤが一時ノードのＩＤに一致すると判断した場合（Ｓ３１２でＹＥＳ）、ＣＰＵ１０１はノードマップ１５０３からノード情報に対応するノードを取得し、一時ノードに代入する（ステップＳ３１３）。
【００７１】
ステップＳ３０９でＮＯと判断した場合若しくはステップＳ３１３の処理が終わると、ＣＰＵ１０１は、Ｎ番目のノードＩＤがデフォルトノード１６０２の末尾であるかどうか判断する（ステップＳ３１４）。N番目のノードがデフォルトノード１６０２の末尾のノードＩＤでないと判断した場合（ステップＳ３１４でＮＯ）、ＣＰＵ１０１はＮに１を加え（Ｎ＝Ｎ＋１）（ステップＳ３１５）、一時ノードで示されるノードに対して図４に示すノード展開処理を実行し（ステップＳ３１６）、ステップＳ３０８に処理を戻す。ノード展開処理の詳細については図４を参照して後述する。
【００７２】
ステップＳ３１４でＮ番目のノードＩＤがデフォルトノード１６０２の末尾であると判断した場合（ステップＳ３１４でＹＥＳ）、ＣＰＵ１０１はツリーコントロールのノード選択関数（ＡＰＩＩ）を呼び、一時ノードをフォーカスノードとして選択する（ステップＳ３１７）。
【００７３】
そして、そのフォーカスノードの選択に応じてノード選択処理部２０３によるノード選択処理が行われる（ステップＳ３１８）。そしてその後、スライダーコントロールの現在値をＮ（フォーカスノードの階層レベルと同じ値）に設定する（ステップＳ３１９）。そしてその後、ステップＳ３１９のスライダー選択処理に応じて、スライダー設定処理部２０４によるスライダー設定処理が行われる（ステップＳ３２０）。このスライダー設定処理の詳細については図６を参照して後述する。
【００７４】
以上が、図３の処理の説明である。なおこの図３の処理の実行結果を図２１を参照して説明する。図２１（１）はデフォルトノードデータが設定されていないユーザのツリーコントロールの初期表示、（２）は、ＵＳＥＲ１のツリーコントロールの初期表示を示すものである。図１６に示すようにＵＳＥＲ１のデフォルトノードは「１／２／６」であり、ノードの名称で表記した場合には「商品／大分類１／中分類２」（図１３のノードデータ登録部１３００を参照）となる。図３の処理を行うことにより、デフォルトノードが設定されていないユーザのツリーコントロールは２０００に示すように表示され、第一階層の「商品」２１０２がデフォルトノードとして設定されるので、スライダーコントロールの現在値が第一階層設定部に設定されている（図中２１０１）。また、フォーカスノードがルートノードになるので、スライダーコントロールを用いて他の階層を選択できない状態で表示されることになる。他の階層のノードをフォーカスノードと設定することで、スライダーコントロールは階層指定を行えるように制御されることになる。
【００７５】
ＵＳＥＲ１のデフォルトノードとして設定されるのは第三階層の「中分類２」２１１２となる。であるので、スライダーコントロールの現在値が第三階層設定部に設定されることになる（図中１８１１）。また、第三階層のノードがフォーカスノードであるので、スライダーコントロールは第三階層まで表示上のルートノードを設定可能な形に設定され、第三階層設定部に現在値が設定される（図中２１１１）。
【００７６】
以上が図２１の説明である。
【００７７】
図４は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第２の制御処理の一例を示すフローチャートであり、図２のノード展開処理部２０２によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、ノード展開処理部２０２として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。
【００７８】
ＣＰＵ１０１は、ノードＩＤマップ１５０２から指定ノードに対応するノードＩＤを取得し、ノード情報マップから当該ノードＩＤに対応するノード情報を取得する（ステップＳ４０１）。その後、外部メモリ１１１中のノードデータ登録部１３００から当該ノード情報１４００のＩＤ１４０１を親ＩＤに持つデータを取得する（ステップＳ４０２）。
【００７９】
その後、ＣＰＵ１０１はステップＳ４０２で取得したノードデータをＲＡＭ１０２上に作成したノード情報１４００に格納し、ノード情報マップにノードＩＤとノード情報の対応を登録する（ステップＳ４０３）。
【００８０】
そして、ＣＰＵ１０１はステップＳ４０１で取得した指定ノードのノード情報の子ノードＩＤリスト１４０８にステップＳ４０２で取得したノードデータのＩＤを追加する（ステップＳ４０４）。
【００８１】
ステップＳ４０４の処理が終了後、ＣＰＵ１０１は、ツリーコントロールへの子ノード追加関数を呼び出して、ステップＳ４０３で取得したノード情報から作成したノードを、指定ノードの子ノードとして追加する。またノードＩＤマップ１５０２にノードとＩＤの対応を、またノードマップ１５０３にノード情報とノードの対応を登録する（ステップＳ４０５）。そしてＣＰＵ１０１は、ツリーコントロールのノード展開関数を呼び出して、指定ノードを展開し（ステップＳ４０６）、ステップＳ４０１で取得した指定ノードのノード情報の子ノード展開フラグ１４０７にＹを設定する（ステップＳ４０７）。また、指定ノードのノード情報の子ノードロード済みフラグ１４０８にもＹを設定する（ステップＳ４０８）。
【００８２】
以上が、図２のノード展開処理部２０２により行われるノード展開処理の詳細である。
【００８３】
図５は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第３の制御処理の一例を示すフローチャートであり、図２のノード選択処理部２０３によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、ノード選択処理部２０３として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。
【００８４】
まず、ＣＰＵ１０１は、ツリーコントロールの選択状態のノード取得関数を呼び出して、選択ノードを取得する（ステップＳ５０１）。その後ノードＩＤマップ１５０２から選択ノードに対応するＩＤを取得し、ノード情報マップ１５０１から当該ＩＤに対応するノード情報１４００を取得する（ステップＳ５０２）。そしてノード情報１４００中の階層レベル１４０３を取得する（ステップＳ５０３）。そして、ＣＰＵ１０１は、スライダーコントロールの最大値属性にステップＳ５０３で取得した階層レベルを設定する（ステップＳ５０４）。
【００８５】
図６は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第４の制御処理の一例を示すフローチャートであり、図２のスライダー設定処理部２０４によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、スライダー設定部２０４として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。このスライダー設定処理では、ルートノードの候補のうちスライダーコントロールの現在値が示す階層レベルにより１つに決定されるノードをルートノードとしてツリーを表示する処理を行う。
【００８６】
まず、ＣＰＵ１０１は、スライダーコントロールの現在位置取得関数で取得できる現在値属性値を取得する（ステップＳ６０１）。その後、ツリーコントロールの選択状態ノード取得関数を呼び出して、選択ノードを取得する（ステップＳ６０２）。
【００８７】
選択ノードの取得後、ＣＰＵ１０１はノードＩＤマップ１５０２から選択ノードに対応するＩＤを取得し、ノード情報マップ１５０１からＩＤに対応するノード情報１４００を取得する（ステップＳ６０３）。
【００８８】
その後、ＣＰＵ１０１は、ノード情報１４００中の階層レベル１４０３を取得する（ステップＳ６０４）。そしてその後ＣＰＵ１０１はステップＳ６０５からステップＳ６０７の処理において、選択ノードの階層レベルからスライダーコントロールの現在値が示すレベルまで階層をさかのぼって、ツリー表示する階層のルートノードを決定する処理を行う。
【００８９】
ＣＰＵ１０１はステップＳ６０５において、ルートノードを示す一時ノード(ノードのポインタ)にステップＳ６０２で取得した選択ノードを、階層レベルを示す変数Ｎ（整数）にステップＳ６０４で取得した階層レベルを代入する（ステップＳ６０５）。
【００９０】
そして、ステップＳ６０６において、ＣＰＵ１０１は、NがステップＳ６０１で取得したスライダーの現在値に一致するかどうか判断する（ステップＳ６０６）。そして、Nがスライダーコントロールの現在値に一致しないと判断した場合には（ステップＳ６０６でＮＯ）、ツリーコントロールの親ノード取得関数を呼び出して取得した一時ノードの親ノードを一時ノードに代入し、Nから1を引いて、ステップＳ６０６の処理に戻る（ステップＳ６０７）。そして、ステップＳ６０６及びＳ６０７の処理をステップＳ６０６でNがスライダーの現在値に一致すると判断する（ステップＳ６０７でＹＥＳ）まで、繰り返すことになる。
【００９１】
ステップＳ６０７でＹＥＳと判断した場合には、図２のツリー再表示処理部２０９によるツリー再表示処理を実行する（ステップＳ６０８）。このツリー再表示処理の詳細については、図１１を参照して詳細に後述する。
【００９２】
以上が、スライダー設定部２０４によって行われるスライダー設定処理である。
【００９３】
図７は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第５の制御処理の一例を示すフローチャートであり、図２のスライダー操作時処理部２０５によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、スライダー操作時処理部２０５として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。この処理は、ユーザの入力部１０９を介してスライダーコントロールに対して操作を行った場合に、ＣＰＵ１０１が実行する処理である。スライダー操作時処理では、ツリーコントロールのルートノードを設定する処理ならびにルートノードの候補となるノードの強調表示処理を行う。ただし、スライダーコントロールがドラッグ状態を持たない場合、ドラッグ中の画面表示の変化には対応しないが、ＣＰＵ１０１はマウスカーソルが重なっている間に当該処理を実行してもよい。
【００９４】
まず、ＣＰＵ１０１はマウス操作により、スライダーコントロールがドラッグ中かどうか判断する（ステップＳ７０１）。
【００９５】
ステップＳ７０１の判断処理においてドラッグ中でないと判断した場合（ステップＳ７０１でＮＯ）、本処理を終了する。一方、ステップＳ７０１の判断処理でドラッグ中と判断した場合（ステップＳ７０１）、ＣＰＵ１０１はスライダーコントロールの現在値属性の値を取得し（ステップＳ７０２）、さらにツリーコントロールの選択ノード取得関数を呼び出して、選択ノードを取得する（ステップＳ７０３）。また、ＣＰＵ１０１はスライダーコントロールの最大値属性の値を取得する（ステップＳ７０４）。
【００９６】
その後、ステップＳ７０５からステップＳ７１１の処理において、選択ノードから順に階層をさかのぼってスライダーコントロールの現在値に対応するノードまでを新たなルートノードの候補として強調表示する処理を行う。
【００９７】
ＣＰＵ１０１は、強調表示ノードを示す一時ノードにステップＳ７０３で取得した選択ノード、階層レベルを示す変数ＮにステップＳ７０４で取得したスライダーコントロールの最大値を代入する（ステップＳ７０５）。
【００９８】
そしてその後、ＣＰＵ１０１は、一時ノードの表示アイコンを他表示アイコンと異ならせることで、表示上のルートノードとなる可能性があるノードを識別可能に表示制御する（ステップＳ７０６）。アイコンの表示を異ならせる以外の方法、例えば、名称の表示色を変更する、名称表示位置の背景の色を他のノードと異ならせるという方法を採用しても勿論構わない。そしてその後、ＣＰＵ１０１はスライダーコントロールのドラッグ中の値を取得する（ステップＳ７０７）。そしてＣＰＵ１０１はＮがスライダーコントロールのドラッグ中の値に一致するかどうか判断する（ステップＳ７０８）。
【００９９】
ステップＳ７０８の処理において、Nがスライダーコントロールのドラッグ中の現在属性値に一致すると判断した場合（ステップＳ７０８でＹＥＳ）、ＣＰＵ１０１は一時ノードの表示アイコンを他のステップＳ７０６で設定したアイコンと異ならせる表示制御を行う（ステップＳ７０９）。表示アイコンを異ならせる以外の方法で識別可能に表示制御しても勿論構わない。一致しないと判断した場合には（ステップＳ７０8でＮＯ）、処理をステップＳ７１０に進める。
【０１００】
そしてその後、ステップＳ７１０の処理において、ＣＰＵ１０１はＮがスライダーの現在値に一致するかどうか判断する。Nがスライダーの現在値に一致しないと判断した場合(ステップＳ７１０でＮＯ)、ＣＰＵ１０１はツリーコントロールの親ノード取得関数を呼び出して取得した一時ノードの親ノードを取得し、取得した親ノードを一時ノードに代入し、Ｎから１を引いて（ステップＳ７１１）、ステップＳ７０６〜ステップＳ７１０の処理を繰り返す。
【０１０１】
ステップＳ７１０において、ＣＰＵ１０１が、変数Ｎの値がスライダーコントロールの現在値に一致すると判断した場合（ステップＳ７１０でＹＥＳ）、ＣＰＵ１０１はマウスがドラッグ中かどうか判断する（Ｓ７１２）。ステップＳ７１２でドラッグ中であると判断した場合（ステップＳ７１２でＹＥＳ）、ＣＰＵ１０１は処理をステップＳ７０２に戻し、ステップＳ７０２からステップＳ７１２の処理を繰り返す。
【０１０２】
ステップＳ７１２でドラッグ中でないと判断した場合（ステップＳ７１２でＮＯ）、図６に示すスライダー設定処理（ステップＳ７１３）を実行し本処理を終了する。
【０１０３】
以上が図２のスライダー操作時処理部２０５によって行われる処理である。
【０１０４】
図２２を参照して、スライダー設定処理部２０５による処理が行われている際のツリーコントロールの表示について説明する。
【０１０５】
図２２では、小分類２ノード２２０２−４がフォーカスノードとして設定されている。そして、スライダーコントロールの現在値の修正を行う場合の処理を説明する。
【０１０６】
小分類２ノード２２０２−４のパス情報は、「商品／大分類２／中分類３／小分類２」であり、スライダーコントロールの現在値を２２０１−１に設定した場合には、第一階層である商品ノード２２０２−１が、２２０１−２に設定した場合には、第二階層である大分類２ノード２２０２−２が、２２０１−３に設定した場合には、第三階層である中分類３ノード２２０２−３が、２２０１−４に設定した場合には、第四階層である小分類２が表示上のルートノードとして設定されることになる。そしてそれらノードのアイコンは、図７のステップＳ７０６の処理により、他のノードとは異なっている（☆が設定されている）。
【０１０７】
更に、中分類３ノード２２０２−３については、ドラッグ中のスライダーコントロールの現在値が２２０１−３であるので、ドラッグ処理をそこで終了するとそのノードが表示上のルートノードとして設定される。そのようなノードが図７のステップＳ７０８の処理でＹＥＳと判断されるノードになる。よって、中分類２ノード２２０２−３については、ステップＳ７０６で設定されたノードアイコンとはさらに異なるように表示制御がされている（★が設定されている）。
【０１０８】
このように表示制御することで、階層指定による部分ツリーの表示の際に、どのノードが表示上のルートノードとして設定される可能性があるかをユーザは容易に認識可能となる。以上が図２２の説明である。
【０１０９】
図８は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第６の制御処理の一例を示すフローチャートであり、図２のノード削除処理部２０６によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、ノード削除処理部２０６として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。本処理は、ユーザのマウス操作等によりツリーコントロール中のノードに削除指示の入力がされた場合に行われることになる。
【０１１０】
ＣＰＵ１０１は、ツリーコントロールの選択ノード取得関数を呼び出して、削除対象として指定されたノードを取得する（ステップＳ８０１）。そして、ステップＳ８０１で取得したノードをもとにしてノードＩＤマップ１５０２から削除対象ノードに対応するＩＤを取得し、さらにそのＩＤを用いてノード情報マップ１５０１からＩＤに対応するノード情報１４００を取得する（ステップＳ８０２）。
【０１１１】
その後、ＣＰＵ１０１はステップＳ８０２で取得したノード情報１４００から階層レベル１４０３を取得する（ステップＳ８０３）。そして、ツリーコントロールの選択ノード取得関数を呼び出して、選択ノードを取得する（ステップＳ８０４）。
【０１１２】
そしてその後ＣＰＵ１０１は、ステップＳ８０４で取得した選択ノードに対応するＩＤはノードＩＤマップ１５００から取得し、ノード情報マップ１５０１から選択ノードに対応するノード情報１４００を取る（ステップＳ８０５）。そして、ステップＳ８０５で取得したノード情報１４００から階層レベル１４０３を取得する（ステップＳ８０６）。
【０１１３】
ステップＳ８０６の処理が終了後、ＣＰＵ１０１は、選択ノードを示す一時ノードに選択ノード、階層レベルを示す変数Ｎに選択ノードの階層レベルを代入する（ステップＳ８０７）。そして、その後、ステップＳ８０８の処理を行うことにより、選択ノードが削除対象ノード以下の階層に含まれるかどうかを判断することになる。
【０１１４】
まず、ＣＰＵ１０１はＮがステップＳ８０３で取得した削除対象ノードの階層レベルより大きいかどうか判断する（ステップＳ８０８）。そして、Ｎが削除対象ノードの階層レベルより大きいと判断した場合（ステップＳ８０８でＹＥＳ）、ＣＰＵ１０１はツリーコントロールの親ノード取得関数を呼び出して取得した一時ノードの親ノードを一時ノードに代入し、Nから1を引いて（ステップＳ８０９）、処理をステップＳ８０８に戻す。
【０１１５】
一方、ステップＳ８０８でNが削除対象ノードの階層レベルより大きくないと判断した場合（ステップＳ８０８でＮＯ）、ＣＰＵ１０１は一時ノードが削除対象ノードに一致するかどうか判断する（ステップＳ８１０）。
【０１１６】
ステップＳ８１０で一時ノードが削除対象ノードでないと判断した場合（ステップＳ８１０でＮＯ）、ＣＰＵ１０１はツリーコントロールのノード削除関数を呼び出して削除対象ノードを削除し（ステップＳ８１８）、処理を終了する。尚、この際に、削除した削除対象ノード及びその削除対象ノード以下の階層のノードに関するマップ情報をノードマップ情報１５０１、ノードＩＤマップ１５０２、及びノードマップ１５０３から削除するとともに、それらノードに関するノード情報１４００も削除することになる。また、ユーザのデフォルトデータに削除ノードが含まれている場合には、削除ノード以下のパス情報を削除する。
【０１１７】
ステップＳ８１０で一時ノードが削除対象ノードであると判断した場合（ステップＳ８１０でＹＥＳ）、ＣＰＵ１０１はツリーコントロールの親ノード取得関数を呼び出して取得した一時ノードの親ノードを一時ノードに代入し、Nから1を引く（ステップＳ８１１）。
【０１１８】
その後、ツリーコントロールのノード削除関数を呼び出して削除対象ノードを削除する（ステップＳ８１２）。尚、この際に、削除した削除対象ノード及びその削除対象ノード以下の階層のノードに関するマップ情報をノードマップ情報１５０１、ノードＩＤマップ１５０２、及びノードマップ１５０３から削除するとともに、それらノードに関するノード情報１４００も削除することになる。ユーザのデフォルトデータに削除ノードが含まれている場合には、削除ノード以下のパス情報を削除する。
【０１１９】
ステップＳ８１２の処理終了後、ノード選択関数を呼び出して一時ノードに設定されているノードをフォーカスノードに設定する（ステップＳ８１３）。そして、その後、ステップＳ８１３のフォーカスノード設定に応じてノード選択処理部２０３によるノード選択処理が行われる（ステップＳ８１４）。
【０１２０】
そして、ステップＳ８１４の処理が終了後、ＣＰＵ２０１は、スライダーコントロールの現在値にＮを設定する（ステップＳ８１５）。
【０１２１】
そして、その後、ステップＳ８１５のスライダー設定処理に応じて、スライダー設定処理部２０４によるスライダー設定処理が行われる（ステップＳ８１６）。
【０１２２】
以上が図２のノード削除処理部２０６によって行われる処理である。
【０１２３】
図９は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第７の制御処理の一例を示すフローチャートであり、図２のノード追加処理部２０７によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、ノード追加処理部２０７として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。本処理は、ユーザのマウス操作によりツリーコントロール中のノードに新たな子ノードの追加指示の入力がされた場合に行われることになる。
【０１２４】
まず、ＣＰＵ１０１は、ツリーコントロールの選択ノード取得関数を呼び出して、新たなノードの追加先となるノードを取得する（ステップＳ９０１）。その後、ノードＩＤマップ１５０２から追加先のノードに対応するＩＤを取得し、その後ノード情報マップ１５０１からＩＤに対応するノード情報１４００を取得する（ステップＳ９０２）。
【０１２５】
そしてその後、ＣＰＵ１０１は新たに作成するノードをノードデータ登録部１３００に登録する。追加するノードのデータは、たとえば画面からユーザからの入力指示を受け付けて設定することになる。このときＩＤは一意になるようにし、そのデータの親ＩＤはステップＳ９０２で取得したIDとする。そして、新たに追加したノードデータに基づいてＲＡＭ１０２上に当該ノードデータに対応するノード情報１４００作成し、そのＩＤ１４０１、親ＩＤ１４０２、階層レベル１４０３、名称１４０４及び属性１４０５を設定する（ステップＳ９０３）。そしてその後、ＣＰＵ１０１はノード情報マップ１５０１にＩＤと追加するノード情報の対応を登録する（ステップＳ９０４）。
【０１２６】
また、ＣＰＵ２０１はステップＳ９０２で取得したノード情報の子ノードＩＤリスト１４０８に、ステップＳ９０３で新たに作成したノードのＩＤを追加する（ステップＳ９０５）。そして、ツリーコントロールの子ノード追加関数を呼び出して、ステップＳ９０３で取得したノード情報から新たに作成したノードを、追加先ノードの子ノードとして追加する（ステップＳ９０６）。またノードＩＤマップ１５０２にノードとＩＤの対応を、またノードマップ１５０３にノード情報とノードの対応を登録する。
【０１２７】
以上が図２のノード追加処理部２０７によって行われる処理である。
【０１２８】
図１０は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第８の制御処理の一例を示すフローチャートであり、図２のノード格納処理部２０８によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、ノード格納処理部２０８として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。本処理は、ユーザのマウス等の入力部１０９操作によりツリーコントロール中の指定ノードの子ノードの格納指示の入力がされた場合に行われることになる。
【０１２９】
まずＣＰＵ１０１は、ツリーコントロールの格納対象ノード取得関数を呼び出して、子ノードを格納する対象となるノードを取得する（ステップＳ１００１）。そしてＣＰＵ１０１はステップＳ１００１で取得したノードをもとにしてノードＩＤマップ１５０２から子ノードの格納対象となるノードに対応するＩＤを取得し、ノード情報マップ１５０１からＩＤに対応するノード情報を取得する（ステップＳ１００２）。そしてその後、ＣＰＵ１０１はノード情報の子ノード展開フラグにNを代入する（ステップＳ１００３）。その後にＣＰＵ１０１は、ツリーコントロールの格納関数を呼び出して、格納するノードの子ノードを格納する（ステップＳ１００４）。
【０１３０】
以上が、図２のノード格納処理部２０８によって行われる処理である。
【０１３１】
図１１は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第９の制御処理の一例を示すフローチャートであり、図２のツリー再表示処理部２０９によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、ツリー再表示処理部２０９として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。本処理はスライダーコントロールの指定により、表示上のルートノードの変更要求が行われた際に行う処理である。
【０１３２】
ＣＰＵ１０１は、ステップＳ１１０１からステップＳ１１０５において再表示後にツリーコントロールの表示状態を再現するためにルートノードから選択ノードの経路情報を選択ノードからルートノードまでさかのぼって取得する処理を行う。
【０１３３】
まず、ステップＳ１１０１においてＣＰＵ１０１は、ツリーコントロールの選択ノード取得関数を呼び出して、選択ノードを取得する（ステップＳ１１０１）。そして、ＣＰＵ１０１は表示ノードを示す一時ノードにステップＳ１１０１で取得した選択ノードを代入する（ステップＳ１１０２）。そして、ＣＰＵ２０２はパス情報を格納する文字列であるＩＤ列の先頭に一時ノードのＩＤを挿入する（ステップＳ１１０３）。このとき区切り文字（例えば“／”)などを用いてそれぞれのＩＤを区切るよう文字列を生成する。
【０１３４】
ＣＰＵ１０１は一時ノードが指定ノードに一致するかどうか判断する（ステップＳ１１０４）。ステップＳ１１０４の判断処理で、ＣＰＵ１０１が、一時ノードが指定ノードに一致しないと判断した場合（ステップＳ１１０４でＮＯ）、ツリーコントロールの親ノード取得関数を呼び出して取得した一時ノードの親ノードを一時ノードに代入し（ステップＳ１１０５）、処理をステップＳ１１０５に戻す。
【０１３５】
ステップＳ１１０４の判断処理で、ＣＰＵ１０１が、一時ノードが指定ノードに一致すると判断した場合には（ステップＳ１１０４でＹＥＳ）、ＣＰＵ１０１は指定ノードのＩＤを取得し、ツリーコントロールのノードを全て削除する（ステップＳ１１０６）。これに伴い、ノードＩＤマップ１５０２とノードマップ１５０３の要素が不要になるため全て削除する。
【０１３６】
そしてその後、ステップＳ１１０６で取得したＩＤをもとにノード情報マップ１５０１から指定ノードのＩＤに対応するノード情報を取得する（ステップＳ１１０７）。
【０１３７】
ＣＰＵ１０１はツリーコントロールのノード追加関数を呼び出して、ステップＳ１１０７で取得したノード情報から作成したノード追加する。またノードＩＤマップ１５０２にノードとＩＤの対応を、ノードマップ１５０３にノード情報とノードの対応を登録する処理も併せて行う（ステップＳ１１０８）。
【０１３８】
そして、その後、ステップＳ１１０８で追加したノードに対して図２の子ノード再表示処理部２１０による子ノード再表示処理が行われる（ステップＳ１１０９）。この処理については、図１２を参照して後述する。
【０１３９】
ステップＳ１１０９の処理が終了後、ＣＰＵ１０１は、ステップＳ１１１０からステップＳ１１１８の処理を行うことで、ステップＳ１１０１からＳ１００５で取得したパス情報を元に、ツリーコントロールの再表示後の選択ノードを取得する処理を行う。通常、当該処理が呼び出される際の選択ノードとなる。
【０１４０】
まず、ＣＰＵ１０１は選択ノードを示す一時ノードに指定ノードを、ＩＤ列のＩＤの位置を示すＮに初期値として０を代入する（ステップＳ１１１０）。そして、ＩＤ列からＮ番目のＩＤを取得する（ステップＳ１１１１）。そしてその後、ステップＳ１１１２において、Ｎの値として１以上の値が設定されているかを判断し、Ｎに１より小さい値（すなわち０）が設定されている場合には（ステップＳ１１１２でＮＯ）処理をステップＳ１１１７に進める。
【０１４１】
一方、ステップＳ１１１２の判断処理において、Ｎが1以上であると判断した場合（ステップＳ１１１２でＹＥＳ）、ＣＰＵ１０１はノード情報マップ１５０１に当該ＩＤのデータが存在するかどうか判断する（ステップＳ１１１３）。
【０１４２】
ステップＳ１１１３の判断処理において、ＣＰＵ１０１が、ノード情報マップ１５０１に当該ＩＤのデータが存在しないと判断した場合（ステップＳ１１１３でＮＯ）、ＣＰＵ１０１は処理をステップＳ１１１９に進める。
【０１４３】
ステップＳ１１１３の判断処理において、ノード情報マップ１５０１に当該ＩＤのデータが存在すると判断した場合（ステップＳ１１１３でＹＥＳ）、ノード情報マップ１５０１から当該ＩＤに対応するノード情報を取得する（ステップＳ１１１４）。
【０１４４】
そして、ＣＰＵ１０１はノードマップ１５０３に当該ノード情報のデータが存在し、かつ親ＩＤが一時ノードのＩＤに一致するか否かを判断する（ステップＳ１１１５）。
【０１４５】
ステップＳ１１１５の判断処理において、データが存在しないか親ＩＤが一時ノードのＩＤに一致しないと判断した場合（ステップＳ１１１５でＮＯ）、ＣＰＵ１０１は処理をステップＳ１１１９に進める。
【０１４６】
・ステップＳ１１１５の判断処理において、データが存在し、かつ親ＩＤが一時ノードのＩＤに一致すると判断した場合（Ｓ１１１５でＹＥＳ）、ＣＰＵ１０１はノードマップ１５０３からノード情報に対応するノードを取得し、その取得したノードを一時ノードに代入する（ステップＳ１１１６）。
【０１４７】
ＣＰＵ１０１はその後、ステップＳ１１１１で取得したＩＤがＩＤ列の最後の要素かどうか判断する（ステップＳ１１１７）。
【０１４８】
・ステップＳ１１１７でＩＤが最後の要素でないと判断した場合（ステップＳ１１１７でＮＯ）、ＣＰＵ１０１はＮに１追加して（Ｎ＝Ｎ＋１）、処理をステップＳ１１１１に戻す。
【０１４９】
一方、ステップＳ１１１７の判断処理で、ＩＤが最後の要素であると判断した場合（Ｓ１１１７でＹＥＳ）、ＣＰＵ１０１はツリーコントロールのノード選択関数を呼び出し、一時ノードを選択することで、一時ノードとなっているノードにフォーカスを設定する（ステップＳ１１１９）。
【０１５０】
以上が図２のツリー再表示処理部２０９によって行われる処理の説明である。
【０１５１】
図１２は、本願発明において情報処理装置１００のＣＰＵ１０１によって行われる第１０の制御処理の一例を示すフローチャートであり、図２の子ノード再表示処理部２１０によって行われる処理の一例を示すものである。本処理を行う際に、ＣＰＵ１０１は、子ノード再表示処理部２１０として情報処理装置１００を機能させるためのプログラムを外部メモリ１１１からＲＡＭ１０２にロードし、そのプログラムの制御に基づいて以下に示す処理を行うこととなる。本処理は図１１のステップＳ１１０９に対応する。
【０１５２】
まず、ＣＰＵ１０１は、ノードＩＤマップ１５０２から指定ノードに対応するＩＤを取得し、ノード情報マップ１５０１からＩＤに対応するノード情報１４００を取得する（ステップＳ１２０１）。そして、ステップＳ１２０１で取得したノード情報１４００の子ノードロード済みフラグ１４０６にＹが設定されているかどうかを判断する（ステップＳ１２０２）。
【０１５３】
ステップＳ１２０２の判断処理で、子ノードロード済みフラグ１４０６にＹが設定されていないと判断した場合（ステップＳ１２０２でＮＯ）、ＣＰＵ１０１は本処理を終了する。
【０１５４】
一方、ステップＳ１２０２の判断処理で、子ノードロード済みフラグにＹが設定されていると判断した場合（Ｓ１２０２でＹＥＳ）、ＣＰＵ１０１はノード情報１４００の子ノードＩＤリスト１４０８を取得する（ステップＳ１２０３）。そしてその後、ノード情報マップ１５０１からステップＳ１２０３で取得した子ノードＩＤに対応するノード情報を取得し、ツリーコントロールの子ノード追加関数を呼び出して、ノード情報から作成したノードを指定ノードの子ノードとして追加する（ステップＳ１２０４）。またノードＩＤマップ１５０２にノードとＩＤの対応を、またノードマップ１５０３にノード情報１４００とノードの対応を登録する。
【０１５５】
そして、その後ステップＳ１２０１で取得したノード情報１４００中の子ノード展開フラグ１４０７にＹが設定されているかを判断する（ステップＳ１２０５）。この判断処理の結果、子ノードフラグ１４０７にＹが設定されていないと判断した場合には、ＣＰＵ１０１は、本処理を終了する。
【０１５６】
一方、ステップＳ１２０５で子ノード展開フラグがＹであると判断した場合には（ステップＳ１２０５）、ＣＰＵ１０１はツリーコントロールのノード展開関数を呼び出して、指定ノードを展開する（ステップＳ１２０６）。
【０１５７】
その後、ＣＰＵ１０１は子ノードの数を示すカウンタ変数Ｎを示す変数Nに1を代入し（ステップＳ１２０７）、全ての子ノードに対してステップＳ１２０８からステップＳ１２１１の処理を行うことになる。
【０１５８】
ＣＰＵ１０１は再表示対象ノードを示す一時ノードにステップＳ１２０４で追加した子ノードのうちN番目の子ノードを代入する（ステップＳ１２０８）。
【０１５９】
ＣＰＵ１０１は一時ノードに対して図１２の子ノード再表示処理を実行する（ステップＳ１２０９）。
【０１６０】
ＣＰＵ１０１はＮ番目の子ノードがステップＳ１２０４で追加した子ノードの最後の子ノードかどうか判断する（Ｓ１２１０）。ステップＳ１２１０で、Ｎ番目の子ノードが最後の子ノードでないと判断した場合（ステップＳ１２１０でＮＯ）、ＣＰＵ１０１はＮに1を加え（Ｎ＝Ｎ＋１）（Ｓ１２１１）、処理をステップＳ１２０８に戻す。
【０１６１】
ステップＳ１２１０でＮ番目の子ノードが最後の子ノードであると判断した場合（ステップＳ１２１０でＹＥＳ）、ＣＰＵ１０１は本処理を終了する。
【０１６２】
以上が、図２の子ノード再表示処理部２１０によって行われる処理の一例である。
【０１６３】
以下、図２３に示すメモリマップを参照して本願発明に係る情報処理装置１００で読み取り可能なデータ処理プログラムの構成について説明する。
【０１６４】
図１６は、本願発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１６５】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１６６】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１６７】
本実施形態における図３乃至図１２に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本願発明は適用されるものである。
【０１６８】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本願発明の目的が達成されることは言うまでもない。
【０１６９】
この場合、記録媒体から読み出されたプログラムコード自体が本願発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本願発明を構成することになる。
【０１７０】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１７１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７３】
また、本願発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本願発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本願発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本願発明の効果を享受することが可能となる。
【０１７４】
さらに、本願発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本願発明の効果を享受することが可能となる。
【０１７５】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本願発明に含まれるものである。
【図面の簡単な説明】
【０１７６】
【図１】本願発明の情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】本願発明の情報処理装置の機能構成の一例を示すブロック図である。
【図３】本願発明の情報処理装置により行われるツリー初期表示処理の一例を示すフローチャートである。
【図４】図３のステップＳ３１６のノード展開処理の詳細を示すフローチャートである。
【図５】図３のステップＳ３１８のノード選択処理の詳細を示すフローチャートである。
【図６】図３のステップＳ３２０及び図７のステップＳ７１３のスライダー設定処理の詳細を示すフローチャートである。
【図７】本願発明の情報処理装置により行われるスライダー操作時処理の一例を示すフローチャートである。
【図８】本願発明の情報処理装置により行われるノード削除処理の一例を示すフローチャートである。
【図９】本願発明の情報処理装置により行われるノード追加処理の一例を示すフローチャートである。
【図１０】本願発明の情報処理装置により行われるノード格納処理の一例を示すフローチャートである。
【図１１】図６のステップＳ６０８のツリー再表示処理の詳細を示すフローチャートである。
【図１２】図１１のステップＳ１１０９の子ノード再表示処理の詳細を示すフローチャートである。
【図１３】本願発明におけるノードデータのデータ構造の一例を示す図である。
【図１４】本願発明におけるノード情報のデータ構造の一例を示す図である。
【図１５】本願発明におけるデータマップの対応関係を示す図である。
【図１６】本願発明におけるユーザのデフォルトノード設定データの一例を示す図である。
【図１７】本願発明のツリーコントロール表示の概要を示す図である。
【図１８】本願発明のツリーコントロール表示の概要を示す図である。
【図１９】本願発明のツリーコントロール表示の概要を示す図である。
【図２０】本願発明のツリーコントロール表示の概要を示す図である。
【図２１】図３のツリー初期表示処理で情報処理装置の表示部に表示されるツリービューの一例を示す図である。
【図２２】図７のスライダー操作時処理におけるツリーコントロールの表示制御の一例を示す図である。
【図２３】本願発明に係る情報処理装置１００で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１７７】
１０１    ＣＰＵ
１０２    ＲＡＭ
１０３    ＲＯＭ
１０４    システムバス
１０５    入力コントローラ
１０６    ビデオコントローラ
１０７    メモリコントローラ
１０８    通信Ｉ／Ｆコントローラ
１０９    入力部
１１０    ディスプレイ装置
１１１    外部メモリ
【図１】
2010146439.tif 000003
【図２】
2010146439.tif 000004
【図３】
2010146439.tif 000005
【図４】
2010146439.tif 000006
【図５】
2010146439.tif 000007
【図６】
2010146439.tif 000008
【図７】
2010146439.tif 000009
【図８】
2010146439.tif 000010
【図９】
2010146439.tif 000011
【図１０】
2010146439.tif 000012
【図１１】
2010146439.tif 000013
【図１２】
2010146439.tif 000014
【図１３】
2010146439.tif 000015
【図１４】
2010146439.tif 000016
【図１５】
2010146439.tif 000017
【図１６】
2010146439.tif 000018
【図１７】
2010146439.tif 000019
【図１８】
2010146439.tif 000020
【図１９】
2010146439.tif 000021
【図２０】
2010146439.tif 000022
【図２１】
2010146439.tif 000023
【図２２】
2010146439.tif 000024
【図２３】
2010146439.tif 000025