以下、本発明の一実施形態について、図面を参照して説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態によるチャットシステム1の構成を示す概略ブロック図である。チャットシステム1は、複数のユーザ端末100−N(Nは正の整数。ユーザ端末100−1、ユーザ端末100−2、ユーザ端末100−3、・・・)と、サーバ装置200とのコンピュータ装置を備えており、これらのコンピュータ装置はネットワーク5を介して接続されている。ここで、複数のユーザ端末100−Nは同様の構成であるので、特に区別しない場合には、「−1」、「−2」等の記載を省略してユーザ端末100として説明する。ここでは3台のユーザ端末100を明示して説明するが、チャットシステム1は、2台又は4台以上の任意の台数のユーザ端末100を備えていてもよい。
ユーザ端末100は、ユーザが利用するコンピュータ装置であり、サーバ装置200を介して他のユーザ端末100との間で送受信したメッセージを表示する表示装置である。ユーザ端末100としては、例えばPC(Personal Computer)、タブレットPC、スマートフォン、ゲーム機器等の、表示デバイスを具備し情報通信ネットワークに接続可能な装置が適用できる。ここでは、ユーザ端末100はスマートフォンであるとして説明する。また、ネットワーク5は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、専用回線、またはこれらの組み合わせによって構成される情報通信ネットワークである。
チャットシステム1は、チャットを行うために複数のユーザが登録されたグループ(即ち、グループチャットを行うためのグループ)内において、複数のユーザのユーザ端末100間でメッセージを送受信することにより、そのグループ内のユーザ間に限定したコミュニケーションを支援する。チャットシステム1としては、例えば、チャットアプリケーションによりグループ内の複数のユーザのユーザ端末100間で日時情報が対応付けられたメッセージを送受信して日時情報に基づいて時系列に並べて表示するコンピュータシステムが適用できる。本実施形態では、チャットアプリケーションにより送受信された複数のメッセージをユーザ端末100が表示する例を説明する。ここでは、ユーザ端末100−1のユーザを識別するユーザID(Identifier)をユーザAとし、ユーザ端末100−2のユーザを識別するユーザIDをユーザBとし、ユーザ端末100−3のユーザを識別するユーザIDをユーザCとして説明する。なお、ユーザAと、ユーザBと、ユーザCと、がグループチャットを行うための同じグループに登録されているものとする。
まず、チャットにおけるメッセージの送受信処理の概要を説明する。グループ内の複数のユーザ間でチャットを行う場合、ユーザ端末100(自装置)は、自身のユーザである自ユーザ(第1ユーザ)からの操作に応じて、他のユーザ端末100に送信したメッセージと、相手側のユーザである他ユーザ(第2ユーザ)のユーザ端末100(他装置)から送信されたメッセージとを記憶する。ユーザ端末100は、記憶した複数のメッセージを、そのメッセージが送信または受信された日時に基づいて時系列に並べた画面情報(メッセージ画面)を生成し、ユーザが一覧できるように表示する。
つまり、グループには、ユーザ端末100(自装置)を利用する自ユーザ(第1ユーザ)と、ユーザ端末100(他装置)を利用する一または複数の他ユーザ(第2ユーザ)とが登録されている。そして、ユーザ端末100(自装置)は、このグループにおいて、自ユーザ(第1ユーザ)の操作に応じてユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と、他ユーザ(第2ユーザ)の操作に応じてユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)と、を時系列に並べたメッセージ画面を表示する。
図2は、チャットシステム1におけるメッセージの送受信の基本的な動作の一例を示すフローチャートである。この図2では、ユーザBからの操作に応じて、ユーザ端末100−2が送信したメッセージMを、ユーザAのユーザ端末100−1とユーザCのユーザ端末100−3とが受信する処理の例を示している。
まず、ユーザ端末100−2において、ユーザBは、送信するメッセージとしてのテキストを入力する(ステップS100)。そこで、ユーザ端末100−2は、ユーザBからの操作に応じて入力された(作成された)メッセージMを記憶するとともにメッセージ画面に表示する(ステップS110)。ここで、メッセージMには、ユーザIDと、グループIDとが対応付けられている。ここで、グループIDは、グループを一意に識別する情報であって、このメッセージMの宛先を示す情報である。続いて、ユーザ端末100−2は、メッセージMをサーバ装置200に送信する(ステップS120)。
次に、サーバ装置200は、ユーザ端末100−2からメッセージMをネットワーク5を介して受信し、受信したメッセージMを一時的に記憶する(ステップS130)。このとき、サーバ装置200は、このメッセージMを受信したときの受信日時をユーザ端末100−2へ受信完了通知と共に返信し、この受信日時をメッセージMがユーザ端末100−2から送信された日時情報(送信日時情報と称する)とする。受信完了通知を受信したユーザ端末100−2は、当該受信完了通知に含まれる送信日時情報を取得してメッセージMと対応付ける。また、ユーザ端末100−2は、既にメッセージ画面に表示しているメッセージMに対応付けて送信日時を表示する(ステップS135)。
続いて、サーバ装置200は、受信して記憶したメッセージMを、グループIDに基づいて、グループに登録されているユーザのユーザ端末100(ユーザAのユーザ端末100−1及びユーザCのユーザ端末100−3)に対して送信する(ステップS140)。次に、ユーザ端末100−1は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信する(ステップS150)。また、ユーザ端末100−3は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信する(ステップS170)。それぞれで受信したメッセージMには、送信日時情報(サーバ装置での受信時間)と、ユーザID(ユーザB)と、グループIDとが対応付けられている。
続いて、ユーザ端末100−1は、受信したメッセージMを記憶するとともに、対応付けられている送信日時情報に基づいてメッセージMを時系列に並べてメッセージ画面に表示する(ステップS160)。また、ユーザ端末100−3は、受信したメッセージMを記憶するとともに、対応付けられている送信日時情報に応じてメッセージMを時系列に並べてメッセージ画面に表示する(ステップS180)。このとき、ユーザ端末100は、メッセージを一画面に表示しきれない場合には、そのメッセージを時系列に並べたうちの一部を表示し、メッセージのスクロール制御を行う。ここで、ユーザ端末100−1及びユーザ端末100−3は、メッセージMを時系列に並べて表示する際に、メッセージMに対応付けられているユーザIDに基づいて、メッセージMを送信したユーザを示す情報をメッセージMに対応付けて表示する。なお、ユーザ端末100−1及びユーザ端末100−3は、自ユーザが送信したメッセージには、そのメッセージを送信した自ユーザを示す情報を対応付けて表示せずに、他ユーザが送信したメッセージにのみ、そのメッセージを送信した他ユーザを示す情報を対応付けて表示してもよい。
このように、チャットシステム1においては、グループ内の複数のユーザのユーザ端末100間でメッセージを送受信するとともに、その送受信されたメッセージを時系列に並べたメッセージ画面をユーザ端末100に表示する。
ここでユーザ端末100は、ユーザがメッセージを入力する入力欄(テキストボックス)にテキストを入力した後、送信ボタンを押下するのみで簡単にメッセージを送信することができる。また、テキスト以外の例えば画像データをメッセージとして送信する場合には、ユーザ端末100は、ユーザが送信したい画像データを選択することにより、送信ボタンを押下することなく送信することができる。これにより、チャットシステム1においては、簡易な操作によりメッセージを送信できるという利点がある。
しかしながら、簡易な操作でメッセージを送信できる反面、誤字等の間違った内容のメッセージを安易に送信してしまうことや間違った画像データを選択して送信してしまうことがある。特に、スマートフォンのような小型のユーザ端末100においては、操作するタッチパネル式の表示部が小さいことにより、テキストを入力する操作や送信ボタンまたは画像を選択する操作において誤操作が生じることがあった。
そこで、本実施形態のチャットシステム1においては、ユーザ端末100は、入力されたテキストをメッセージ(第1メッセージ)として、ユーザ端末100(自装置)から送信するとともに、その送信するメッセージ(第1メッセージ)を時系列に並べてメッセージ画面に表示する処理モード(以下、「送信モード」と称する)に加えて、「下書きモード」を備えている。この下書きモードとは、入力されたテキストを下書きメッセージ(第3メッセージ)として、ユーザ端末100(自装置)から送信せずに、時系列に並べてメッセージ画面に表示する処理モードである。
図3は、本実施形態によるユーザ端末100が表示するメッセージ画面の一例を示す図である。この図3を参照して、送受信したメッセージと下書きメッセージとが時系列に並べて表示されたメッセージ画面の一例を説明する。符号110aは、メッセージ画面が表示されている領域の全体を示している。このメッセージ画面は、送受信された複数のメッセージのうちの一部分が表示されている。ユーザ端末100は、例えばタッチパネルである画面の任意の箇所において行われるスクロール操作に応じて、メッセージを上下にスクロール表示させることによって、この一画面内に表示しきれていないメッセージを表示可能である。
この図3では、ユーザAのユーザ端末100−1が表示するユーザAとユーザBとユーザCとによるチャット(グループチャット)のメッセージ画面の例を示している。チャットを行うユーザの単位をグループという。このメッセージ画面はユーザAとユーザBとユーザCとの3人が属するグループのチャットのメッセージ画面であり、自ユーザはユーザAであり、他ユーザはユーザB及びユーザCである。
符号110bの領域には、グループの名称と、処理モードを切替えるモード切替ボタンE1とが表示される。ここでは、ユーザAとユーザBとユーザCとの3人が属するグループの名称として「テニスサークル」が設定されているものとして、この設定されたグループの名称が表示されている例を示している。また、この図3においては、処理モードとして「下書きモード」が設定されており、符号110bの領域には、「下書きモード」を示す情報が表示される。これにより、ユーザは、「下書きモード」に設定されていることがわかる。なお、処理モードとして「送信モード」が設定されている場合には、通常の処理モードであるとして符号110bの領域に処理モードを示す情報が表示されてもよいし、符号110bの領域に「送信モード」を示す情報が表示されてもよい。
モード切替ボタンE1は、ユーザの操作に応じて、「送信モード」と「下書きモード」とのいずれかの処理モードを選択可能な操作子(操作部)である。例えば、「送信モード」においてモード切替ボタンE1にタップ操作(符号K1参照)がされると「下書きモード」に切替わり、「下書きモード」においてモード切替ボタンE1にタップ操作がされると「送信モード」に切替わる。
符号110cの領域には、そのグループにおいてユーザから送信されたメッセージが、そのメッセージが送信された日時に基づいて昇順(新しいメッセージが符号110cの領域の下側)に表示されるように表示コンポーネントが配置される。アイコンE3は、他ユーザを示すアイコンである。このアイコンE3は、例えば他ユーザによって予め登録された画像(例えば、プロフィール画像)でもよいし、チャットシステム1が予め用意した画像でもよい。ここでは、アイコンE3は、ユーザBを示すプロフィール画像である。ユーザ名ラベルE4には、アイコンE3に対応するユーザのユーザ名が表示される。ここでは、ユーザBのユーザ名を「田中B子」とし、ユーザBのユーザ名が表示される。
吹き出しE5には、他ユーザ(ここではユーザB)から送信されたメッセージが表示される。時間ラベルE6には、吹き出しE5に表示されたメッセージが他ユーザ(ここではユーザB)から送信された時間が表示される。この図に示す例では、他ユーザ(ユーザB又はユーザC)のメッセージがメッセージ画面の左側からの吹き出しに表示され、自ユーザ(ユーザA)のメッセージがメッセージ画面の右側からの吹き出しに表示されている。吹き出しE7には、自ユーザが送信したメッセージが表示される。時間ラベルE8には、吹き出しE7に表示されたメッセージを送信した時間が表示される。ここで、左側からの吹き出しに表示される他ユーザのメッセージには、そのメッセージを送信したユーザを示す情報(例えば、アイコンE3、ユーザ名ラベルE4)が対応付けられて表示されるが、一方、右側からの吹き出しに表示される自ユーザが送信したメッセージには、そのメッセージを送信したユーザを示す情報(即ち、自ユーザの情報)は表示されない。これは、自ユーザを示す情報が表示されなくとも、メッセージ画面の左側の吹き出しE7に表示されたメッセージが、自ユーザが送信したものであることが判別可能なためである。
吹き出しE9には、自ユーザ(ユーザA)が入力した下書きメッセージが表示される。この下書きメッセージは、以下に説明する符号110dの領域に配置される下書きメッセージを入力するための表示コンポーネントから入力された下書きメッセージである。下書きアイコンE10は、吹き出しE9に表示されたメッセージが下書きメッセージであることを示す情報(例えば「下書き」)が表示されたアイコンである。即ち、下書きアイコンE10は、ユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と下書きメッセージとを区別可能な情報として、吹き出しE9に対応付けられて表示される。また、下書きアイコンE10は、選択ボタンE11を表示させるための操作子でもある。選択ボタンE11は、吹き出しE9に表示されている下書きメッセージを送信するか(「送信」)、及び、削除するか(「削除」)のうちのいずれかを選択可能な操作子として表示される。例えば、下書きアイコンE10に対して、長押し操作(例えば1秒以上の押下、符号K2参照)がされると、下書きアイコンE10に対応する選択ボタンE11が表示される。
符号110dの領域には、ユーザ端末100から下書きメッセージを入力するための表示コンポーネントが配置される。テキストボックスE21には、ユーザから入力されるメッセージが表示される。即ち、テキストボックスE21は、メッセージとしてのテキストを入力する入力部である。なお、具体的には、ユーザは、例えば、テキストボックスE21と対で表示されるソフトウェアキーボードに対する操作により、テキストボックスE21にテキストを入力する。以下の説明において、下書きボタンE22は、テキストボックスE21に入力されたメッセージを下書きメッセージとしてメッセージ画面に表示するための操作子である。ここで、テキストボックスE21に入力されるテキストには、文字、記号、絵文字、等が含まれる。
このように、本実施形態のチャットシステム1においては、ユーザ端末100は、送信モードと下書きモードとのいずれかの処理モードに切替えることができる。また、ユーザ端末100は、下書きモードにおいて入力された下書きメッセージを、送信するメッセージまたは受信したメッセージとともに時系列に並べてメッセージ画面に表示する。ここで、図3に示す吹き出しE7に表示されているメッセージは、送信するメッセージまたは受信したメッセージのうちの最新のメッセージである。そして、昇順において、吹き出しE7の次(下)に、吹き出しE9(下書きメッセージ)が表示される。つまり、ユーザ端末100は、下書きメッセージを、メッセージを時系列に並べた順において、送信するメッセージまたは受信したメッセージのうちの最新のメッセージの次に並ぶようにメッセージ画面に表示する。
これにより、ユーザ端末100は、下書きモードにおいて入力されたメッセージを下書きメッセージとして、実際には送信することなく、あたかも送信したかのように時系列に並ぶ位置に表示することができる。つまり、ユーザは、入力したメッセージを送信する前に、そのメッセージを送信した場合と同様に時系列に並んで表示される下書きメッセージとして確認することができる。よって、ユーザ端末100は、誤字等の間違った内容のメッセージを安易に送信してしまうことを抑制することができる。即ち、本実施形態によれば、メッセージを送信する際の利便性を向上させることができる。
以下、本実施形態によるチャットシステム1の構成について詳しく説明する。
まず、図4を参照して、ユーザ端末100の構成について説明する。図4は、本実施形態によるユーザ端末100の構成を示す概略ブロック図である。ユーザ端末100は、表示部110と、操作受付部120と、通信部130と、記憶部140と、制御部150とを備えている。なお、図1に示す複数のユーザ端末100−Nは、同様の各部を備えるものとする。
表示部110は、画像や文字等の情報を表示する表示デバイスである。表示部110の情報を表示する領域を画面といい、表示部110の画面に表示される情報を画面情報という。なお、この画面情報には一画面では表示しきれない情報も含まれる。例えば、表示部110は、チャットアプリケーションにおいて、グループ内のユーザ間で送受信したメッセージを時系列に並べて表示するメッセージ画面を表示する。ここで、表示部110が表示するこれらの画面は、ユーザからの操作に応じて制御部150によって制御される。
操作受付部120は、ユーザ(第1ユーザ)からの操作に応じてユーザの指示を受付けて、指示内容に応じた入力指示を生成する入力デバイスである。操作受付部120には、例えば、キーボードやボタン、タッチパネル等が適用できる。本実施形態では、操作受付部120と表示部110とは一体に構成されてユーザからの操作入力を受け付けるタッチパネルを適用した例として説明する。
通信部130は、ネットワーク5を介してサーバ装置200と通信する。
記憶部140は、RAM(Random Access Memory)やROM(Read Only Memory)、HDD(Hard Disk Drive)等の記録媒体またはこれらの組合せを用いて構成され、ユーザ端末100が備える各部を制御するためのプログラムや各種情報を記憶する。また、記憶部140は、ユーザ端末100に装着するメモリカードであってもよい。記憶部140は、ユーザ情報記憶部141と、グループ情報記憶部142と、メッセージ情報記憶部143と、画面情報記憶部144とを備えている。
ユーザ情報記憶部141は、チャットを行うユーザに関するユーザ情報を記憶する。図5及び図6は、ユーザ情報記憶部141に記憶されるユーザ情報の例を示す図である。ユーザ情報には、ユーザIDと、ユーザ名と、ユーザ画像とを対応付けた情報が含まれる。ユーザIDは、ユーザを識別する情報である。ユーザ名は、そのユーザの名称である。ユーザ画像は、そのユーザのプロフィール画像である。具体的には、ユーザ画像のデータを識別する情報が、ユーザIDと、ユーザ名と、対応付けられており、ユーザ情報記憶部141は、上述の対応付けしたユーザ情報と、ユーザ画像の実データとをそれぞれ記憶する。
ここで、図5に示すユーザ情報は、自ユーザのユーザ情報の例であって、ユーザAのユーザ端末100−1に記憶されているユーザAのユーザ情報の例である。また、図6に示すユーザ情報は、チャット相手として登録可能な他ユーザのユーザ情報の例であって、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報(ユーザBのユーザ情報及びユーザCのユーザ情報を含むユーザ情報)の例である。この図6に示す他ユーザのユーザ情報は、他ユーザそれぞれのユーザ端末100−Nでそのユーザ自身で登録したものである。この図6に示す、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報は、チャット相手として登録可能なユーザ関係になるとき、又は、チャット相手として登録されたときに、他ユーザそれぞれのユーザ端末100−Nから取得して記憶する。なお、このチャット相手のユーザ情報は、事後的に自ユーザのユーザ端末100で修正できるようにしてもよい。
グループ情報記憶部142は、チャットを行うユーザのグループに関する情報を記憶する。図7は、グループ情報記憶部142に記憶されるグループ情報の例を示す図である。ひとつのグループには2以上のユーザが属する。例えば、ユーザAとユーザBとがチャットを行う場合、ユーザAとユーザBとが属するグループに関するグループ情報がグループ情報記憶部142に記憶される。グループ情報には、グループIDと、グループ名と、ユーザIDとを対応付けた情報が含まれる。グループIDは、サーバ装置200で生成されるグループを一意に識別する情報である。グループ名は、グループの名称であり、グループが形成された場合に自動的に付与され、事後的にユーザにより設定できるようになっている。ユーザIDは、そのグループに属するユーザを識別する情報である。ここでは、例えば、グループIDが「G1」であるグループの名称はユーザにより設定されていない。G1グループのように2人が属するチャット(1対1チャット)では、ユーザ情報記憶部141を参照して、チャット相手のユーザ名がグループの名称として自動的に設定される。G1グループには「ユーザA」と「ユーザB」との2ユーザが属することが示されている。また、グループIDが「G2」であるグループの名称はユーザにより「テニスサークル」として設定されている。このグループに属するユーザが「ユーザA」と「ユーザB」と「ユーザC」との3ユーザであることが示されている。
メッセージ情報記憶部143は、自ユーザが属するグループにおいて送受信されたメッセージに関するメッセージ情報、または、ユーザ端末100から下書きメッセージとして入力されたメッセージに関するメッセージ情報を記憶する。図8は、メッセージ情報記憶部143に記憶されるメッセージ情報の例を示す図である。メッセージ情報には、グループIDと、ユーザIDと、送信日時情報と、入力日時情報と、メッセージと、ステイタス情報とを対応付けた情報が含まれる。グループIDは、メッセージが送受信されたグループを識別する情報である。ユーザIDは、メッセージを入力したユーザを識別する情報である。送信日時情報は、メッセージが送信された日時を示す情報である。本実施形態では、ユーザ端末100の計時機能が示す時間情報が相違しているユーザ間や、時差のある地域のユーザ間で互いに送信したメッセージが正しく時系列に並ぶようにユーザ端末100から送信されたメッセージをサーバ装置200で受信した受信時間を当該メッセージが送信された日時を示す送信日時情報としている。入力日時情報は、下書きメッセージが入力された日時を示す情報である。例えば、下書きモードにおいて入力されたメッセージが下書きボタンE22に対するタップ操作に応じてメッセージ画面に表示された日時を示す情報である。ここで、送信日時情報及び入力日時情報には、年、月、日、時、分、秒(YYYY/MM/DD HH:MM:SS)の情報が含まれる。メッセージは、他ユーザとの間で送受信したメッセージまたは自ユーザが入力した下書きメッセージを示す文字列(テキスト)である。
ステイタス情報は、メッセージが、「送信済みメッセージ」である場合と、「未送信メッセージ」である場合と、「下書きメッセージ」である場合と、「受信メッセージ」である場合と、を識別するフラグ情報である。
自ユーザの操作に応じて自身のユーザ端末100から送信するメッセージには、自身のユーザ端末100から送信したメッセージ、または、自身のユーザ端末100から送信する前のメッセージが含まれる。「送信済みメッセージ」とは、ユーザ端末100から送信するメッセージのうちの送信処理が完了したメッセージであって、例えば、送信したメッセージのうちのサーバ装置200から受信完了通知を取得したメッセージである。一方、「未送信メッセージ」とは、ユーザ端末100から送信するメッセージのうちの送信処理が完了していないメッセージであって、例えば、送信する前のメッセージ、または、送信したメッセージのうちのサーバ装置200から受信完了通知を取得していないメッセージである。また、「下書きメッセージ」とは、ユーザ端末100において下書きメッセージとして入力されたメッセージであって、ユーザ端末100から送信することなくメッセージ画面に表示しているメッセージである。「受信メッセージ」とは、他のユーザ端末100から、自ユーザが属するグループIDを宛先として送信されたメッセージであって、自ユーザのユーザ端末100において受信したメッセージである。ここでは、例えば、「送信済みメッセージ」をフラグ「0」とし、「未送信メッセージ」をフラグ「1」とし、「下書きメッセージ」をフラグ「2」とし、「受信メッセージ」をフラグ「3」とする。
図4に戻り、画面情報記憶部144は、上述したような複数のメッセージを時系列に並べて表示するメッセージ画面の画面情報を一時的に記憶する。
制御部150は、ユーザ端末100の制御中枢として機能するCPU(Central Processing Unit)等の情報処理装置を備えており、ユーザ端末100が備える各部を制御する。制御部150は、指示部151と、メッセージ送受信部155と、表示制御部156と、モード設定部157とを備えている。
指示部151は、操作受付部120に対するユーザの操作に応じて操作受付部120により生成された入力指示に基づいて、指示情報を生成する。例えば、指示部151は、操作受付部120により生成された入力指示に基づいて、メッセージを送信させる指示を示す送信指示情報やメッセージを表示部110に表示させる指示を示す表示指示情報を生成する。ここでは、指示部151は、送信指示情報及び表示指示情報としての指示情報を生成して、メッセージ情報記憶部143にメッセージ情報として記憶させる例として説明する。つまり、この指示部151が生成した指示情報に基づいて、メッセージ送受信部155がメッセージを送信する処理を行い、表示制御部156がメッセージを表示部110に表示させる処理を行う。
この指示部151は、第1指示部152と、第2指示部153と、第3指示部154とを備えている。第1指示部152は、「送信モード」において、入力されたメッセージを送信する場合の指示情報を生成する。第2指示部153は、「下書きモード」において、入力されたメッセージを下書きメッセージとして表示部110に表示する場合の指示情報を生成する。第3指示部154は、下書きメッセージとして表示部110に表示されているメッセージを送信する場合の指示情報を生成する。以下、第1指示部152、第2指示部153、及び第3指示部154についてそれぞれ説明する。
第1指示部152は、テキストボックスE21(入力部)に入力されたテキストをユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、ユーザ端末100(自装置)から送信させる指示と、ユーザ端末100(自装置)の表示部110に表示させる指示とを示す指示情報を生成する。即ち、第1指示部152は、入力部に入力されたテキストをメッセージ(第1メッセージ)として、ユーザ端末100(自装置)から送信させる指示をするとともに、表示制御部156に対して表示部110に表示させる指示をする。
具体的には、第1指示部152は、テキストボックスE21に入力されたメッセージに、そのメッセージが入力されたメッセージ画面のチャットのグループを識別するグループIDと、メッセージを入力したユーザである自ユーザを識別するユーザIDと、入力日時情報と、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)と、を対応付けたメッセージ情報を指示情報として生成する。そして、第1指示部152は、生成した指示情報(メッセージ情報)を新たなレコードとしてメッセージ情報記憶部143に記憶させる。ここで、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)が、そのメッセージを送信させる指示と、そのメッセージを送信完了していないメッセージとして表示部110に表示させる指示とを示している。
また、そのメッセージの送信完了通知をサーバ装置200から取得した場合、第1指示部152は、そのメッセージのレコードのステイタス情報を、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)から、「送信済みメッセージ」であることを示すステイタス情報(例えば、フラグ「0」)に更新する。ここで、「送信済みメッセージ」であることを示すステイタス情報(例えば、フラグ「0」)が、そのメッセージを送信済みのメッセージとして表示部110に表示させる指示を示している。具体的には、第1指示部152は、表示部110に表示させた「未送信メッセージ」に対応させて、送信完了通知とともに取得した送信日時(サーバ装置200が受信した受信日時)を表示させることで「送信済みメッセージ」として表示させたこととする。さらに、第1指示部152は、そのメッセージのレコードの送信日時情報を、取得した送信日時情報に更新する。
第2指示部153は、テキストボックスE21(入力部)に入力されたテキストを、ユーザ端末100(自装置)から送信させずに、下書きメッセージとして表示部110に表示させる指示を示す指示情報を生成する。即ち、第2指示部153は、テキストボックスE21(入力部)に入力されたテキストを下書きメッセージ(第3メッセージ)として、表示制御部156に対して表示部110に表示させる指示をする。
具体的には、第2指示部153は、テキストボックスE21に入力されたメッセージに、そのメッセージが入力されたメッセージ画面のチャットのグループを識別するグループIDと、メッセージを入力したユーザである自ユーザを識別するユーザIDと、入力日時情報と、「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)と、を対応付けたメッセージ情報を指示情報として生成する。そして、第2指示部153は、生成した指示情報(メッセージ情報)を新たなレコードとしてメッセージ情報記憶部143に記憶させる。ここで、「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)が、そのメッセージを下書きメッセージとして表示部110に表示させる指示を示している。
第3指示部154は、第2指示部153により指示を受けた下書きメッセージ(第3メッセージ)を、ユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、ユーザ端末100(自装置)から送信させる指示と表示部110に表示させる指示とを示す指示情報を生成する。即ち、第3指示部154は、下書きメッセージ(第3メッセージ)を、ユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、ユーザ端末100(自装置)から送信させる指示をするとともに、表示制御部156に対して表示部110に表示させる指示をする。
具体的には、第3指示部154は、下書きメッセージとしてメッセージ情報記憶部143に記憶されているメッセージのレコードのステイタス情報を、「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)から、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)に更新する。これにより、メッセージ情報記憶部143に記憶されている下書きメッセージが、未送信メッセージ、即ちユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)に変更される。具体的には、第3指示部154は、表示部110に表示させた「下書きメッセージ」にかえて、「未送信メッセージ」として表示部110に表示させる。なお、この下書きメッセージから未送信メッセージに変更されたメッセージの送信完了通知をサーバ装置200から取得した場合、上述したように、第1指示部152は、そのメッセージレコードのステイタス情報を、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)から、「送信済みメッセージ」であることを示すステイタス情報(例えば、フラグ「0」)に更新する。
メッセージ送受信部155は、指示部151が、操作受付部120に対する操作に応じて指示情報を生成すると、生成された指示情報(メッセージ情報)に基づいて、メッセージを送信する。具体的には、メッセージ送受信部155は、指示部151が指示情報としてのメッセージ情報を生成してメッセージ情報記憶部143に記憶させると、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)が含まれるメッセージ情報を、サーバ装置200に送信する。このとき、メッセージ送受信部155は、そのメッセージ情報に含まれるグループIDを宛先として、そのメッセージ情報をサーバ装置200に送信する。また、メッセージ送受信部155は、他のユーザ端末100から、自ユーザが属するグループIDを宛先として送信されたメッセージ情報を、サーバ装置200から受信し、メッセージ情報に含まれるグループID、ユーザID(他ユーザ)、送信日時情報、及びメッセージを、新たなレコードとしてメッセージ情報記憶部143に記憶させる。このとき、メッセージ送受信部155は、このメッセージ情報に、「受信メッセージ」であることを示すステイタス情報(例えば、フラグ「3」)を加えてメッセージ情報記憶部143に記憶させる。
表示制御部156は、自ユーザ(第1ユーザ)の操作に応じてユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と、一又は複数の他ユーザ(第2ユーザ)の操作に応じて他のユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)とを、時系列に並べて表示部110に表示させる。また、表示制御部156は、自ユーザ(第1ユーザ)の操作に応じてユーザ端末100(自装置)から入力された下書きメッセージ(第3メッセージ)を、時系列に並べた順において、最新のメッセージの次に並ぶように表示部110に表示させる。ここで、最新のメッセージとは、自ユーザ(第1ユーザ)の操作に応じてユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と、一又は複数の他ユーザ(第2ユーザ)の操作に応じて他のユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)のうちの最も新しい送信日時情報が対応付けられたメッセージである。例えば図3に示すように、表示制御部156は、下書きメッセージが表示された吹き出しE9を、時系列に並べた順において、最新のメッセージが表示されている吹き出しE7の次に並ぶように表示部110に表示させる。
具体的には、表示制御部156は、第1指示部152(または第3指示部154)により指示を受けたメッセージ(第1メッセージ)、または、メッセージ送受信部155が受信したメッセージ(第2メッセージ)をメッセージ情報記憶部143から読み出す。そして、表示制御部156は、読み出した複数のメッセージ情報それぞれに含まれるメッセージを、それぞれに対応付けられた送信日時情報に基づいて時系列に並べたメッセージ画面の画面情報を生成する。また、表示制御部156は、第2指示部153により指示を受けた下書きメッセージ(第3メッセージ)を含むメッセージ情報をメッセージ情報記憶部143から読み出す。そして、表示制御部156は、読み出したメッセージ情報に含まれる下書きメッセージを、上述した、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージの次(時系列の順における次)に並べたメッセージ画面の画面情報を生成する。また、表示制御部156は、生成した画面情報を画面情報記憶部144に記憶させる。
例えば、表示制御部156は、メッセージ情報記憶部143から読み出した複数のメッセージ情報のうち、「送信済みメッセージ」(例えば、フラグ「0」)、または「受信メッセージ」(例えば、フラグ「3」)であることを示すステイタス情報が含まれる複数のメッセージ情報に含まれるメッセージ(第1メッセージまたは第2メッセージ)を、それぞれに対応付けられた送信日時情報に基づいて時系列に並べたメッセージ画面の画面情報を生成する。
また、表示制御部156は、メッセージ情報記憶部143から読み出した複数のメッセージ情報に「未送信メッセージ」(例えば、フラグ「1」)が含まれている場合には、時系列に並べた順において、最新のメッセージの次に並ぶように表示部110に表示させる。また、「未送信メッセージ」が複数含まれている場合には、「未送信メッセージ」の中で入力日時情報に基づいて時系列に並べて表示部110に表示させる。
また、表示制御部156は、メッセージ情報記憶部143から読み出した複数のメッセージ情報のうち、「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)が含まれるメッセージ情報に含まれる下書きメッセージ(第3メッセージ)を、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージの次(時系列の順における次)に並べたメッセージ画面の画面情報を生成する。
つまり、メッセージ画面には、まず、送信日時情報に基づいて送信済みメッセージ(第1メッセージ)と受信メッセージ(第2メッセージ)とが時系列に並べて表示される。そしてその次に、入力日時情報に基づいて未送信メッセージが時系列に並べて表示される。そして最後に、下書きメッセージが表示される。
ここで、表示制御部156は、生成した画面情報のうちの一部を表示部110に表示させる。例えば、表示制御部156は、画面情報のうち、ユーザからの操作によって指定されたメッセージを含む箇所を、表示部110に表示させる。初期段階で表示部110に表示させる画面情報の一部は、例えば、読み出した複数のメッセージのうち、最も新しい送信日時情報が対応付けられたメッセージ(最新のメッセージ)が含まれる箇所とすることができる。
また、表示制御部156は、「受信メッセージ」であることを示すステイタス情報(例えば、フラグ「3」)が対応付けられたメッセージには、そのメッセージに対応付けられたユーザIDに対応するユーザを示す情報(例えば、ユーザ名またはユーザ画像)を対応付けて表示させる。また、表示制御部156は、「送信済みメッセージ」(例えば、フラグ「0」)、または「受信メッセージ」(例えば、フラグ「3」)であることを示すステイタス情報が対応付けられたメッセージには、そのメッセージに対応付けられた送信日時情報に基づいて、そのメッセージが送信された時間を対応付けて表示させる。なお、表示制御部156は、「未送信メッセージ」(例えば、フラグ「1」)であることを示すステイタス情報が対応付けられたメッセージには、そのメッセージに対応付けられた入力日時情報に基づいて、そのメッセージが入力された時間(送信ボタンにタップ操作がされた時間)を対応付けて表示させる。一方、表示制御部156は、「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)が対応付けられた下書きメッセージには、そのメッセージに対応する時間を示す情報を表示させなくともよい。
また、表示制御部156は、下書きメッセージ(第3メッセージ)を、少なくとも自ユーザ(第1ユーザ)の操作に応じてユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と区別可能な情報と対応付けて表示部110に表示させる。これは、下書きメッセージが、ユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と同様に、メッセージ画面の右側からの吹き出しに表示されるためである。ユーザは、この区別可能な情報が表示されることによって、送信するメッセージ(第1メッセージ)であるか、または、下書きメッセージ(第3メッセージ)であるかを容易に判別(区別)することができる。ここで、区別可能な情報とは、例えば、図3に示す下書きアイコンE10である。なお、図3に示す下書きアイコンE10は、下書きメッセージであることを示す情報(例えば「下書き」)が表示された例であるが、これに限らず、そのメッセージが未送信であることを表す情報(例えば「未送信」)が表示されてもよい。また、図3に示す吹き出しE9が、区別可能な情報として表示されてもよい。例えば、吹き出しE9の色(枠または枠の中の色)や枠の太さ、または、吹き出しE9に表示される下書きメッセージ(テキスト)のフォントが、吹き出しE7のそれぞれと異なるように表示されてもよい。ここで、下書きアイコンE10の表示と吹き出しE9の表示とのいずれか一方が区別可能な情報として表示されてもよいし、両方が、区別可能な情報として表示されてもよい。
また、図3に示す下書きアイコンE10は選択ボタンE11を表示させるための操作子としての機能を有するアイコンとして表示される例としたが、操作子としての機能を有さない単に下書きメッセージであることを示す情報(例えば「下書き」)が表示されるアイコンとしてもよい。また、下書きアイコンE10が表示されない構成としてもよく、吹き出しE9が選択ボタンE11を表示させるための操作子としての機能を有してもよい。さらに、操作子としての機能を、下書きアイコンE10と吹き出しE9との両方が有してもよい。
なお、上述の複数のメッセージ情報には、互いに同じ送信日時情報が対応付けられたメッセージ情報(即ち、互いに同じ送信日時のメッセージ情報)が含まれていてもよい。この場合、表示制御部156は、互いに同じ送信日時情報が対応付けられているメッセージ情報のそれぞれを、例えば、メッセージ情報記憶部143に記憶された順にしたがって、時系列にメッセージ画面に表示させてもよい。なお、メッセージ送受信部155が、互いに同じ送信日時情報が対応付けられたメッセージ情報を受信した場合に、一方の送信日時情報の時刻(例えば、秒数)をカウントアップさせて、互いに異なる送信日時情報として記憶させてもよい。
また、上述の複数のメッセージ情報において、上述の複数のメッセージ情報には、互いに同じ送信日時情報が対応付けられたメッセージ情報が含まれないように構成してもよい。この場合、サーバ装置200は、メッセージ情報に互いに同じ送信日時情報を対応付けることを禁止し、メッセージ情報毎に異なる送信日時情報を対応付けるようにしてもよい。具体的には、サーバ装置200は、互いに同じ送信日時情報となるようなメッセージ情報を受信した場合には、一方の送信日時情報の時刻(例えば、秒数)をカウントアップさせてもよい。
モード設定部157は、操作受付部120に対するユーザの操作に応じて、処理モードを「送信モード」と「下書きモード」との何れかに設定する。例えば、モード設定部157は、モード切替ボタンE1に対するユーザの操作に応じて、テキストボックスE21(入力部)に入力されたテキストに対する指示として、第1指示部152による指示と、第2指示部153による指示とのいずれかを設定する。
前述したように、モード切替ボタンE1は、「送信モード」と「下書きモード」とのいずれかの処理モードを選択可能な操作子(操作部)である。即ち、モード切替ボタンE1は、テキストボックスE21(入力部)に入力されたテキストに対する指示として、第1指示部152による指示と、第2指示部153による指示とのいずれかを選択可能な操作子(操作部)である。
なお、モード切替ボタンE1に代えて、下書きボタンE22(または、図9に示す送信ボタンE23)が、上述の処理モードを選択可能な操作子(操作部)として構成されてもよい。
以下、図9及び図10を参照して、「送信モード」と「下書きモード」とのいずれかの処理モードを選択する操作例について説明する。
図9及び図10は、処理モードを選択する(切替える)操作例を説明するためのメッセージ画面の例を示す図である。なお、図9及び図10において、図3に示す各部に対応する構成には同じ符号を付しておりその説明を省略する。また、図9及び図10においては、図3の表示例に対して適宜省略して図示している。
図9は、「送信モード」におけるメッセージ画面の一例を示す図である。符号110bの領域に、グループの名称と、処理モードを切替えるモード切替ボタンE1とが表示され、「送信モード」であるため「下書きモード」を示す情報が表示されていないことが図3に示す符号110bの領域と異なる。また、符号110bの領域には、図3と同様にモード切替ボタンE1が表示される。このモード切替ボタンE1にタップ操作(符号K1参照)がされると「下書きモード」に切替わる。
符号110dの領域には、他のユーザ端末100にメッセージを送信するための表示コンポーネントが配置される。テキストボックスE21には、ユーザから入力されるメッセージが表示される。即ち、テキストボックスE21は、メッセージとしてのテキストを入力する入力部である。送信ボタンE23は、テキストボックスE21に入力されたメッセージを送信するための操作子である。ここで、この送信ボタンE23は、「送信モード」から「下書きモード」に切替えるための操作子(操作部)として構成されてもよい。即ち、この送信ボタンE23は、テキストボックスE21(入力部)に入力されたテキストに対する指示として、第1指示部152による指示と、第2指示部153による指示とのいずれかを選択可能な操作子(操作部)として構成されてもよい。
例えば、テキストボックスE21にテキストが入力されていない状態では、送信ボタンE23は、「下書きモード」に切替えるための操作子とし、テキストボックスE21にテキストが入力されている状態では、テキストボックスE21に入力されたメッセージを送信するための操作子として構成されてもよい。ここでは、テキストボックスE21にテキストが入力されていない状態で送信ボタンE23にタップ操作(符号K3参照)がされると、処理モードが「送信モード」から「下書きモード」に切替わり、この送信ボタンE23が下書きボタンE22に変更される。なお、表示制御部156は、「送信モード」において、テキストボックスE21にテキストが入力されていない状態では、テキストボックスE21に、送信ボタンE23への操作によって「下書きモード」に切替わることをユーザに知らせるメッセージ(例えば、「(テキストなしで送信:下書きモードへ)」)を表示してもよい。表示制御部156は、このメッセージを、ユーザによりテキストが入力されたときにテキストボックスE21から消去する。
図10は、「下書きモード」におけるメッセージ画面の一例を示している。符号110bの領域は、図3の符号110bの領域と同様であり、グループの名称と、「下書きモード」を示す情報と、処理モードを切替えるモード切替ボタンE1とが表示される。また、符号110bの領域には、図3と同様にモード切替ボタンE1が表示される。このモード切替ボタンE1にタップ操作(符号K1参照)がされると「送信モード」に切替わる。
符号110dの領域も、図3の符号110bの領域と同様であり、ユーザ端末100から下書きメッセージを入力するための表示コンポーネントが配置される。ここで、下書きボタンE22は、「下書きモード」から「送信モード」に切替えるための操作子(操作部)として構成されてもよい。即ち、この下書きボタンE22は、テキストボックスE21(入力部)に入力されたテキストに対する指示として、第1指示部152による指示と、第2指示部153による指示とのいずれかを選択可能な操作子(操作部)として構成されてもよい。
例えば、テキストボックスE21にテキストが入力されていない状態では、下書きボタンE22は、「送信モード」に切替えるための操作子とし、テキストボックスE21にテキストが入力されている状態では、テキストボックスE21に入力されたメッセージを下書きメッセージとしてメッセージ画面に表示するための操作子として構成されてもよい。よって、テキストボックスE21にテキストが入力されていない状態で下書きボタンE22にタップ操作がされると、処理モードが「下書きモード」から「送信モード」に切替わり、この下書きボタンE22が送信ボタンE23に変更される。なお、表示制御部156は、「下書きモード」において、テキストボックスE21にテキストが入力されていない状態では、テキストボックスE21に、下書きボタンE22への操作によって「送信モード」に切替わることをユーザに知らせるメッセージ(例えば、「(テキストなしで下書:送信モードへ)」)を表示してもよい。表示制御部156は、このメッセージを、ユーザによりテキストが入力されたときにテキストボックスE21から消去する。
なお、「下書きモード」において、テキストボックスE21にテキストが入力されている状態で下書きボタンE22にタップ操作がされて、入力されたテキストが下書きメッセージとして表示部110に表示された後に、「送信モード」に切替わるようにしてもよい。ここでは、テキストボックスE21にテキストが入力されている状態で下書きボタンE22にタップ操作(符号K4参照)がされた場合、モード設定部157は、テキストボックスE21(入力部)に入力されたテキストに対する指示として、第2指示部153による指示を設定するとともに、処理モードを「下書きモード」から「送信モード」に設定してもよい(切替えてもよい)。
次に、図11を参照して、サーバ装置200の構成について説明する。図11は、本実施形態によるサーバ装置200の構成を示す概略ブロック図である。
サーバ装置200は、サーバ通信部230と、サーバ記憶部240と、サーバ制御部250と、を備えている。サーバ通信部230は、ネットワーク5を介して複数のユーザ端末100―Nと通信する。
サーバ記憶部240は、ユーザ端末100が備えるユーザ情報記憶部141とグループ情報記憶部142と同様の情報を記憶するユーザ情報記憶部241とグループ情報記憶部242とを備えている。なお、ユーザ端末100が備えるユーザ情報記憶部141とグループ情報記憶部142とには、そのユーザ自身に関連する情報(ユーザ自身のユーザ情報、及び、ユーザ自身と同じグループに登録可能な他ユーザのユーザ情報)のみが記憶されていることに対し、サーバ装置200が備えるユーザ情報記憶部241とグループ情報記憶部242とには、サーバ装置200を介してメッセージの送受信を行う全てのユーザ及びグループに関する情報が記憶されている。なお、サーバ装置200が備えるユーザ情報記憶部241には、ユーザ名やユーザ画像等のようにユーザを特定するような情報は記憶されず、単にユーザを識別可能なユーザIDが記憶されている構成としてもよい。
また、サーバ記憶部240は、メッセージ情報一時記憶部243を備えている。メッセージ情報一時記憶部243は、各ユーザ端末100から受信したメッセージ情報を一時的に記憶する。例えば、メッセージ情報一時記憶部243は、受信したメッセージ情報が、宛先(送信先)のユーザのユーザ端末100に対して送信されるまでの間、受信したメッセージ情報を一時的に記憶する。
サーバ制御部250は、メッセージ転送部251を備えている。
メッセージ転送部251は、ユーザ端末100からグループIDを宛先として送信されたメッセージ情報を受信すると、受信したメッセージ情報をメッセージ情報一時記憶部243に一時的に記憶させる。そして、メッセージ転送部251は、受信したメッセージ情報の宛先であるグループIDに対応付けられたユーザIDを特定し、記憶させたメッセージ情報を、当該特定したユーザIDが示すユーザ端末100のうち、メッセージを送信したユーザのユーザIDが示すユーザ端末100以外のユーザ端末100に送信する。なお、メッセージ転送部251は、このメッセージ情報を、当該特定したユーザIDが示すユーザ端末100のうち、メッセージを送信したユーザのユーザIDが示すユーザ端末100以外のユーザ端末100に送信してもよい。即ち、メッセージ転送部251は、グループ内のユーザにより送信されたメッセージを、グループ内の他のユーザに転送する。
なお、メッセージ転送部251は、ユーザ端末100からグループIDを宛先として送信されたメッセージ情報を受信すると、当該ユーザ端末100に対して、受信したときの受信日時を受信完了通知と共に送信する。
次に、図面を参照して、本実施形態によるチャットシステム1の動作例を説明する。図12は、本実施形態によるチャットシステム1の動作例を示すフローチャートである。この図12に示すステップS110、S120、S130、S140、S150、S160、S170、S180の各処理は、図2の同じ符号を付した各処理と同様の処理である。例えば、ユーザ端末100−1は、「送信モード」に設定されたユーザ端末100−2から送信されたメッセージを、サーバ装置200を介して受信してメッセージ画面に時系列に並べて表示する。
次に、ユーザ端末100−1において、「下書きモード」に設定された場合の処理を説明する。ユーザAは、ユーザ端末100−1を「送信モード」から「下書きモード」に切替える。例えば、図9に示す「送信モード」のメッセージ画面において、ユーザAは、テキストボックスE21にテキストが入力されていない状態で送信ボタンE23に対してタップ操作をする。この操作に応じて、モード設定部157は、処理モードを「送信モード」から「下書きモード」に切替える。即ち、モード設定部157は、テキストボックスE21(入力部)に入力されたテキストに対する指示として、第2指示部153による指示を設定する(ステップS210)。
次に、ユーザAは、「下書きモード」に設定されたユーザ端末100−1において、下書きメッセージを入力する。例えば、図10に示す「下書きモード」のメッセージ画面において、ユーザAは、テキストボックスE21にメッセージとしてのテキストを入力する。続いてユーザAは、下書きボタンE22に対してタップ操作をする。これらの操作により、操作受付部120は、入力されたテキストを下書きメッセージとして入力する指示を受け付けて、その指示内容に応じた入力指示を生成する(ステップS220)
ステップS220において生成された入力指示に基づいて、第2指示部153は、テキストボックスE21(入力部)に入力されたテキストを、ユーザ端末100−1から送信させずに、下書きメッセージとしてユーザ端末100−1の表示部110に表示させる指示を示す指示情報を生成する。具体的には、第2指示部153は、テキストボックスE21に入力されたメッセージに、そのメッセージが入力されたメッセージ画面のチャットのグループを識別するグループIDと、メッセージを入力したユーザである自ユーザを識別するユーザIDと、入力日時情報と、「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)と、を対応付けたメッセージ情報を指示情報として生成する。そして、第2指示部153は、生成した指示情報(メッセージ情報)を新たなレコードとしてメッセージ情報記憶部143に記憶させる。次に、表示制御部156は、第2指示部153が生成した指示情報である下書きメッセージを含むメッセージ情報をメッセージ情報記憶部143から読み出す。そして、表示制御部156は、読み出したメッセージ情報に含まれる下書きメッセージを、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージの次(時系列の順における次)に並べて表示部110に表示させる(ステップS230)。これにより、表示部110には、例えば図3に示す下書きメッセージ画面が表示される。
次に、ユーザAは、メッセージ画面に表示されている下書きメッセージに対して送信する指示をする。例えば、図3に示す下書きアイコンE10に対して、長押し操作(例えば1秒以上の押下、符号K2参照)がされると、下書きアイコンE10に対応付けられている吹き出しE9に表示されている下書きメッセージを、送信するか又は削除するかを選択可能な選択ボタンE11が表示される。続いて、ユーザAは、選択ボタンE11に対して、送信を選択する操作をする。これらの操作により、操作受付部120は、下書きメッセージを送信する指示を受け付けて、その指示内容に応じた入力指示を生成する(ステップS240)
ステップS240において生成された入力指示に基づいて、第3指示部154は、第2指示部153により指示を受けた下書きメッセージ(第3メッセージ)をユーザ端末100−1から送信するメッセージ(第1メッセージ)として、ユーザ端末100−1から送信させる指示と、ユーザ端末100−1の表示部110に表示させる指示とを示す指示情報を生成する。具体的には、第3指示部154は、下書きメッセージとしてメッセージ情報記憶部143に記憶されているメッセージのレコードのステイタス情報を、「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)から、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)に更新する。そして、メッセージ送受信部155は、第3指示部154がメッセージ情報記憶部143に記憶されている下書きメッセージを含むメッセージ情報のステイタス情報を更新すると、送信するメッセージUとして時系列に並べて表示部110に表示させる(ステップS250)。続いて、ユーザ端末100−1は、メッセージUをサーバ装置200に送信する(ステップS260)。
次に、サーバ装置200は、ユーザ端末100−1からメッセージUをネットワーク5を介して受信し、受信したメッセージUを一時的に記憶する(ステップS270)。このとき、サーバ装置200は、このメッセージUを受信したときの受信日時をユーザ端末100−1へ受信完了通知と共に返信し、この受信日時をメッセージUがユーザ端末100−1から送信された送信日時情報とする。受信完了通知を受信したユーザ端末100−1は、当該受信完了通知に含まれる送信日時情報を取得してメッセージUと対応付ける。また、既にメッセージ画面に表示されているメッセージUに対応付けて送信日時を表示する(ステップS275)。
これ以降の、S280、S290、S310、S320、S330の各処理は、ステップS140、S150、S160、S170、S180の各処理と同様の処理である。例えば、サーバ装置200は、ステップS270においてユーザ端末100−1から受信したメッセージ情報(メッセージU)を、ユーザ端末100−2とユーザ端末100−3とに送信する。そして、サーバ装置200から送信されたメッセージ情報(メッセージU)を受信したユーザ端末100−2とユーザ端末100−3とは、受信したメッセージUを時系列に並べて、それぞれが備えている表示部110に表示する。
以上説明してきたように、本実施形態によるユーザ端末100は、自ユーザ(第1ユーザ)の操作に応じて自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と、一又は複数の他ユーザ(第2ユーザ)の操作に応じて他ユーザのユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)とを、時系列に並べて表示部110に表示させる表示制御部156を備えている。また、ユーザ端末100は、テキストを入力する入力部を備えている。この入力部は、例えば、表示部110に表示されたメッセージ画面に表示されるテキストボックスE21である。さらに、ユーザ端末100は、第1指示部152と、第2指示部153と、を備えている。第1指示部152は、テキストボックスE21に入力されたテキストを、ユーザのユーザ端末100から送信するメッセージとして、自ユーザのユーザ端末100から送信させる指示をするとともに、表示制御部156に対して表示部110に表示させる指示をする。第2指示部153は、テキストボックスE21に入力されたテキストを下書きメッセージ(第3メッセージ)として、表示制御部156に対して表示部110に表示させる指示をする。そして、表示制御部156は、第1指示部152により指示を受けたメッセージ(第1メッセージ)を時系列に並べて表示部110に表示させる一方、第2指示部153により指示を受けた下書きメッセージ(第3メッセージ)を、時系列に並べた順において、自ユーザのユーザ端末100から送信するメッセージ(第1メッセージ)または他ユーザのユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)のうちの最新のメッセージの次に並ぶように表示部110に表示させる。
これにより、ユーザ端末100は、入力されたメッセージを送信することができる一方、入力されたメッセージを下書きメッセージとして、実際には送信することなく、あたかも送信したかのように時系列に並ぶ位置に表示することができる。つまり、ユーザ端末100は、誤字等の間違った内容のメッセージを安易に送信してしまうことを抑制することができる。よって、ユーザは、簡易な操作によりメッセージを送信することができる一方、入力したメッセージを送信する前に、そのメッセージを送信した場合と同様に時系列に並んで表示される下書きメッセージとして確認することができる。即ち、本実施形態によれば、メッセージを送信する際の利便性を向上させることができる。
また、ユーザ端末100は、テキストボックスE21(入力部)に入力されたテキストに対する指示として、第1指示部152による指示と第2指示部153による指示とのいずれかを選択可能な操作部を備えている。この操作部は、例えば、表示部110に表示されたメッセージ画面に表示されるモード切替ボタンE1である。そして、表示制御部156は、モード切替ボタンE1(操作部)に対する操作により第2指示部153による指示が選択された場合、第2指示部153により指示を受けた下書きメッセージ(第3メッセージ)を、時系列に並べた順において、自ユーザのユーザ端末100から送信するメッセージ(第1メッセージ)または他ユーザのユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)のうちの最新のメッセージの次に並ぶように表示部110に表示させる。
なお、上述の操作部は、表示部110に表示されたメッセージ画面に表示される下書きボタンE22及び送信ボタンE23としてもよい。また、上述の操作部は、モード切替ボタンE1と、下書きボタンE22及び送信ボタンE23との両方としてもよいし、何れか一方としてもよい。
これにより、ユーザ端末100は、表示部110に対するユーザの操作に応じて、「送信モード」と「下書きモード」との何れかに処理モードを切替えることができる。よって、ユーザは、メッセージを入力する際に、簡易な操作で「下書きモード」に設定することができ、メッセージを下書きメッセージとして入力して確認することができる。
また、ユーザ端末100は、下書きメッセージ(第3メッセージ)を、自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、自ユーザのユーザ端末100から送信させる指示をするとともに、表示制御部156に対して表示部110に表示させる指示をする第3指示部154を備えている。そして、表示制御部156は、第3指示部154により指示を受けた下書きメッセージ(第3メッセージ)を、自ユーザのユーザ端末100から送信するメッセージ(第1メッセージ)として、時系列に並べて表示部110に表示させる。
これにより、ユーザ端末100は、入力された下書きメッセージを、自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、自ユーザのユーザ端末100から送信することができる。また、ユーザ端末100は、入力された下書きメッセージを、自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、時系列に並べて表示部110に表示することができる。よって、ユーザは、メッセージを入力する際に、一旦下書きメッセージとして入力して確認した後に、その下書きメッセージを送信することができる。
また、ユーザ端末100において、表示制御部156は、下書きメッセージ(第3メッセージ)を、少なくとも自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と区別可能な情報と対応付けて表示部110に表示させる。これにより、ユーザ端末100は、送信するメッセージと区別可能なように下書きメッセージを表示すること判別することができる。
このように、本実施形態によれば、メッセージを送信する際の利便性を向上させることができる。
なお、上記実施形態において、第1指示部152による指示と第2指示部153による指示とのいずれかを選択可能な操作部を備えている操作部(モード切替ボタンE1、又は、下書きボタンE22及び送信ボタンE23)を備えている構成を説明したが、これに限られるものではない。例えば、他の機能を有する操作部が操作された場合に、連動して第1指示部152による指示と第2指示部153による指示とのいずれかが選択されるように構成されてもよい。ここで、他の機能とは、上述の第1指示部152による指示と第2指示部153による指示とのいずれかを選択可能な機能とは異なる機能であって、例えば、チャットアプリケーションを起動するための操作部、チャットアプリケーションを終了するための操作部、又は、チャットアプリケーションにおいて、チャットを行うグループを選択する(切替える)操作部等である。また、ユーザ端末100は、操作部に対する操作以外の条件により、第1指示部152による指示と第2指示部153による指示とのいずれかを選択してもよい。例えば、ユーザ端末100は、チャットアプリケーションを起動した際に、そのユーザ端末の累積使用時間に基づいて、第1指示部152による指示と第2指示部153による指示とのいずれかを選択してもよい。つまり、ユーザ端末100は、ユーザによる使用時間が短く操作に不慣れな状態であると判定した場合には第2指示部153による指示を選択(「下書きモード」を選択)とし、ユーザによる使用時間が長く操作に慣れた状態であると判定した場合には第1指示部152による指示を選択(「送信モード」を選択)としてもよい。また、ユーザ端末100は、第2指示部153による指示が選択された状態が予め設定された時間以上経過した場合に、第1指示部152による指示に切替えてもよい。
なお、図3において、選択ボタンE11が、吹き出しE9に表示されている下書きメッセージを送信するか(「送信」)、及び、削除するか(「削除」)のうちのいずれかを選択可能な操作子として表示される例を説明したが、これに限られるものではない。例えば、選択ボタンE11は、吹き出しE9に表示されている下書きメッセージを送信するか(「送信」)、削除するか(「削除」)、及び、編集するか(「編集」)のうちのいずれかを選択可能な操作子として表示されてもよい。
(変形例)
上述の実施形態において、ユーザ端末100は、少なくとも、表示制御部156と、入力部と、第1指示部152と、第2指示部153と、を備えた構成であればよい。
ここで、表示制御部156は、自ユーザ(第1ユーザ)の操作に応じて自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)と、一又は複数の他ユーザ(第2ユーザ)の操作に応じて他ユーザのユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)とを、時系列に並べて表示部110に表示させる。入力部は、テキストを入力する。この入力部は、例えば、表示部110に表示されたメッセージ画面に表示されるテキストボックスE21である。第1指示部152は、入力部(例えば、テキストボックスE21)に入力されたテキストを、ユーザのユーザ端末100から送信するメッセージとして、自ユーザのユーザ端末100から送信させる指示をするとともに、表示制御部156に対して表示部110に表示させる指示をする。第2指示部153は、入力部(例えば、テキストボックスE21)に入力されたテキストを下書きメッセージ(第3メッセージ)として、表示制御部156に対して表示部110に表示させる指示をする。そして、表示制御部156は、第1指示部152により指示を受けたメッセージ(第1メッセージ)を時系列に並べて表示部110に表示させる一方、第2指示部153により指示を受けた下書きメッセージ(第3メッセージ)を、時系列に並べた順において、自ユーザのユーザ端末100から送信するメッセージ(第1メッセージ)または他ユーザのユーザ端末100(他装置)から送信されたメッセージ(第2メッセージ)のうちの最新のメッセージの次に並ぶように表示部110に表示させる。
この構成により、ユーザ端末100は、入力されたメッセージを送信することができる一方、入力されたメッセージを下書きメッセージとして、実際には送信することなく、あたかも送信したかのように時系列に並ぶ位置に表示することができる。つまり、ユーザ端末100は、誤字等の間違った内容のメッセージを安易に送信してしまうことを抑制することができる。よって、ユーザは、簡易な操作によりメッセージを送信することができる一方、入力したメッセージを送信する前に、そのメッセージを送信した場合と同様に時系列に並んで表示される下書きメッセージとして確認することができる。即ち、本実施形態によれば、メッセージを送信する際の利便性を向上させることができる。
なお、ユーザ端末100は、第2指示部153による指示を受けて表示部110に表示された下書きメッセージ(第3メッセージ)を、ユーザからの操作に応じて一旦入力部(例えばテキストボックスE21)に戻した後、その戻したメッセージを第1指示部152による指示に応じて送信してもよい。
<第2の実施形態>
次に、本発明の第2の実施形態を説明する。本実施形態のチャットシステム1の構成は、第1の実施形態と同様であるので、本実施形態において特徴的な処理について説明する。第1の実施形態において、下書きメッセージをメッセージ画面に表示する処理を説明したが、メッセージ画面には複数の下書きメッセージが表示されてもよく、本実施形態では、複数の下書きメッセージをメッセージ画面に表示する場合の処理について説明する。
図13は、複数の下書きメッセージが表示されたメッセージ画面の一例を示す図である。なお、図13において、図3に示す各部に対応する構成には同じ符号を付しておりその説明を省略する。この図に示すように、表示制御部156は、複数の下書きメッセージを表示部110に表示させる。吹き出しE13には、吹き出しE9に表示される下書きメッセージの次に入力された下書きメッセージが表示される。また、吹き出しE15には、吹き出しE13に表示される下書きメッセージの次に入力された下書きメッセージが表示される。下書きアイコンE14と下書きアイコンE16とは、それぞれ吹き出しE13と吹き出しE15とに対応付けられて表示される。
このように、表示制御部156は、複数の下書きメッセージのそれぞれを、それぞれが入力された順に並べて表示部110に表示させる。例えば、表示制御部156は、メッセージ情報記憶部143に記憶されているメッセージ情報に含まれている入力日時情報に基づいて、複数の下書きメッセージのそれぞれを入力された順に並べて表示部110に表示させる。即ち、表示制御部156は、から複数の下書きメッセージを、第2指示部153により指示を受けた順に並べて表示部110に表示させる。
また、表示制御部156は、複数の下書きメッセージのいずれかを選択して送信することができるように表示部110に表示させる。例えば、下書きアイコンE14と下書きアイコンE16とは、図2を用いて説明した下書きアイコンE10と同様に、それぞれ対応する下書きメッセージを、送信するか又は削除するかを選択可能な選択ボタンを表示させるための操作子である。例えば、下書きアイコンE10、E14、E16のいずれかに対して長押し操作(例えば1秒以上の押下)がされると、操作された下書きアイコンに対応付けられている吹き出しに表示されている下書きメッセージを送信するか又は削除するかを選択可能な選択ボタンが表示される。ここでは、下書きアイコンE16に対して長押し操作(符号K5参照)がされて、下書きアイコンE16に対応付けられている吹き出しE15に表示されている下書きメッセージを送信するか又は削除するかを選択可能な選択ボタンE17が表示される。選択ボタンE17に対して「削除」を選択するタップ操作がされると、その操作に基づく第2指示部153の指示により、表示制御部156は吹き出しE15の表示を削除する。
一方、選択ボタンE17に対して「送信」を選択するタップ操作がされると、第3指示部154は、吹き出しE15に表示されている下書きメッセージに対応付けられたステイタス情報を「下書きメッセージ」であることを示すステイタス情報(例えば、フラグ「2」)から、「未送信メッセージ」であることを示すステイタス情報(例えば、フラグ「1」)に更新する。即ち、第3指示部154は、吹き出しE15に表示されている下書きメッセージを、ユーザ端末100から送信するメッセージとして、ユーザ端末100から送信させる指示と、表示制御部156に対して表示部110に表示させる指示とを示す指示情報を生成する。
メッセージ送受信部155は、生成された指示情報に基づいて、吹き出しE15表示されている下書きメッセージを(送信するメッセージとして)サーバ装置200に送信する。一方、表示制御部156は、生成された指示情報に基づいて、吹き出しE15の表示を削除するとともに、吹き出しE15に表示されていた下書きメッセージを(送信するメッセージとして)時系列に並べて表示部110に表示させる。このとき、表示制御部156は、吹き出しE15に表示されていた下書きメッセージを(送信するメッセージとして)、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージとして表示されるように、吹き出しE7と吹き出しE9との間に表示させる。なお、この場合は自ユーザのメッセージであるため、メッセージ画面の右側からの吹き出しに表示される。
以上説明したように、本実施形態によるユーザ端末100において、表示制御部156は、複数の下書きメッセージ(第3メッセージ)を、第2指示部153により指示を受けた順に並べて表示部110に表示させる。これにより、ユーザ端末100は、複数の下書きメッセージを、実際には送信することなく、あたかも送信したかのように時系列に並ぶ位置に表示することができる。よって、ユーザは、入力した複数のメッセージを送信する前に、その複数のメッセージをそれぞれ送信した場合と同様に時系列に並んで表示される複数の下書きメッセージとして確認することができる。
また、ユーザ端末100において、第3指示部154は、表示部110に複数の下書きメッセージ(第3メッセージ)が表示されている場合、自ユーザ(第1ユーザ)が選択した下書きメッセージを、自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、自ユーザのユーザ端末100から送信させる指示をするとともに、表示制御部156に対して表示部110に表示させる指示をする。これにより、ユーザ端末100は、入力された複数の下書きメッセージを、ユーザが選択した順に送信することができるとともに、その順に表示部110に表示することができる。つまり、ユーザ端末100は、表示部110に表示している複数の下書きメッセージのうちのユーザから選択されたメッセージを送信することができるとともに、その選択された下書きメッセージの表示を削除して、送信するメッセージとして時系列に並べて表示し直すことができる。よって、ユーザは、複数の下書きメッセージを入力した後に、その中から実際に送信するメッセージを選択して送信することができるとともに、送信するメッセージをメッセージ画面で確認することができる。
なお、上記実施形態において、ユーザ端末100が複数の下書きメッセージのうちユーザが選択したメッセージを送信する例を説明したが、これに限られるものではない。例えば、ユーザ端末100は、複数の下書きメッセージのそれぞれを、表示されている順にしたがって、ユーザ端末100から送信してもよい。ここで、表示されている順とは、それぞれの下書きメッセージが入力された順であり、入力日時情報の時系列の順を意味する。具体的には、第3指示部は、操作受付部120に対するユーザの操作に応じて、複数の下書きメッセージのそれぞれを、第2指示部153により指示を受けた順(入力された順)にしたがってユーザ端末100から送信するメッセージとして、ユーザ端末100から送信させる指示と、表示制御部156に対して表示部110に表示させる指示とを示す指示情報を生成する。このときの操作受付部120に対するユーザの操作とは、例えば、「下書きモード」から「送信モード」に切替えるためのモード切替ボタンE1に対するタップ操作といった所定の操作(第1操作)である。なお、この所定の操作(第1操作)は、モード切替ボタンE1に対するタップ操作に限られるものではなく、下書きボタンE22に対するタップ操作等、他の操作であってもよい。
例えば、モード切替ボタンE1に対してタップ操作がされることによって「下書きモード」から「送信モード」に切替わると、第3指示部は、表示部110に表示されている複数の下書きメッセージのそれぞれを、第2指示部153により指示を受けた順(入力された順)にしたがって、ユーザ端末100から送信するメッセージとして、ユーザ端末100から送信させる指示と、表示制御部156に対して表示部110に表示させる指示とを示す指示情報を生成する。そして、メッセージ送受信部155は、生成された指示情報に基づいて、第2指示部153により指示を受けた順(入力された順)にしたがって複数の下書きメッセージのそれぞれを、ユーザ端末100から送信するメッセージとして、サーバ装置200に送信する。一方、表示制御部156は、複数の下書きメッセージのそれぞれを、第2指示部153により指示を受けた順(入力された順)、即ち送信する順にしたがって、下書きメッセージとしての表示を削除するとともに、送信するメッセージとして時系列に並べて表示部110に表示させる。
このように、ユーザ端末100において、第3指示部154は、表示部110に複数の下書きメッセージ(第3メッセージ)が表示されている場合、所定の操作(第1操作)に基づいて、複数の下書きメッセージのそれぞれを、自ユーザのユーザ端末100(自装置)から送信するメッセージ(第1メッセージ)として、第2指示部153により指示を受けた順にしたがって、自ユーザのユーザ端末100から送信させる指示をする。また、第3指示部154は、複数の下書きメッセージのそれぞれを、自ユーザのユーザ端末100(自装置)から送信するメッセージとして、第2指示部153により指示を受けた順に並べて表示されるように表示制御部156に対して表示部110に表示させる指示をする。
これにより、ユーザ端末100は、入力された複数の下書きメッセージを、所定の操作(第1操作)に基づいて、入力された順に送信することができるとともに、その順に表示部110に表示することができる。つまり、ユーザ端末100は、表示部110に表示している複数の下書きメッセージを、入力された順に送信することができるとともに、送信するそれぞれの下書きメッセージの表示を削除して、送信するメッセージとして時系列に並べて表示し直すことができる。よって、ユーザは、複数の下書きメッセージを入力した後に、簡易な操作により、入力した順に送信することができる。即ち、本実施形態によれば、メッセージを送信する際の利便性を向上させることができる。
例えば、ユーザは、互いに関連する複数のメッセージを予め入力しておいて一斉に送信することもできる。例えば、ユーザは、長文のメッセージを複数のメッセージに分割して送信するような場合においても、それぞれのメッセージを下書きメッセージとして予め入力しておくことにより、送信する順にしたがってまとめて送信することができる。つまり、ユーザ端末100は、予め入力された互いに関連する複数のメッセージを順番にまとめて送信することができるため、この互いに関連する複数のメッセージを、時系列においてまとまった位置に見やすく表示することができる。
なお、ユーザ端末100は、複数の下書きメッセージのそれぞれを、表示されている順(即ち、それぞれの下書きメッセージが入力された順)にユーザ端末100から送信する場合に、複数の下書きメッセージのうちのすべてのメッセージを順に送信してもよいし、複数の下書きメッセージのうちのユーザにより選択された複数のメッセージを順に送信してもよい。
また、ユーザ端末100は、所定の操作(第1操作)に基づいて、複数の下書きメッセージのそれぞれを、表示されている順(即ち、それぞれの下書きメッセージが入力された順)にユーザ端末100から送信する場合に、送信するか否かを選択可能な確認画面を一旦表示し、その確認画面に対するユーザの操作によって実際に送信する否かを決めてもよい。
ところで、ユーザ端末100は、下書きメッセージを表示部110に表示している状態で、他のユーザ端末100(他装置)から送信されたメッセージを受信すること、及び、ユーザ端末100(自装置)からメッセージを送信することができる。
図13に示すように、下書きメッセージが表示部110に表示されている状態で、他のユーザ端末100(他装置)から送信されたメッセージを受信した場合、表示制御部156は、そのメッセージを、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージとして表示されるように、吹き出しE7と吹き出しE9との間に表示させる。なお、この場合は他ユーザのメッセージであるため、メッセージ画面の左側からの吹き出しに表示される。
図14は、複数の下書きメッセージが表示されている状態(図13に示す表示状態)で、「送信モード」に切替わったメッセージ画面の一例を示す図である。この「送信モード」において、ユーザ端末100(自装置)から送信するメッセージは、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージとして表示される。例えば、ユーザ端末100(自装置)からメッセージを送信すると、そのメッセージを、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージとして表示されるように、吹き出しE7と吹き出しE9との間に表示させる。なお、この場合は自ユーザのメッセージであるため、メッセージ画面の右側からの吹き出しに表示される。
なお、図13又は図14に示す例は、複数の下書きメッセージが表示部110に表示されている例であるが、1つの下書きメッセージが表示部110に表示されている場合であっても同様に、他のユーザ端末100から送信されたメッセージと、ユーザ端末100(自装置)から送信するメッセージとのぞれぞれのメッセージは、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージとして表示される。
このように、ユーザ端末100は、下書きメッセージを表示部110に表示している場合、その下書きメッセージを残したまま、新たにメッセージを送信することも受信することもできる。
以上説明してきたように、本実施形態によれば、メッセージを送信する際の利便性を向上させることができる。
<第3の実施形態>
次に、本発明の第3の実施形態を説明する。本実施形態のチャットシステム1の構成は、上記第1又は第2の実施形態と同様であるので、本実施形態において特徴的な処理について説明する。第1、第2の実施形態において、ユーザ端末100が、「下書きモード」において入力されたテキストを、下書きメッセージとして表示部110に表示させる例を説明したが、この下書きメッセージは、テキストに限られるものではなく、ユーザに選択されたアイテムであってもよい。ここで、アイテムとは、例えば、画像(静止画や動画)、音(音声)、位置情報、ドキュメント、スタンプ、等のデータである。また、これらのアイテムは、メッセージに添付されてメッセージと共に送信されるものではなく、単独でメッセージとして送信されるものである。
また、上述のアイテムは、例えば、複数のアイテムが一覧表示された中からユーザが選択することができる。図15は、表示部110に表示される、アイテムを選択可能な選択部の一例を示す図である。符号110aの領域には、アイテム選択ボックスE31が表示される。アイテム選択ボックスE31は、複数のアイテムのそれぞれが、ユーザの操作に応じて選択可能な操作子として並んで表示される選択部である。ここで、このアイテム選択ボックスE31は、例えば、メッセージ画面内の所定の領域に対する操作に応じて表示されるポップアップ画面内の項目から選択して表示させることができる。
ユーザがアイテム選択ボックスE31において、メッセージとして送信するアイテムを選択すると、ユーザ端末100は、その選択されたアイテムをサーバ装置200へ送信する。ここで、ユーザ端末100は、ユーザにより送信したいアイテムが選択された場合、その選択されたアイテムを、送信ボタンE23に対する操作がなくとも送信する。これにより、ユーザにとっては、送信したいアイテムを選択するのみで簡易に送信できるという利点がある反面、例えば誤操作により間違ったアイテムを選択してしまった場合には、その間違って選択されたアイテムが直ちに送信されてしまうという問題があった。
そこで、本実施形態のユーザ端末100は、ユーザの操作に応じて一旦「下書きモード」に設定した場合、所定の条件が充足されるまでの期間、「下書きモード」を維持するようにした。ここで所定の条件が充足されるまでの期間とは、例えば、メッセージ画面において、「下書きモード」から「送信モード」に切替わるまでの期間である。なお、所定の条件が充足されるまでの期間は、「下書きモード」において、下書きメッセージが送信されるまでの期間としてもよいし、チャットアプリケーションの動作が終了されるまでの期間としてもよい(即ち、次のチャットアプリケーションの起動時には「送信モード」に設定される)。
具体的には、例えば、ユーザがモード切替ボタンE1に対してタップ操作したことに応じて「下書きモード」(即ち、第2指示部153による指示)が選択された場合、モード設定部157は、「下書きモード」(即ち、第2指示部153による指示)に設定するとともに、所定の条件が充足されるまでの期間、「下書きモード」(即ち、第2指示部153による指示)を継続させた状態に設定する。
「下書きモード」において、アイテム選択ボックスE31の中からメッセージとして送信するアイテムが選択されると、第2指示部153は、選択されたアイテムを下書きメッセージとして表示部110に表示させる指示情報(メッセージ情報)を生成する。つまり、ユーザ端末100は、「下書きモード」が維持されている期間においてユーザによってアイテムが選択された場合には、選択されたアイテムを下書きメッセージとして処理する。例えば、ユーザ端末100は、アイテムによる下書きメッセージを、前述したテキストによる下書きメッセージと同様に、送信日時情報に基づいて時系列に並べたメッセージのうちの最新のメッセージの次に、下書きメッセージとして入力された順に並べて表示部110に表示させる。
図16は、選択したアイテムを下書きメッセージとしたメッセージ画面の一例を示す図である。なお、図16において、図3または図13と対応する部分には同じ符号を付けておりその説明を省略する。また、図16においては、図3または図13の表示例に対して適宜省略して図示している。アイテムアイコンE18は、「下書きモード」において選択されたアイテム又はそのアイテムを表すアイコンであって、下書きメッセージとして、他の下書きメッセージが表示される吹き出しと同様に、入力された順に並んで表示される。下書きアイコンE19は、アイテムアイコンE18に対応するアイテムが「下書きモード」において選択されて下書きメッセージであることを示す情報(例えば「下書き」)が表示されたアイコンである。アイテムによる下書きメッセージは、テキストによる下書きメッセージと同様に、入力された順に並べて表示される。
以上説明したように、本実施形態によるユーザ端末100において、モード設定部157は、操作部(例えば、モード切替ボタンE1、又は、下書きボタンE22及び送信ボタンE23)に対する操作により第2指示部153による指示が選択された場合、所定の条件が充足されるまでの期間、第2指示部153による指示を継続させた状態に設定する。つまり、モード設定部157は、「下書きモード」に設定した場合、所定の条件が充足されるまでの期間、「下書きモード」を継続させた状態に設定する。
これにより、ユーザ端末100は、「下書きモード」に設定した場合、所定の条件が充足されるまでの期間「下書きモード」を継続するため、その間において入力されたメッセージを下書きメッセージとして、送信せずに表示部110に表示することができる。よって、ユーザは、一旦「下書きモード」に設定すれば、入力する度に「下書きモード」に設定しなくとも、続けて下書きメッセージを入力することができる。
また、ユーザ端末100は、さらに複数のアイテムの中から、メッセージ(第1メッセージ)として送信するアイテムを選択する選択部(例えば、アイテム選択ボックスE31)を備えるようにしてもよい。そして、第2指示部153は、モード設定部157が第2指示部153による指示を継続させた状態に設定している場合、上記選択部においてメッセージ(第1メッセージ)として選択されたアイテムを下書きメッセージ(第3メッセージ)として、表示制御部156に対して表示部110に表示させる指示をする。
これにより、ユーザ端末100は、テキストによるメッセージのみならず、アイテムも下書きメッセージとして、送信せずに表示部110に表示することができる。つまり、ユーザ端末100は、選択されたアイテムを下書きメッセージとして、実際には送信することなく、あたかも送信したかのように時系列に並ぶ位置に表示することができる。よって、ユーザは、選択したアイテムを送信する前に、そのアイテムを送信した場合と同様に時系列に並んで表示される下書きメッセージとして確認することができる。このように、本実施形態によれば、メッセージを送信する際の利便性を向上させることができる。
<第4の実施形態>
次に、本発明の第4の実施形態を説明する。まず、図17を参照して、本実施形態において特徴的な構成について説明する。図17は、本実施形態によるユーザ端末100の表示制御部156の構成の一例を示す概略ブロック図である。表示制御部156は、反映部156Aを備えている。本実施形態による表示制御部156以外の構成は、上記第1、第2、又は第3の実施形態と同様であるので、その説明を省略する。反映部156Aは、所定の操作(第2操作)に基づいて、表示部110に表示されている下書きメッセージを、テキストボックスE21(入力部)に入力されたテキストとして反映させる。ここで、所定の操作(第2操作)とは、例えば、下書きメッセージが表示されている吹き出しに対するタップ操作である。
図18は、本実施形態によるメッセージ画面の一例を示す図である。この図18を参照して、表示部110に表示されている下書きメッセージをテキストボックスE21に反映させる処理を説明する。なお、図18において、図3または図13と対応する部分には同じ符号を付けておりその説明を省略する。また、図18においては、図3または図13の表示例に対して適宜省略して図示している。この図18において、吹き出しアイコンE20に対してタップ操作(符号K6参照)がされると、吹き出しアイコンE20に表示されている下書きメッセージの内容(テキスト)が、テキストボックスE21に表示される。このとき、テキストボックスE21には、ユーザからの操作に応じて、下書きメッセージの内容(テキスト)が修正可能なように表示される。即ち、テキストボックスE21には、下書きメッセージの内容(テキスト)が、ユーザからの操作に応じて入力されるテキストと同様に表示される。
このように、本実施形態によるユーザ端末100は、所定の操作(第2操作、例えば、下書きメッセージが表示されている吹き出しに対するタップ操作)に基づいて、表示部110に表示されている下書きメッセージ(第3メッセージ)をテキストボックスE21(入力部)に入力されたテキストとして反映させる反映部156Aを備えている。そして、第2指示部153は、テキストボックスE21(入力部)に入力された、反映部156Aが反映させたテキストを含むテキストを下書きメッセージ(第3メッセージ)として、表示制御部156に対して110表示部に表示させる指示をする。
これにより、ユーザ端末100は、入力されて表示部110に表示された下書きメッセージを、編集可能にテキストボックスE21に表示させることができる。よって、ユーザは、一旦入力して表示部110に表示された下書きメッセージを、簡易な操作で編集することができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、上述の第1から第4の実施形態において説明した各機能は、任意に組み合わせることができる。
なお、上述の実施形態では、メッセージ情報に含まれるメッセージに対応付ける日時情報として、他ユーザから送信されたメッセージである場合には、そのメッセージが送信された日時(実際には、そのメッセージをサーバ装置200が受信した日時)を示す情報とし、自ユーザが送信したメッセージである場合には、そのメッセージをサーバ装置200が受信した日時を示す情報とする例を示した。ただし、他ユーザから送信されたメッセージである場合に、そのメッセージが他ユーザのユーザ端末100において実際に送信された日時を示す情報をメッセージとともに受信して日時情報としてもよいし、そのメッセージがサーバ装置200から送信された日時をメッセージとともに受信して日時情報とすることもできる。
また、上述の実施形態では、操作受付部120と表示部110とは一体に構成されてユーザからの操作入力を受け付けるタッチパネルを適用した例を説明したが、操作受付部120と表示部110とが別に構成され、操作受付部120としてキーボードやボタンを適用してもよい。この場合、上述のモード切替ボタンE1(操作部)、または、テキストを入力するテキストボックスE21(入力部)等を、キーボードやボタンとして構成してもよい。また、上述のモード切替ボタンE1(操作部)、または、テキストを入力するテキストボックスE21(入力部)等を、音声認識により操作入力可能な操作入力部として構成してもよい。また、上述の実施形態では、ユーザ端末100において表示部110が一体として構成された例を説明したが、これに限らず、外部の表示部(表示装置)と有線又は無線により接続される構成としてもよい。
また、上述の実施形態では、チャットアプリケーションにおける制御の例を示したが、上述したように、送信されたメッセージをグループ内のユーザに対して送信する電子メール、電子掲示板、タイムライン、ミニブログ(マイクロブログ、つぶやきブログ)等における制御にも上述の実施形態を適用することができる。ここで、電子メールとは、携帯電話等によるショートメッセージサービス等により送受信されるメールであってもよい。即ち、上述の実施形態で示したチャットシステム1に代えて、上述したチャット以外のメール送受信システムにも上述の実施形態を適用することができる。なお、ユーザ間で送受信されるメッセージの表示の即時性という観点では、チャットアプリケーションにおける制御がより好適である。
また、本発明の実施形態は、上述の例に限るものではなく、本発明の範囲内で様々な形態をとることができる。例えば、上述したチャットシステム1が備える各構成は、任意のコンピュータ装置に分散または集約して配置することができる。例えば、サーバ装置200は、クラウド環境やネットワーク環境、ユーザ数の規模、チャットシステム1を構成するために用意されたハードウェアの数やスペック等に応じて、任意のコンピュータ装置に分散または集約して配置することができる。
また、例えば、複数のユーザ端末100間で送受信されるメッセージの全てをサーバ装置200が記憶しておき、ユーザ端末100からの任意の要求に応じてメッセージを送信し、ユーザ端末100に表示させるようにしてもよい。
また、上述の実施形態では、複数のユーザ端末100はサーバ装置200を介してメッセージを送受信する例を示したが、サーバ装置200を介さずに、複数のユーザ端末100同士が直接メッセージを送受信してもよい。
なお、上述の制御部150の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述の制御部150の処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。