(57)【特許請求の範囲】
【請求項１】
複数の要素が所定の規則に従ってソートされたリストを表示するためのプログラムであって、
前記リストが所定の表示領域に表示されているときに前記所定の規則に従って前記リストに追加要素が追加される場合、ユーザの操作により前記所定の表示領域において特定される位置と、前記リストにおいて前記追加要素が挿入される位置とに基づき、前記複数の要素の一部であり且つ表示位置の変更対象である１または複数の第１要素を決定する決定工程と、
前記追加要素の追加が行われ、且つ前記決定工程において決定された前記１または複数の第１要素の表示位置が変更され、且つ前記複数の要素の内の前記１または複数の第１要素とは異なる複数の第２要素の表示位置が変更されていない前記リストを、前記所定の表示領域に表示させる表示制御工程と、
をコンピュータに実行させるプログラム。 
【請求項２】
前記決定工程では、前記１または複数の第１要素として、前記リストにおけるスライドの対象となる１または複数の要素を決定し、且つ前記リストにおけるスライドの方向を決定し、
前記表示制御工程では、前記所定の表示領域において、前記決定工程において前記スライドの対象として決定された前記１または複数の要素を前記決定工程において決定された方向へスライドさせ、前記複数の第２要素をスライドさせないことで、前記リストを前記表示領域に表示させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記所定の表示領域においてユーザの操作により特定される位置に応じて、前記複数の要素から基準要素を特定する特定工程を前記コンピュータに実行させ、
前記決定工程では、前記リストにおいて前記基準要素から前記追加要素が挿入される位置に向かう方向を前記スライドの方向として決定し、前記スライドの方向において前記追加要素が挿入される位置よりも前記基準要素から離れた位置に表示されている１または複数の要素を、前記スライドの対象となる１または複数の要素として決定することを特徴とする請求項２に記載のプログラム。
【請求項４】
前記決定工程ではさらに、前記リストにおいて、前記基準要素の位置を基準としたときの、前記追加要素が挿入される位置が存在する一方の側と反対側に配置されている要素を、前記スライドの対象となる要素として決定しないことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記追加要素が挿入される位置は、前記所定の規則と、前記追加要素が保持する情報とに基づき特定されることを特徴とする請求項１乃至４のいずれか１項に記載のプログラム。 
【請求項６】
ユーザの操作により特定される前記位置は、前記ユーザの操作によって画面上を動くポインタカーソルを用いて特定される位置であることを特徴とする請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記表示制御工程では、前記ポインタカーソルが前記表示領域の周辺に該表示領域を囲むように定義される領域に含まれることを条件に、前記複数の第２要素の表示位置が変更されていない前記リストを前記所定の表示領域に表示させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記表示制御工程では、前記追加要素の追加により当該追加要素が前記所定の表示領域に表示されることを条件に、前記複数の第２要素の表示位置が変更されていない前記リストを前記所定の表示領域に表示させることを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。 
【請求項９】
前記決定工程ではさらに、前記リストが所定の表示領域に表示されているときに前記リストから削除要素の削除が行われる場合、前記所定の表示領域においてユーザの操作により特定される前記位置と、前記リストにおける前記削除要素の位置とに基づき、前記１または複数の第１要素を決定し、 
前記表示制御工程ではさらに、前記削除要素の削除が行われ、且つ前記決定工程において決定された前記１または複数の第１要素の表示位置が変更され、且つ前記複数の要素の内の前記１または複数の第１要素とは異なる複数の第２要素の表示位置が変更されていない前記リストを、前記所定の表示領域に表示させることを特徴とする請求項１乃至８のいずれか１項に記載のプログラム。 
【請求項１０】
ネットワーク上のデバイスを検索する検索工程を前記コンピュータにさらに実行させ、
前記複数の要素は、前記検索工程において検索されたデバイスを示す複数の表示項目であり、
前記複数の表示項目が並んだリストが表示されているときに、前記検索工程において新たに検索されたデバイスを示す表示項目が、前記追加要素として追加されることを特徴とする請求項１乃至９のいずれか１項に記載のプログラム。
【請求項１１】
前記検索工程は、プリンタを検索することを特徴とする請求項１０に記載のプログラム。
【請求項１２】
複数の要素が所定の規則に従ってソートされたリストを表示するための装置であって、
前記リストが所定の表示領域に表示されているときに前記所定の規則に従って前記リストに追加要素が追加される場合、ユーザの操作により前記所定の表示領域において特定される位置と、前記リストにおいて前記追加要素が挿入される位置とに基づき、前記複数の要素の一部であり且つ表示位置の変更対象である１または複数の第１要素を決定する決定手段と、
前記追加要素の追加が行われ、且つ前記決定手段により決定された前記１または複数の第１要素の表示位置が変更され、且つ前記複数の要素の内の前記１または複数の第１要素とは異なる複数の第２要素の表示位置が変更されていない前記リストを、前記所定の表示領域に表示させる表示制御手段と、
を有することを特徴とする装置。
【請求項１３】
複数の要素が所定の規則に従ってソートされたリストを表示するための方法であって、
前記リストが所定の表示領域に表示されているときに前記所定の規則に従って前記リストに追加要素が追加される場合、ユーザの操作により前記所定の表示領域において特定される位置と、前記リストにおいて前記追加要素が挿入される位置とに基づき、前記複数の要素の一部であり且つ表示位置の変更対象である１または複数の第１要素を決定する決定工程と、
前記追加要素の追加が行われ、且つ前記決定工程において決定された前記１または複数の第１要素の表示位置が変更され、且つ前記複数の要素の内の前記１または複数の第１要素とは異なる複数の第２要素の表示位置が変更されていない前記リストを、前記所定の表示領域に表示させる表示制御工程と、
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の規則に従ってソートされた提示対象の複数の要素のリストを表示するための技術に関する。
【背景技術】
【０００２】
リスト型ユーザインターフェース（以下ＵＩ）とは、提示すべき要素（以下、提示対象の要素）をリスト状に並べて表示することでユーザへ提示するための手段であり、一般的には所定の規則に従ってソートされた要素をユーザに提示する際に用いられる。このようなリスト型ＵＩにおいて、要素がリストに追加されるときに、一部の要素の表示位置を固定する技術がある。
【０００３】
特許文献１には、所定順序に並んだ複数のサムネイルから所定の抽出間隔で抽出されたサムネイルの一覧表示を行うことが記載されている。また抽出間隔が縮小されてサムネイルが一覧表示に追加されること、また抽出間隔が拡大されてサムネイルが一覧表示から削除されることが記載されている。さらに、一覧表示におけるサムネイルの追加・拡大において、表示されている複数のサムネイルのうちの基準となるサムネイルの表示位置を変えずに、その他のサムネイルの表示位置を変えて一覧表示が行われることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、リストにおいて基準となる要素以外の全ての要素の表示位置が変更される。つまり、リストにおける要素の追加が起こる場合、その追加の位置によっては表示位置を変更する必要のない要素についても、表示位置が変更されてしまう。
【０００６】
そこで本発明は、リストへの要素の追加において、表示位置の変更対象の要素の表示位置が変更され、表示位置を変更する必要のない要素の表示位置が変更されていないリストを表示させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、複数の要素が所定の規則に従ってソートされたリストを表示するためのプログラムであって、前記リストが所定の表示領域に表示されているときに前記所定の規則に従って前記リストに追加要素が追加される場合、ユーザの操作により前記所定の表示領域において特定される位置と、前記リストにおいて前記追加要素が挿入される位置とに基づき、前記複数の要素の一部であり且つ表示位置の変更対象である１または複数の第１要素を決定する決定工程と、前記追加要素の追加が行われ、且つ前記決定工程において決定された前記１または複数の第１要素の表示位置が変更され、且つ前記複数の要素の内の前記１または複数の第１要素とは異なる複数の第２要素の表示位置が変更されていない前記リストを、前記所定の表示領域に表示させる表示制御工程と、をコンピュータに実行させるプログラムである。
【発明の効果】
【０００８】
本発明によれば、リストへの要素の追加において、表示位置の変更対象の要素の表示位置が変更され、表示位置を変更する必要のない要素の表示位置が変更されていないリストを表示させることができる。
【図面の簡単な説明】
【０００９】
【図１】一般的なリスト型ＵＩの概念図
【図２】実施例１に係るコンピュータ装置の構造を示すブロック図
【図３】実施例１に係るリストの更新態様を説明する図
【図４】実施例１に係る基準要素を導出する手法を説明する図
【図５】実施例１に係るリスト型ＵＩで提示する要素を追加する際に実行される処理のフローチャート
【図６】実施例１に係るリスト型ＵＩで提示する要素を削除する際に実行される処理のフローチャート
【図７】実施例２に係る基準要素を導出する手法を説明する図
【図８】実施例３に係る基準要素を導出する手法を説明する図
【図９】実施例４に係るリストの更新態様を説明する図
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また、以下で説明されている特徴の組み合わせの全てが本発明の課題の解決に必須のものとは限らない。
【００１１】
図１は、本実施形態を適用可能な一般的なリスト型ＵＩの一例を示す概念図であり、リスト型ＵＩにより８個の表示対象（提示対象ともいう）の要素１０１（ａ〜ｈ）が提示される場合を表している。提示対象の要素１０１は夫々、１つ以上の情報を保持し、該保持する情報の一部または全部が、リスト型ＵＩ上に表示される。本例では、各要素が保持するアルファベット文字が表示されている。またこのとき、リスト型ＵＩが提示する要素は、各要素が保持する情報に従ってソートされ、所定方向に並んで表示される。本例では、各要素は、アルファベット順に（昇順に）上から下に向かって並んで表示されている。また、リスト型ＵＩを構成する表示領域１０２が同時に表示できる要素の数は、最大で６個である。従って、表示領域１０２の外にある提示対象の要素ｇ、ｈをユーザは閲覧できず、該要素に対する選択などの操作も実行することができない。ただし、表示領域１０２の外に提示対象の要素１０４が有る場合、スクロール可能である事を示すスクロールバー１０５が表示されても良い。本例では、ユーザがスクロールバー１０５を下にスライドさせると、表示領域１０２の外にある提示対象の要素１０４（ｇ、ｈ）が、表示領域１０２内にスライドするので、ユーザは要素ｇ、ｈを閲覧できるようになる。
【００１２】
下記の実施例では、図１を用いて説明したような、スライドバーと連動させること等により提示対象の要素が上下に動くことが可能であり、かつ、保持する情報に従って昇順にソートされた要素が１方向に並んで表示されるリスト型ＵＩを用いて説明している。しかし、本発明に係るリスト更新に関する技術を適用可能なＵＩは、このようなＵＩに限定されない。表示領域上に予め定められた規則に従い複数の要素を配置することでユーザに情報を提示する任意のリスト型ＵＩに対し、本発明を適用することが可能である。
【００１３】
＜実施例１＞
（コンピュータ装置の構成）
図２は、本実施例を実装することができるコンピュータ装置の一例を示すブロック図である。コンピュータ装置２０１は、ＣＰＵ２０２と、システムメモリ２０３と、入力装置２０８と、出力装置２０９と、通信装置２１０と、から構成される。コンピュータ装置２０１は、サーバが提供するサービスのクライアントたるクライアント装置であって良い。コンピュータ装置２０１は、一般的には、少なくとも１つのＣＰＵ２０２と、少なくとも１つのシステムメモリ２０３と、を有する。ただし、コンピュータ装置２０１は、協働してプログラムを実行する複数のＣＰＵを有しても良い。ＣＰＵ２０２は、ＲＡＭをワークメモリとして、ＲＯＭ、ハードディスクドライブ、汎用ドライブにマウントされた各種記録メディアなどに格納されたオペレーティングシステム（以下ＯＳ）や各種プログラムを実行することにより、各構成要素を統括的に制御する。なお、ＣＰＵ２０２が実行するプログラムには、後述する本実施例に係る処理を実行するためのプログラムが含まれる。システムメモリ２０３は、揮発性（例えば、ＲＡＭ）メモリと不揮発性メモリ（例えば、ＲＯＭ、フラッシュメモリなど）との何れか、或いは、揮発性メモリと不揮発性メモリとの両方を組み合わせたものであって良い。システムメモリ２０３には、ＯＳ２０４と、ＯＳ２０４上で動作するアプリケーション２０５と、アプリケーション２０５で用いられるビューモジュール２０６と、が格納されている。
【００１４】
入力装置２０８は、ユーザがコンピュータ装置２０１に指示を与えたりデータを入力したりするための装置であり、例えばキーボード、マウス、ペン、タッチパネルなどを含む。出力装置２０９は、コンピュータ装置２０１の状態を示す情報などをユーザに提示するための装置であり、アプリケーション２０５の画面を表示するためのディスプレイ（例えばＣＲＴや液晶ディスプレイなど）を含む。本実施例では、ＣＰＵ２０２によりアプリケーション２０５が実行されると、アプリケーション２０５の画面としてリスト型ＵＩが出力装置２０９に表示され、当該画面を見たユーザは、入力装置２０８を用いてリスト型ＵＩを介した入力を実行する。このとき、入力装置２０８によって入力されたユーザの操作に応じて動作する、ポインタカーソルやユーザが画面上のどの部分に注目しているかを示す注目領域などが、出力装置２０９に表示されても良い。通信装置２１０は、ネットワークを介してコンピュータ装置２０１の外部の装置（例えばサーバやプリンタなど）との間でデータ通信を行う。
【００１５】
またコンピュータ装置２０１は、電話機能やメール機能を有するスマートフォンでもよい。コンピュータ装置２０１がスマートフォンの場合、入力装置２０８はタッチパネルを有し、表示領域１０２はタッチパネル上に設けられる。この場合、例えば図１に示した表示画面がタッチパネル上に表示され、ユーザがタッチパネル上で図１における下から上の方向にドラッグ操作またはフリック操作を行うと、要素１０４（ｇ、ｈ）がタッチパネル上に表示される。
【００１６】
（リストの更新態様）
図３は、本実施例に係るリストの更新態様の例を示す図である。なお、説明のために図中に示すように座標軸を設定する。図３（ａ）は、出力装置２０９に表示されているポインタカーソル３０１と、リスト型ＵＩと、を表している。本例では、リスト型ＵＩの表示領域３０２内において最大で８個の要素を表示可能としている。また、表示領域３０２内に表示される要素３０３は、各要素が持つ情報に基づき整列して表示されており、具体的には、アルファベット順に（昇順に）上から下に向かって並んで表示されている。このとき、更新によって要素ｃ又は要素ｇが、リストで提示する対象（提示対象）に新規に追加されようとしている（追加要素３０４、３０５）。
【００１７】
図３（ｂ）は、更新によって要素ｃが提示対象として新規に追加された結果、リスト型ＵＩの表示領域３０２に要素ｃが挿入され、要素ａが見えなくなった場合を表している。本例では、リスト型ＵＩが提示する要素は、各要素が持つ情報に従いアルファベット順にソートされて表示されており、要素ｃは、要素ｂと要素ｄとの間に挿入されることから、表示領域３０２において要素ｃが挿入される位置を導出することができる。また本例では、画面上にてポインタカーソル３０１が指していることからユーザとの関連性が高いと推測される要素ｅを基準要素３０８とする。ここで基準要素とは、要素をどのように挿入、又は、削除するかを決定する際に考慮される基準として用いられる要素である。ユーザがポインタカーソルを合わせた要素は、ユーザが選択しようとしている要素である可能性が高いことから、画面上で無闇に動かすことは好ましくない。そこで本実施例では、ポインタカーソルが指している要素ｅを、位置が固定される基準要素として用いることで、ユーザビリティの低下を防止する。
【００１８】
基準要素３０８の導出後、追加対象である要素ｃの位置より下部となる複数の要素（基準要素３０８を含む。下部要素ともいう。）３０９（ｄ、ｅ、ｆ、ｈ、ｉ、ｊ）が、表示位置を変更させない要素として特定される。そして下部要素３０９の表示位置が表示領域３０２上にて固定される。そして、リスト型ＵＩ上で該下部要素よりも上部の要素（上部要素ともいう）３１０（ａ、ｂ）が、表示位置を変更する又は表示されない要素として特定される。そして、該要素が上方向（＋ｙ方向）へ要素１個分スライドされ、空いた位置に要素ｃが挿入される。その際、最大で８個の要素を表示可能な表示領域３０２の外へ出た要素ａはユーザから見えなくなる。
【００１９】
図３（ｃ）は、更新によって要素ｇが提示対象として新規に追加された結果、リスト型ＵＩの表示領域３０２に要素ｇが挿入され、要素ｊが見えなくなった場合を表している。本例では、リスト型ＵＩが提示する要素は、各要素が持つ情報に従いアルファベット順にソートされて表示されており、要素ｇは、要素ｆと要素ｈとの間に挿入されることから、表示領域３０２において要素ｇが挿入される位置を導出することができる。また本例では、画面上にてポインタカーソル３０１が指している要素ｅを基準要素３０８とし、追加対象である要素ｇの位置より上部となる複数の要素（基準要素３０８を含む上部要素）３１１（ａ、ｂ、ｄ、ｅ、ｆ）の位置を表示領域３０２上にて固定する。そして、リスト型ＵＩ上で該上部要素よりも下部の要素３１２（ｈ〜ｊ）を下方向（−ｙ方向）へ要素１個分スライドさせ、空いた位置に要素ｇを挿入する。その際、最大で８個の要素を表示可能な表示領域３０２の外へ出た要素ｊはユーザから見えなくなる。
【００２０】
なお、図３に示した例では、画面上に表示されているポインタカーソル３０１を用いて基準要素３０８を求めた。しかし、基準要素を求めるために使用できるものはポインタカーソルに限定されない。ユーザの操作によって動くポインタやその他の任意のオブジェクト等により定義可能な位置に基づき基準要素を導出して良い。入力装置２０８を通じて入力されるユーザからの操作により出力装置２０９上に位置を定義できる任意のものを、基準要素を求めるために用いて良く、これは出力装置２０９に表示されていなくても良い。例えば入力装置２０８がタッチパネルの場合、ユーザによりタッチされた要素が基準要素となってもよい。
【００２１】
（基準要素の導出手法）
図４は、基準要素を導出する際に基準要素の候補が複数導出されるような場合に、該複数の候補のうちの何れを基準候補として選択するかを説明するための図である。なお、説明のために図中に示すように座標軸を設定する。図示するように本例では、ポインタカーソル４０１の指示部分から距離が最も近い要素は、要素eと要素fとの２つである。従って、ポインタカーソル４０１の指示部分に最も近い要素を基準要素とすると、要素e及び要素fが、候補として導出されることとなる（基準要素候補４０２、４０３）。このような場合、表示領域４０４の枠線と、要素４０５が並んでいる方向（ｙ軸方向）に沿った直線４０６とが交差する交点４０７を求め、交点４０７から最も近い基準要素の候補を選択することで、最終的に１個の基準要素を導出できる。なお、表示領域の枠線と要素が並んでいる方向に沿った直線との交点が複数存在する場合は、その中の任意の１点を用いて良い。図示するように本例でも、当該交点は２つ存在するが、２つの中の上側の交点４０７を用いたため、基準要素は、要素ｆではなく要素ｅとなる。
【００２２】
（要素追加処理）
図５は、本実施例に係るリスト型ＵＩで提示する要素を追加する際に実行される処理の１例を示すフローチャートである。本処理は、コンピュータ装置２０１のＣＰＵ２０２がプログラムを実行することにより実現される。また本処理は、ユーザの意思とは関係無く、リストが動的に更新される際など必要に応じて所定のタイミングで開始する。
【００２３】
先ずステップＳ５０１（以下、ステップＳ５０１をＳ５０１と略記し、他のステップについても同様に略記する。）において、現在リスト型ＵＩの表示領域に表示されている要素が１個以上あるか否かを判定する。該判定の結果、表示領域に表示されている要素が１個以上ある場合、Ｓ５０２に進む。一方、そうでない場合（表示領域に表示されている要素が０個の場合）、Ｓ５０８に進む。
【００２４】
Ｓ５０２において、基準要素を導出する。上述の通り基準要素とは、要素をどのように追加するかを決定する際に基準となる要素であり、要素追加処理では、基準要素の位置は、画面上すなわち表示領域において固定される。Ｓ５０３において、Ｓ５０２で導出した基準要素の位置（Ｐｃとする）を取得する。Ｓ５０４において、ソート条件と新規に追加される要素が保持する情報とに基づき、追加要素が挿入される位置（Ｐｎとする）を取得する。
【００２５】
Ｓ５０５において、Ｓ５０３で取得した位置ＰｃとＳ５０４で取得した位置Ｐｎとを比較し、基準要素が新規に追加される要素よりリスト上で上となるか（Ｐｃ＞Ｐｎ）否かを判定する。なおここでは、図３及び図４で示したようにｙ軸を設定し、Ｐｃ及びＰｎは夫々１つのｙ値であり、ｙ値の大きい要素はｙ値の小さい要素より高い位置にあるという前提で説明している。Ｓ５０５の判定の結果、基準要素が新規に追加される要素より上となる場合（Ｐｃ＞Ｐｎの場合）、Ｓ５０６に進む。一方、そうでない場合（Ｐｃ＜Ｐｎの場合）、Ｓ５０７に進む。
【００２６】
Ｓ５０６において、新規に追加される要素よりもリスト上で下部に表示されることとなる要素を下方向（−ｙ方向）にスライドさせ、空いた位置に新規要素を挿入する。Ｓ５０７において、新規に追加される要素よりもリスト上で上部に表示されることとなる要素を上方向（＋ｙ方向）にスライドさせ、空いた位置に新規要素を挿入する。Ｓ５０８において、要素が何も表示されていない表示領域に、新規要素（１つ目）を追加する。以上が、要素追加処理である。
【００２７】
（要素削除処理）
図６は、本実施例に係るリスト型ＵＩで提示中の要素を削除する際に実行される処理の１例を示すフローチャートである。本処理は、コンピュータ装置２０１のＣＰＵ２０２がプログラムを実行することにより実現される。また本処理は、ユーザの意思とは関係無く、リストが動的に更新される際など必要に応じて所定のタイミングで開始する。ただし本処理は、提示対象だった要素を削除する処理であることから、リスト型ＵＩにおいて少なくとも１個の要素が表示されていることが前提となる。
【００２８】
先ずＳ６０１において、現在リスト型ＵＩの表示領域に表示されている要素が２個以上あるか否かを判定する。該判定の結果、表示領域に表示されている要素が２個以上ある場合、Ｓ６０２に進む。一方、そうでない場合（表示領域に表示されている要素が１個の場合）、Ｓ６０８に進む。
【００２９】
Ｓ６０２において、基準要素を導出する。上述の通り基準要素とは、要素をどのように削除するかを決定する際に基準となる要素である。Ｓ６０３において、Ｓ６０２で導出した基準要素の位置（Ｐｃとする）を取得する。Ｓ６０４において、削除対象の削除要素（以降、削除対象要素ともいう）の位置（Ｐｎとする）を取得する。
【００３０】
Ｓ６０５において、Ｓ６０３で取得した位置ＰｃとＳ６０４で取得した位置Ｐｎとを比較し、基準要素の位置がリスト上で削除対象要素の位置と同一または削除対象要素の位置より上であるか（Ｐｃ≧Ｐｎ）否かを判定する。なおここでも上述の要素追加処理と同様、図３及び図４で示したようにｙ軸を設定し、Ｐｃ及びＰｎは夫々１つのｙ値であり、ｙ値の大きい要素はｙ値の小さい要素より高い位置にあるという前提で説明している。Ｓ６０５の判定の結果、基準要素の位置が削除対象要素の位置と同一または削除対象要素の位置より上である場合（Ｐｃ≧Ｐｎの場合）、Ｓ６０６に進む。一方、そうでない場合（Ｐｃ＜Ｐｎの場合）、Ｓ６０７に進む。
【００３１】
Ｓ６０６において、位置Ｐｎにある削除対象要素を削除し、リスト上で位置Ｐｎより下部に表示されていた要素を上方向（＋ｙ方向）にスライドさせる。Ｓ６０７において、位置Ｐｎにある削除対象要素を削除し、リスト上で位置Ｐｎより上部に表示されていた要素を下方向（−ｙ方向）にスライドさせる。Ｓ６０８において、要素が１個だけ表示されている表示領域から、削除対象要素を削除する。以上が、要素削除処理である。
【００３２】
図５、図６に示す処理により、リストに含まれている複数の要素の内の表示位置の変更対象であり且つ基準要素でない要素として、リストにおけるスライドの対象となる要素とスライドの方向が決定される。
【００３３】
具体的には、リストにおいて基準要素から追加要素が挿入される位置または前記削除要素の位置に向かう方向がスライドの方向として決定される。またスライドの方向において追加要素が挿入される位置または削除要素の位置よりも基準要素から離れた位置に表示されている要素がスライドの対象となる要素として決定される。
【００３４】
一方で、スライドの方向において追加要素が挿入される位置または削除要素の位置と基準要素の位置との間に表示されている要素は、スライドの対象となる要素として決定されない。またリストにおいて、基準要素の位置を基準としたときの、追加要素が挿入される位置または削除要素の位置が存在する一方の側と反対側に配置されている要素も、スライドの対象となる要素として決定されない。
【００３５】
よって、例えばリストが表示される所定の表示領域の上端部または下端部の領域において要素の追加、削除が行われる場合、その端部付近の要素以外の要素については表示位置が変更されない。そのため、例えばユーザが所定の表示領域に表示中の要素に注目しているときに要素の追加または削除が行われたとしても、注目要素の表示位置が変更されることを低減することができる。
【００３６】
＜実施例２＞
実施例１では、ユーザの操作に応じて動くポインタカーソル等のオブジェクトにより定義される位置に基づき基準要素を決定した。本実施例では、要素が保持する情報に基づき基準要素を決定する。なお、以下の説明において、実施例１と共通する内容については、説明を簡略化または省略する。
【００３７】
図７は、本実施例に係る基準要素の導出手法を説明するための図であり、ワイヤレスネットワークを選択する際に表示されるリスト型ＵＩの一例を示す概念図である。図示するように本例では、提示対象の要素７０１は夫々、ワイヤレスネットワークの名称と電波強度７０３との２つの情報を保持している。また、要素７０１は、各要素が保持する名称に従い昇順にソートされて表示領域７０４に表示されており、更新によって提示対象に要素ＷＮｅｔｗｏｒｋＣが新規に追加されようとしている（追加要素７０２）。このとき、追加要素７０２たる要素ＷＮｅｔｗｏｒｋＣは、要素ＷＮｅｔｗｏｒｋＢと要素ＷＮｅｔｗｏｒｋＤとの間に挿入される事となる。
【００３８】
上述の通り、リスト型ＵＩにて提示される要素は夫々、電波強度７０３という情報を保持する。電波強度とは、どれ位の電波が届いているかを示しており、値が大きいほど電波が強い。本実施例では、電波強度７０３を用いて基準要素を導出する。具体的には、ユーザは、電波強度７０３の値が大きいワイヤレスネットワークを望むことが想定されることから、表示領域７０４に表示されている要素の中で最大の電波強度を有するＷＮｅｔｗｏｒｋＥを基準要素７０５とする。なお、実施例１と同様、要素を追加する処理では、基準要素７０５の位置は、表示領域７０４において固定される。
【００３９】
基準要素７０５導出以降の、要素ＷＮｅｔｗｏｒｋＣを新規追加する態様は実施例１と同様である。即ち、要素ＷＮｅｔｗｏｒｋＣより下部となる要素（基準要素７０５を含む）の位置を固定する。次いで、要素ＷＮｅｔｗｏｒｋＣより上部となる要素７０６（ＷＮｅｔｗｏｒｋＡ、ＷＮｅｔｗｏｒｋＢ）を上方向へ要素１個分スライドさせる。次いで、空いた位置に要素ＷＮｅｔｗｏｒｋＣを挿入する。なお、追加要素がリスト上にて基準要素７０５よりも下に挿入される場合は、実施例１と同様、追加要素より下部となる要素を下方向へスライドさせ、空いた位置に追加要素を挿入する。
【００４０】
なお上述の説明では、提示対象の各要素が２つの情報を保持する場合について説明したが、３つ以上の情報を保持しても良い。このような場合、基準要素は、各要素が保持する３つ以上の情報の中の任意の１つを用いて導出される。また、基準要素を導出する際に用いられる情報はユーザに認知可能に提示されても良いし、提示されなくても良い。
【００４１】
＜実施例３＞
実施例１では、ユーザの操作に応じて動くポインタカーソルの位置に基づき基準要素を導出し、実施例２では、要素が保持する情報に基づき基準要素を導出した。本実施例では、リスト型ＵＩの表示領域に応じて設ける基準線に基づき基準要素を導出する。
【００４２】
図８は、本実施例に係る基準要素の導出手法を説明するための図である。なお、説明のために図中に示すように座標軸を設定する。本例では、リスト型ＵＩの表示領域８０２において最大で８個の要素を表示可能としている。また、表示領域８０２内に表示される要素８０１は、アルファベット順に（昇順に）上から下に向かって並んで表示されている。図中に破線で示すように本例では、要素８０１が並んでいる方向（ｙ軸方向）に垂直な線（以下、基準線）８０３を設け、基準線８０３を用いて基準要素８０４を導出する。具体的には、基準線８０３から最も近い要素を基準要素８０４とする。仮に図８に示す状態で更新が行われた場合、基準線８０３と最も近い要素ｆが基準要素８０４となる。
【００４３】
なお、基準要素を求めるために用いる基準線として、表示領域８０２内にて要素８０１が並ぶ方向に垂直な線を任意の位置に設定する事が可能である。つまり、基準線が有するｙ値は、任意の１値で良い。また、基準線は、出力装置２０９上でユーザに認知可能に提示されても良いし、提示されなくても良い。
【００４４】
＜実施例４＞
図９は、本実施例に係るリストの更新態様を説明するための図である。図９は、出力装置２０９の画面９０５上に表示されたポインタカーソル９０１と、リスト型ＵＩと、を表している。本例では、リスト型ＵＩの表示領域９０２において最大で８個の要素を表示可能としている。また、表示領域９０２内に表示される要素９０３は、アルファベット順に（昇順に）上から下に向かって並んで表示されている。このとき、更新によって要素ａが新規に追加されようとしている（追加要素９０４）。
【００４５】
仮に基準要素として要素ｉが導出され、新規に追加される要素ａより下部となる要素９０３（基準要素の要素ｉを含む）の表示位置が固定された場合、要素ａは表示領域９０２に表示されないことが起こり得る。このように、リストの更新により提示対象は追加されているにもかかわらず、表示領域９０２で表示されている要素は変わらないため、結果的にユーザが更新に気づかない場合がある。
【００４６】
そこで本実施例では、画面９０５上に表示されているリスト型ＵＩの表示領域９０２の周辺に、表示領域９０２を含むように任意の大きさの領域９０６を定義する。そして、リストが更新される際に、ユーザの操作によって画面９０５上を動くことが可能なポインタカーソル９０１が、領域９０６に含まれるか否かを判定する。判定の結果、ポインタカーソル９０１が領域９０６に含まれる場合、基準要素の位置を表示領域９０２において固定して新規要素を追加する。この場合の処理は実施例１と同様である。一方、ポインタカーソル９０１が領域９０６に含まれない場合、基準要素の位置を表示領域９０２において固定せずに新規要素を追加する。例えば図９に示す場合、基準要素ｉの位置が固定されないため、新規に追加される要素ａより下部となる要素９０３を要素１個分下にスライドさせ、空いた位置に要素ａを挿入して良い。こうすればユーザは要素ａを視認できるので、リストの更新に気づくことができる。
【００４７】
上述したように本実施例では、リスト更新の際にポインタカーソル９０１が領域９０６に含まれるか否か判定し、該判定の結果に応じて、基準要素の挙動（表示領域９０２における基準要素の位置を固定するか否か）を決定する。つまり、ポインタカーソル９０１が、表示領域９０２上、或いは、表示領域９０２の近くにあるときは、ユーザは表示領域９０２に注目していると推測されるため、基準要素を含む要素９０３を表示領域９０２上で動かさない。一方、ポインタカーソル９０１が、表示領域９０２から遠く離れているときは、ユーザは表示領域９０２に注目していないと推測されるため、基準要素を含む要素９０３を表示領域上で動かす。これにより、ユーザが表示領域９０２に注目していなくても更新が行われたことがユーザへ伝わる。
【００４８】
なお、基準要素の位置を固定するか否かを判定するために用いる領域９０６は、出力装置２０９上でユーザが認知可能に提示されても良いし、提示されなくても良い。
【００４９】
また図９に示した例において要素ａを表示させるための方法は上述の方法に限らない。例えば要素が追加されるときに、追加後の要素の数が表示可能な要素の上限数（上記例では８個）を越えるか判定される。また、仮に基準要素に基づいて要素の表示位置を固定した場合に、追加される要素が表示領域外となるか判定される。この判定は、図５に示した処理を表示結果に反映しないように実行し、処理後の追加要素の位置を判定することで実現することができる。そして、「要素追加後のリスト内の要素が上限数を越える」という条件と、「仮に要素の表示位置を固定した場合、追加要素が表示領域外となる」という条件を、要素の表示位置を固定する処理の要否判定の条件とする。例えば上記の２つの条件の両方が満たされた場合、図５に示した処理の結果に従って、リスト内の要素の少なくとも一部の表示位置を固定して、要素ａを追加する。或いは、上記２つの条件のいずれかでも満たされた場合に、リスト内の要素の少なくとも一部の表示位置を固定して、要素ａを追加してもよい。
【００５０】
なお、上記２つの条件のうち、後者の条件が用いられる場合、リスト表示に要素追加を反映させる段階で、当該条件の判定のために、図５に示す処理が既に実行されている。そのため、当該条件判定のために実行された図５に示す処理の結果を用いて、要素追加後のリスト表示を行っても良い。これにより、条件判定に加え、リスト表示のために再度図５に示す処理を実行しなくてもよい。
【００５１】
＜その他の実施例＞
上記の実施例で説明した「要素」については、種々のものを採用することができる。例えばコンピュータ装置２０１が不図示のネットワークインタフェースにより、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク上の周辺デバイス（プリンタ等）を検索する場合であってもよい。その際、「要素」が、検索されたデバイスを示す表示項目（プリンタの機種名等）であってもよい。この場合、例えば機種名がアルファベット順或いは数字順に並んだリスト表示が行われる。例えば、ＬＡＮ上でのプリンタ検索において、コンピュータ装置２０１がプリンタ探索信号を発行する。そして、その信号に対して、機種名を含む応答があった場合に、該機種名がコンピュータ装置２０１によりリスト表示される。この場合、コンピュータ装置２０１が応答を受け取ると随時リスト表示されるため、既に数台のプリンタの機種名が表示されているときに、新たな機種名が追加されることが起こり得る。リスト表示において機種名がアルファベット順或いは数字順で並ぶため、図３に示したように、表示中のリストの途中に機種名を挿入することが起こり得る。そのため、以上の実施例は、上述のようなプリンタ検索処理におけるリスト表示にも応用することができる。
【００５２】
また、以上の実施例において、要素が上下にスライドするリスト型ＵＩを例に挙げて説明したが、要素が左右などの任意の一方向に沿ってスライドするリスト型ＵＩにも本発明を適用することができる。
【００５３】
さらに、以上の実施例において、要素の表示位置を変更する際に要素をスライドさせる表示制御を行っていたが、本実施形態における表示制御はこれに限らない。例えば要素の表示位置を変更させたリストをコンピュータ装置２０１がメモリ上に新たに作成し、表示中のリストに代えて、当該作成されたリストを表示させても良い。即ち、表示上で要素がスライドされなくても、要素の表示位置が変更されたリストが表示されればよい。
【００５４】
なお、基準要素を導出するため等に、上述の複数の実施例を組み合わせた手法を用いることも可能である。また本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006624972.tif 000002
【図２】
0006624972.tif 000003
【図３】
0006624972.tif 000004
【図４】
0006624972.tif 000005
【図５】
0006624972.tif 000006
【図６】
0006624972.tif 000007
【図７】
0006624972.tif 000008
【図８】
0006624972.tif 000009
【図９】
0006624972.tif 000010