(57)【要約】【課題】イベントキューに保持したイベントを処理するか否かを表示中の画面に基づいて決定すること。【解決手段】受付手段１０１は、操作を受け付ける。第１保持手段１０２は、前記受付手段１０１で発生したイベントと電子機器（複写機１）で発生したイベントとを保持する。処理手段１０３は、前記第１保持手段１０２に保持されているイベントを処理する処理手段であって、表示手段１０４に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない。【選択図】図８
2017041728.tif 000002
【特許請求の範囲】
【請求項１】
操作を受け付ける受付手段と、
前記受付手段で発生したイベントと電子機器で発生したイベントとを保持する第１保持手段と、
前記第１保持手段に保持されているイベントを処理する処理手段であって、表示手段に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない処理手段と
を備えた制御装置。
【請求項２】
前記処理手段は、前記表示手段に表示されている画面を識別し、前記処理されるイベントが前記受付手段で発生したイベントであり、且つ、前記処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない
請求項１に記載の制御装置。
【請求項３】
前記処理されるイベントを処理しない場合に当該イベントを保持する第２保持手段を備え、
前記処理手段は、前記表示手段に表示されている画面を識別し、前記第２保持手段に保持されているイベントが当該識別した画面のイベントとして予め定められている場合に、前記第２保持手段に保持されているイベントを処理する
請求項２に記載の制御装置。
【請求項４】
前記処理手段は、前記処理されるイベントを処理しない場合に当該イベントを破棄する請求項１又は２に記載の制御装置。
【請求項５】
前記処理手段は、画面を識別するための情報と、当該画面の表示中に処理することが許可されているイベントとが関連付けられたテーブルに基づいて、前記処理されるイベントの処理の要否を判定する
請求項１乃至４のいずれか１項に記載の制御装置。
【請求項６】
操作を受け付ける受付手段と、
表示手段と、
前記受付手段で発生したイベントと自装置で発生したイベントとを保持する第１保持手段と、
前記第１保持手段に保持されているイベントを処理する処理手段であって、前記表示手段に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない処理手段と
を備えた電子機器。
【請求項７】
コンピュータを、
操作を受け付ける受付手段と、
前記受付手段で発生したイベントと電子機器で発生したイベントとを保持する第１保持手段と、
前記第１保持手段に保持されているイベントを処理する処理手段であって、表示手段に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない処理手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、電子機器及びプログラムに関する。
【背景技術】
【０００２】
特許文献１に記載された画像形成装置は、表示部に複数のアップロード対象ファイルのアイコンと、ファイルをアップロードするファイルサーバのアイコンが表示され、何れかのファイルアイコンをサーバアイコンへドラッグアンドドロップ操作により移動させて関連付けする機能を有する。ユーザがファイルアイコンをサーバアイコンへと移動している途中では、表示部には、ファイルアイコンが移動している状態を示す第１の画面が表示される。このときに、ユーザ操作に関係のない例えば用紙エンプティ等の事象が発生した場合、事象の発生に伴う警告画面等の第２の画面を第１の画面に割り込んで表示させる。この際、画像形成装置はファイルアイコンのサーバアイコンへの移動が完了しているかどうかを検出し、移動が完了していなければ、画像形成装置は、割り込まれた第１の画面の構成情報を保持しておく。ユーザが用紙の補給等を行うとともに、第２の画面上で「ＯＫ」ボタンを押すと、第２の画面の表示が終了する。ファイルアイコンのサーバアイコンへの移動が完了していなければ、第２の画面の表示終了後、保持された構成情報に基づき第１の画面を、ファイルアイコンの移動操作を継続可能な状態で表示部に復帰表示させる。ユーザは、移動途中のファイルアイコンの移動操作（ドラッグ操作）を再開し、移動先のサーバアイコンへドロップする。ファイルアイコンがサーバアイコンへドロップされると、ファイルアイコンで示されるファイルがファイルサーバへ送信される。一方、用紙エンプティ等の事象が発生したときに、すでにファイルアイコンの移動が完了していれば、第１の画面は表示されない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１４５５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、イベントキューに保持したイベントを処理するか否かを表示中の画面に基づいて決定することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、操作を受け付ける受付手段と、前記受付手段で発生したイベントと電子機器で発生したイベントとを保持する第１保持手段と、前記第１保持手段に保持されているイベントを処理する処理手段であって、表示手段に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない処理手段とを備えた制御装置を提供する。
請求項２に係る発明は、請求項１に記載の制御装置において、前記処理手段は、前記表示手段に表示されている画面を識別し、前記処理されるイベントが前記受付手段で発生したイベントであり、且つ、前記処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない。
請求項３に係る発明は、請求項２に記載の制御装置において、前記処理されるイベントを処理しない場合に当該イベントを保持する第２保持手段を備え、前記処理手段は、前記表示手段に表示されている画面を識別し、前記第２保持手段に保持されているイベントが当該識別した画面のイベントとして予め定められている場合に、前記第２保持手段に保持されているイベントを処理する。
請求項４に係る発明は、請求項１又は２に記載の制御装置において、前記処理手段は、前記処理されるイベントを処理しない場合に当該イベントを破棄する。
請求項５に係る発明は、請求項１乃至４のいずれか１項に記載の制御装置において、前記処理手段は、画面を識別するための情報と、当該画面の表示中に処理することが許可されているイベントとが関連付けられたテーブルに基づいて、前記処理されるイベントの処理の要否を判定する。
請求項６に係る発明は、操作を受け付ける受付手段と、表示手段と、前記受付手段で発生したイベントと自装置で発生したイベントとを保持する第１保持手段と、前記第１保持手段に保持されているイベントを処理する処理手段であって、前記表示手段に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない処理手段とを備えた電子機器を提供する。
請求項７に係る発明は、コンピュータを、操作を受け付ける受付手段と、前記受付手段で発生したイベントと電子機器で発生したイベントとを保持する第１保持手段と、前記第１保持手段に保持されているイベントを処理する処理手段であって、表示手段に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない処理手段として機能させるためのプログラムを提供する。
【発明の効果】
【０００６】
請求項１、６、７に係る発明によれば、イベントキューに保持したイベントを処理するか否かを表示中の画面に基づいて決定することができる。
請求項２に係る発明によれば、ユーザの操作によって不適切なイベントの処理が実行されることを防ぐことができる。
請求項３に係る発明によれば、処理されなかったイベントに対応する操作を再度行う必要がなくなる。
請求項４に係る発明によれば、処理されなかったイベントがイベントキューに残らないようにすることができる。
請求項５に係る発明によれば、処理が許可されているイベント以外のイベントが処理されないようにすることができる。
【図面の簡単な説明】
【０００７】
【図１】複写機１のハードウェア構成を示す図。
【図２】収容部設定画面を示す図。
【図３】複写設定画面を示す図。
【図４】本的な動作の例を示すシーケンス図。
【図５】エラーが発生する例を示すシーケンス図。
【図６】第１実施形態に係るイベント制御機能を示すブロック図。
【図７】イベントテーブルを示す図。
【図８】第１実施形態に係るイベント制御のシーケンス図。
【図９】第１実施形態に係るイベント制御のシーケンス図。
【図１０】イベントの処理の要否を判定する手順を示す流れ図。
【図１１】第２実施形態に係るイベント制御のシーケンス図。
【図１２】第２実施形態に係るイベント制御のシーケンス図。
【図１３】イベントの処理の要否を判定する手順を示す流れ図。
【図１４】メニュー画面を示す図。
【図１５】アドレス帳ログイン画面を示す図。
【図１６】アドレス帳画面を示す図。
【図１７】アドレス帳へのアクセスのシーケンス図。
【図１８】タイムアウト処理の例を示すシーケンス図。
【図１９】エラーが発生する例を示すシーケンス図。
【図２０】第１実施形態に係るイベント制御機能によりエラーが回避される様子を示すシーケンス図。
【図２１】イベントテーブルを示す図。
【発明を実施するための形態】
【０００８】
本発明の実施形態の一例について説明する。
＜第１実施形態＞
＜ハードウェア構成＞
図１は、複写機１のハードウェア構成を示す図である。複写機１は、本発明に係る電子機器の一例である。複写機１は、制御部１１、記憶部１２、通信部１３、表示部１４、受付部１５、読取部１６、画像処理部１７、収容部１８Ａ、収容部１８Ｂ、搬送部１９及び印刷部２０を備える。このうち、制御部１１、記憶部１２、通信部１３及び受付部１５により制御装置１０が構成される。収容部１８Ａと収容部１８Ｂを収容部１８と総称する。なお、制御装置１０が複写機１の外部の装置として構成され、制御装置１０と複写機１とが通信手段で接続されていてもよい。この場合、表示部１４が制御装置１０に設けられていてもよい。本実施形態では、読取部１６、画像処理部１７、収容部１８、搬送部１９及び印刷部２０を便宜上、デバイスＤと呼ぶ。
【０００９】
制御部１１は、ＣＰＵ（Central Processing Unit）などの演算装置と、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などの記憶装置とを備える。ＲＯＭには、ハードウェアやＯＳ（Operating System）の起動の手順を記述したファームウェアが記憶されている。ＲＡＭは、ＣＰＵが演算を実行する際のデータの記憶に用いられる。記憶部１２は、例えば半導体メモリやハードディスク記憶装置などを備え、ＯＳやアプリケーションプログラム（以下、アプリケーションという。）などのソフトウェアを記憶している。通信部１３は、外部の電子機器との間で通信を行うための通信Ｉ／Ｆ（Interface）を備える。通信部１３は、ＬＡＮ（Local Area Network）などの通信回線に接続される。
【００１０】
表示部１４は、例えば液晶表示装置を備え、ユーザが複写機１を操作するためのＧＵＩ（Graphical User Interface）の画面を表示面に表示する。受付部１５は、例えば表示部１４の表示面を覆うように設けられたタッチパネルや、表示面に隣接する位置に設けられたキーパッドなどを備え、ユーザが受付部１５を用いて行った操作を受け付ける。
【００１１】
読取部１６は、例えばイメージスキャナであり、原稿を光学的に読み取って画像信号を出力する。積み重ねられた原稿を１枚ずつ読み取り位置に送り出す原稿送り装置が読取部１６に設けられていてもよい。画像処理部１７は、読取部１６から出力された画像信号にスクリーン処理や色変換などの画像処理を施して、ラスタデータを生成する。収容部１８は、例えば引き出し式の箱であり、印刷用紙（以下、用紙という。）が積み重ねられて収容される。搬送部１９は、収容部１８に収容された用紙を１枚ずつ取り出し、取り出した用紙を搬送路（図示省略）に沿って搬送する。印刷部２０は、画像処理部１７が生成したラスタデータに基づく画像を、搬送される用紙に印刷する。印刷部２０による印刷の方式は、例えば、電子写真方式やインクジェット方式などである。
【００１２】
次に、イベント制御の基本的な事項について説明する。イベントとは、ソフトウェアで記述された処理とは別に発生するあらゆる事象を含むが、本実施形態では、イベントの種類を次のように区別する。
【００１３】
＜操作イベント＞
受付部１５によって操作が受け付けられるイベントを操作イベントと呼ぶ。操作イベントが発生すると、受付部１５は、その操作イベントに対応するイベント情報を制御部１１に出力する。一例として、受付部１５のタッチパネルに対する操作が受け付けられた場合、受付部１５は、ユーザが触れたタッチパネル上の座標を表すイベント情報を出力する。制御部１１は、このイベント情報が表す座標と表示部１４に表示されている画面とに基づいて操作イベントの内容を特定する。別の例として、受付部１５のキーパッドに対する操作が受け付けられた場合、受付部１５は、ユーザが操作したキーを表すイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいて操作イベントの内容を特定する。
【００１４】
＜更新イベント＞
デバイスＤ（読取部１６、画像処理部１７、収容部１８、搬送部１９及び印刷部２０）の状態が更新されるイベントを更新イベントと呼ぶ。例えば、収容部１８の開閉、搬送部１９における紙詰まり、印刷部２０における色材の不足などが、更新イベントに含まれる。デバイスＤの各々には、これらの更新イベントを検知する検知手段が備えられている。例えば、収容部１８に備えられた検知手段は、収容部１８の開閉に伴って開閉される開閉器を含む回路を備え、この回路によって収容部１８の開閉を検知する。いずれかのデバイスＤで更新イベントが検知されると、このデバイスＤは、検知された更新イベントに対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいて更新イベントの内容を特定する。
【００１５】
＜イベントキュー＞
制御部１１は、受付部１５やデバイスＤから出力されたイベント情報を取得し、イベント情報に基づいてイベントの内容を特定したならば、そのイベントをイベントキューに保持する。イベントキューは、イベントをＦＩＦＯ（First In, First Out）方式で保持する第１保持手段の一例であり、記憶部１２又はＲＡＭに記憶される。制御部１１は、イベント情報の出力元が受付部１５の場合、そのイベントが操作イベントであると判定し、イベント情報の出力元がデバイスＤの場合、そのイベントが更新イベントであると判定し、更新イベントと操作イベントの区別を表すフラグをイベントと関連付けてイベントキューに保持する。
【００１６】
イベント制御プログラムは、各イベントに対応する処理の手順を記述したサブルーチンを備える。制御部１１は、イベントキューの先頭のイベントを読み出し、読み出したイベントに対応するサブルーチンを実行する。以下の説明において、イベントの処理とは、イベントに対応するサブルーチンを実行することを指す。１つのイベントの処理が完了したならば、制御部１１は、そのイベントをイベントキューから削除し、新たに先頭のイベントを読み出して処理するという手順を繰り返す。
【００１７】
＜収容部に関する設定＞
図２は、収容部設定画面を示す図である。収容部設定画面とは、収容部１８に関する設定を行うための画面である。以下、収容部１８Ａに関する設定について説明するが、収容部１８Ｂについても同様に構成されている。「紙質」は、収容部１８Ａに収容された用紙の紙質を設定するためのウィジェットであり、「普通紙」、「上質紙」、「再生紙」のいずれかが設定される。「用紙サイズ」は、収容部１８Ａに収容された用紙のサイズを設定するためのウィジェットであり、「Ａ４」、「Ａ３」、「レター」のいずれかが設定される。「ＯＫ」ボタンが操作されると、収容部１８Ａに関する設定が確定され、後述する複写設定画面が表示される。
【００１８】
これらの項目の設定値（以下、収容部設定値という。）と、収容部設定画面を表す画像データが、記憶部１２に記憶されている。収容部設定値の初期値は、例えば、紙質＝普通紙、用紙サイズ＝Ａ４である。開けられていた収容部１８Ａが閉じられると、制御部１１が収容部設定値と収容部設定画面を表す画像データとを記憶部１２から読み出し、この収容部設定値が設定された収容部設定画面を表示部１４に表示させる。収容部設定画面上で収容部設定値を変更する操作が行われると、制御部１１は、収容部設定値をその操作に応じて書き換える。
【００１９】
＜複写に関する設定＞
図３は、複写設定画面を示す図である。複写設定画面とは、複写に関する設定を行うための画面である。「用紙選択」は、用紙の供給元を設定するためのウィジェットであり、「収容部１８Ａ」、「収容部１８Ｂ」、「自動」のいずれかが設定される。「自動」が設定されると、制御部１１が、読取部１６で読み取られた原稿のサイズを判定し、記憶部１２に記憶されている収容部設定値を参照してこのサイズに適合する用紙サイズが設定されている収容部（この例では、収容部１８Ａと収容部１８Ｂのいずれか）を用紙の供給元に設定する。「カラーモード」は、画像を印刷する色を設定するためのウィジェットであり、「フルカラー」、「白黒」、「自動」のいずれかが設定される。「自動」が設定されると、読取部１６で読み取られた原稿に含まれる色に応じて、制御部１１がフルカラーと白黒のいずれかを設定する。「部数」は、複写の部数を設定するためのテキストボックスと、部数を増減させるためのボタンとを備える。「スタート」ボタンは、複写機１に複写を実行させるためのボタンである。なお、前述した収容部設定画面には「スタート」ボタンは表示されない。つまり、収容部設定画面が表示されているときに複写を実行させることはできない。複写を実行させるには、収容部設定画面の「ＯＫ」ボタンを操作して複写設定画面を表示させ、複写設定画面の「スタート」ボタンを操作することが必要である。
【００２０】
これらの項目の設定値（以下、複写設定値という。）と、複写設定画面を表す画像データが、記憶部１２に記憶されている。複写設定値の初期値は、例えば、用紙選択＝自動、カラーモード＝自動である。複写機１に電源が投入され、複写機１の各部の初期化が完了すると、制御部１１が複写設定値と複写設定画面を表す画像データとを記憶部１２から読み出し、この複写設定値が設定された複写設定画面を表示部１４に表示させる。複写設定画面上で複写設定値を変更する操作が行われると、制御部１１は、複写設定値をその操作に応じて書き換える。
【００２１】
＜基本的な動作の例＞
図４は、基本的な動作の例を示すシーケンス図である。この例は、本発明に係るイベント制御機能を備えない複写機によって収容部１８Ａの用紙サイズの設定変更が正常に処理される様子を示すものである。以下のシーケンス図において、「設定サイズ」とは、収容部１８Ａの収容部設定値の１つとして記憶部１２に記憶されている用紙サイズを示し、「収容サイズ」とは、収容部１８Ａに収容されている用紙のサイズを示す。「イベントキュー」の括弧書きの数字はイベントがイベントキューに保持された順番を示す。最初に、表示部１４には、複写設定画面が表示されている。設定サイズはＡ４であり、収容サイズもＡ４である。
【００２２】
＜シーケンスＳＱ０１＞
ユーザが、読取部１６にレターサイズの原稿を配置し、収容部１８Ａを開けてＡ４サイズの用紙を取り出し、代わりにレターサイズの用紙を収容して収容部１８Ａを閉じる（収容サイズ＝レター）。
【００２３】
＜シーケンスＳＱ０２＞
収容部１８Ａが、イベント（収容部＝閉）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００２４】
＜シーケンスＳＱ０３＞
制御部１１が、イベントキューから先頭のイベント（収容部１８Ａ＝閉）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。ただし、このイベントの場合、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【００２５】
＜シーケンスＳＱ０４＞
制御部１１が、収容部設定値（設定サイズ＝Ａ４）と収容部設定画面を表す画像データとを記憶部から読み出し、この収容部設定値が設定された収容部設定画面を表示部１４に表示させる。
【００２６】
＜シーケンスＳＱ０５＞
ユーザが、収容部設定画面上で用紙サイズをレターに設定し、「ＯＫ」ボタンを操作する。
【００２７】
＜シーケンスＳＱ０６＞
受付部１５が、イベント（用紙サイズ＝レター）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００２８】
＜シーケンスＳＱ０７＞
制御部１１が、イベントキューから先頭のイベント（用紙サイズ＝レター）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、制御部１１は、読み出したイベントに応じて収容部設定値を書き換える（設定サイズ＝レター）。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【００２９】
＜シーケンスＳＱ０８＞
制御部１１が、複写設定値（用紙選択＝自動）と複写設定画面を表す画像データとを記憶部１２から読み出し、この複写設定値が設定された複写設定画面を表示部１４に表示させる。
【００３０】
＜シーケンスＳＱ０９＞
ユーザが、複写設定画面上で「スタート」ボタンを操作する。
【００３１】
＜シーケンスＳＱ１０＞
受付部１５が、イベント（複写の実行）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００３２】
＜シーケンスＳＱ１１＞
制御部１１が、イベントキューから先頭のイベント（複写の実行）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、読取部１６が原稿を読み取って画像処理部１７に画像信号を出力する。画像処理部１７は、画像処理を施した画像データを生成する。制御部１１が複写設定値を参照すると、用紙選択が自動であるため、制御部１１は、画像データから原稿のサイズ（レター）を判定する。制御部１１が収容部設定値を参照すると、用紙サイズとしてレターが設定されているのが収容部１８Ａであるため、制御部１１は、収容部１８Ａを用紙の供給元に設定する。搬送部１９は、収容部１８Ａから用紙を送り出し、印刷部２０は、この用紙に画像データに基づく画像を印刷する。この結果、レターサイズの原稿から読み取られた画像がレターサイズの用紙に複写される。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【００３３】
＜エラーが発生する例＞
図５は、エラーが発生する例を示すシーケンス図である。この例は、本発明に係るイベント制御機能を備えない複写機によって収容部１８Ａの用紙サイズの設定変更が正常に処理されない様子を示すものである。最初に、表示部１４には、複写設定画面が表示されている。設定サイズはＡ４であり、収容サイズもＡ４である。なお、理解を容易にするために、収容部１８Ｂの設定サイズはレター以外（例えば、Ａ３）が設定されているものとする。
【００３４】
＜シーケンスＳＱ２１＞
ユーザが、読取部１６にレターサイズの原稿を配置し、収容部１８Ａを開けてＡ４サイズの用紙を取り出し、代わりにレターサイズの用紙を収容して収容部１８Ａを閉じる（収容サイズ＝レター）。
【００３５】
＜シーケンスＳＱ２２＞
収容部１８Ａが閉じられた後、画面が収容部設定画面に切り替わるまでにタイムラグが生じ、このタイムラグの期間は、複写設定画面が表示された状態が続く。本来は、収容部設定画面に切り替わるのを待って、ユーザが収容部設定画面上で用紙サイズをレターに設定することが必要である（図４のシーケンスＳＱ０２乃至ＳＱ０４参照）。しかし、このタイムラグの期間は複写設定画面が表示されているため、「ＯＫ」ボタンの操作が受け付けられる状態にある。この例では、このタイムラグの期間に複写設定画面上でユーザが「ＯＫ」ボタンを操作する。
【００３６】
＜シーケンスＳＱ２３＞
収容部１８Ａが、イベント（収容部＝閉）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００３７】
＜シーケンスＳＱ２４＞
受付部１５が、イベント（複写の実行）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。この時点でイベントキューには、シーケンスＳＱ２３で保持されたイベント（収容部１８Ａ＝閉）が処理されずに残っている。従って、イベントキューには、（１）収容部１８Ａ＝閉、（２）複写の実行、の２つのイベントが保持されている。
【００３８】
＜シーケンスＳＱ２５＞
制御部１１が、イベントキューから先頭のイベント（収容部１８Ａ＝閉）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。ただし、このイベントの場合、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。従って、イベントキューには、（１）複写の実行、が残る。
【００３９】
＜シーケンスＳＱ２６＞
制御部１１が、収容部設定値（設定サイズ＝Ａ４）と収容部設定画面を表す画像データとを記憶部１２から読み出し、この収容部設定値が設定された収容部設定画面を表示部１４に表示させる。
【００４０】
＜シーケンスＳＱ２７＞
制御部１１が、イベントキューから先頭のイベント（複写の実行）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、読取部１６が原稿を読み取って画像処理部１７に画像信号を出力する。画像処理部１７は、画像処理を施した画像データを生成する。制御部１１が複写設定値を参照すると、用紙選択が自動であるため、制御部１１は、画像データから原稿のサイズ（レター）を判定する。ところが、制御部１１が収容部設定値を参照すると、収容部１８Ａの設定サイズはＡ４であり、収容部１８Ｂの設定サイズはＡ３である。設定サイズがレターである収容部がないため、制御部１１は、イベント（複写の実行）の処理を中止する。制御部１１は、例えば、「複写できません。用紙サイズを確認してください。」といったエラーメッセージを表示させて待機する。ユーザが収容部１８Ａを開けて収容されている用紙のサイズを確認し、収容部１８Ａを閉じる。すると、図４のシーケンスＳＱ０２以降の処理が実行され、レターサイズの原稿から読み取られた画像がレターサイズの用紙に複写される。
【００４１】
＜第１実施形態に係るイベント制御機能＞
図６は、第１実施形態に係るイベント制御機能を示すブロック図である。記憶部１２には、イベント制御プログラムが記憶されている。制御部１１は、イベント制御プログラムに記述された手順に従ってイベント制御機能を実現する。受付手段１０１は、操作を受け付ける。第１保持手段１０２は、前記受付手段１０１で発生したイベントと電子機器（本実施形態では、複写機１）で発生したイベントとを保持する。処理手段１０３は、前記第１保持手段１０２に保持されているイベントを処理する処理手段であって、表示手段１０４に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない。より具体的には、前記処理手段１０３は、前記表示手段１０４に表示されている画面を識別し、前記処理されるイベントが前記受付手段１０１で発生したイベントであり、且つ、前記処理されるイベントが当該識別した画面のイベントとして予め定められている場合に、前記処理されるイベントを処理しない。前記処理手段１０３は、前記処理されるイベントを処理しない場合に当該イベントを破棄する。以下、これらの機能を実現するための具体的な構成について説明する。以下の説明において、受付部１５は、受付手段１０１の一例であり、イベントキューは、第１保持手段１０２の一例であり、表示部１４は、表示手段１０４の一例である。
【００４２】
図７は、イベントテーブルを示す図である。イベントテーブルは、画面ＩＤ（Identifier）とイベントが関連付けられたテーブルであり、予め記憶部１２に記憶される。画面ＩＤは、表示部１４に表示される画面の種別を示す識別子であり、複写設定画面や収容部設定画面などの画面を表す画像データはそれぞれ固有の画面ＩＤと関連付けられて記憶部１２に記憶されている。イベントテーブルにおいては、画面ＩＤの各々に１つ以上のイベントが関連付けられている。図示した例では、画面ＩＤ＝００１（複写設定画面）に、「パラメータの設定」、「複写の実行」、「アプリケーションの終了」が関連付けられている。画面ＩＤ＝００２（収容部設定画面）には、「用紙サイズの変更」、「紙質の変更」、「画面表示の終了」が関連付けられている。制御部１１は、表示部１４に複写設定画面や収容部設定画面などの画面を表示させる場合、表示させる画面の画面ＩＤに関連付けられた画像データを記憶部１２から読み出し、画像データを表示部１４に出力する。イベントキューから読み出したイベントが操作イベントである場合、制御部１１は、イベントテーブルを参照し、表示中の画面の画面ＩＤに関連付けられたイベントを処理し、表示中の画面の画面ＩＤに関連付けられていないイベントを処理しない。
【００４３】
図８、図９は、第１実施形態に係るイベント制御のシーケンス図である。この例は、図５のシーケンスＳＱ２１、ＳＱ２２に示すイベントが発生した場合に、第１実施形態に係るイベント制御機能によって収容部１８Ａの用紙サイズの設定変更が正常に処理される様子を示すものである。最初に、表示部１４には、複写設定画面が表示されている。設定サイズはＡ４であり、収容サイズもＡ４である。なお、理解を容易にするために、収容部１８Ｂの設定サイズはレター以外（例えば、Ａ３）が設定されているものとする。
【００４４】
＜シーケンスＳＱ３１乃至ＳＱ３４＞
シーケンスＳＱ３１乃至ＳＱ３４は、図５のシーケンスＳＱ２１乃至ＳＱ２４と同じである。
【００４５】
＜シーケンスＳＱ３５＞
制御部１１が、イベントキューから先頭のイベント（収容部１８Ａ＝閉）を読み出し、このイベントの処理の要否を判定する（処理手段１０３の一例）。
図１０は、イベントの処理の要否を判定する手順を示す流れ図である。イベント制御プログラムには、この手順を記述した要否判定ルーチンが含まれている。イベントキューにイベントが保持されたことを契機として、制御部１１が要否判定ルーチンを実行する。
【００４６】
＜ステップＳＴ０１＞
制御部１１が、イベントキューから先頭のイベントを読み出す。
【００４７】
＜ステップＳＴ０２＞
制御部１１が、読み出したイベントが操作イベントであるか否かを、そのイベントに関連付けられたフラグにより判定する。読み出したイベントが操作イベントである場合（ステップＳＴ０２：ＹＥＳ）には、制御部１１の処理はステップＳＴ０３に進み、操作イベントでない場合（ステップＳＴ０２：ＮＯ）には、制御部１１の処理はステップＳＴ０５に進む。
【００４８】
＜ステップＳＴ０３＞
制御部１１が、このイベントが表示中の画面の画面ＩＤに関連付けられているか否かをイベントテーブルによって判定し、関連付けられている場合（ステップＳＴ０３：ＹＥＳ）には、制御部１１の処理はステップＳＴ０５に進み、関連付けられていない場合（ステップＳＴ０３：ＮＯ）には、制御部１１の処理はステップＳＴ０４に進む。
【００４９】
＜ステップＳＴ０４＞
制御部１１が、このイベントを破棄する。具体的には、制御部１１が、このイベントを処理せずにイベントキューから削除する。
【００５０】
＜ステップＳＴ０５＞
制御部１１が、このイベントに対応するサブルーチンを実行してイベントを処理する。以上が、要否判定ルーチンの内容である。
【００５１】
シーケンスＳＱ３５では、ステップＳＴ０１において読み出されたイベント（収容部１８Ａ＝閉）は更新イベントであるから、ステップＳＴ０２において制御部１１がＮＯと判定する。次に、ステップＳＴ０５において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。ただし、このイベントの場合、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。続いて、図８の説明に戻る。
【００５２】
＜シーケンスＳＱ３６＞
制御部１１が、収容部設定値（設定サイズ＝Ａ４）と収容部設定画面を表す画像データ（画面ＩＤ＝００２）とを記憶部１２から読み出し、この収容部設定値が設定された収容部設定画面を表示部１４に表示させる。
【００５３】
＜シーケンスＳＱ３７＞
制御部１１が、イベントキューから先頭のイベント（複写の実行）を読み出し、このイベントの処理の要否を判定する（図１０参照）。具体的には、ステップＳＴ０１において読み出されたイベント（複写の実行）は操作イベントであるから、ステップＳＴ０２において制御部１１がＹＥＳと判定する。次に、ステップＳＴ０３において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００２には「複写の実行」が関連付けられていないからＮＯと判定し、ステップＳＴ０４においてこのイベントを破棄する。制御部１１は、表示部１４に収容部設定画面を表示させたまま待機する。ここで、例えば、「用紙のサイズを設定してください。」といったメッセージを表示部１４に表示させるようにしてもよい。
【００５４】
＜シーケンスＳＱ３８＞
用紙サイズの設定が済んでいないことに気付いたユーザは、収容部設定画面上で用紙サイズをレターに設定し、「ＯＫ」ボタンを操作する。
【００５５】
＜シーケンスＳＱ３９＞
受付部１５が、イベント（用紙サイズ＝レター）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００５６】
＜シーケンスＳＱ４０＞
制御部１１が、イベントキューから先頭のイベント（用紙サイズ＝レター）を読み出し、このイベントの処理の要否を判定する（図１０参照）。具体的には、ステップＳＴ０１において読み出されたイベント（用紙サイズ＝レター）は操作イベントであるから、ステップＳＴ０２において制御部１１がＹＥＳと判定する。次に、ステップＳＴ０３において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００２には「用紙サイズの変更」が関連付けられているからＹＥＳと判定し、ステップＳ０５において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、制御部１１は、読み出したイベントに応じて収容部設定値を書き換える（設定サイズ＝レター）。この処理が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【００５７】
＜シーケンスＳＱ４１＞
制御部１１が、複写設定値（用紙選択＝自動）と複写設定画面を表す画像データ（画面ＩＤ＝００１）とを記憶部１２から読み出し、この複写設定値が設定された複写設定画面を表示部１４に表示させる。
【００５８】
＜シーケンスＳＱ４２＞
ユーザが、複写設定画面上で「スタート」ボタンを操作する。
【００５９】
＜シーケンスＳＱ４３＞
受付部１５が、操作イベント（複写の実行）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいて操作イベントの内容を特定し、このイベントをイベントキューに保持する。
【００６０】
＜シーケンスＳＱ４４＞
制御部１１が、イベントキューから先頭のイベント（複写の実行）を読み出し、このイベントの処理の要否を判定する（図１０参照）。具体的には、ステップＳＴ０１において読み出されたイベント（複写の実行）は操作イベントであるから、ステップＳＴ０２において制御部１１がＹＥＳと判定する。次に、ステップＳＴ０３において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００１には「複写の実行」が関連付けられているからＹＥＳと判定し、ステップＳＴ０５において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、読取部１６が原稿を読み取って画像処理部１７に画像信号を出力する。画像処理部１７は、画像処理を施した画像データを生成する。制御部１１が複写設定値を参照すると、用紙選択が自動であるため、制御部１１は、画像データから原稿のサイズ（レター）を判定する。制御部１１が収容部設定値を参照すると、設定サイズがレターであるのが収容部１８Ａであるため、制御部１１は、収容部１８Ａを用紙の供給元に設定する。搬送部１９は、収容部１８Ａから用紙を送り出し、印刷部２０は、この用紙に画像データに基づく画像を印刷する。この結果、レターサイズの原稿から読み取られた画像がレターサイズの用紙に複写される。この処理が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【００６１】
図５の例（エラーが発生する例）と図８、図９の例（第１実施形態）とを比較すると、最初に発生したイベントが更新イベントであるため、図５のシーケンスＳＱ２６までの結果と、図８のシーケンスＳＱ３６までの結果は同じである。ところが、２番目に発生したイベントが操作イベントであるため、その後のシーケンスは異なるものとなる。図５のシーケンスＳＱ２７では、制御部がイベント（複写の実行）の処理を開始し、原稿の読み取り、画像データの生成、原稿サイズの判定を行うが、レターサイズが設定された収容部がないことから、用紙の供給元を設定することができないため、この処理は途中で中止される。つまり、このシーケンスでは、無駄な処理が発生する。これに対して、図８のシーケンスＳＱ３７では、イベントキューから読み出されたイベント（複写の実行）が操作イベントであり、表示中の画面（収容部設定画面）の画面ＩＤにこの操作イベントが関連付けられていないため、このイベントは処理されない。つまり、このシーケンスでは、無駄な処理が発生しない。
【００６２】
＜第２実施形態＞
図１１、図１２は、第２実施形態に係るイベント制御のシーケンス図である。この例は、第２実施形態に係るイベント制御機能によって収容部１８Ａの用紙サイズの設定変更が正常に処理される様子を示すものである。第１実施形態では、イベントキューから読み出したイベントが操作イベントであり、且つ、表示中の画面の画面ＩＤにこの操作イベントが関連付けられていない場合にこの操作イベントを破棄するように構成されている。これに対して、第２実施形態では、イベントキューから読み出したイベントが操作イベントであり、且つ、表示中の画面の画面ＩＤにこの操作イベントが関連付けられていない場合にこの操作イベントを保留イベントキュー（第２保持手段の一例）に保持し、条件を満たした場合に、保留イベントキューから読み出した操作イベントを処理するように構成されている。最初に、表示部１４には、複写設定画面が表示されている。設定サイズはＡ４であり、収容サイズもＡ４である。なお、理解を容易にするために、収容部１８Ｂの設定サイズはレター以外（例えば、Ａ３）が設定されているものとする。
【００６３】
＜シーケンスＳＱ５１乃至ＳＱ５４＞
シーケンスＳＱ５１乃至ＳＱ５４は、図９のシーケンスＳＱ３１乃至ＳＱ３４と同じである。
【００６４】
＜シーケンスＳＱ５５＞
制御部１１が、イベントキューから先頭のイベント（収容部１８Ａ＝閉）を読み出し、このイベントの処理の要否を判定する。
図１３は、イベントの処理の要否を判定する手順を示す流れ図である。イベント制御プログラムには、この手順を記述した要否判定ルーチンが含まれている。イベントキューにイベントが保持されたことを契機として、制御部１１が要否判定ルーチンを実行する。
【００６５】
＜ステップＳＴ１１＞
制御部１１が、保留イベントキューにイベントが保持されているか否かを判定し、イベントが保持されている場合（ステップＳＴ１１：ＹＥＳ）には、制御部１１の処理はステップＳＴ１３に進み、イベントが保持されていない場合（ステップＳＴ１１：ＮＯ）には、制御部１１の処理はステップＳＴ１２に進む。
【００６６】
＜ステップＳＴ１２＞
制御部１１が、イベントキューから先頭のイベントを読み出す。
【００６７】
＜ステップＳＴ１３＞
制御部１１が、保留イベントキューから先頭のイベントを読み出す。
【００６８】
＜ステップＳＴ１４＞
制御部１１が、読み出したイベントが操作イベントであるか否かを、そのイベントに関連付けられたフラグにより判定する。読み出したイベントが操作イベントである場合（ステップＳＴ１４：ＹＥＳ）には、制御部１１の処理はステップＳＴ１６に進み、操作イベントでない場合（ステップＳＴ１４：ＮＯ）には、制御部１１の処理はステップＳＴ１５に進む。
【００６９】
＜ステップＳＴ１５＞
制御部１１が、このイベントに対応するサブルーチンを実行してイベントを処理する。処理が完了したならば、そのイベントをイベントキュー又は保留イベントキューから削除し、Ａに戻る。
【００７０】
＜ステップＳＴ１６＞
制御部１１が、このイベントが表示中の画面の画面ＩＤに関連付けられているか否かをイベントテーブルによって判定し、関連付けられている場合（ステップＳＴ１６：ＹＥＳ）には、制御部１１の処理はステップＳＴ１９に進み、関連付けられていない場合（ステップＳＴ１６：ＮＯ）には、制御部１１の処理はステップＳＴ１７に進む。
【００７１】
＜ステップＳＴ１７＞
制御部１１が、このイベントをイベントキューから削除して保留イベントキューに保持する。
【００７２】
＜ステップＳＴ１８＞
制御部１１が、イベントキューにイベントが保持されているか否かを判定し、イベントが保持されている場合（ステップＳＴ１８：ＹＥＳ）には、制御部１１の処理はステップＳＴ１２に戻り、イベントが保持されていない場合（ステップＳＴ１８：ＮＯ）には、ステップＳＴ１８の判定を繰り返す。
【００７３】
＜ステップＳＴ１９＞
制御部１１が、このイベントに対応するサブルーチンを実行してイベントを処理する。処理が完了したならば、そのイベントをイベントキュー又は保留イベントキューから削除する。
【００７４】
＜ステップＳＴ２０＞
制御部１１が、ステップＳＴ１９で処理したイベントが「アプリケーションの終了」であるか否かを判定し、「アプリケーションの終了」である場合（ステップＳＴ２０：ＹＥＳ）には、制御部１１の処理はステップＳＴ２１に進み、「アプリケーションの終了」でない場合（ステップＳＴ２０：ＮＯ）には、制御部１１の処理はステップＳＴ２２に進む。
【００７５】
＜ステップＳＴ２１＞
制御部１１が、ステップＳＴ１９で終了したアプリケーションに関連する保留イベント（保留イベントキューに保持されているイベント）を削除する。
【００７６】
＜ステップＳＴ２２＞
制御部１１が、ステップＳＴ１９で処理したイベントが保留イベント（保留イベントキューに保持されていたイベント）であるか否かを判定し、保留イベントである場合（ステップＳＴ２２：ＹＥＳ）には、制御部１１の処理はステップＳＴ２４に進み、保留イベントでない場合（ステップＳＴ２２：ＮＯ）には、制御部１１の処理はステップＳＴ２３に進む。
【００７７】
＜ステップＳＴ２３＞
制御部１１が、ステップＳＴ１９で処理したイベントと同一のイベントが保留イベントキューに保持されているか否かを判定し、保持されている場合（ステップＳＴ２３：ＹＥＳ）には、制御部１１の処理はステップＳＴ２４に進み、保持されていない場合（ステップＳＴ２３：ＮＯ）には、処理を終了する。
【００７８】
＜ステップＳＴ２４＞
制御部１１が、保留イベント（保留イベントキューに保持されているイベント）を削除する。以上が、要否判定ルーチンの内容である。
シーケンスＳＱ５５では、保留イベントキューにイベントが保持されていないから、ステップＳＴ１１において制御部１１がＮＯと判定し、ステップＳＴ１２において制御部１１がイベントキューから先頭のイベント（収容部１８Ａ＝閉）を読み出す。このイベントは更新イベントであるから、ステップＳＴ１４において制御部１１がＮＯと判定し、ステップＳＴ１５において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。ただし、このイベントの場合、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。続いて、図１１の説明に戻る。
【００７９】
＜シーケンスＳＱ５６＞
制御部１１が、収容部設定値（設定サイズ＝Ａ４）と収容部設定画面を表す画像データ（画面ＩＤ＝００２）とを記憶部１２から読み出し、この収容部設定値が設定された収容部設定画面を表示部１４に表示させる。
【００８０】
＜シーケンスＳＱ５７＞
制御部１１が、イベントキューから先頭のイベント（複写の実行）を読み出し、このイベントの処理の要否を判定する（図１３参照）。具体的には、保留イベントキューにイベントが保持されていないから、ステップＳＴ１１において制御部１１がＮＯと判定し、ステップＳＴ１２において制御部１１がイベントキューからイベント（複写の実行）を読み出す。このイベントは操作イベントであるから、ステップＳＴ１４において制御部１１がＹＥＳと判定する。次に、ステップＳＴ１６において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００２には「複写の実行」が関連付けられていないからＮＯと判定し、ステップＳＴ１７において制御部１１がこのイベントをイベントキューから削除して保留イベントキューに保持する。イベントキューは空になったため、ステップＳＴ１８において、制御部１１は、ＮＯの判定を繰り返しながら、表示部１４に収容部設定画面を表示させたまま待機する。ここで、例えば、「用紙のサイズを設定してください。」といったメッセージを表示部１４に表示させるようにしてもよい。続いて、図１２の説明に移る。
【００８１】
＜シーケンスＳＱ５８＞
用紙サイズの設定が済んでいないことに気付いたユーザは、収容部設定画面上で用紙サイズをレターに設定し、「ＯＫ」ボタンを操作する。
【００８２】
＜シーケンスＳＱ５９＞
受付部１５が、イベント（用紙サイズ＝レター）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００８３】
＜シーケンスＳＱ６０＞
制御部１１が、イベントキューから先頭のイベント（用紙サイズ＝レター）を読み出し、このイベントの処理の要否を判定する（図１３参照）。具体的には、前述したシーケンスＳＱ５７では制御部１１はステップＳＴ１８においてＮＯの判定を繰り返していたが、シーケンスＳＱ６０においてイベントキューにイベントが保持されたため、制御部１１はステップＳＴ１８においてＹＥＳと判定し、ステップＳＴ１２においてイベントキューから先頭のイベント（用紙サイズ＝レター）を読み出す。このイベントは操作イベントであるから、ステップＳＴ１４において制御部１１がＹＥＳと判定する。次に、ステップＳＴ１６において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００２には「用紙サイズの変更」が関連付けられているからＹＥＳと判定し、ステップＳＴ１９において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、制御部１１は、読み出したイベントに応じて収容部設定値を書き換える（設定サイズ＝レター）。この処理が完了したならば、制御部１１がこのイベントをイベントキューから削除する。次に、ステップＳＴ２０において、処理したイベントは「アプリケーションの終了」ではないから、制御部１１はＮＯと判定する。次に、ステップＳＴ２２において、処理したイベントは保留イベント（保留イベントキューに保持されていたイベント）ではないから、制御部１１はＮＯと判定する。次に、ステップＳＴ２３において、処理したイベントと同一のイベントが保留イベントキューに保持されていないから、制御部１１はＮＯと判定する。続いて、図１２の説明に戻る。
【００８４】
＜シーケンスＳＱ６１＞
制御部１１が、複写設定値（用紙選択＝自動）と複写設定画面を表す画像データ（画面ＩＤ＝００１）とを記憶部１２から読み出し、この複写設定値が設定された複写設定画面を表示部に表示させる。
【００８５】
＜シーケンスＳＱ６２＞
制御部１１が、保留イベントキューから先頭のイベント（複写の実行）を読み出し、このイベントの処理の要否を判定する（図１３参照）。具体的には、保留イベントキューにイベントが保持されているから、ステップＳＴ１１において制御部１１がＹＥＳと判定し、ステップＳＴ１３において制御部１１が保留イベントキューからイベント（複写の実行）を読み出す。このイベントは操作イベントであるから、ステップＳＴ１４において制御部１１がＹＥＳと判定する。次に、ステップＳＴ１６において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００１には「複写の実行」が関連付けられているからＹＥＳと判定し、ステップＳＴ１９において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、読取部１６が原稿を読み取って画像処理部１７に画像信号を出力する。画像処理部１７は、画像処理を施した画像データを生成する。制御部１１が複写設定値を参照すると、用紙選択が自動であるため、制御部１１は、画像データから原稿のサイズ（レター）を判定する。制御部１１が収容部設定値を参照すると、設定サイズがレターであるのが収容部１８Ａであるため、制御部１１は、収容部１８Ａを用紙の供給元に設定する。搬送部１９は、収容部１８Ａから用紙を送り出し、印刷部２０は、この用紙に画像データに基づく画像を印刷する。この結果、レターサイズの原稿から読み取られた画像がレターサイズの用紙に複写される。この処理が完了したならば、制御部１１がこのイベントをイベントキューから削除する。次に、ステップＳＴ２０において、処理したイベントは「アプリケーションの終了」ではないから、制御部１１はＮＯと判定する。次に、ステップＳＴ２２において、処理したイベントは保留イベント（保留イベントキューに保持されていたイベント）であるから、制御部１１はＹＥＳと判定する。次に、ステップＳＴ２４において、制御部１１は保留イベントを削除する。
【００８６】
第１実施形態では、イベントキューから読み出したイベントが操作イベントであり、且つ、表示中の画面の画面ＩＤにこの操作イベントが関連付けられていない場合にこの操作イベントを破棄するように構成されている。そのため、ユーザは、破棄されたイベントに対応する操作を再度行う必要があった。これに対して、第２実施形態では、イベントキューから読み出したイベントが操作イベントであり、且つ、表示中の画面の画面ＩＤにこの操作イベントが関連付けられていない場合にこの操作イベントを保留イベントキューに保持し、この操作イベントに関連付けられた画面ＩＤの画面に表示が切り替えられた場合にこの操作イベントを処理するように構成されているから、この操作イベントに対応する操作を再度行う必要がない。
【００８７】
＜変形例＞
実施形態を次のように変形してもよい。また、複数の変形例を組み合わせてもよい。
＜１＞
イベント制御機能の制御の対象は、いかなるイベントでもよい。一例として、アドレス帳にアクセスする場合の認証処理と画面のタイムアウト処理の例を示す。
図１４は、メニュー画面を示す図である。複写機に電源が投入され、複写機の各部の初期化が完了すると、制御部１１は、最初に表示部１４にメニュー画面を表示させる。メニュー画面は、使用する機能をユーザに選択させるための画面であり、複写機１が有する機能の各々に対応するボタンなどのウィジェットが配置される。「スキャナ（メール送信）」ボタンは、読取部１６で読み取った原稿を表す画像データを電子メールに添付して送信する機能に対応するボタンである。「アドレス帳」ボタンは、電子メールアドレスを登録する機能に対応するボタンである。
【００８８】
図１５は、アドレス帳ログイン画面を示す図である。メニュー画面上で「アドレス帳」ボタンが操作されると、制御部１１は、アドレス帳ログイン画面を表示させる。アドレス帳ログイン画面には、ユーザＩＤとパスワードの入力欄が配置される。「戻る」ボタンは、メニュー画面に戻るためのボタンである。ユーザが受付部のキーパッドやタッチパネルに表示されたソフトウェアキーボードなどを用いてユーザＩＤとパスワードを入力し、「ログイン」ボタンを操作すると、制御部１１が認証を実行する。
【００８９】
図１６は、アドレス帳画面を示す図である。アドレス帳ログイン画面上で入力されたユーザＩＤとパスワードによる認証が成功すると、制御部１１は、アドレス帳画面を表示させてアドレス帳へのアクセスを許可する。ユーザは、アドレス帳画面上でアドレスの登録や抹消などの操作を行う。
【００９０】
図１７は、アドレス帳へのアクセスのシーケンス図である。この例は、本発明に係るイベント制御機能を備えない複写機によってアドレス帳へのアクセスが行われる様子を示すものである。なお、以下のシーケンス図において、デバイスＤは計時部である。制御部１１は、アドレス帳ログイン画面の表示が始まるとともに計時部に計時を開始させ、「ログイン」ボタン又は「戻る」ボタンが操作されると計時を終了させる。計時開始からの経過時間が閾値に達した場合、計時部は、イベント（タイムアウト）に対応するイベント情報を制御部１１に出力する。
【００９１】
＜シーケンスＳＱ７１＞
ユーザが、メニュー画面上で「アドレス帳」ボタンを操作する。
【００９２】
＜シーケンスＳＱ７２＞
受付部１５が、イベント（アドレス帳ボタン）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００９３】
＜シーケンスＳＱ７３＞
制御部１１が、イベントキューから先頭のイベント（アドレス帳ボタン）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。ただし、このイベントの場合、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【００９４】
＜シーケンスＳＱ７４＞
制御部１１が、アドレス帳ログイン画面を表示部１４に表示させる。
【００９５】
＜シーケンスＳＱ７５＞
制御部１１は、アドレス帳ログイン画面の表示が始まるとともに計時部に計時を開始させる。
【００９６】
＜シーケンスＳＱ７６＞
計時部が計時を開始してからの経過時間が閾値に達する前に、ユーザが、ユーザＩＤとパスワードを入力し、「ログイン」ボタンを操作する。
【００９７】
＜シーケンスＳＱ７７＞
受付部１５が、イベント（ログイン）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【００９８】
＜シーケンスＳＱ７８＞
制御部１１が、イベントキューから先頭のイベント（ログイン）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、入力されたユーザＩＤとパスワードを用いて認証処理を行い、認証が成功したならば、アドレス帳へのアクセスを許可する。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【００９９】
＜シーケンスＳＱ７９＞
制御部１１が、アドレス帳画面を表示部１４に表示させる。ユーザは、この画面上でアドレスの登録や抹消などの操作を行う。
【０１００】
＜シーケンスＳＱ８０＞
ユーザが、「ログアウト」ボタンを操作する。
【０１０１】
＜シーケンスＳＱ８１＞
受付部１５が、イベント（ログアウト）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【０１０２】
＜シーケンスＳＱ８２＞
制御部１１が、イベントキューから先頭のイベント（ログアウト）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、アドレス帳へのアクセスを禁止する。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【０１０３】
＜シーケンスＳＱ８３＞
制御部１１が、メニュー画面を表示部１４に表示させる。以上が、アドレス帳へのアクセスの手順である。
【０１０４】
図１８は、タイムアウト処理の例を示すシーケンス図である。
＜シーケンスＳＱ９１乃至ＳＱ９５＞
シーケンスＳＱ９１乃至ＳＱ９５は、図１７のシーケンスＳＱ７１乃至ＳＱ７５と同じである。
【０１０５】
＜シーケンスＳＱ９６＞
計時を開始してからの経過時間が閾値に達した場合、計時部が、イベント（タイムアウト）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【０１０６】
＜シーケンスＳＱ９７＞
制御部１１が、イベントキューから先頭のイベント（タイムアウト）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、アドレス帳へのアクセスを禁止する。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【０１０７】
＜シーケンスＳＱ９８＞
制御部１１が、メニュー画面を表示部１４に表示させる。
【０１０８】
図１９は、エラーが発生する例を示すシーケンス図である。
＜シーケンスＳＱ１０１乃至ＳＱ１０５＞
シーケンスＳＱ１０１乃至ＳＱ１０５は、図１７のシーケンスＳＱ７１乃至ＳＱ７５と同じである。
【０１０９】
＜シーケンスＳＱ１０６＞
計時を開始してからの経過時間が閾値に達した場合、計時部が、イベント（タイムアウト）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【０１１０】
＜シーケンスＳＱ１０７＞
ユーザが、ユーザＩＤとパスワードを入力し、「ログイン」ボタンを操作する。この例では、計時部が計時を開始してからの経過時間が閾値に達したのと同時に「ログイン」ボタンが操作された場合を想定する。ここで、「同時」とは、厳密には同時でない場合も含む。タイムアウトによりアドレス帳ログイン画面がメニュー画面へ切り替わるまでにはタイムラグが生じ、このタイムラグの期間は「ログイン」ボタンの操作が受け付けられる状態にある。「同時」とは、このタイムラグの期間に「ログイン」ボタンが操作されることも含む。
【０１１１】
＜シーケンスＳＱ１０８＞
受付部１５が、イベント（ログイン）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。その結果、イベントキューには、（１）タイムアウト、（２）ログイン、の２つのイベントが保持される。
【０１１２】
＜シーケンスＳＱ１０９＞
制御部１１が、イベントキューから先頭のイベント（タイムアウト）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、制御部１１がアドレス帳へのアクセスを禁止する。ただし、これ以前にアドレス帳へのアクセスは許可されていないため、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【０１１３】
＜シーケンスＳＱ１１０＞
制御部１１が、メニュー画面を表示部に表示させる。
【０１１４】
＜シーケンスＳＱ１１１＞
制御部１１が、イベントキューから先頭のイベント（ログイン）を読み出し、このイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、入力されたユーザＩＤとパスワードを用いて認証処理を行い、認証が成功したならば、アドレス帳へのアクセスを許可する。ところが、メニュー画面が表示された状態で認証処理が行われるため、制御部１１は、認証が成功しても、アドレス帳画面を表示させることができない。そのため、メニュー画面が表示されたままアドレス帳へのアクセスが許可された状態が放置されることになり、アドレス帳への不正なアクセスが行われるおそれがある。
【０１１５】
図２０は、第１実施形態に係るイベント制御機能によりエラーが回避される様子を示すシーケンス図である。図２１は、イベントテーブルを示す図である。この例では、画面ＩＤ＝００３（メニュー画面）に「コピー」、「スキャナ（ボックス保存）」、「ファクス」、「スキャナ（メール送信）」、「アドレス帳」、「通信管理レポート」が関連付けられている。画面ＩＤ＝００４（アドレス帳ログイン画面）には、「ログイン」が関連付けられている。画面ＩＤ＝００５（アドレス帳画面）には、「ログアウト」、「アドレスの登録、抹消」が関連付けられている。
【０１１６】
＜シーケンスＳＱ１２１＞
ユーザが、メニュー画面上で「アドレス帳」ボタンを操作する。
【０１１７】
＜シーケンスＳＱ１２２＞
受付部１５が、イベント（アドレス帳ボタン）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【０１１８】
＜シーケンスＳＱ１２３＞
制御部１１が、イベントキューから先頭のイベント（アドレス帳ボタン）を読み出し、このイベントの処理の要否を判定する（図１０参照）。具体的には、ステップＳＴ０１において読み出されたイベント（アドレス帳ボタン）は操作イベントであるから、ステップＳＴ０２において制御部１１がＹＥＳと判定する。次に、ステップＳＴ０３において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００３には「アドレス帳」が関連付けられているからＹＥＳと判定し、ステップＳ０５において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。ただし、このイベント場合、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【０１１９】
＜シーケンスＳＱ１２４＞
制御部１１が、アドレス帳ログイン画面を表示部１４に表示させる。
【０１２０】
＜シーケンスＳＱ１２５＞
制御部１１は、アドレス帳ログイン画面の表示が始まるとともに計時部に計時を開始させる。
【０１２１】
＜シーケンスＳＱ１２６＞
計時を開始してからの経過時間が閾値に達した場合、計時部が、イベント（タイムアウト）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。
【０１２２】
＜シーケンスＳＱ１２７＞
ユーザが、ユーザＩＤとパスワードを入力し、「ログイン」ボタンを操作する。この例では、計時部が計時を開始してからの経過時間が閾値に達したのと同時に「ログイン」ボタンが操作された場合を想定する。「同時」の意味は、図１９のシーケンスＳＱ１０７と同じである。
【０１２３】
＜シーケンスＳＱ１２８＞
受付部１５が、イベント（ログイン）に対応するイベント情報を制御部１１に出力する。制御部１１は、このイベント情報に基づいてイベントの内容を特定し、このイベントをイベントキューに保持する。その結果、イベントキューには、（１）タイムアウト、（２）ログイン、の２つのイベントが保持される。
【０１２４】
＜シーケンスＳＱ１２９＞
制御部１１が、イベントキューから先頭のイベント（タイムアウト）を読み出し、このイベントの処理の要否を判定する（図１０参照）。具体的には、ステップＳＴ０１において読み出されたイベント（タイムアウト）は更新イベントであるから、ステップＳＴ０２において制御部１１がＮＯと判定する。次に、ステップＳ０５において制御部１１がこのイベントに対応するサブルーチンを実行してイベントを処理する。具体的には、アドレス帳へのアクセスを禁止する。ただし、これ以前にアドレス帳へのアクセスは許可されていないため、実質的な処理は発生しない。サブルーチンの実行が完了したならば、制御部１１がこのイベントをイベントキューから削除する。
【０１２５】
＜シーケンスＳＱ１３０＞
制御部１１が、メニュー画面を表示部１４に表示させる。
【０１２６】
＜シーケンスＳＱ１３１＞
制御部１１が、イベントキューから先頭のイベント（ログイン）を読み出し、このイベントの処理の要否を判定する（図１０参照）。具体的には、ステップＳＴ０１において読み出されたイベント（ログイン）は操作イベントであるから、ステップＳＴ０２において制御部１１がＹＥＳと判定する。次に、ステップＳＴ０３において、制御部１１がイベントテーブルを参照すると、画面ＩＤ＝００３には「ログイン」が関連付けられていないからＮＯと判定し、ステップＳ０４において制御部１１がこのイベントを破棄する。その結果、認証は行われず、アドレス帳へのアクセスは許可されない。よって、メニュー画面が表示されたままアドレス帳へのアクセスが許可された状態が放置されることがなくなる。
【０１２７】
＜２＞
上記の例では、表示中の画面の画面ＩＤに関連付けられたイベントを処理し、表示中の画面の画面ＩＤに関連付けられていないイベントを処理しないように構成されているが、表示中の画面の画面ＩＤに関連付けられていないイベントを処理し、表示中の画面の画面ＩＤに関連付けられているイベントを処理しないように構成されていてもよい。換言すれば、イベントテーブルにおいて画面ＩＤと関連付けられるイベントは、処理が許容されているイベントでもよいし、処理が禁止されているイベントでもよい。要するに、表示手段に表示されている画面を識別し、処理されるイベントが当該識別した画面のイベント（より具体的には、当該識別した画面の表示中に処理しないイベント）として予め定められている場合に、当該処理されるイベントを処理しないように構成されていればよい。
【０１２８】
＜３＞
上記の例では、イベントテーブルにおいて画面ＩＤと関連付けられるイベントはすべて操作イベントであるが、イベントテーブルにおいて更新イベントが画面ＩＤに関連付けられていてもよい。
【０１２９】
＜４＞
上記の実施形態では、受付部１５がタッチパネルの機能を有する例を示したが、マウスなどのポインティングデバイスを備えていてもよい。
上記の実施形態では、イベント制御プログラムを実行することによって上記の機能を実現する例を示したが、上記の機能がハードウェア回路で実装されていてもよい。また、このプログラムを、光記録媒体、半導体メモリ等、コンピュータで読み取り可能な記録媒体に記録して提供し、この記録媒体からプログラムを読み取って電子機器にインストールするようにしてもよい。また、このプログラムを電気通信回線で提供してもよい。
【符号の説明】
【０１３０】
１…複写機、１０…制御装置、１１…制御部、１２…記憶部、１３…通信部、１４…表示部、１５…受付部、１６…読取部、１７…画像処理部、１８、１８Ａ、１８Ｂ…収容部、１９…搬送部、２０…印刷部、Ｄ…デバイス、１０１…受付手段、１０２…第１保持手段、１０３…処理手段、１０４…表示手段
【図１】
2017041728.tif 000003
【図２】
2017041728.tif 000004
【図３】
2017041728.tif 000005
【図４】
2017041728.tif 000006
【図５】
2017041728.tif 000007
【図６】
2017041728.tif 000008
【図７】
2017041728.tif 000009
【図８】
2017041728.tif 000010
【図９】
2017041728.tif 000011
【図１０】
2017041728.tif 000012
【図１１】
2017041728.tif 000013
【図１２】
2017041728.tif 000014
【図１３】
2017041728.tif 000015
【図１４】
2017041728.tif 000016
【図１５】
2017041728.tif 000017
【図１６】
2017041728.tif 000018
【図１７】
2017041728.tif 000019
【図１８】
2017041728.tif 000020
【図１９】
2017041728.tif 000021
【図２０】
2017041728.tif 000022
【図２１】
2017041728.tif 000023