(57)【特許請求の範囲】
【請求項１】
コンピュータによるユーザ選択可能な複数のアイテムが並ぶ入力領域の生成方法であって、
（ａ）前記コンピュータが、前記複数のアイテムのうち少なくとも一部のアイテムについて、隣接する複数のアイテムの各々が互いに他方の領域に一部はみ出すように、前記入力領域の描画データを生成するステップと、
（ｂ）前記コンピュータが、生成した前記入力領域の描画データを出力するステップとを含み、
前記隣接する複数のアイテムの数は、統合単位として、複数の候補の中から決定され、
前記入力領域の全アイテムに渡る前記統合単位の組み合わせの決定は、隣接するアイテムからのはみ出しによってカットされるアイテムのラベルの長さを動的計画法におけるコストと、及び前記統合単位を動的計画法における選択肢と、それぞれ関連付けすることにより、コスト最小化問題として解かれる、
生成方法。
【請求項２】
前記複数のアイテムは前記入力領域において縦に並び、各アイテムは横長である、又は、前記複数のアイテムは前記入力領域において横に並び、各アイテムは縦長である、請求項１に記載の生成方法。
【請求項３】
前記複数の候補が１を含み、前記統合単位として１が選択される場合に前記コストにペナルティとなる値が足される、請求項１に記載の生成方法。
【請求項４】
前記統合単位として前記複数の候補の中から所定数以上の異なる候補が選ばれる場合に、前記コストにペナルティとなる値が足される、請求項１に記載の生成方法。
【請求項５】
前記複数の候補の中に前記統合単位として選択可能な値がないことを条件に、前記複数の候補よりも小さい値が選択される、請求項１に記載の生成方法。
【請求項６】
前記入力領域はリストボックス、コンボボックス、又はテーブルである、請求項１に記載の生成方法。
【請求項７】
ステップ（ａ）において、前記コンピュータは、各アイテムのはみ出し部分の境界線を曲線とする、請求項１に記載の生成方法。
【請求項８】
ステップ（ａ）において、前記コンピュータは、前記入力領域の各アイテムの背景を、隣接するアイテム間で異ならせる、請求項１に記載の生成方法。
【請求項９】
ステップ（ａ）において、前記コンピュータは、前記入力領域の各アイテムのはみ出し位置の背景を、該アイテムの他の領域の背景と異ならせる、請求項１に記載の生成方法。
【請求項１０】
ステップ（ａ）において、前記コンピュータは、各アイテムのはみ出し位置へ視線を誘導するためのアニメーションを用いたインジケータの描画データを更に生成し、及び、ステップ（ｂ）において、前記コンピュータは、前記インジケータの描画データを更に出力する、請求項１に記載の生成方法。
【請求項１１】
前記コンピュータは、タッチ・スクリーンを備える、請求項１に記載の生成方法。
【請求項１２】
前記コンピュータは、タブレット型コンピュータ、ノート型コンピュータ、スマートフォン、又はPersonalDigital Assistants（PDA）である、請求項１に記載の生成方法。
【請求項１３】
請求項１乃至１２のいずれか一項に記載の生成方法の各ステップを、前記コンピュータに実行させるユーザ選択可能な複数アイテムが並ぶ入力領域の生成プログラム。
【請求項１４】
請求項１乃至１２のいずれか一項に記載の生成方法の各ステップを実行するように適合された手段を備えるユーザ選択可能な複数アイテムが並ぶ入力領域の生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リストボックスなどのユーザ選択可能な複数のアイテムが並ぶ入力領域を生成する技術に関し、特に、タッチインターフェースを搭載したディスプレイの画面表示に適した入力領域の生成技術に関する。
【背景技術】
【０００２】
近年、タッチインターフェースを搭載したディスプレイを有するモバイル端末やタブレット型端末において、画面の精細化が進んでいる。
【０００３】
このような状況において画面に多くの情報を表示しようとすると、リストボックスやメニューなどのウィジェットサイズが必然的に小さくなる。
【０００４】
特に、リストボックスのようなユーザ選択可能な複数のアイテムが並ぶ入力領域は、短冊状の各アイテムの形状がより細くなるため、円形に近い指のタッチポイント形状と合わなくなり操作がしにくくなる。このことはFitt’s Lawからも認められる。
【０００５】
Fitt’s Lawとは、図３に示す地点Ａから対象オブジェクトＢまでポインタを移動する際の作業完了時間 (みなし難易度) が、（ＡＢ間の距離 Ｄ）/（移動方向におけるＢの奥行き Ｓ）の関数で表せる、という法則である。該法則は、各種ＵＩにおいて幅広く当てはまる。リストボックスの各アイテムは横長である (即ち、Ｄに比べてＳがかなり小さい) ため、操作がしにくい、との結論が得られる。
【０００６】
タッチパネルの誤操作を防止する従来技術として、例えば特許文献１〜３及び非特許文献１が存在する。
【０００７】
特許文献１は、文字、図形などで入力内容が表示される複数のボタン、あるいは複数の項目を含むメニューが表示される表示モニタと、表示モニタ画面上に設けられ、ボタンやメニューに対応して設定されたタッチエリアが押圧されたとき、対応する押圧信号を出力するタッチパネルと、ボタンやメニューのうちの押圧頻度の高いボタンやメニューを検出する頻度検出手段と、押圧頻度の高いボタンやメニューについて、それらが表示されてから拡大表示開始されるまでの時間を算出する拡大表示開始時間算出手段と、ボタンやメニューが表示されたとき、押圧頻度が高いと判定されているボタンやメニューについては、拡大表示開始時間にそのタッチエリアを拡大するタッチエリア制御手段とを備えるタッチパネル装置を開示する。
【０００８】
特許文献２は、表示画面に選択ボタンを表示し、該表示画面上に配設されたタッチパネル上の指のタッチ座標を検知することにより押下げられた選択ボタンを判定するタッチパネル制御装置であって、前記表示画面に複数の選択ボタンを表示した状態で、前記タッチパネルが指でタッチされたとき、タッチ座標の周辺にある選択ボタンを、各選択ボタンがフル表示されるように再配列して拡大表示し、その後タッチパネルが改めて指でタッチされたとき、タッチ座標にある選択ボタンが押下げられたものと判定することを特徴とする、タッチパネル制御装置を開示する。
【０００９】
特許文献３は、表示パネルとタッチパネルとからなる画像表示装置において、複数の画像を個々の画像に隣接させて一覧表示する第１の表示モードと、上記複数の画像の中から、上記タッチパネルによって選択された１つを拡大表示する第２の表示モードと、上記第１の表示モードにおいて、上記タッチパネルが操作された時に、上記タッチパネル操作位置に相当する複数の画像を、上記第１の表示モードより離散的に表示する第３の表示モードに移行させる制御を行う表示制御部を具備する、画像表示装置を開示する。
【００１０】
非特許文献１は、リストの要素が大量にあったときに魚眼式リストにするMozilla  Firefox(登録商標)のアドオンを紹介し、注目するアイテムを拡大表示しつつ、その他のアイテムについては注目アイテムから遠ざかるほどに小さく表示するFisheye Menu#2の画面表示を公開している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−１０２４４２号公報
【特許文献２】特開２００８−７７２７２号公報
【特許文献３】特開２０１０−１１３４４１号公報
【非特許文献】
【００１２】
【非特許文献１】秋元、“魚眼式タブ  FishEye Tabs”、［online］、平成10年４月１日、秋元＠サイボウズラボ・プログラマー・ブログ、［平成26年3月17日検索］、インターネット〈http://labs.cybozu.co.jp/blog/akky/archives/2007/04/fisheye-tabs.html〉
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１〜３及び非特許文献１が開示する手法は、拡大表示や離散表示、更には押圧頻度の高いボタンのタッチエリアの拡大によって誤操作を防ぐ。しかし、これら手法では、意図しないアイテムに対し拡大などの処理が施されたときの不満度も高い。また、非特許文献１が開示する手法では、拡大表示される注目アイテムが動的に変わるため、見るものに不自然で落ち着かない印象を与える。
【００１４】
本発明は、上記従来技術における問題点に鑑みてなされたものであり、アイテム選択時の操作性を向上することのできる、ユーザ選択可能アイテムが複数並ぶ入力領域の生成方法、生成システム、及び生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、上記従来技術の課題を解決するために以下の特徴を有するコンピュータによるユーザ選択可能な複数アイテムが並ぶ入力領域の生成方法を提供する。本発明の生成方法は、（ａ）前記コンピュータが、前記複数のアイテムのうち少なくとも一部のアイテムについて、隣接する複数のアイテムの各々が互いに他方の領域に一部はみ出すように、前記入力領域の描画データを生成するステップと、（ｂ）前記コンピュータが、生成した前記入力領域の描画データを出力するステップと、を含む。ここで前記複数のアイテムは前記入力領域において縦に並び、各アイテムは横長であってよい。又は、前記複数のアイテムは前記入力領域において横に並び、各アイテムは縦長であってよい。
【００１６】
好ましくは、前記隣接する複数のアイテムの数は、統合単位として、複数の候補の中から決定される。
【００１７】
より好ましくは、前記入力領域の全アイテムに渡る前記統合単位の組み合わせの決定は、隣接するアイテムからのはみ出しによってカットされるアイテムのラベルの長さを動的計画法におけるコストと、及び前記統合単位を動的計画法における選択肢と、それぞれ関連付けすることにより、コスト最小化問題として解かれる。
【００１８】
更により好ましくは、上記複数の候補が１を含み、前記統合単位として１が選択される場合に前記コストにペナルティとなる値が足される。
【００１９】
またより好ましくは、前記統合単位として前記複数の候補の中から所定数以上の異なる候補が選ばれる場合に、前記コストにペナルティとなる値が足される。
【００２０】
また好ましくは、前記複数の候補の中に前記統合単位として選択可能な値がないことを条件に、前記複数の候補よりも小さい値が選択される。
【００２１】
前記隣接する複数のアイテムの数として、前記入力領域内において複数の値が採用されてもよい。
【００２２】
前記入力領域はリストボックス、コンボボックス、又はテーブルであってよい。
【００２３】
また好ましくは、ステップ（ａ）において、前記コンピュータは、前記各アイテムのはみ出し部分の境界線を曲線とする。
【００２４】
また好ましくは、ステップ（ａ）において、前記コンピュータは、前記入力領域の各アイテムの背景を、隣接するアイテム間で異ならせる。
【００２５】
また好ましくは、ステップ（ａ）において、前記コンピュータは、前記入力領域の各アイテムのはみ出し位置の背景を、該アイテムの他の領域の背景と異ならせる。
【００２６】
また好ましくは、ステップ（ａ）において、前記コンピュータは、各アイテムのはみ出し位置へ視線を誘導するためのアニメーションを用いたインジケータの描画データを更に生成し、及び、ステップ（ｂ）において、前記コンピュータは、前記インジケータの描画データを更に出力する。
【００２７】
好ましくは、前記コンピュータは、タッチ・スクリーンを備える。また好ましくは、前記コンピュータは、タブレット型コンピュータ、ノート型コンピュータ、スマートフォン、又はPersonal Digital Assistants（PDA）である。
【００２８】
以上、ユーザ選択可能な複数アイテムが並ぶ入力領域の生成方法として本発明を説明した。しかし本発明は、そのような生成方法の各ステップをコンピュータに実行させるユーザ選択可能な複数アイテムが並ぶ入力領域の生成プログラム、及び該生成プログラムをコンピュータにインストールして実現されるユーザ選択可能な複数アイテムが並ぶ入力領域の生成システムとして把握することもできる。
【発明の効果】
【００２９】
本発明では、ユーザ選択可能な複数アイテムが並ぶ入力領域を生成するにあたり、少なくとも一部のアイテムについて、隣接する複数のアイテムの各々が互いに他方の領域に一部はみ出すように、入力領域の描画データを生成する。これにより表示される際に各アイテムははみ出した位置においてその表示領域が拡張されているので、ユーザは拡張された領域を使ってアイテムを容易に選択することが可能となる。また生成された各アイテムのサイズは、ユーザにより明確なサイズ変更の指示がない限り一定であるため、入力領域のユーザインタフェースがユーザに対し不自然な印象を与えることもなければ、意図しない拡大表示などの処理によりユーザが不満を覚えることもない。本発明のその他の効果については、各実施の形態の記載から理解される。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態によるユーザ選択可能な複数アイテムが並ぶ入力領域の生成システムを実現するコンピュータ１００のハードウェア構成の一例を示す。
【図２】コンピュータ１００のソフトウェア構成の一例を示す。
【図３】Fitt’s Lawの概要を説明する図である。
【図４Ａ】従来のリストボックスの画面表示の一例を示す。
【図４Ｂ】本発明を適用したリストボックスの画面表示の一例を示す。
【図４Ｃ】本発明を適用したリストボックスの画面表示の他の例を示す。
【図４Ｄ】本発明を適用したリストボックスの画面表示の他の例を示す。
【図５】本明細書においてアイテムに対して使用する記号を説明する図である。
【図６】各アイテムのラベル表示域を説明する図である。
【図７】本発明の実施形態によるユーザ選択可能な複数アイテムが並ぶ入力領域の生成システムの機能ブロック図である。
【図８】統合単位の配列決定処理の流れを示すフローチャートである。
【図９】本発明の実施形態によるユーザ選択可能な複数アイテムが並ぶ入力領域の生成処理の流れの一例を示すフローチャートある
【図１０Ａ】本発明を適用したリストボックスの画面表示の変形例を示す。
【図１０Ｂ】本発明を適用したリストボックスの画面表示の他の変形例を示す。
【図１０Ｃ】本発明を適用したリストボックスの画面表示の他の変形例を示す。
【図１０Ｄ】本発明を適用したリストボックスの画面表示の他の変形例を示す。
【図１１Ａ】本発明を適用したリストボックスとともに表示するインジケータの一例を示す。
【図１１Ｂ】本発明を適用したリストボックスとともに表示するインジケータの一例を示す。
【図１２Ａ】本発明を適用したテーブルの画面表示の一例を示す。
【図１２Ｂ】本発明を適用したコンボボックスの画面表示の一例を示す。
【発明を実施するための形態】
【００３１】
以下、本発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００３２】
図１は、本発明を実施するためのコンピュータ１００の例示的なハードウェア構成を示す。図１において外部記憶装置１１４やＲＯＭ１０６は、オペレーティング・システムと協働してＣＰＵ１０２に命令を与え、本発明を実施するためのユーザ選択可能な複数アイテムが並ぶ入力領域の生成プログラムのコードや各種データを記録することができる。そして外部記憶装置１１４やＲＯＭ１０６に格納された複数のコンピュータ・プログラムは各々ＲＡＭ１０４にロードされることによってＣＰＵ１０２により実行される。なお、外部記憶装置１１４は、ＳＣＳＩコントローラなどのコントローラ（図示しない）を経由してバス１０８へ接続されている。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【００３３】
コンピュータ１００はまた、視覚データをユーザに提示するための表示装置１１６を含む。表示装置１１６は、グラフィックスコントローラ（図示しない）を経由してバス１０８へ接続されており、タッチ・スクリーンを含むことができる。コンピュータ１００は、通信インタフェース１１８を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【００３４】
上記説明した構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。同様に本発明を実施するためのコンピュータ１００は、キーボードやマウスのような入力デバイス、スピーカー等の他の構成要素を含むことも可能であることは言うまでもない。
【００３５】
なお、コンピュータ１００は一般的なパーソナル・コンピュータ・アーキテクチャを採用するものとして説明したが、例えば、デスクトップ型の他、ラップトップ型やタブレット型のパーソナル・コンピュータ、或いはＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、スマートフォン、デジタル・カメラ、ゲーム・システムなど、様々なタイプのコンピュータ・システムを採用することができる。また、より高いデータ処理能力や可用性を求めて、ＣＰＵ４１やＨＤＤ４４等を多重化することができる。
【００３６】
次に図２を参照して、本発明を実施するためのコンピュータ１００の例示的なソフトウェア構成を示す。コンピュータ１００のソフトウェア構成は、基本的な機能を提供するオペレーティング・システム（ＯＳ）２００と、ＯＳ２００の機能を利用するアプリケーション２１０と、アプリケーション２１０により利用され、アプリケーション２１０の一部として動作する複数のプログラム部品を含むライブラリ２０５とを備えている。例えば、ＯＳ２００としては、一般的な商用又はオープンソースのオペレーティング・システムを採用することができる。好ましくは、本発明の実施形態に係るユーザ選択可能な複数アイテムが並ぶ入力領域の生成システムの機能は、ライブラリに含まれるプログラム部品（例えば、リストボックス、コンボボックス、及びテーブル等）に実装する。これらソフトウェア２００〜２１０は、ＲＡＭ１０４上にロードされ、ＣＰＵ１０２等により実行される。以下では、本発明を実装するライブラリ２０５に含まれるプログラム部品を単にライブラリ２０５という。
【００３７】
本発明は、リストボックスやコンボボックスのようなユーザ選択可能な複数のアイテムが並ぶ入力領域を表示する際に、個々のアイテムサイズを動的に変更するのではなく、入力領域の生成時にアイテムの形状を一部拡張することで、アイテム選択時の操作性を向上させる。まず、本発明をリストボックスに適用した場合を例に、図４Ａ〜図４Ｄを参照しつつ本発明の概要を説明する。
【００３８】
図４Ａは、短冊状のアイテムが縦に並んだ従来のリストボックスを示す。図４Ａに示すように、横長のアイテムが縦に並ぶリストボックスは一般に右側のスペースが空いていることが多い。そこで本発明はこの右側の空いたスペースを利用し、図４Ｂ〜図４Ｄに示すように、各アイテムの領域を、隣接するアイテムの右側の領域の一部と統合して拡張する。より具体的には、隣接する複数のアイテムの各々が互いに横長の他方の領域に一部はみ出すように拡張する。これによって、拡張部分に円形に近い指のタッチポイント領域を確保することが可能となり、アイテム選択時の操作性の向上を図ることができる。
【００３９】
ここで互いに領域を一部統合する隣接する複数のアイテムの数は、２以上の任意の正の整数であってよい。以下の説明では、統合するアイテム数を統合単位とも呼称する。図４Ｂに示すリストボックスの統合単位は２であり、図４Ｃに示すリストボックスの統合単位は３である。統合単位は、リストボックスの全アイテムに渡って同じである必要はなく、例えば、５行のリストボックスにおいて最初２行を統合し、残り３行を統合する等のように複数の統合単位を採用してもよい。
【００４０】
このように統合単位は自由に決定することが可能であるが、統合単位として大きな数を採用するほど、図４Ｄに示すように、長いラベルの一部が表示できずにカットされる可能性が高くなる。そこで本発明では、カットされた部分の長さを動的計画法におけるコストと、また、統合単位を動的計画法における選択肢と、それぞれうまく関連付けすることにより、コスト最小化問題としてリストボックスの全アイテムに渡る最適な統合単位の組み合わせ（又は配列ともいう）を決定する。決定方法の詳細は図８を参照して後述する。以下では、複数のアイテムは入力領域において縦に並び、各アイテムは横長であるとして本発明を説明する。しかしながら、本発明は、入力領域において複数アイテムが横に並び、各アイテムが縦長である場合にも同様に適用可能であることは、当業者に容易に理解されよう。
【００４１】
本発明の詳細な説明に入る前に、前準備として本明細書において使用する記号の意味を図５〜図６を参照して説明する。
【００４２】
図５は、入力領域５００に縦に並ぶユーザ選択可能な複数のアイテム５０２〜５０８を示す。図５に示すように、記号hはアイテムの高さを、wはアイテムの幅を示す。また記号tは、本発明によって隣接するアイテムにはみ出すように拡張される領域の高さを、記号dはその幅を示す。なお、隣接するアイテムが２つ存在する場合（アイテム５０４は、隣接する２つのアイテム５０２、５０６を有する）、隣接アイテムそれぞれに対して高さtだけ拡張する。一方、隣接するアイテムが１つのみ存在する場合（アイテム５０２は、隣接する１のアイテム５０４のみを有する）、その１つのアイテムに対して高さ2tの拡張を行う。ユーザは拡張された領域を利用してアイテムを容易に選択できるようになるので、以下ではtを選択領域拡張高、dを選択領域拡張幅、ハイライト表示された矩形領域５１０〜５１６を各アイテムの選択領域と、それぞれ呼称する。
【００４３】
図６は、各アイテム６００〜６０６のラベル表示域６０８〜６１４を示す。ここでラベル表示域とは、ラベルを表示可能なアイテム内の領域をいう。本来アイテムは、その幅w全てをラベル表示のために利用することができる。しかし本発明では、隣接するN個（ここでNは統合単位を示す正の整数）のアイテムは、選択領域を作り出すため互いの領域にはみ出しあう。このため、本発明ではアイテム幅wのうち最大で（N×d）長の領域がラベル表示に使用できなくなる（アイテム６０２参照）。なお、本明細書全体において×は乗算を表す。N=1のとき、ラベル表示域の幅はwである。N≧2では、ラベル表示域の幅は上のアイテムから順に、w0+d、w0、w0+d、…、w0+(N-2) ×dとなる。但し、w0=w-N×d である。なお、図６に示す例では、選択領域は上のアイテムから順に、向かって左から右へずらしているが、これとは逆に下のアイテムから順に、向かって左から右へずらしてもよいことは言うまでもない。この場合、ラベル表示域の幅は下のアイテムから順に、w0+d、w0、w0+d、…、w0+(N-2) ×dとなる。なお、ラベル表示域の幅は、カットされるラベル長を算出するために使用され、カットされるラベル長は、コスト最小化問題として最適な統合単位の組み合わせを求める際に用いられる。
【００４４】
次に図７を参照して、本発明の実施形態に係るユーザ選択可能な複数アイテムが並ぶ入力領域の生成システム７００の機能を説明する。生成システム７００は、取得部７０２と、パラメータ決定部７０４と、統合単位決定部７０６と、入力領域生成部７０８とを含む。
【００４５】
取得部７０２は、生成システム７００を呼び出すアプリケーション２１０から、入力としてラベルテキストの配列と、アイテムの幅w及び高さhとを取得する。取得部７０２は、取得したラベルテキストの配列から、ラベル長の配列を求める。なお、アイテムの幅w及び高さhは、定数としてライブラリ２０５の作成者によって予め所定の値が設定されていてもよい。
【００４６】
パラメータ決定部７０４は、選択領域拡張高tと、選択領域拡張幅dと、統合単位として使用可能な最大の値Nmaxとを決定する。そのためにパラメータ決定部７０４はまず取得部７０２から、アイテムの幅w及び高さhを受け取り、また、以下の定数を用いる。
選択領域はみ出し比率：r(0＜r＜0.5)
選択領域縦横比率条件：α(0＜α＜1)
ラベル表示域比率条件：β(0.5≦β＜1)
非統合アイテムコスト：c(0＜c)
ここでカッコ内は、定数の値として設定し得る範囲の一例を示す。これら定数は、ライブラリ２０５の作成者によって予め設定されていてよい。或いは、取得部７０２が、カッコ内の範囲内の定数の値をアプリケーション２１０から受け取るようにしてもよい。
【００４７】
上記定数をより詳細に説明すると、選択領域はみ出し比率rは、アイテムの高さhに対するはみ出し量、即ち、選択領域拡張高tの割合を決める定数である。選択領域縦横比率条件αは、選択領域の高さ(h+2t)に対する幅dの割合を条件づける定数である。ラベル表示域比率条件βは、アイテム幅wに対する最短のラベル表示域w0の割合を条件づける定数である。なお、w0 = w-d×Nmaxである。非統合アイテムコストcは、アイテムを統合により一部拡張しない場合にペナルティとして後述する統合コストに追加するコストである。統合しないアイテムをなるべく避けることが好ましいことから、非統合アイテムコストcには大きな値を設定することが好ましい。
【００４８】
パラメータ決定部７０４は、選択領域拡張高tと、選択領域拡張幅dと、使用可能な最大の統合単位Nmaxとを、次の条件を満たすように決定する。
t = h ×r
d  ≧(h+2t) ×α
w0 ≧ w×β
なお、上記条件だけでは、選択領域拡張幅dと使用可能な最大の統合単位Nmaxの値は一意に決まらない。ライブラリ２０５の作成者は、パラメータ決定部７０４が一意に値を決定できるように、予め決定のための方針をアルゴリズムとして与えたり、アプリケーション２１０の作成者が取得部７０２を介して条件式を設定できるようにしておいてよい。そのようなアルゴリズムや条件式は、例えば、「（ユーザがタッチしやすいように）条件内で選択領域拡張幅dをできるだけ大きく取る」というものであってよい。
【００４９】
パラメータ決定部７０４はまた、アイテム統合数の選択肢の集合（以下、opt={自然数の集合}、又は単にoptと表記する）を決定する。但し、各選択肢opt_iはNmaxを超えない。アイテムの統合数の選択肢のパターンは次の３つのいずれにかに分類できる。
- 常に一定のアイテム数
例：opt={3}、意味は常に３アイテムずつ統合  
- いくつかの選択肢から選択
例：opt={2,3}、意味は２アイテム又は３アイテムずつ統合  
- 統合しないアイテムの存在を許可する
例：opt={1,2,3}、意味は統合しないか、２又は３アイテムのいずれかのアイテム数単位で統合
【００５０】
なお、ライブラリ２０５の作成者はoptを自動決定する際の方針を予め与えておく。例えばライブラリ２０５の作成者は、式opt={Nmax-1, Nmax} を予めアルゴリズムとして与えておいてよい。或いは、取得部７０２が、opt情報をアプリケーション２１０から受け取るようにしておいてもよい。
【００５１】
統合単位決定部７０６は、パラメータ決定部７０４から、選択領域拡張幅dとoptを、取得部７０２からラベル長の配列をそれぞれ受け取り、これら情報を使って、入力領域の各アイテムについて、optの選択肢の中から最適な統合単位を決定する。入力領域の全アイテムに渡る統合単位の最適な組み合わせの決定は、上述したように、隣接する複数のアイテムの統合によりカットされるラベル長を動的計画法におけるコストと、また、統合単位を動的計画法における選択肢と、それぞれ関連付け、コスト最小化問題として解いてよい。なお、optの選択肢が１つである場合、統合単位決定部７０６はその１の選択肢を出力するのみである。
【００５２】
一例として、統合単位決定部７０６は、optの選択肢opt_iについて、そのコストを、次のopt_iアイテムを統合することにより各アイテムにおいてカットされたラベル長のopt_iアイテムに渡る和とすることができる。そして統合単位決定部７０６は、入力領域における各統合のコストを足し合わせたものを上記入力領域における統合コストとし、該統合コストが最小となるように統合単位の組み合わせ（配列）を決定してよい。統合単位決定部７０６による処理の更なる詳細は、図８を参照して後述する。
【００５３】
なお、上述したように、統合しないアイテムをなるべく避けることが好ましいことから、opt_i=1の場合のコストは大きな値とするのが好ましく、統合単位決定部７０６は、そのような非統合アイテムコストcをパラメータ決定部７０６から受け取る。また、統合単位決定部７０６は、入力領域の後ろのほうのアイテムにおいて、選択可能な選択肢がない場合に、opt内のいずれの選択肢よりも小さい値を選択してよい（ルール１）。但しその場合、上記統合コストにペナルティとなる値を足し合わせてもよい。更に統合単位決定部７０６は、統合単位として所定数以上の異なる数を選んだ場合に、上記統合コストにペナルティとなる値を足し合わせてもよい（ルール２）。
【００５４】
入力領域生成部７０８は、統合単位決定部７０６が決定した統合単位の配列と、パラメータ決定部７０４が決定した選択領域拡張高tと選択領域拡張幅dとを、それぞれ取得して、複数のアイテムが縦に並ぶ入力領域の描画データを生成する。このとき入力領域生成部７０８は、取得した統合単位の配列に従って、それぞれの統合単位で隣接する複数のアイテムが互いに横長の他方の領域に一部はみ出すように、上記入力領域の描画データを生成する。
【００５５】
入力領域生成部７０８は、生成した入力領域の描画データを所定の記憶領域に格納し、ＯＳ２００又はＯＳ２００のＧＵＩフレームワークが、ユーザの操作に応じて上記所定の記憶領域から可視領域の描画データを読み出して、表示装置１１６の画面上に表示できるようにする。
【００５６】
ここで図１０Ａ〜１０Ｄを参照して、本発明を適用したリストボックスの画面表示の例を説明する。図１０Ａや図１０Ｃに示すように、入力領域生成部７０８は、入力領域の各アイテムのはみ出し部分の境界線を曲線としてよい。また、図１０Ｂや図１０Ｄに示すように、入力領域生成部７０８は、入力領域の各アイテムの背景を、隣接するアイテム間で異ならせたり、各アイテムのはみ出し位置の背景を、該アイテムの他の領域の背景と異ならせたりしてよい。
【００５７】
次に図１１Ａ及び１１Ｂを参照して、本発明を適用したリストボックスとともに表示するインジケータの例を説明する。これは、各アイテム内に選択領域があることを認知しやすくさせるためであり、入力領域内においてアニメーションを用いてよい。例えば図１１Ａに示すように、入力領域生成部７０８は、矢印の中のグラデーションが左から右に動くアニメーションの描画データを更に生成してよい。また、図１１Ｂに示すように、入力領域生成部７０８は、丸などの図形(または図形の色のみ) が左から右に動くアニメーションの描画データを更に生成してよい。
【００５８】
次に図８及び図９を参照して、本発明の実施形態に係るユーザ選択可能アイテムの表示システム７００の動作を説明する。
【００５９】
図８は、統合単位決定部７０６による統合単位の配列決定処理の流れを示すフローチャートである。上述したように、本実施例では動的計画法を用いて統合単位の配列を決定する。アイテム数Nの入力領域における最適な統合単位の配列を決定するためには、「入力領域の先頭からn個のアイテムに限定した統合単位の配列の最適解」をn=1からn=Nまで、順に求めていけばよい。
【００６０】
統合単位の配列の決定処理を開始する際に、統合単位決定部７０６は入力として、統合単位の最大値Nmax (Nmax≦N)と、アイテム統合数の選択肢の集合optと、統合コスト関数 cを取得する。ここで、opt = [opt_1, ...,opt_L]であり、optの要素数をL (L≧1)とする。各opt_iについて 1≦opt_i≦Nmaxが成り立ち、値の重複はないものとする。また、i番目のアイテムからj番目のアイテムまでを統合する際のコストを c(i,j) で表わす (ただし1≦i≦j≦Nmax)。なお、c(i,j)の値は、後述するステップ８０２においてその都度算出してよい。該コストは、上述したように、i番目のアイテムからj番目の各アイテムにおいてカットされたラベル長の和とすることができる。各アイテムにおいてカットされたラベル長は、取得部７０２によって求められた各アイテムのラベル長から、該アイテムのラベル表示域の長さ（幅）を差し引くことによって求められる。各アイテムのラベル表示域の長さ（幅）は図６を参照して説明したとおりである。
【００６１】
統合単位決定部７０６はまた、統合単位の配列の決定するその途中、中間結果として、先頭のアイテムからn番目のアイテムまでの最小統合コストCopt(n)と、先頭のアイテムからn番目のアイテムまでの最小統合コストを与える統合方法Mopt(n)とを求める。但し、1≦n≦Nである。また、Mopt(n)は長さM個の配列であって、[(i_1, j_1), (i_2,j_2),…, (i_M, j_M)]の形式を取り、k番目(1≦k≦M)の配列の要素(i_k, j_k)は、i_k番目のアイテムからj_k番目のアイテムまでを統合することを意味する。i_1=1, j_M=nであり、各kについて、i_k≦j_kであり、各k’ (1≦k’≦M-1)について、i_k’ + 1 = j _ (k’ + 1)である。これらは配列の要素における数字の並びが昇順になっているための条件である。
【００６２】
最終的に統合単位決定部７０６が出力すべきは、n=NのときのMoptの値、即ち、先頭のアイテムからN番目の後尾のアイテムまでの最小統合コストを与える統合方法Mopt(N)である。以下図８に示すフローチャートに従って、統合単位の配列の決定処理を説明する。
【００６３】
図８に示すフローチャートにおいて処理はステップ８００で開始し、統合単位決定部７０６は、nに値１を設定する。続いて統合単位決定部７０６は、アイテム統合数の選択肢opt_iの中で、式Copt(n-opt_i) +c(n-opt_i +1,n)の値を最も小さくする選択肢を探し出し、その最小の値をCopt(n)に設定すると共に（ステップ８０２）、最小の値を与える選択肢をopt_i*に設定する（ステップ８０４）。
【００６４】
続いて統合単位決定部７０６は、配列Mopt(n)に、式Mopt(n-opt_i*) +(n-opt_i* +1,n)の値を設定する（ステップ８０６）。続いて統合単位決定部７０６は、nの値に１を加え（ステップ８０８）、式n>Nが成り立つか否かを判定する（ステップ８１０）。成り立つと判定した場合（ステップ８１０：ＹＥＳ）、処理はステップ８１２に進み、統合単位決定部７０６はMopt(N)を出力する。一方、成り立たないと判定した場合（ステップ８１０：ＮＯ）、処理はステップ８０２へ戻り、統合単位決定部７０６は一連の処理を繰り返す。
【００６５】
以下に統合単位決定部７０６による処理の擬似コードを示す。
【００６６】
import java.util.ArrayList;
import java.util.List;
public class MergeCalculator {
// type of a pair
public class Pair {
public int i;
public int j;
public Pair(int i, int j) {
this.i = i;
this.j = j;
}
}
// type of a cost function
private interface CostFunc {
public int apply(int i, int j);
}
public List<Pair> compute(int N, int Nmax, List<Integer> opt, CostFunc c) {
List<List<Pair>> Mopt = new ArrayList<List<Pair>>();
List<Integer> Copt = new ArrayList<Integer>();
for (int n = 1; n <= N; n++) { // 1. in the flowchart
int minCost = Integer.MAX_VALUE;
int opti_star = 0; // opti*
for (int opti : opt) { // 2-a.
int cost = Copt.get(n - opti) + c.apply(n - opti + 1, n);
if (cost < minCost) {
minCost = cost;
opti_star = opti; // 2-b.
}
}
// 2-c.
List<Pair> Moptn = new ArrayList<Pair>(Mopt.get(n - opti_star));
Moptn.add(new Pair(n - opti_star + 1, n));
Mopt.set(n, Moptn);
}
return Mopt.get(N);
}
}
【００６７】
次に５行のリストボックスを例に、具体的に統合単位の配列を求める。なお、i番目のアイテムからj番目のアイテムまでを統合する際のコストc(i,j)は、次のように算出されるものとする。c(1,2) = c(4,5) =20、c(2,3) = 25、c(3,4) = 30、c(3,5) = 40、c(1,3) = 50、c(i,i) = 100。
【００６８】
例１: ２行統合に固定、即ち、opt={2}の場合
統合方法は一意であり、２行、２行、１行のパターンしかない。最後の１行にはルール１が適用される(コストは 20+30+100 =150) 。
例２:２行または３行から選択、即ち、opt={2,3}の場合
動的計画法により２行、３行のパターンで統合するのがコスト最小 (20+40=60 < 70=50+20)である。なお、ルール1により２行、２行、1行のパターンの統合も可能であるがコスト大となる (150)。同じ理由から３行、１行、１行のパターンも排除される(250)。
例３: ２行統合だが、統合しない行を許す、即ち、opt={1,2}の場合
動的計画法により、２行、1行、２行のパターンの統合コストが最小である (コストは20+100+20=140)。
【００６９】
図９は、本発明の実施形態によるユーザ選択可能アイテムの表示処理の流れの一例を示すフローチャートある。図９に示すユーザ選択可能アイテムの表示処理はステップ９００で開始し、取得部７０２は、アプリケーション２１０から、ラベルテキストの配列などの入力情報を取得する。取得部７０２は、取得したラベルテキストの配列からラベル長の配列を算出する。続いて、パラメータ決定部７０４は、アイテムの幅w及び高さhと、所定の複数の定数を用いて、選択領域拡張高tと、選択領域拡張幅dと、統合単位として使用可能な最大の値Nmaxと、更に、統合単位の選択肢の集合optを決定する（ステップ９０２）。
【００７０】
続いて、統合単位決定部７０６は、パラメータ決定部７０４から、選択領域拡張幅dとoptを、取得部７０２からラベル長の配列をそれぞれ受け取り、これら情報を使って、入力領域の各アイテムについて、optの選択肢の中から最適な統合単位を決定する（ステップ９０４）。統合単位決定部７０６による統合単位配列の決定処理は、図８を参照して詳細に説明したとおりである。
【００７１】
続いて入力領域生成部７０８は、複数のアイテムのうち少なくとも一部のアイテムについて、隣接する複数のアイテムの各々が互いに横長の他方の領域に一部はみ出すように、入力領域の描画データを生成する（ステップ９０６）。このとき入力領域生成部７０８は、統合単位決定部７０６が決定した統合単位の配列から順に値を取り出し、該値が示すアイテム数ごとにアイテムを統合して各アイテムの領域を一部拡張させていく。
【００７２】
続いて入力領域生成部７０８は、生成した入力領域の描画データを所定の記憶領域に格納し（ステップ９０８）、ＯＳ２００又はＯＳ２００のＧＵＩフレームワークが、ユーザの操作に応じて所定の記憶領域から可視領域の描画データを読み出し、表示装置１１６の画面上に表示できるようにする。そして処理は終了する。
【００７３】
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。例えば、上記では日本語や英語のように左から右へ横書きする場合を例に説明したが、書字方向が右から左の場合はアイテムの左側のスペースが空くため、選択領域が左側に確保されるように各アイテムの境界を拡張する。また、本発明の適用対象は、リストボックスに限定されず、ユーザ選択可能な複数のアイテムが並ぶ入力領域であれば、本発明は、図１２Ａ、図１２Ｂに示すように、テーブルやコンボボックス等の他のオブジェクトに適用可能である。なお、テーブルでは各列のセルを統合する。従って、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【００７４】
なお、特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り任意の順序で実現しうることに留意すべきである。また、前の処理の出力を後の処理で用いる場合でも、前の処理と後の処理の間に他の処理が入ることは可能である場合があること、又は間に他の処理が入るように記載されていても前の処理を後の処理の直前に行うよう変更することも可能である場合があることも留意されたい。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」、「続いて、」等を用いて説明したとしても、この順で実施することが必須であることを必ずしも意味するとは限らない。
【図１】
0005957026.tif 000002
【図２】
0005957026.tif 000003
【図３】
0005957026.tif 000004
【図４Ａ】
0005957026.tif 000005
【図４Ｂ】
0005957026.tif 000006
【図４Ｃ】
0005957026.tif 000007
【図４Ｄ】
0005957026.tif 000008
【図５】
0005957026.tif 000009
【図６】
0005957026.tif 000010
【図７】
0005957026.tif 000011
【図８】
0005957026.tif 000012
【図９】
0005957026.tif 000013
【図１０Ａ】
0005957026.tif 000014
【図１０Ｂ】
0005957026.tif 000015
【図１０Ｃ】
0005957026.tif 000016
【図１０Ｄ】
0005957026.tif 000017
【図１２Ａ】
0005957026.tif 000018
【図１２Ｂ】
0005957026.tif 000019
【図１１Ａ】
0005957026.tif 000020
【図１１Ｂ】
0005957026.tif 000021