(57)【要約】【課題】カーソルの移動や削除などの操作を、アプリケーションに送信した文字列単位で行うことを可能にする。【解決手段】文字入力装置は、対象アプリケーションに送信する送信文字列情報を決定する文字列決定部と、送信文字列情報を対象アプリケーションに送信する文字列送信部と、前後に送信された送信文字列情報と関係付けて送信文字列情報を記憶する送信情報記憶部と、編集操作に関する入力情報が入力された場合に、送信情報記憶部に記憶された送信文字列情報を単位として編集イベントを生成する編集イベント生成部と、編集イベントを対象アプリケーションに送信する編集イベント送信部とを備える。【選択図】図１
2011138305.tif 000002
【特許請求の範囲】
【請求項１】
入力部を介して入力された入力情報に対応する文字列情報を、文字入力の対象となっている対象アプリケーションに送信する文字入力装置であって、
前記入力部から入力された入力情報に対応して、前記対象アプリケーションに送信する送信文字列情報を決定する文字列決定部と、
前記文字列決定部で決定された送信文字列情報を前記対象アプリケーションに送信する文字列送信部と、
前記文字列送信部が送信した送信文字列情報を、前後に送信された送信文字列情報と関係付けて記憶する送信情報記憶部と、
前記対象アプリケーション上に表示された文字列情報に対する編集操作に関する入力情報が入力された場合に、前記送信情報記憶部に記憶された送信文字列情報を単位として編集イベントを生成する編集イベント生成部と、
前記編集イベント生成部により生成された編集イベントを前記対象アプリケーションに送信する編集イベント送信部と、
を備える文字入力装置。
【請求項２】
前記送信情報記憶部は、前記対象アプリケーション上の編集対象となっている文字列情報を指示するためカーソルと、前記送信文字列情報との相対位置を示すカーソル位置情報を記憶していることを特徴とする、請求項１に記載の文字入力装置。
【請求項３】
前記編集イベント生成部は、前記編集操作に関する入力情報が文字列情報の削除である場合には、前記送信情報記憶部に記憶されているカーソル位置情報に基づいて編集対象となっている送信文字列情報を特定し、特定された送信文字列情報を削除するための編集イベントを生成する、請求項２に記載の文字入力装置。
【請求項４】
前記編集イベント生成部は、前記編集操作に関する入力情報が前記カーソルの移動である場合には、前記送信情報記憶部に記憶されている送信文字列情報を単位として前記カーソル位置情報を変更する、請求項２または３に記載の文字入力装置。
【請求項５】
複数の文字列情報を記憶する文字列辞書と、
前記入力部を介して入力された入力情報に基づいて前記対象アプリケーションに対して送信する前の文字列情報を未確定文字列情報として記憶する未確定文字列保持部と、
前記文字列辞書を参照し、前記未確定文字列保持部に保持されている未確定文字列情報に対応する候補文字列を選択する候補文字列選択部と、
をさらに備え、前記送信文字列決定部は、前記入力部を介して入力される入力情報に基づいて、前記未確定文字列保持部に記憶された未確定文字列情報または前記候補文字列選択部により選択された候補文字列情報のいずれかを送信文字列情報として決定する、請求項１〜４のいずれかに記載の文字入力装置。
【請求項６】
入力部を介して入力された入力情報に対応する文字列情報を、文字入力の対象となっている対象アプリケーションに送信する文字入力方法であって、
前記入力部から入力された入力情報に対応して、前記対象アプリケーションに送信する送信文字列情報を決定し、
前記決定された送信文字列情報を前記対象アプリケーションに送信し、
前記送信した送信文字列情報を、前後に送信された送信文字列情報と関係付けて記憶し、
前記対象アプリケーション上に表示された文字列情報に対する編集操作に関する入力情報が入力された場合に、前記記憶された送信文字列情報を単位として編集イベントを生成し、
前記生成された編集イベントに基づいて編集情報を前記対象アプリケーションに送信する、文字入力方法。
【請求項７】
入力部を介して入力された入力情報に対応する文字列情報を、文字入力の対象となっている対象アプリケーションに送信する文字入力方法のプログラムであって、
前記入力部から入力された入力情報に対応して、前記対象アプリケーションに送信する送信文字列情報を決定し、
前記決定された送信文字列情報を前記対象アプリケーションに送信し、
前記送信した送信文字列情報を、前後に送信された送信文字列情報と関係付けて記憶し、
前記対象アプリケーション上に表示された文字列情報に対する編集操作に関する入力情報が入力された場合に、前記記憶された送信文字列情報を単位として編集イベントを生成し、
前記生成された編集イベントに基づいて編集情報を前記対象アプリケーションに送信する、文字入力方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力手段を介してユーザが入力する文字情報をアプリケーションに反映させるための文字入力装置、文字入力方法及びそのプログラムに関する。
【背景技術】
【０００２】
種々のアプリケーションを実行する情報処理装置では、入力手段を介してユーザが入力する文字情報を受け付けて、これをアプリケーション上に反映するための文字入力装置を備えている。
【０００３】
情報処理装置には、キーボード、マウス、操作ボタン、タッチパネル、手書き入力パッド、その他の入力手段のうちの少なくとも１つを備えている。情報処理装置では、入力手段を介して入力される文字情報を文字入力装置において受け付けて、文字の変換処理などを経てこれをアプリケーション上に反映させる。
【０００４】
文字入力装置は、入力手段を用いて入力される情報を、ユーザが所望する情報に一致させるようなインターフェイスを提供するものである。したがって、ユーザは、文字入力装置が用意する規則に従って、入力手段を操作することによって、所望の情報を入力することが可能となる。
【０００５】
携帯電話やPDA（Personal Digital Assistants）などの携帯端末では、物理的なサイズに制約があり、設けられる入力手段にも制約がある。通常の携帯電話端末では、ハードウェアテンキーとカーソル移動用の十字キー、削除やその他のコマンドキーを備えており、ユーザはこれらキーを操作することにより種々の情報を入力することが可能である。
【０００６】
ユーザは、携帯電話端末の十字キーを用いてカーソル移動し、ハードウェアテンキーを用いてマルチタップにより入力する文字を選択し、削除キーを操作することにより削除を指示することにより、文字入力を行う。
【０００７】
ハードウェアキーを備えていない携帯端末では、たとえば、表示装置がタッチ入力可能なタッチパネルで構成され、画面上に表示されるソフトウェアキーボードを利用して文字入力や編集操作を行う。このようなソフトウェアキーボードを用いた携帯端末においても、同様に、テンキー、カーソル移動キー、削除キー、その他のコマンドキーがソフトウェアキーとして用意され、カーソルキーを操作してカーソル移動し、テンキーを用いてマルチタップにより入力する文字を選択し、削除キーを操作することにより削除を指示することにより、文字入力を行う。
【０００８】
このような情報処理装置における文字入力を簡便化するために、種々の提案がなされている。
【０００９】
たとえば、予め用意された所定の定型文字列を入力候補文字列として表示し、ユーザが選択した入力候補文字列をアプリケーションへの入力文字情報として反映させるようにした文字入力装置が提案されている（特許文献１）。
【００１０】
また、ユーザが入力した先頭の数文字からユーザが入力しようとしている文字列を予測して、入力候補文字列として表示し、ユーザが選択した入力候補文字列をアプリケーションへの入力文字情報として反映させるようにした文字入力装置が提案されている（特許文献２）。
【００１１】
このような文字入力装置では、ユーザが文字列全部を入力する前に、入力候補文字列を表示することによって、入力手段の操作回数を減少することができ、少ない操作回数で多くの文字入力を可能とする。したがって、情報処理装置上の各種アプリケーションに文字入力を行う際に、ユーザの操作の煩雑性を軽減することができ、迅速でかつ正確な文字入力を可能とする。特に、携帯端末のように、入力手段に制約がある情報処理装置では、前述したような構成とすることにより、操作性を向上することができる。
【００１２】
文字入力装置を介してアプリケーションに送信された文字列は、アプリケーション画面上で表示され、逐次編集が可能となる。この時、削除を指示するための削除指示キーや編集対象である文字列情報を指示するための選択用カーソルの移動は、アプリケーション画面上に表示された１文字毎に行われる。したがって、文字入力装置を介して文字列情報を一括して入力した場合であっても、その文字列情報を構成する１文字毎に削除やカーソル移動の指示を行う必要がある。
【００１３】
特に、前述したように、入力候補文字列を表示してこれをユーザに選択させるようにした文字入力装置では、入力時における操作回数を減少することは可能であるが、アプリケーションに一旦入力されてしまった文字列を編集するには、１文字毎のカーソル移動や１文字毎の削除指示などが必要となる。したがって、文字入力装置からアプリケーションに一括入力した文字列であっても、この文字列を一括して削除や編集することができず、文字列の長さに相当する回数だけ削除キーやカーソル移動キーを操作する必要がある。特に、予め用意された入力候補文字列が長い程、一括入力の操作回数を減少させることができるが、逆にアプリケーションに入力された後の文字列の編集を行う場合には、操作回数が増加してしまう。このように、削除やカーソル移動の回数が増加すると、必要以上にキー操作を繰り返すおそれがあり、さらに操作回数の増加を助長することとなる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平11-202996号公報
【特許文献２】特開2008-305385号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明は、ユーザが入力した文字列情報を編集する際に、カーソルの移動や削除などの操作を、アプリケーションに送信した文字列単位で行うことを可能にする文字入力装置を提供する。
【課題を解決するための手段】
【００１６】
本発明に係る文字入力装置は、入力部を介して入力された入力情報に対応する文字列情報を、文字入力の対象となっている対象アプリケーションに送信する文字入力装置であって、入力部から入力された入力情報に対応して、対象アプリケーションに送信する送信文字列情報を決定する文字列決定部と、文字列決定部で決定された送信文字列情報を対象アプリケーションに送信する文字列送信部と、文字列送信部が送信した送信文字列情報を、前後に送信された送信文字列情報と関係付けて記憶する送信情報記憶部と、対象アプリケーション上に表示された文字列情報に対する編集操作に関する入力情報が入力された場合に、送信情報記憶部に記憶された送信文字列情報を単位として編集イベントを生成する編集イベント生成部と、編集イベント生成部により生成された編集イベントを対象アプリケーションに送信する編集イベント送信部とを備える。
【００１７】
ここで、編集操作に関する入力情報は、対象アプリケーション上に表示されている文字情報または文字列情報の削除指示、削除指示の対象となる文字情報または文字列情報を特定するか、あるいは新たな文字情報または文字列情報を挿入する位置を特定するためのカーソルの移動に関する指示入力を含む。
【発明の効果】
【００１８】
上述した本発明の構成では、編集操作に関する入力情報があった場合に、送信情報記憶部に記憶された送信文字列情報を単位として、削除を行う指示やカーソル移動の指示を対象アプリケーションに送信することが可能となり、対象アプリケーション上の文字列情報の編集を簡便化することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、文字入力装置の概要構成を示す機能ブロック図である。
【図２】図２は、第１実施形態の文字入力装置の機能ブロック図である。
【図３】図３は、文字入力処理のフローチャートである。
【図４】図４は、文字入力処理のフローチャートである。
【図５】図５は、文字入力処理のフローチャートである。
【図６】図６は、文字入力処理のフローチャートである。
【図７】図７は、文字入力処理のフローチャートである。
【図８】図８は、文字入力処理のフローチャートである。
【図９】図９は、ディスプレイの画面構成の一例を示す説明図である。
【図１０】図10は、ディスプレイの画面構成の他の例を示す説明図である。
【図１１】図11は、文字列情報テーブルの一例を示す説明図である。
【図１２】図12は、候補文字列の配置情報テーブルの一例を示す説明図である。
【図１３】図13は、候補文字列の表示画面の一例を示す説明図である。
【図１４】図14は、文字列の接続情報テーブルの一例を示す説明図である。
【図１５】図15は、候補文字列の表示の一例を示す説明図である。
【図１６】図16は、送信情報記憶部に記憶される送信情報の一例を示す説明図である。
【図１７】図17は、送信情報に基づいて表示される表示画面例の説明図である。
【図１８】図18は、送信文字列情報を挿入する場合の送信情報の更新処理を示す説明図である。
【図１９】図19は、送信文字列情報が挿入された後の画面表示例を示す説明図である。
【図２０】図20は、文字列情報削除処理を行う前の送信情報の説明図である。
【図２１】図21は、文字列情報削除処理を行う前の表示画面の説明図である。
【図２２】図22は、文字列情報削除処理を行った後の送信情報の説明図である。
【図２３】図23は、文字列情報削除処理を行った後の表示画面の説明図である。
【図２４】図24は、カーソルの左移動処理を行う前の送信情報の説明図である。
【図２５】図25は、カーソルの左移動処理を行う前の表示画面の説明図である。
【図２６】図26は、カーソルの左移動処理を行った後の送信情報の説明図である。
【図２７】図27は、カーソルの左移動処理を行った後の表示画面の説明図である。
【図２８】図28は、カーソルの右移動処理を行う前の送信情報の説明図である。
【図２９】図29は、カーソルの右移動処理を行う前の表示画面の説明図である。
【図３０】図30は、カーソルの右移動処理を行った後の送信情報の説明図である。
【図３１】図31は、カーソルの右移動処理を行った後の表示画面の説明図である。
【図３２】図32は、送信情報の更新処理を示すフローチャートである。
【図３３】図33は、送信情報の更新処理を示すフローチャートである。
【図３４】図34は、送信情報の更新処理を示すフローチャートである。
【図３５】図35は、カーソルの左移動処理のフローチャートである。
【図３６】図36は、カーソルの右移動処理のフローチャートである。
【図３７】図37は、削除の編集操作に関する編集イベント生成処理のフローチャートである。
【図３８】図38は、カーソル左移動の編集操作に関する編集イベント生成処理のフローチャートである。
【図３９】図39は、カーソル右移動の編集操作に関する編集イベント生成処理のフローチャートである。
【発明を実施するための形態】
【００２０】
本発明の文字入力装置について、図示した実施例に基づいて詳細に説明する。
【００２１】
＜概要構成＞
図１は、文字入力装置の概要構成を示す機能ブロック図である。
【００２２】
文字入力装置10は、携帯電話端末、PDA、パーソナルコンピュータ、その他、CPU、ROM、RAM、記憶装置、入出力インターフェイス、ディスプレイ、スピーカなどを備える情報処理装置上で動作するアプリケーションとすることができる。
【００２３】
文字入力装置10は、情報処理装置に設けられたハードウェアキーやソフトウェアキー、キーボード、マウス、手書き入力装置、その他の入力部11を介して入力された入力情報を受け付ける。
【００２４】
文字入力装置10が適用される情報処理装置では、文字入力を受け付ける１又は複数のアプリケーションが動作可能となっており、文字入力装置10を介してユーザが入力する入力情報を受けてそれをアプリケーション上で反映する。
【００２５】
送信文字列決定部12は、入力部11から入力された入力情報に対応して、対象アプリケーションに送信する送信文字列を決定する。
【００２６】
文字列送信部13は、文字列決定部12で決定された送信文字列を対象アプリケーションに送信する。
【００２７】
送信情報記憶部14は、文字列送信部13が送信した送信文字列情報を、前後に送信された送信文字列情報と関係付けて記憶する。
【００２８】
編集イベント生成部15は、対象アプリケーション上に表示された文字列情報に対する編集操作に関する指示入力があった場合に、送信情報記憶部14に記憶された送信文字列情報を単位として編集イベントを生成する。
【００２９】
編集イベント送信部16は、編集イベント生成部15により生成された編集イベントに基づいて編集情報を対象アプリケーションに送信する。
【００３０】
＜第１実施形態＞
文字入力装置10の具体的な例として、以下の第１実施形態に基づいて説明する。
【００３１】
第１実施形態の文字入力装置10は、ユーザが入力する文字列情報の一部または送信文字列情報から、ユーザが入力しようとしている文字列情報を予測し候補文字列情報として表示する場合を想定している。
【００３２】
図２は、文字入力装置の第１実施形態の機能ブロック図である。
【００３３】
文字入力装置10は、CPU、ROM、RAM、記憶装置、入出力インターフェイス、ディスプレイ、スピーカなどを備える情報処理装置上で動作するアプリケーションで構成できる。たとえば、携帯電話端末やPDAなどの移動端末上で動作する場合には、文字入力装置10は、入力キーやタッチパネルにより構成されるソフトウェアキーなどを入力部としてユーザからの入力情報を取得し、移動端末上で動作する他のアプリケーションソフトウェアに対して入力された文字情報を反映するように構成される。
【００３４】
文字入力装置10は、入力受付部101、入力文字決定部102、未確定文字列更新部103、未確定文字列保持部104、未確定文字列表示部105、文字列辞書106、候補文字列選択部107、候補文字列表示部108、送信文字列決定部12、文字列送信部13、送信情報記憶部14、編集イベント生成部15、編集イベント送信部16を備えている。
【００３５】
入力受付部101は、端末上に配置された入力キーやタッチパネル上に構成されるソフトウェアキーなどの入力部11を介してユーザが入力する入力情報を受け付ける。
【００３６】
入力受付部101が受け付ける入力情報は、ユーザが対象アプリケーションに対して入力しようとする文字に関する文字入力指示情報、ディスプレイに表示された候補文字列のうちから対象アプリケーションに送信する文字列を選択するための選択指示情報、未確定文字列として保持されている文字列を対象アプリケーションに送信させるための送信指示情報、カーソル移動や削除の指示を含む編集操作情報などが含まれている。
【００３７】
入力受付部101は、受け付けた入力情報が文字入力指示情報であれば、入力文字決定部102に入力情報を送信し、受け付けた入力情報が選択指示情報であれば候補文字列選択部107に入力情報を送信し、受け付けた入力情報が文字列送信指示情報であれば送信文字列決定部12に入力情報を送信し、受け付けた入力情報が編集操作情報であれば編集イベント生成部15に入力情報を送信する。
【００３８】
入力文字決定部102は、入力受付部101により受け付けた文字入力指示情報に対応する文字を決定する。たとえば、入力受付部101により受け付けた文字入力指示情報が入力キーのマルチタップによる文字入力である場合には、入力文字決定部102は、同一キーの操作回数に応じて入力された文字を判定し、その文字情報を未確定文字列更新部103に送信する。
【００３９】
未確定文字列更新部103は、入力文字決定部102により決定された文字に基づいて、未確定文字列保持部104に保持された未確定文字列情報を更新する。
【００４０】
未確定文字列情報保持部104は、端末に内蔵された記憶手段の所定領域に設定され、入力受付部101により受け付けられて入力文字決定部102により決定された文字に基づいて、対象アプリケーションに送信する前の未確定文字列を記憶する。
【００４１】
未確定文字列表示部105は、端末に設けられた液晶パネルなどで構成されるディスプレイの一部で構成され、対象アプリケーションに送信する前の未確定文字列として、未確定文字列情報保持部104で保持している文字列情報を表示する。
【００４２】
文字列辞書106は、複数の文字列情報を記憶するものであって、用途に応じて一般的によく用いられる文字列情報を記憶する。また、一般的な単語、文節、慣用句などの文字列情報を記憶するとともに、この文字入力装置100から対象アプリケーションに送信した文字列情報を蓄積することもできる。この場合、対象アプリケーションに送信した送信文字列情報を、その前後に送信した送信文字列情報と関連付けて、記憶することが可能である。
【００４３】
候補文字列選択部107は、文字列辞書106を参照し、未確定文字列保持部104に保持された未確定文字列情報に対応する候補文字列を選択する。候補文字列選択部107は、未確定文字列保持104に保持された未確定文字列情報に基づいて文字列辞書106を検索し、先頭部分が未確定文字列情報に一致するような文字列情報を選択する。候補文字列選択部107は、文字列辞書106に記憶された文字列の中から最も未確定文字列情報に近い文字列を選択し、複数の候補文字列が存在する場合には、全て選択することができ、50音順やその他の優先度に応じた上位の複数個を選択することもできる。
【００４４】
候補文字列配置部121は、候補文字列表示領域内において候補文字列選択部107で選択された候補文字列を表示する配置位置を決定する。
【００４５】
候補文字列配置情報記憶部122は、候補文字列配置部121が決定した候補文字列の配置位置に基づいて、候補文字列選択部107で選択した候補文字列の配置情報を記憶する。
【００４６】
候補文字列表示部108は、端末に設けられた液晶パネルなどで構成されるディスプレイの一部で構成され、候補文字列選択部107で選択した候補文字列情報を表示する。
【００４７】
候補文字列表示部108には、表示された複数の候補文字列に重ねて選択用カーソルを表示することができ、ユーザが選択用カーソルを移動させて送信文字列を選択可能とすることができる。あるいは、ユーザが候補文字列表示部108の領域内をタッチし、タッチした座標位置に配置されている候補文字列を送信文字列として選択することができる。
【００４８】
候補文字列表示部108は、候補文字列配置情報記憶部122に記憶された各候補文字列の配置情報に基づいて各候補文字列を表示する。
【００４９】
送信文字列決定部12は、入力受付部101により受け付けた入力情報が候補文字列表示部108に表示された候補文字列のうちから文字列情報を選択する選択指示情報である場合、対応する候補文字列を送信文字列情報として決定する。たとえば、送信文字列決定部12は、候補文字列表示部108上における選択用カーソルの表示位置と、候補文字列配置情報記憶部122に記憶された候補文字列の配置情報とに基づいて、ユーザが選択した候補文字列を決定し、これを送信文字列情報として対象アプリケーションに送信する。
【００５０】
また、送信文字列決定部12は、入力受付部101により受け付けた入力情報が未確定文字列表示部105に表示された文字列情報を送信する旨の文字列送信指示情報である場合、該当する未確定文字列情報を送信文字列情報として決定する。
【００５１】
文字列送信部13は、送信文字列決定部12が決定した送信文字列を対象アプリケーションに送信する。
【００５２】
送信情報記憶部14は、文字列送信部12が送信した送信文字列情報を、直前に送信された送信文字列情報及び直後に送信された送信文字列情報のうち少なくとも一方の記憶領域と関連付けて記憶する。また、送信情報記憶部14は、削除指示の編集対象となる文字列情報を指示し、新たな文字列情報の挿入位置を特定するための選択用カーソルと、送信文字列情報との相対位置を示すカーソル位置情報を記憶する。
【００５３】
編集イベント生成部15は、入力受付部101により受け付けた入力情報が編集指示情報である場合、送信情報記憶部14を参照して編集イベントを生成する。
【００５４】
たとえば、編集指示情報が削除指示情報である場合には、編集イベント生成部15は、現在のカーソル位置の前に位置する送信文字列情報を削除指示の対象文字列として選択し、この送信文字列情報を全部削除するような編集情報を生成する。また、編集指示情報がカーソル移動指示情報である場合には、編集イベント生成部15は、現在のカーソル位置の前に位置する送信文字列情報の先頭または現在のカーソル位置の後に位置する送信文字列情報の後端にカーソル位置を移動するような編集情報を生成する。
【００５５】
編集イベント送信部16は、編集イベント生成部15によって生成された編集情報を対象アプリケーションに送信する。
【００５６】
＜文字入力時の動作＞
文字入力装置10の動作について、以下に説明する。
【００５７】
図３〜８は、文字入力装置10における文字入力処理のフローチャートである。
【００５８】
図３に示すように、処理を開始すると、ステップS100において、文字列入力装置100は、未確定文字列保持部104をリセットする。
【００５９】
ステップS101において、文字入力装置10は、入力受付部101において入力情報を受付けたか否かを判定する。文字入力装置10は、入力受付部101においてユーザからの入力情報を受け付けたと判断した場合にはステップS102に移行し、そうでない場合にはこの処理を終了する。
【００６０】
ステップS102において、文字入力装置10は、入力受付部101により受け付けた入力情報が文字入力指示情報であるか否かを判定する。文字入力装置10は、受け付けた入力情報が、文字入力指示情報であると判定した場合にはステップS103に移行し、そうでない場合にはステップS111に移行する。
【００６１】
ステップS103において、文字入力装置10は、入力受付部101により受け付けた文字入力指示情報に対応する文字を決定する。ここでは、入力文字決定部102が、文字入力指示情報に基づいてユーザが入力を指示した文字を決定する。
【００６２】
ステップS104において、文字入力装置10は、入力文字決定部102が決定した文字を未確定文字列保持部104に保持されている未確定文字列情報の最後に結合して、現在の未確定文字列情報として未確定文字列保持部104に格納する。
【００６３】
ステップS105において、文字入力装置10は、未確定文字列保持部104に保持されている未確定文字列情報の内容を、未確定文字列表示部105に反映させることにより、未確定文字列表示部105の表示内容を更新する。
【００６４】
ステップS106において、文字入力装置10は、未確定文字列保持部104に保持されている未確定文字列情報に基づいて、文字列辞書106を検索する。
【００６５】
ステップS107において、文字入力装置10は、未確定文字列情報に基づいて選択された候補文字列があるか否かを判別する。
【００６６】
文字入力装置10は、候補文字列選択部107により文字列辞書106を検索し、先頭文字列が未確定文字列情報に一致する文字列が存在すると判断した場合には、ステップS108に移行し、そうでない場合にはステップS101に移行する。
【００６７】
ステップS108において、文字入力装置10は、選択された候補文字列の配置領域を決定する。前述したように、候補文字列配置部121は、候補文字列表示部108において、どの領域に各候補文字列を配置するかについて、候補文字列表示部108の表示面積、選択された候補文字列の数、フォントなどに応じて、各配置位置を決定する。
【００６８】
ステップS109において、文字入力装置10は、選択された候補文字列に対して決定されたそれぞれの配置情報を候補文字列配置情報記憶部122に格納する。
【００６９】
ステップS110において、文字入力装置10は、候補文字列配置情報記憶部122に格納された候補文字列の配置情報に基づいて、候補文字列表示部108に候補文字列を表示する。この後、文字入力装置10は、ステップS101に処理を移行する。
【００７０】
図４に示すように、ステップS111において、文字入力装置10は、入力受付部101で受け付けた入力情報が、ディスプレイに表示された候補文字列のうちから対象アプリケーションに送信する文字列を選択するための選択指示情報であるか否かを判別する。
【００７１】
文字入力装置10は、たとえば、候補文字列表示部108で表示された候補文字列と重ねて表示される選択用カーソルがユーザにより操作されて、候補文字列のうちのいずれかを選択する旨の選択指示情報であると判断した場合には、ステップS112に移行し、そうでないと判断した場合にはステップS122に移行する。
【００７２】
ステップS112において、文字入力装置10は、入力受付部101で受け付けた選択指示情報と候補文字列配置情報記憶部122に格納されている候補文字列の配置情報に基づいて、ユーザが選択した候補文字列を送信文字列情報として決定する。
【００７３】
ステップS113において、文字入力装置10は、決定した送信文字列情報を対象アプリケーションに送信する。
【００７４】
ステップS114において、文字入力装置10は、未確定文字列保持部104に保持された未確定文字列情報をリセットする。
【００７５】
ステップS115において、文字入力装置10は、未確定文字列表示部105に表示されている未確定文字列を更新する。ここでは、未確定文字列保持部104に保持された未確定文字列情報がリセットされていることから、それまで表示されていた未確定文字列がクリアされる。
【００７６】
ステップS116において、文字入力装置10は、送信情報記憶部14に格納されている送信文字列情報を更新する。
【００７７】
ここでは、文字入力装置10は、直前に送信した送信文字列情報が格納されている記憶領域と関連付けて、今回送信した送信文字列情報を記憶領域に格納し、さらに、現在のカーソル位置情報を送信文字列情報の後に位置するように設定して、送信情報記憶部14に格納する。
【００７８】
ステップS117において、文字入力装置10は、対象アプリケーションに送信した送信文字列情報に基づいて、その送信文字列情報に続く候補文字列を文字例辞書106から検索し、これを候補文字列として選択する。この後、文字入力装置10は、ステップS107に処理を移行する。
【００７９】
図５に示すように、ステップS122において、文字入力装置10は、入力受付部101で受け付けた入力情報が、未確定文字列として保持されている文字列を対象アプリケーションに送信させるための送信指示情報であるか否かを判別する。
【００８０】
文字入力装置10は、入力受付部101で受け付けた入力情報が送信指示情報であると判断した場合には、ステップS123に移行し、そうでない場合にはステップS124に移行する。
【００８１】
ステップS123において、文字入力装置10は、未確定文字列保持部104に保持されている未確定文字列情報を対象アプリケーションに送信する。この後、文字入力装置10は、ステップS114に処理を移行する。
【００８２】
図６に示すように、ステップS124において、文字入力装置10は、入力受付部101で受け付けた入力情報が文字列単位で削除する旨の編集指示情報であるか否かを判別する。
【００８３】
文字入力装置10は、入力受付部101で受け付けた入力情報が文字列単位で削除する旨の編集指示情報であると判別した場合には、ステップS125に移行し、そうでないと判断した場合にはステップS128に移行する。
【００８４】
ステップS125において、文字入力装置10は、送信情報記憶部14に格納されている送信文字列情報を更新する。
【００８５】
文字入力装置10は、送信情報記憶部14に格納されている現在のカーソル位置情報に基づいて、その直前に位置する送信文字列情報を文字列単位で削除し、削除した送信文字列情報の前後に位置する送信文字列情報を接続するための配置情報を更新して送信情報記憶部14に格納する。さらに、文字入力装置10は、現在のカーソル位置情報を削除した送信文字列情報の前後に位置する送信文字列情報の間に位置するように設定し、送信情報記憶部14の内容を更新する。
【００８６】
ステップS126において、文字入力装置10は、文字列単位で削除する旨の編集指示情報に基づいて、該当する文字列情報を削除するための編集イベントを生成する。
【００８７】
ステップS127において、文字入力装置10は、文字列単位で削除の編集を行うための編集イベントを対象アプリケーションに送信する。この後、文字入力装置10は、ステップ101に処理を移行する。
【００８８】
図７に示すように、ステップS128において、文字入力装置10は、入力受付部101で受け付けた入力情報が文字列単位でカーソルを左移動操作する旨の編集指示情報か否かを判定する。
【００８９】
文字入力装置10は、入力情報が文字列単位でカーソルを左移動操作する旨の編集指示情報であると判別した場合にはステップS129に移行し、そうでない場合にはステップS132に移行する。
【００９０】
ステップS129において、文字入力装置10は、送信情報記憶部14に記憶されている送信文字列情報を更新する。
【００９１】
文字入力装置10は、送信情報記憶部14に記憶されている現在のカーソル位置情報に基づいて、その直前に位置する送信文字列情報の先頭位置にカーソル位置情報を変更し、送信情報記憶部14の内容を更新する。
【００９２】
ステップS130において、文字入力装置10は、文字列単位でカーソルを左移動操作するための編集イベントを生成する。
【００９３】
文字入力装置10は、送信情報記憶部14に記憶されているカーソル位置情報に基づいて、現在のカーソル位置から文字列単位で左移動する旨の編集イベントを生成する。
【００９４】
ステップS131において、文字入力装置10は、生成した編集イベントに基づいて、現在のカーソル位置を文字列単位で左移動する旨の編集イベントを対象アプリケーションに送信する。この後、文字入力装置10は、ステップS101に処理を移行する。
【００９５】
図８に示すように、ステップS132において、文字入力装置10は、入力受付部101で受け付けた入力情報が文字列単位でカーソルを右移動操作する旨の編集指示情報か否かを判定する。
【００９６】
文字入力装置10は、入力情報が文字列単位でカーソルを右移動操作する旨の編集指示情報であると判別した場合にはステップS133に移行し、そうでない場合にはステップS101に移行する。
【００９７】
ステップS133において、文字入力装置10は、送信情報記憶部14に記憶されている送信文字列情報を更新する。
【００９８】
文字入力装置10は、送信情報記憶部14に記憶されている現在のカーソル位置情報に基づいて、その直後に位置する送信文字列情報の後端位置にカーソル位置情報を変更し、送信情報記憶部14の内容を更新する。
【００９９】
ステップS134において、文字入力装置10は、文字列単位でカーソルを右移動操作するための編集イベントを生成する。
【０１００】
文字入力装置10は、送信情報記憶部14に記憶されているカーソル位置情報に基づいて、現在のカーソル位置から文字列単位で右移動する旨の編集イベントを生成する。
【０１０１】
ステップS135において、文字入力装置10は、生成した編集イベントに基づいて、現在のカーソル位置を文字列単位で右移動する旨の編集イベントを対象アプリケーションに送信する。この後、文字入力装置10は、ステップS101に処理を移行する。
【０１０２】
＜入力部及び表示画面構成＞
文字入力装置10が適用される端末における入力部及び表示画面構成の一例を以下に説明する。
【０１０３】
図９は、文字入力装置10が適用される端末のディスプレイの画面構成を示す説明図である。
【０１０４】
図９に示すディスプレイ画面900は、文字入力の対象となっている対象アプリケーションの表示画面である第１表示部910と、文字入力装置100の表示画面である第２表示部920とを備えている。
【０１０５】
対象アプリケーションの表示画面である第１表示部910には、現在の文字入力位置にカーソル911が表示されている。このカーソル911は、現在のカーソル位置を明示するための点滅状態で表示することができる。
【０１０６】
文字入力装置100の表示画面である第２表示部920は、候補文字列表示領域921、入力文字表示部922、文字入力キー923、削除指示キー924、カーソル移動キー925,926、空白入力キー927、変換指示キー928、改行指示キー929を備えている。
【０１０７】
候補文字列表示領域921は、図２の候補文字列表示部108に相当するものであり、候補文字列選択部107で選択された候補文字列情報を表示する領域である。
【０１０８】
入力文字表示部922は、図２の未確定文字列表示部105に相当するものであり、未確定文字列保持部104に保持されている未確定文字列情報を表示する。
【０１０９】
図９に示す端末のディスプレイは、たとえば、全面タッチパネルで形成されており、文字入力キー923、削除指示キー924、カーソル移動キー925,926、空白入力キー927、変換指示キー928、改行指示キー929は、ソフトウェアキーボードとして実現することができる。
【０１１０】
文字入力キー923は、たとえば、数字やかな文字、アルファベット、各種記号などが割り当てられた複数のキーを備えており、入力モード設定およびマルチタップによりそれぞれ対応する文字や記号の入力を可能にする。
【０１１１】
削除指示キー924は、入力された文字列に対して１文字削除する旨の指示情報を入力するための入力キーである。
【０１１２】
カーソル移動キー925,926は、第１表示部910上のカーソルを左右に移動する操作指示を入力するための入力キーである。
【０１１３】
空白入力キー927は、入力文字列に空白を挿入するための入力キーである。
【０１１４】
変換指示キー928は、カナ漢字変換を指示するための指示入力キーである。
【０１１５】
改行指示キー929は、改行を入力するための入力キーである。
【０１１６】
たとえば、真ん中に「か」と表記された入力キー923aが１回操作されると、入力文字決定部102は入力文字を「か」と判定し、未確定文字列保持部104に「か」が保持される。また、入力キー923aが２回操作された場合には、入力文字決定部102は入力文字を「き」と判定し、以下、入力文字決定部102は操作回数に応じて入力文字を決定し、これに応じて未確定文字列更新部103は未確定文字列保持部104に保持されている未確定文字列情報を更新する。
【０１１７】
＜入力部の他の例＞
文字入力装置100が適用される端末における入力部の他の例を説明する。
【０１１８】
図10は、文字入力装置100が適用される端末のディスプレイの画面構成を示す説明図である。
【０１１９】
図10に示すディスプレイ画面900は、前述の例と同様に、文字入力の対象となっている対象アプリケーションの表示画面である第１表示部910と、文字入力装置100の表示画面である第２表示部920とを備えている。
【０１２０】
第２表示部920は、手書き入力部930を備えている。手書き入力部930は、手書き入力パッドで構成されており、入力ペンで手書きした文字を入力受付部101で受け付けて、入力文字決定部102で入力文字を決定する。この場合、入力文字決定部102は、手書き文字認識部を備えており、入力された手書き文字を文字情報に変換する。
【０１２１】
入力部の例としては、前述したような構成に代えて、端末に設けられたハードウェアキーを用いることもできる。
【０１２２】
＜候補文字列の選択＞
文字列辞書106には、単語、文節、慣用句などの文字列情報がその読みと表記とを対応付けて格納されている。
【０１２３】
図11は、文字列辞書106に格納されている文字列情報テーブルの一例を示す説明図である。
【０１２４】
図11に示す例では、文字列情報テーブル1100として文字列情報の読みと表記とが対応付けて格納されている。
【０１２５】
文字列情報テーブル1100は、読み情報欄1101と表記情報欄1102とを備えている。
【０１２６】
未確定文字列保持部104に保持されている未確定文字列情報に基づいて、候補文字列選択部107が文字列辞書106から候補文字列を選択する場合を以下に説明する。
【０１２７】
入力受付部101で受け付けた入力情報に基づいて、入力文字決定部102が最初に決定した文字情報が「か」である場合、未確定文字列保持部104に保持されている未確定文字列情報の内容は、未確定文字列更新部103により更新されて「か」となる。
【０１２８】
候補文字列選択部107は、未確定文字列保持部104に保持されている未確定文字列情報「か」に基づいて、文字列辞書106を検索し、読み情報が「か」で始まる文字列情報を抽出する。
【０１２９】
図11に示す例では、読み情報が「か」で始まる文字列情報は、表記情報「かわいい」、「確認」、「買った」、「確定」・・・などの複数の文字列情報を得ることができる。
【０１３０】
候補文字列選択部107は、文字列辞書106から抽出した文字列情報の一部または全部を、候補文字列としてユーザに提示する。
【０１３１】
候補文字列選択部107は、選択した候補文字列を図９または図10に示す候補文字列表示領域921に表示する。
【０１３２】
図12は、候補文字列表示領域921に候補文字列を表示する際の配置情報テーブルの説明図である。
【０１３３】
候補文字列配置部121は、候補文字列選択部107が選択した各候補文字列について、候補文字列表示領域921上の座標を決定することによって、配置位置を決める。
【０１３４】
候補文字列配置121は、候補文字列表示領域921の左上端部の座標と、右下端部の座標とに基づいて、選択された候補文字列の文字数、現在設定されているフォントのポイントなどに従って、各候補文字列の配置位置を算出する。
【０１３５】
たとえば、候補文字列表示領域921の左上端部の座標を(0,0)とし、右下端部の座標を（100,20）とし、候補文字列選択部107が選択した候補文字列が「かわいい」、「確認」、「買った」、「確定」、「確実」、「かっこいい」であったとする。
【０１３６】
候補文字列表示領域921内に、「かわいい」、「確認」、「買った」、「確定」、「確実」、「かっこいい」の各文字列を３文字列ずつ２段に分けて表示する場合、候補文字列配置部121は各文字列を表示するために必要なスペースに基づいて、各文字列の左上端部の座標と右下端部の座標を決定し、これを各候補文字列の配置情報として候補文字列配置情報記憶部122に格納する。
【０１３７】
候補文字列配置情報記憶部122に格納される候補文字列の配置情報テーブル1200は、図12に示すように、候補文字列情報欄1201及び配置情報欄1202で構成される。
【０１３８】
候補文字列情報欄1201には、候補文字列選択部107によって選択された候補文字列の表記情報が格納される。また、配置情報欄1202には、候補文字列配置部121により算出された各候補文字列の配置情報が格納される。
【０１３９】
図13は、候補文字列の表示画面例を示す説明図である。ここでは、図９に示す表示画面例に基づいて説明する。
【０１４０】
文字入力キー923を介して入力された入力情報に基づいて、入力文字決定部102が入力された文字を「か」であると判断すると、未確定文字列保持部104に保持されている未確定文字列情報が「か」に更新され、この未確定文字列情報の内容が入力文字表示部922に反映される。
【０１４１】
このことから、図13に示されるように、入力文字表示部922に「か」が表示される。
【０１４２】
候補文字列選択部107は、未確定文字列保持部104に保持されている未確定文字列情報に基づいて文字列辞書106を参照し、候補文字列を選択する。
【０１４３】
候補文字列配置部121は、候補文字列表示領域921上に表示する候補文字列の配置情報を算出し、候補文字列配置情報記憶部122に各候補文字列に対応する配置情報を格納する。
【０１４４】
候補文字列表示部108には、候補文字列選択部107が選択した候補文字列が表示されるものであって、候補文字列配置情報記憶部122に格納されている各候補文字列に対応する配置情報に従って、各候補文字列が候補文字列表示領域921内に表示される。
【０１４５】
図13に示す例では、候補文字列表示領域921内に、６つの候補文字列が２段で３文字列ずつ表示されている。
【０１４６】
候補文字列表示領域921の構成や候補文字列の表示方法は、上述したようなものに限定されるものではない。たとえば、候補文字列表示領域921を縦長にして１行に１つの候補文字列を表示することも可能であり、その他種々の構成に設計することができる。
【０１４７】
図示していないが、候補文字列表示領域921に表示された候補文字列のいずれか１つと重なるような選択用カーソルを表示し、この選択用カーソルを入力したい候補文字列上に位置させて改行指示キー929を操作することで、該当する候補文字列を送信文字列に決定する指示入力を行えるように構成できる。また、候補文字列表示領域921内をタッチ操作し、タッチされた位置に配置されている候補文字列を送信文字列に決定する指示入力を行えるように構成することも可能である。
【０１４８】
＜予測変換＞
対象アプリケーションに送信した送信文字列に基づいて、次に入力される文字列情報を予測してこれを候補文字列とすることが考えられる。このような場合、慣用的な表現に用いられる文字列情報の接続関係を予め文字列辞書106に記憶させておくことで、対象アプリケーションに文字列情報を送信した直後に、送信文字列情報に基づく候補文字列を選択することができる。また、ユーザの入力履歴を学習して、文字列情報の接続関係を文字列辞書106内に蓄積していくことも可能である。
【０１４９】
送信文字列情報に基づいて次に入力される文字列情報を予測して候補文字列を選択するための文字列辞書106の一例を以下で説明する。
【０１５０】
図14は、文字列辞書106に格納される文字列の接続情報テーブルの一例を示す説明図である。
【０１５１】
接続情報テーブル1400は、所定の文字列情報に対してそれに接続することが予測される文字列情報を一対にしたものであって、第１文字列表記欄1401、第２文字列表記欄1402を備えている。
【０１５２】
第１文字列表記欄1401には、任意の文字列情報の表記情報が格納される。
【０１５３】
第２文字列表記欄1402には、第１文字列表記欄1401に格納された文字列の後に接続する文字列情報の表記情報が格納される。
【０１５４】
前述したように、文字列情報の接続関係は、慣用的な表現に用いられる文字列情報の接続関係に基づいて決定することが可能であり、このような接続関係に基づいて接続情報テーブル1400を設定しておくことが可能である。
【０１５５】
また、ユーザの入力履歴を学習して、送信文字列情報の前後関係から接続情報テーブル1400に格納されるレコードを追加することも可能である。
【０１５６】
図14に示すように、第１文字列表記欄1401に格納された「確定」という表記情報を有する第１文字列情報に対して、「します」、「した」、「しました」、「処理」、「された」などの表記情報を有する第２文字列情報が格納されているものとする。
【０１５７】
図15は、送信文字列に応じて選択した候補文字列を候補文字列表示領域921に表示した例を示す説明図である。
【０１５８】
対象アプリケーションに対して、「対象」という文字列の送信指示がなされた場合、対象アプリケーションの第１表示部910のカーソル表示位置に送信文字列1510である「確定」を表示する。このとき、カーソル911は、送信文字列1510の後ろに移動して表示され、次の入力文字列の表示位置を示す。
【０１５９】
候補文字列選択部107は、送信文字列に基づいて文字列辞書106を検索し、送信文字列を第１文字列情報としてその次に接続可能な第２文字列情報の表記情報を取得し、これを候補文字列として選択する。
【０１６０】
図14に示す接続情報テーブルの例によれば、候補文字列選択部107は、第１文字列表記情報「確定」に対して、第２文字列表記情報「します」、「した」、「しました」、「処理」、「された」を候補文字列として選択する。
【０１６１】
前述したように、候補文字列配置部121により候補文字列表示領域921上の各候補文字列の配置情報が決定され、これに基づいて候補文字列表示領域921上に各候補文字列が表示される。
【０１６２】
したがって、図15に示すように、候補文字列配置部121が決定した配置情報に基づいて、候補文字列表示領域921に各候補文字列が表示される。
【０１６３】
候補文字列表示領域921に表示された候補文字列から送信文字列を決定する方法は、前述したように、候補文字列に重ねて表示される選択用カーソルを用いることができる。または、タッチされた位置に配置されている候補文字列を送信文字列として決定することもできる。
【０１６４】
＜送信情報＞
文字入力装置10において、対象アプリケーションに送信した送信文字列情報を編集する際には、送信文字列情報を単位として削除指示やカーソル移動を行うことができるようにする。このために、文字入力装置10は、送信文字列情報とその接続関係、および現在のカーソル位置情報を送信情報記憶部14に記憶している。
【０１６５】
送信情報記憶部14に記憶されている送信単位情報について、以下に説明する。
【０１６６】
送信情報記憶部14には、文字入力装置10の文字列送信部13から送信した送信文字列情報と、その送信文字列情報の文字数、その前に送信した送信文字列情報を特定するための第１接続情報、その後に送信した送信文字列情報を特定するための第２接続情報を備えた送信情報を格納する。
【０１６７】
送信情報記憶部14に記憶される送信情報は、それぞれ編集操作の対象となる送信文字列情報であって、編集操作の指示があるとこれら送信情報が示す送信文字列情報を単位として削除やカーソル移動が行われる。したがって、送信情報記憶部14に記憶される送信情報のうち、どの送信情報に対応する送信文字列が編集対象となっているか示すために、現在のカーソル位置がどの送信情報に対応する位置にあるのかを示すカーソル位置ポインタを送信情報記憶部14に記憶しておく。以下、各送信情報をノードと呼び、カーソル位置ポインタが位置する送信情報をカレントノードNc、カレントノードNcの直前に存在するノードを直前ノードNb、カレントノードNcの直後に存在するノードを直後ノードNa、後続のノードが存在しないノードを最終ノードNeと呼ぶこととする。
【０１６８】
文字入力の対象となる対象アプリケーションが新規に開いた場合には、例えば、図９に示すような第１表示部910の左上の基準にカーソルが位置している。この状態で、文字入力装置10は、送信を完了した送信文字列が存在していないことから、送信情報記憶部14には、送信情報が空である空ノードが１つ存在するだけである。
【０１６９】
この後、文字入力装置10から送信文字列情報が対象アプリケーションに送信されると、最終位置であることを示すために送信情報が空である最終ノードNeを作成し、この最終ノードNeの前にノードを挿入し、挿入されたノードの送信文字列情報、文字数、第１接続情報及び第２接続情報を備える送信情報が送信情報記憶部14に蓄積されていく。
【０１７０】
図16は、複数の送信文字列情報を送信した後の送信情報記憶部14に記憶される送信情報の一例を示す説明図である。
【０１７１】
図17は、図16の送信情報に基づいて第１表示部910に表示される表示画面例の説明図である。
【０１７２】
図16に示すように、「確定」、「した」、「単位」、「で」の各文字列情報が順に送信された場合に、対応する送信情報がノードN1〜N4として送信情報記憶部14に蓄積される。
【０１７３】
ノードN1はこの文書の先頭文字列であることから、ノードN1の第１接続情報には先頭文字列であることを示す情報が格納されている。また、ノードN1の第２接続情報には後続のノードN2へのリンク情報が格納されている。ノードN2へのリンク情報としては、ノードN2が格納されているメモリアドレスを用いることができる。
【０１７４】
ノードN2は、ノードN1の後続のノードであることから、第１接続情報としてノードN1へのリンク情報が格納されている。また、ノードN2の後続のノードがノードN3であることから、ノードN2の第２接続情報としてノードN3へのリンク情報が格納されている。
【０１７５】
以下、ノードN3〜N4に関しても、同様にしてリンクするノードの情報が格納される。ただし、ノードN4が送信文字列情報として最後の送信情報である場合には、ノードN4の第２接続情報には最終ノードNeへのリンク情報が格納される。
【０１７６】
図16及び図17の例では、ノードN2の位置に現在のカーソルが位置している場合を示しており、したがって、カレントノードNcがノードN2に位置しており、第１表示部910上では、「した」と「単位」の間にカーソル911が表示されている。
【０１７７】
＜文字列情報送信処理＞
文字列送信部13により対象アプリケーションに文字列情報を送信した場合に、送信情報記憶部14に記憶される送信情報を更新する動作を以下に示す。
【０１７８】
図32〜33は、送信情報記憶部14に記憶された送信情報の更新処理を示すフローチャートである。
【０１７９】
ステップS201において、文字入力装置10は、カーソル位置ポインタが指しているカレントノードNcの送信情報を取得する。
【０１８０】
ステップS202において、文字入力装置10は、文字列送信部13が送信した送信文字列情報の文字数を算出する。
【０１８１】
ステップS203において、文字入力装置10は、送信文字列情報と、算出した文字数をノードの内容としてもつ新規ノードNnを作成する。
【０１８２】
たとえば、図16及び図17に示すように、対象アプリケーションに送信した送信情報がノードN1〜N4であり、カーソル位置ポインタが指すカレントノードNcがノードN2を指しているとする。この状態で、文字列送信部13が、カレントノードNcの位置に「文字列」という送信文字列情報を送信した場合を想定する。
【０１８３】
図18は、送信文字列情報を挿入する場合の送信情報記憶部14に記憶された送信情報の更新処理を示す説明図である。
【０１８４】
図19は、送信文字列情報が挿入された後の画面表示例を示す説明図である。
【０１８５】
図18、図19に示されるように、送信文字列情報である「文字列」は、その文字数が「３」である。したがって、送信文字列情報「文字列」と、その文字数「３」に従って、この情報を備えるノードN5を作成し、これを新規ノードNnとする。
【０１８６】
ステップS204において、文字入力装置10は、カレントノードNcが空のノードであるか否かを判別する。カレントノードNcが空のノードであるということは、後続のノードが存在しない最終ノードNeであることを表しており、文字入力装置10は、カレントノードNcが最終ノードNeであると判断した場合にはステップS205に移行し、そうでない場合にはステップS209に移行する。
【０１８７】
ステップS205において、送信情報が空であるような最終ノードNeを新規に作成する。カレントノードNcが空ノードであるということは、対象アプリケーションに送信された送信文字列情報が存在していないことを示す。この場合には、文字入力装置10は、空ノードである最終ノードNeを新たに作成し、この最終ノードNeの前に送信文字列情報を挿入していく。
【０１８８】
ステップS206において、新規ノードNnの第２接続情報として最終ノードNeへのリンク情報を格納する。
【０１８９】
このとき、最終ノードNeの第１接続情報には、新規ノードNnへのリンク情報が格納される。
【０１９０】
ステップS207において、新規ノードNnの第１接続情報としてカレントノードNcへのリンク情報を格納する。
【０１９１】
先に送信した送信文字列情報が存在していない場合には、カレントノードNcは空ノードである。したがって、送信情報新規ノードNnの第１接続情報として格納されるカレントノードNcへのリンク情報は、最初の空ノードである。この最初の空ノードには、第２接続情報に新規ノードNnへのリンク情報が格納される。
【０１９２】
ステップS208において、文字入力装置10は、カーソル位置ポインタが指すカレントノードNcを新規ノードNnに変更する。この後、文字入力装置10はこの送信情報の更新処理を終了する。
【０１９３】
ステップS209において、文字入力装置10は、カレントノードNcの直後ノードNaへのリンク情報を取得する。
【０１９４】
ステップS210において、文字入力装置10は、新規ノードNnの第２接続情報として直後ノードNaへのリンク情報を格納する。
【０１９５】
ステップS211において、文字入力装置10は、直後ノードNaの第１接続情報を新規ノードNnへのリンク情報に置換する。
【０１９６】
ステップS212において、文字入力装置10は、カレントノードNcの第２接続情報を新規ノードNnへのリンク情報に置換する。この後、文字入力装置10は、ステップS207にその処理を移行する。
【０１９７】
図18に示すように、カレントノードNcがノードN2であって、ノードN2の次に新規ノードNnとしてノードN5が送信された場合、文字入力装置10は、新規ノードNnであるノードN5の第１接続情報をカレントノードNcであるノードN2へのリンク情報とし、ノードN5の第２接続情報を直後ノードNaであるノードN3へのリンク情報とする。
【０１９８】
また、カレントノードNcであるノードN2の第２接続情報を新規ノードNnであるノードN5へのリンク情報に置換し、直後ノードNaであるノードN3の第１接続情報を新規ノードNnであるノードN5へのリンク情報に置換する。
【０１９９】
この後、カーソル位置ポインタを新規ノードNnであるノードN5に変更される。その結果、第１表示部910上では、図19に示すように、「文字列」と「単位」の間に位置してカーソル911が表示される。
【０２００】
＜文字列情報削除処理＞
次に、対象アプリケーション上で表示されている文字列情報に対して、削除指示があった場合について説明する。
【０２０１】
図20は、文字列情報削除処理を行う前の送信情報の説明図である。
【０２０２】
図21は、文字列情報削除処理を行う前の表示画面の説明図である。
【０２０３】
図22は、文字列情報削除処理を行った後の送信情報の説明図である。
【０２０４】
図23は、文字列情報削除処理を行った後の表示画面の説明図である。
【０２０５】
図20及び図21に示すように、送信文字列情報が「確定」、「した」、「文字列」、「単位」、「で」であり、それぞれノードN1〜N5であるとする。ここで、カーソル位置ポインタが指しているカレントノードNcが、ノードN3であるとすると、第１表示部910には、図21に示すように、「文字列」と「単位」との間にカーソル911が表示される。
【０２０６】
ここで、図22、図23に示されているように、カレントノードNcであるノードN3を削除する場合を想定する。
【０２０７】
図34は、文字列情報の削除処理のフローチャートである。
【０２０８】
ステップS301において、文字入力装置10は、カーソル位置ポインタが指しているカレントノードNcの送信情報を取得する。
【０２０９】
ステップS302において、文字入力装置10は、カレントノードNcが空のノードであるか否かを判別する。
【０２１０】
文字入力装置10は、カレントノードNcが空のノードではないと判断した場合にはステップS303に移行する。カレントノードNcが空のノードである場合には、対象アプリケーションに送信した送信文字列情報が存在しておらず、削除指示を行うことができないことから、この文字列情報の削除処理を終了する。
【０２１１】
ステップS303において、文字入力装置10は、カレントノードNcの第１接続情報である直前ノードNbへのリンク情報を取得する。
【０２１２】
ステップS304において、文字入力装置10は、カレントノードNcの第２接続情報である直後ノードNaへのリンク情報を取得する。
【０２１３】
ステップS305において、文字入力装置10は、直前ノードNbの第２接続情報を直後ノードNaへのリンク情報に置換する。
【０２１４】
ステップS306において、文字入力装置10は、直後ノードNaの第１接続情報を直前ノードNbへのリンク情報に置換する。
【０２１５】
ステップS307において、文字入力装置10は、カレントノードNcの送信情報を削除する。
【０２１６】
ステップS308において、文字入力装置10は、カーソル位置ポインタが指すカレントノードNcを直前ノードNbの送信情報とする。
【０２１７】
図20に示すように、ノードN1〜N5でなる送信情報において、カレントノードNcであるノードN3を削除する場合を想定する。この時、図21に示すように、第１表示部910には、「確定した文字列単位で」という文字列が表示されており、カレントノードNcに対応する文字列情報「文字列」と、直後ノードNaに対応する文字列情報「単位」との間に、カーソル911が表示されている。
【０２１８】
文字入力装置10は、カレントノードNcであるノードN3の第１接続情報を直後ノードNaであるノードN4の第１接続情報に置換する。
【０２１９】
また、文字入力装置10は、カレントノードNcであるノードN3の第２接続情報を直前ノードNbであるノードN2の第２接続情報に置換する。
【０２２０】
カレントノードNcであるノードN3の第１接続情報は、直前ノードNbであるノードN2へのリンク情報であることから、直後ノードNaであるノードN4の第１接続情報はノードN2へのリンク情報に置き換えられる。
【０２２１】
また、カレントノードNcであるノードN3の第２接続情報は、直後ノードNaであるノードN4へのリンク情報であることから、直前ノードNbであるノードN2の第２接続情報はノードN4へのリンク情報に置き換えられる。
【０２２２】
文字入力装置10は、カレントノードNcであるノードN3を削除し、直前ノードNbであるノードN2をカーソル位置ポインタが指すカレントノードNcとする。
【０２２３】
この結果、図23に示すように、第１表示部910には、ノードN3に対応する「文字列」という文字列が削除された「確定した単位で」が表示され、カレントノードNcに対応する「した」という文字列と、直後ノードNaに対応する「単位」という文字列の間に、カーソル911が表示される。
【０２２４】
＜カーソル移動処理＞
対象アプリケーション上に表示された文字列情報の編集を行う際には、編集する文字列や編集を行う位置を指定するために、カーソルを移動させる編集操作が指示される。
【０２２５】
編集操作を行うためのカーソル移動処理について説明する。
【０２２６】
図24は、カーソルの左移動処理を行う前の送信情報の説明図である。
【０２２７】
図25は、カーソルの左移動処理を行う前の表示画面の説明図である。
【０２２８】
図26は、カーソルの左移動処理を行った後の送信情報の説明図である。
【０２２９】
図27は、カーソルの左移動処理を行った後の表示画面の説明図である。
【０２３０】
図24及び図25に示すように、送信文字列情報が「確定」、「した」、「文字列」、「単位」、「で」であり、それぞれノードN1〜N5であるとする。ここで、カーソル位置ポインタが指しているカレントノードNcが、ノードN3であるとすると、第１表示部910には、図25に示すように、「文字列」と「単位」との間にカーソル911が表示される。
【０２３１】
ここで、図27に示されているように、送信文字列情報を単位として、カーソル911を左方向に移動する場合を想定する。
【０２３２】
図35は、カーソルの左移動処理のフローチャートである。
【０２３３】
ステップS401において、文字入力装置10は、カーソル位置ポインタが指しているカレントノードNcの送信情報を取得する。
【０２３４】
ステップS402において、文字入力装置10は、カレントノードNcが空のノードであるか否かを判別する。
【０２３５】
文字入力装置10は、カレントノードNcが空のノードではないと判断した場合にはステップS403に移行する。カレントノードNcが空のノードである場合には、対象アプリケーションに送信した送信文字列情報が存在しておらず、カーソルの左移動処理ができないことから、このカーソルの左移動処理を終了する。
【０２３６】
ステップS403において、文字入力装置10は、カレントノードNcの第１接続情報である直前ノードNbへのリンク情報を取得する。
【０２３７】
ステップS404において、文字入力装置10は、直前ノードNbをカーソル位置ポインタが指すカレントノードNcにする。
【０２３８】
ここでは、文字入力装置10は、カレントノードNcであるノードN3の第１接続情報から、直前ノードNbであるノードN2の情報を取得し、直前ノードNbであるノードN2をカーソル位置ポインタが指すカレントノードNcに変更する。この結果、図27に示すように、第１表示部910には、新たなカレントノードNcに対応する文字列情報「した」と、新たな直後ノードNaに対応する文字列情報「文字列」の間に、カーソル911が表示され、カーソルの左移動処理が完了する。
【０２３９】
このように、カーソル移動は、対象アプリケーションに送信した文字列情報の単位で処理することができる。したがって、文字入力装置10から対象アプリケーションに送信した送信文字列情報を単位として、カーソルを移動させることが可能となる。
【０２４０】
図28は、カーソルの右移動処理を行う前の送信情報の説明図である。
【０２４１】
図29は、カーソルの右移動処理を行う前の表示画面の説明図である。
【０２４２】
図30は、カーソルの右移動処理を行った後の送信情報の説明図である。
【０２４３】
図31は、カーソルの右移動処理を行った後の表示画面の説明図である。
【０２４４】
図28及び図29に示すように、送信文字列情報が「確定」、「した」、「文字列」、「単位」、「で」であり、それぞれノードN1〜N5であるとする。ここで、カーソル位置ポインタが指しているカレントノードNcが、ノードN3であるとすると、第１表示部910には、図29に示すように、「文字列」と「単位」との間にカーソル911が表示される。
【０２４５】
ここで、図31に示されているように、送信文字列情報を単位として、カーソル911を右方向に移動する場合を想定する。
【０２４６】
図36は、カーソルの右移動処理のフローチャートである。
【０２４７】
ステップS501において、文字入力装置10は、カーソル位置ポインタが指しているカレントノードNcの送信情報を取得する。
【０２４８】
ステップS502において、文字入力装置10は、カレントノードNcが空のノードであるか否かを判別する。
【０２４９】
文字入力装置10は、カレントノードNcが空のノードではないと判断した場合にはステップS503に移行する。カレントノードNcが空のノードである場合には、対象アプリケーションに送信した送信文字列情報が存在しておらず、カーソルの右移動処理ができないことから、このカーソルの右移動処理を終了する。
【０２５０】
ステップS503において、文字入力装置10は、カレントノードNcの第２接続情報である直後ノードNaへのリンク情報を取得する。
【０２５１】
ステップS504において、文字入力装置10は、直後ノードNaをカーソル位置ポインタが指すカレントノードNcにする。
【０２５２】
ここでは、文字入力装置10は、カレントノードNcであるノードN3の第２接続情報から、直後ノードNaであるノードN4の情報を取得し、直後ノードNaであるノードN4をカーソル位置ポインタが指すカレントノードNcに変更する。この結果、図31に示すように、第１表示部910には、新たなカレントノードNcに対応する文字列情報「単位」と、新たな直後ノードNaに対応する文字列情報「で」の間に、カーソル911が表示され、カーソルの右移動処理が完了する。
【０２５３】
＜編集イベントの生成処理＞
対象アプリケーション上に表示されている文字列情報に対して、編集操作の指示入力があった場合に、送信情報記憶部14は記憶している送信情報を更新する。編集イベント生成部15は、送信情報記憶部14に記憶されている送信文字列情報を単位として編集イベントを生成する。この編集イベント生成処理について以下に説明する。
【０２５４】
図37は、文字列情報を削除する旨の編集操作の入力情報を受け付けた際の編集イベント生成処理のフローチャートである。
【０２５５】
文字列情報を削除する旨の編集操作の入力情報を受け付けると、ステップS601において、編集イベント生成部15は、対象アプリケーションに送信する編集情報としての編集イベントEvを空に初期化する。
【０２５６】
ステップS602では、編集イベント生成部15は、送信情報記憶部14に記憶されている送信情報が空か否かを判別する。
【０２５７】
編集イベント生成部15は、送信情報記憶部14に格納されている送信情報が空であると判断した場合にはステップS603に移行し、そうでない場合にはステップS604に移行する。
【０２５８】
ステップS603において、編集イベント生成部15は、１文字削除キー入力イベントを編集イベントEvのスタックとする。この後、編集イベントの生成処理を終了する。
【０２５９】
ステップS604において、編集イベント生成部15は、送信情報記憶部14に格納された送信情報からカーソル位置ポインタが指しているカレントノードNcに対応する送信情報を特定する。
【０２６０】
ステップS605において、編集イベント生成部15は、カレントノードNcに対応する送信情報から送信文字列情報の文字数ｎを読み込む。
【０２６１】
ステップS606において、編集イベント生成部15は、変数ｉの値を０に初期化する。この変数ｉは、カレントノードNcに対応する送信文字列情報の文字数だけ１文字削除キー入力イベントを編集イベントEvのスタックとするために用いられる変数である。
【０２６２】
ステップS607において、編集イベント生成部15は、変数ｉの値がカレントノードNcに対応する送信文字列情報の文字数ｎと等しいか否かを判別する。
【０２６３】
編集イベント生成部15は、変数ｉの値が文字数ｎと等しいと判断した場合には、処理を終了し、そうでない場合にはステップS608に移行する。
【０２６４】
ステップS608において、編集イベント生成部15は、１文字削除キー入力イベントを編集イベントEvのスタックとする。
【０２６５】
ステップS609において、編集イベント生成部15は、変数ｉの値をインクリメントし、ステップS607に移行する。
【０２６６】
このような編集イベント生成処理を実行することにより、編集イベント生成部15は、カレントノードNcに対応する送信文字列情報の文字数ｎと同数の１文字削除キー入力イベントを編集イベントEvのスタックとすることができる。
【０２６７】
図38は、カーソルを左移動する編集操作の入力情報を受け付けた際の編集イベント生成処理のフローチャートである。
【０２６８】
カーソルを左移動する編集操作の入力情報を受け付けると、ステップS701において、編集イベント生成部15は、対象アプリケーションに送信する編集情報としての編集イベントEvを空に初期化する。
【０２６９】
ステップS702では、編集イベント生成部15は、送信情報記憶部14に記憶されている送信情報が空か否かを判別する。
【０２７０】
編集イベント生成部15は、送信情報記憶部14に格納されている送信情報が空であると判断した場合にはステップS703に移行し、そうでない場合にはステップS704に移行する。
【０２７１】
ステップS703において、編集イベント生成部15は、１文字カーソル左移動イベントを編集イベントEvのスタックとする。この後、編集イベント生成処理を終了する。
【０２７２】
ステップS704において、編集イベント生成部15は、送信情報記憶部14に格納された送信情報からカーソル位置ポインタが指しているカレントノードNcに対応する送信情報を特定する。
【０２７３】
ステップS705において、編集イベント生成部15は、カレントノードNcに対応する送信情報から送信文字列情報の文字数ｎを読み込む。
【０２７４】
ステップS706において、編集イベント生成部15は、変数ｉの値を０に初期化する。ここでの変数ｉは、カレントノードNcに対応する送信文字列情報の文字数だけ１文字カーソル左移動イベントを編集イベントEvのスタックとするために用いられる変数である。
【０２７５】
ステップS707において、編集イベント生成部15は、変数ｉの値がカレントノードNcに対応する送信文字列情報の文字数ｎと等しいか否かを判別する。
【０２７６】
編集イベント生成部15は、変数ｉの値が文字数ｎと等しいと判断した場合には、処理を終了し、そうでない場合にはステップS708に移行する。
【０２７７】
ステップS708において、編集イベント生成部15は、１文字カーソル左移動イベントを編集イベントEvのスタックとする。
【０２７８】
ステップS709において、編集イベント生成部15は、変数ｉの値をインクリメントし、ステップS707に移行する。
【０２７９】
このような編集イベント生成処理を実行することによって、編集イベント生成部15は、カレントノードNcに対応する送信文字列情報の文字数ｎと同数の１文字カーソル左移動イベントを編集イベントEvのスタックとすることができる。
【０２８０】
図39は、カーソルを右移動する編集操作の入力情報を受け付けた際の編集イベント生成処理のフローチャートである。
【０２８１】
カーソルを右移動する編集操作の入力情報を受け付けると、ステップS801において、編集イベント生成部15は、対象アプリケーションに送信する編集情報としての編集イベントEvを空に初期化する。
【０２８２】
ステップS802では、編集イベント生成部15は、送信情報記憶部14に記憶されている送信情報が空か否かを判別する。
【０２８３】
編集イベント生成部15は、送信情報記憶部14に格納されている送信情報が空であると判断した場合にはステップS803に移行し、そうでない場合にはステップS804に移行する。
【０２８４】
ステップS803において、編集イベント生成部15は、１文字カーソル右移動イベントを編集イベントEvのスタックとする。この後、編集イベント生成処理を終了する。
【０２８５】
ステップS804において、編集イベント生成部15は、送信情報記憶部14に格納された送信情報からカーソル位置ポインタが指しているカレントノードNcに対応する送信情報を特定する。
【０２８６】
ステップS805において、編集イベント生成部15は、カレントノードNcの第２接続情報に基づいて、直後ノードNaに対応する送信情報を特定する。
【０２８７】
ステップS806において、編集イベント生成部15は、直後ノードNaに対応する送信情報から送信文字列情報の文字数ｎを読み込む。
【０２８８】
ステップS807において、編集イベント生成部15は、変数ｉの値を０に初期化する。ここでの変数ｉは、直後ノードNaに対応する送信文字列情報の文字数だけ１文字カーソル右移動イベントを編集イベントEvのスタックとするために用いられる変数である。
【０２８９】
ステップS808において、編集イベント生成部15は、変数ｉの値が直後ノードNaに対応する送信文字列情報の文字数ｎと等しいか否かを判別する。
【０２９０】
編集イベント生成部15は、変数ｉの値が文字数ｎと等しいと判断した場合には、処理を終了し、そうでない場合にはステップS809に移行する。
【０２９１】
ステップS809において、編集イベント生成部15は、１文字カーソル右移動イベントを編集イベントEvのスタックとする。
【０２９２】
ステップS810において、編集イベント生成部15は、変数ｉの値をインクリメントし、ステップS808に移行する。
【０２９３】
このような編集イベント生成処理を実行することによって、編集イベント生成部15は、直後ノードNaに対応する送信文字列情報の文字数ｎと同数の１文字カーソル右移動イベントを編集イベントEvのスタックとすることができる。
【０２９４】
編集イベント生成部15による編集イベント生成処理を終了すると、編集イベント送信部16が対象アプリケーションに編集イベントEvを送信する。
【０２９５】
ユーザが入力部11を介して１文字削除の編集指示があった場合には、送信情報記憶部14に記憶されているカレントノードNcに対応する送信文字列情報を削除することができる。したがって、文字入力装置10から対象アプリケーションに対して送信した送信文字列情報を単位として、文字列情報の削除指示を行う編集イベントを対象アプリケーションに入力できる。
【０２９６】
また、対象アプリケーション上に表示されている文字列情報のうち、削除指示の対象となる文字情報または文字列情報を特定するか、あるいは新たな文字情報または文字列情報を挿入する位置を特定するために、カーソルの移動を指示する際に、文字入力装置10から送信した送信文字列情報を単位として、カーソルの移動に関する編集イベントを生成することができる。
【０２９７】
このようにして、文字入力装置10から送信した送信文字列情報がある場合には、ユーザが入力部11を介して入力した編集操作の入力情報に基づいて、送信文字列情報を単位として削除及びカーソル移動の編集イベントを対象アプリケーションに送信することができる。
【産業上の利用可能性】
【０２９８】
上述したような文字入力装置の構成は、携帯電話端末、PDA、一般的なパーソナルコンピュータなどの入力部を介して文字入力が可能なアプリケーションが機能する情報処理装置に適用することができる。
【符号の説明】
【０２９９】
10  文字入力装置
11  入力部
12  送信文字列決定部
13  文字列送信部
14  送信情報記憶部
15  編集イベント生成部
16  編集イベント送信部
【図１】
2011138305.tif 000003
【図２】
2011138305.tif 000004
【図３】
2011138305.tif 000005
【図４】
2011138305.tif 000006
【図５】
2011138305.tif 000007
【図６】
2011138305.tif 000008
【図７】
2011138305.tif 000009
【図８】
2011138305.tif 000010
【図９】
2011138305.tif 000011
【図１０】
2011138305.tif 000012
【図１１】
2011138305.tif 000013
【図１２】
2011138305.tif 000014
【図１３】
2011138305.tif 000015
【図１４】
2011138305.tif 000016
【図１５】
2011138305.tif 000017
【図１６】
2011138305.tif 000018
【図１７】
2011138305.tif 000019
【図１８】
2011138305.tif 000020
【図１９】
2011138305.tif 000021
【図２０】
2011138305.tif 000022
【図２１】
2011138305.tif 000023
【図２２】
2011138305.tif 000024
【図２３】
2011138305.tif 000025
【図２４】
2011138305.tif 000026
【図２５】
2011138305.tif 000027
【図２６】
2011138305.tif 000028
【図２７】
2011138305.tif 000029
【図２８】
2011138305.tif 000030
【図２９】
2011138305.tif 000031
【図３０】
2011138305.tif 000032
【図３１】
2011138305.tif 000033
【図３２】
2011138305.tif 000034
【図３３】
2011138305.tif 000035
【図３４】
2011138305.tif 000036
【図３５】
2011138305.tif 000037
【図３６】
2011138305.tif 000038
【図３７】
2011138305.tif 000039
【図３８】
2011138305.tif 000040
【図３９】
2011138305.tif 000041