以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム1において、一台以上の画像形成装置10と、一台以上のユーザ端末20とは、LAN(Local Area Network)又はインターネット等のネットワーク(有線又は無線の別は問わない。)を介して接続されている。
画像形成装置10は、スキャン、印刷、コピー、及びFAX送受信等の機能を一台の筐体によって実現する複合機である。本実施の形態において、画像形成装置10は、スキャン機能及び印刷機能の双方を備えているのが好適である。但し、スキャン機能又は印刷機能のいずれか一方を備える機器が画像形成装置10として用いられてもよい。
ユーザ端末20は、ユーザが利用する個人端末であり、ソフトウェアプログラムのインストール及び実行が可能であり、通信機能を有するものであれば、特定の装置に限定されない。ユーザ端末20の具体例として、デスクトップ型のPC(Personal Computer)、ノートPC、PDA(Personal Digital Assistance)、又は携帯電話等が挙げられる。本実施の形態において、ユーザ端末20は、表示制御装置の一例として機能する。
ユーザ端末20のソフトウェア構成について説明する。図1において、ユーザ端末20は、印刷ウィジェット21a、スキャンウィジェット21b、ウィジェットマネージャ22、文書アプリ23、プリンタドライバ24、及びOS25等を有する。
印刷ウィジェット21a及びスキャンウィジェット21bは、本実施の形態において、「ウィジェット21」として総称されるアプリケーションプログラムである。近年では、ウィジェット(Widget)又はガジェット(Gadget)とよばれる手軽なアプリケーションが流通している。本実施の形態では、手軽にインストールして利用可能なアプリケーションという程度の意味においてこれらのアプリケーションをウィジェット21と呼ぶ(すなわち、技術的な意義において限定する趣旨ではない)。但し、本実施の形態において、各ウィジェット21は、画像形成装置10の機能を利用して所定の処理フロー(例えば、ワークフロー等の一連の処理フロー)を実現するという点において共通する。
印刷ウィジェット21aは、所定の論理プリンタに対して生成された印刷データについて、画像形成装置10に印刷ジョブを実行させる。
スキャンウィジェット21bは、画像形成装置10にスキャンを実行させ、スキャンされた画像データをユーザ端末20に保存する。
ウィジェットマネージャ22は、ウィジェット21と画像形成装置10との間の通信の仲介等を行う。各ウィジェット21は、ウィジェットマネージャ22によって規定されるインタフェース及び処理手順を備える必要がある。換言すれば、ウィジェットマネージャ22と協調して動作するアプリケーションが、本実施の形態におけるウィジェット21である。
文書アプリ23は、ワープロソフト、表計算ソフト等、印刷対象となりうる電子的な文書データを作成するアプリケーションである。図中、文書アプリ23は一つのブロックによって表現されているが、文書アプリ23は、文書データのデータ形式に応じて複数の種類が存在しうる。
プリンタドライバ24は、いわゆるプリンタドライバであり、各種の文書アプリ23によって生成された文書データに関する印刷データを生成する。印刷ウィジェット21aに対応する論理プリンタが印刷先として指定された場合、プリンタドライバ24は、当該論理プリンタに対して出力先として設定されている所定のファイル名の中間ファイルを生成し、当該中間ファイルに印刷データを出力する。
OS25は、いわゆるOS(Operating System)である。ユーザ端末20上の各ソフトウェアは、OS25上においてプロセス又はスレッドとして動作する。
画像形成装置10のソフトウェア構成について説明する。図1において、画像形成装置10は、標準アプリ121、SDKアプリ122、SDKプラットフォーム123、コントロールサービス124、及びOS125等を有する。
標準アプリ121は、画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションの集合である。同図では、スキャンアプリ1211、印刷アプリ1212、コピーアプリ1213、及びFAXアプリ1214が例示されている。スキャンアプリ1211は、スキャンジョブを実行する。印刷アプリ1212は印刷ジョブを実行する。コピーアプリ1213は、コピージョブを実行する。FAXアプリ1214は、FAXの送信ジョブ又は受信ジョブを実行する。
コントロールサービス124は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
SDKアプリ122は、画像形成装置10の出荷後において、画像形成装置10の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、SDKアプリ122として、プロバイダアプリ1221が例示されている。プロバイダアプリ1221は、ウィジェット21を画像形成装置10より操作可能とするための処理を実行する。
SDKプラットフォーム123は、SDKアプリ122の実行環境を提供する。各SDKアプリ122は、SDKプラットフォーム123が提供するAPI(Application Program Interface)を利用して開発される。例えば、SDKプラットフォーム123は、スキャン機能を利用させるためのインタフェース、印刷機能を利用させるためのインタフェース、コピー機能を利用させるためのインタフェース等をSDKアプリ122に提供する。なお、SDKプラットフォーム123のAPIは公開されており、サードベンダ等によってもSDKアプリ122は開発されうる。
OS125は、いわゆるOS(Operating System)である。画像形成装置10上の各ソフトウェアは、OS125上においてプロセス又はスレッドとして動作する。
続いて、各装置のハードウェア構成について説明する。図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、及びHDD114等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。
スキャナ12は、原稿より画像データを読み取るためのハードウェアである。プリンタは13、印刷データを印刷用紙に印刷するためのハードウェアである。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶表示部等の表示手段を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM113に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM112にロードされ、実行されうる。なお、他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってSDカード80が代替されてもよい。すなわち、SDカード80の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、SDカードスロット17は、記録媒体の種類に応じたハードウェアによって代替されればよい。
図3は、本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。図3のユーザ端末20は、それぞれバスBで相互に接続されているドライブ装置200と、補助記憶装置202と、メモリ装置203と、CPU204と、インタフェース装置205と、表示装置206と、入力装置207とを有する。
ユーザ端末20での処理を実現するプログラムは、CD−ROM又はメモリカード等の記録媒体201によって提供される。プログラムを記録した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってユーザ端末20に係る機能を実現する。インタフェース装置205は、ネットワーク接続用のインタフェース、USB(Universal Serial Bus)接続用のインタフェース、Bluetooth(登録商標)等の無線通信用のインタフェース等、各種通信用のインタフェースである。表示装置206はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置207はキーボード、マウス等のポインティングデバイス、又はボタン等で構成され、様々な操作指示を入力させるために用いられる。
続いて、ウィジェット21、ウィジェットマネージャ22、及びプロバイダアプリ1221について更に詳しく説明する。図4は、ウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
同図に示されるように、各ウィジェット21は、ウィジェットUI部211、ウィジェット情報送信部212、連携部213、ロジック部214、及び属性情報管理ファイル215等を有する。
ウィジェットUI部211は、ウィジェット21に関する各種の表示制御及び入力制御等を行う。ウィジェット情報送信部212は、ウィジェット21が起動されたとき等に、ウィジェット情報(ウィジェット21の属性情報)の登録要求をウィジェットマネージャ22に送信する。連携部213は、プロバイダアプリ1221との連携のための通信(情報のやりとり等)を制御する。属性情報管理ファイル215は、ウィジェット21対する属性情報を格納するファイルである。属性情報には、ウィジェット21に対する設定情報も含まれる。設定情報は、ウィジェット21の振る舞い又はウィジェット21によって実行されるジョブの内容を規定するパラメータの集合である。ロジック部214は、各ウィジェット21に固有の機能が実装される部分である。例えば、印刷ウィジェット21aのロジック部215は、所定の論理プリンタに対して生成された印刷データについて、画像形成装置10に印刷ジョブを実行させるための処理を実行する。スキャンウィジェット21bのロジック部215は、スキャンされた画像データによって表現される画像のレイアウトの生成処理等を実行する。
なお、ウィジェット21に含まれる各部について、印刷ウィジェット21aに属するものとスキャンウィジェット21bに属するものとを区別する場合、前者については「a」を、後者については「b」を参照番号の末尾に付加する。例えば、印刷ウィジェット21aのロジック部214は、「ロジック部214a」と表記される。
ウィジェットマネージャ22は、ウィジェット情報登録部221、広告部222、ウィジェット情報提供部223、仲介部224、及びウィジェット情報管理テーブル227等を有する。
ウィジェット情報登録部221は、ウィジェット21より送信されるウィジェット情報の登録要求を受信し、当該ウィジェット情報をウィジェット情報管理テーブル227に保存する。ウィジェット情報管理テーブル227には、ユーザ端末20において起動されている各ウィジェット21のウィジェット情報が登録されるテーブルであり、ユーザ端末20の補助記憶装置202に記録される。
広告部222は、ウィジェット情報登録部221によって受信されたウィジェット情報に含まれるユーザID等をネットワーク上に広告(ブロードキャスト又はマルチキャスト等)する。広告は、ユーザ単位(ユーザID単位)で発行される。したがって、広告部222による広告は、何らかのウィジェット21を利用可能になったユーザが新たに発生したことを画像形成装置10に通知するための情報であるといえる。
ウィジェット情報提供部223は、画像形成装置10からの要求に応じ、ウィジェット情報管理テーブル227に登録されているウィジェット情報を画像形成装置10に提供(送信)する。仲介部224は、ウィジェット21とプロバイダアプリ1221との通信を仲介又は中継する。
プロバイダアプリ1221は、ユーザ検知部131、UI制御部132、ウィジェット情報取得部133、ウィジェット連携部134、機能制御部135、及びユーザ管理テーブル136等を有する。
ユーザ検知部131は、ウィジェットマネージャ22より発行される広告に基づいて、ウィジェット21を利用可能なユーザの存在を検知し、広告に含まれているユーザID等をユーザ管理テーブル136に登録する。ユーザ管理テーブル136は、利用可能なウィジェット21がネットワーク上に存在するユーザの一覧を管理するテーブルである。
UI制御部132は、ユーザよりウィジェット21の操作指示等の入力を受け付ける。すなわち、ウィジェット21は、ユーザ端末20に配置されているが、画像形成装置10の操作パネルからも操作されうる。ウィジェット情報取得部133は、ユーザ管理テーブル136に登録されているユーザの中から選択されたユーザに属するウィジェット21のウィジェット情報をウィジェットマネージャ22より取得する。ウィジェット連携部134は、ウィジェットマネージャ22との通信を制御する。機能制御部135は、ウィジェット21から要求された機能の実行を制御する。機能を実現するための処理は、標準アプリ121や他のSDKアプリ122に委譲される。
以降の説明においては、印刷ウィジェット21a及びスキャンウィジェット21bごとに固有の部分(但し、一部共通する部分も有る。)について説明する。第一の実施の形態では、印刷ウィジェット21aについて説明する。
図5は、印刷ウィジェットのウィジェットUI部の機能構成例を示す図である。同図において、ウィジェットUI部211aは、表示制御部2111a、指定受付部2112a、領域判定部2113a、設定入力受付部2114a、設定確定部2115a、及び移動制御部2116a等を有する。
表示制御部2111aは、印刷ウィジェット21aに関する表示制御を行う。例えば、表示制御部2111aは、印刷ウィジェット21aのアイコンを表示装置206の表示画面に表示させる。ウィジェット21のアイコンとは、表示画面においてウィジェット21を一つのオブジェクトとして表現する画像である。なお、表示画面上におけるウィジェット21のアイコンの操作は、実質的にウィジェット21に対する操作に相当する。したがって、以下の説明において、ウィジェット21のアイコンのこともウィジェット21(印刷ウィジェット21a又はスキャンウィジェット21b)という。
表示装置206の表示画面上にはウィジェット21の他、OS25のファイルシステムにおいて管理されている各種のデータ形式の文書データを格納したファイルのアイコン(ファイルアイコン)も表示される。
図6は、第一の実施の形態において表示画面に表示されるアイコンの一例を示す図である。同図において、表示画面300には、印刷ウィジェット21aと、ファイルアイコン310〜314と、ポインタ301とが表示されている。ポインタ301は、入力装置207の一つであるマウスの指示位置を示す図形又は画像である。
なお、ウィジェット21のアイコンやファイルのアイコンは、所定の処理や画像データ等を比喩したメタファーだけからなるものだけでなく、メタファーに文字や記号などを含むものも含まれるものとする。また、アイコンとは、図形、文字のうちいずれか一方からなるものや、図形及び文字の両方からなるものも含まれるものとする。また、本実施の形態では、ポインティングデバイスの具体例としてマウスを適用した例を説明するが、他のポインティングデバイスが用いられてもよい。例えば、トラックバッド、トラックボール、又はタッチパネル等が利用されてもよい。利用されるポインティングデバイスによっては、ポインタ301は、表示されない場合もある。
表示制御部2111aは、また、印刷ウィジェット21aに投入されるジョブに対する設定情報の入力を受け付ける設定ウィンドウを表示画面に表示させる。設定情報とは、ジョブの実行において、印刷ウィジェット21aの処理内容を規定するパラメータをいう。また、ウィンドウとは、ハードウェアとしての表示画面300上に表示される仮想的(ソフト的)な画面をいう。
指定受付部2112aは、印刷ウィジェット21aに対するジョブの投入、及び当該ジョブにおいて処理対象とされる文書データの指定を受け付ける。具体的には、指定受付部2112aは、印刷ウィジェット21aに対するファイルアイコンのドラッグアンドドロップを、印刷ウィジェット21aに対するジョブの投入、及び当該ジョブにおいて処理対象とされる文書データの指定として認識する。すなわち、ドラッグアンドドロップされたファイルアイコンに係る文書データがジョブの処理対象とされる。図6では、ファイルアイコン310が印刷ウィジェット21aにドラッグアンドドロップされている状態が示されている。
設定入力受付部2114aは、設定ウィンドウを介して設定情報の入力を受付ける。
領域判定部2113aは、ポインタ301が所定の領域(範囲)内にあるか否かを判定する。例えば、領域判定部2113aは、所定の領域の座標とポインタ301の座標とを比較して当該判定を行う。
設定確定部2115aは、ポインタ301が移動されて所定の領域内にないと判定され、かつ予め定められた所定時間が経過した場合、設定入力受付部2114aによって受け付けられた設定情報を確定する。なお、所定時間は、印刷ウィジェット21aの属性情報管理ファイル215aにおいて設定可能としてもよい。
移動制御部2116aは、表示画面300上における印刷ウィジェット21aの表示位置の移動を制御する。具体的には、移動制御部2116aは、ポインタ301が印刷ウィジェット21aを指示している状態においてマウスボタンの押下を検知すると、移動処理を開始する。マウスボタンが押下されたまま(印刷ウィジェット21aが掴まれたまま)ポインタ301がドラッグされると、移動制御部2116aは、印刷ウィジェット21aの位置情報(座標値)をポインタ301の位置に更新する。その結果、印刷ウィジェット21aの表示位置はポインタ301の移動に伴って移動する。
以下、情報処理システム1の処理手順について説明する。ウィジェット21を利用する前に、ユーザは、ユーザ端末20においてウィジェットマネージャ22を起動しておく。そこで、まず、ウィジェットマネージャ22の起動時の処理手順について説明する。
図7は、ウィジェットマネージャの起動時の処理手順を説明するためのシーケンス図である。
ユーザの指示に応じ、又は自動的にウィジェットマネージャ22が起動されると、ウィジェットマネージャ22の広告部222は、ログインユーザのユーザIDとウィジェット情報取得用URLとを含むユーザ情報の広告をネットワーク上に送信する(S101)。
続いて、プロバイダアプリ1221のユーザ検知部131は、広告を受信すると、当該広告に含まれているユーザID及びウィジェット情報取得用URLをユーザ管理テーブル136に登録する(S102)。
図8は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル136は、ユーザIDとウィジェット情報取得用URLとの組(ペア)を管理する。ウィジェット情報取得用URLは、ウィジェットマネージャ22ごとに一意なURLである。ウィジェットマネージャ22は、一台のユーザ端末20において一つ起動されればよい。すなわち、ウィジェットマネージャ22は、複数のウィジェット21から共用される。同図では、ユーザA及びユーザBについてレコードが登録されている例が示されている。ユーザ管理テーブル136は、例えば、HDD114に記憶されている。
ウィジェットマネージャ22の起動後、ユーザは、印刷ウィジェット21a又はスキャンウィジェット21bを利用することが可能となる。
図9は、印刷ウィジェットへのジョブ投入時の処理手順を説明するためのフローチャートである。
印刷ウィジェット21aが起動されると、表示制御部2111aは、印刷ウィジェット21aを表示画面300に表示させる(S31)。続いて、ユーザによるポインタ301(マウス)の操作により、図6に示されるように印刷ウィジェット21aに対してファイルアイコンがドラッグアンドドロップされると、指定受付部2112aは、ドロップされたファイルアイコンに係る文書データをジョブの実行対象として受け付ける(S32)。ファイルアイコンのドロップに応じ、表示制御部2111aは、設定ウィンドウを表示画面300に表示させる(S33)。
図10は、印刷ウィジェットの設定ウィンドウの表示例を示す図である。同図に示されるように、設定ウィンドウ303は、印刷ウィジェット21aの近傍に表示される。設定ウィンドウ303には、印刷する用紙サイズの選択、及びカラー印刷若しくはモノクロ印刷の選択を行なわせる印刷設定項目と、印刷部数を設定させる部数設定項目とが表示されている。なお、印刷設定項目及び部数設定項目以外の設定項目が設定ウィンドウ303に表示されてもよい。設定ウィンドウ303に表示される初期値は、印刷ウィジェット21aの属性情報管理ファイル215aより取得される。
続いて、設定入力受付部2114aは、設定ウィンドウ303を介して、各設定項目(パラメータ)について設定値の選択又は入力を受け付ける(S34)。設定入力受付部2114aは、受け付けられた設定値を、例えばメモリ装置203に記録する。
続いて、領域判定部2113aは、ポインタ301が設定ウィンドウ303の表示領域内にあるか否かを判定する(S35)。ポインタ301が設定ウィンドウ303の表示領域内にある場合(S35でYes)、領域判定部2113aは、次のステップへの移行を抑止する。その結果、設定ウィンドウ303の表示状態は維持される。したがって、ユーザは、設定値の変更を行うことができる。設定値が変更された場合、変更内容は、メモリ装置203に記録されている設定値に反映される。
一方、領域判定部2113aによってポインタ301が設定ウィンドウ303の表示領域外に移動したことが検知されると(S35でNo)、表示制御部2111aは、設定ウィンドウ303を徐々に消去させる(S36)。
図11は、設定ウィンドウが徐々に消去される例を示す図である。同図において、設定ウィンドウ303は、破線によって描画されている。これは、設定ウィンドウ303が徐々に消去されている様子を表現している。徐々に消去されるとは、例えば、設定ウィンドウ303の描画色が徐々に薄くなったり、設定ウィンドウ303の透明度が徐々に上がったりすることをいう。
領域判定部2113aによってポインタ301が設定ウィンドウ303の表示領域外に移動したことが検知されてから、所定時間経過前にポインタ301が設定ウィンドウ303の表示領域内に再び移動したことが領域判定部2113aによって検知されると(S38でYes)、ステップS33に戻る。その結果、設定ウィンドウ303が完全な状態で再表示される。したがって、ユーザは、設定値の変更を行うことができる。設定値が変更された場合、変更内容は、メモリ装置203に記録されている設定値に反映される。
領域判定部2113aによってポインタ301が設定ウィンドウ303の表示領域外に移動したことが検知されてから所定時間が経過すると(S37でYes)、表示制御部2111aは、設定ウィンドウ303を完全に消去させる(S39)。
続いて、設定確定部2115aは、メモリ装置203に記録されている設定値によって設定情報を確定させる(S40)。設定情報の確定に応じ、印刷ウィジェット21aは処理対象とされた文書データに関して当該設定情報に基づく処理を開始する。
なお、設定情報の確定に応じて、印刷ウィジェット21aの表示状態は、例えば、図12に示されるように変化する。
図12は、設定情報が確定した場合の印刷ウィジェットの表示態様の一例を示す図である。図12において、印刷ウィジェット21aには、8個の点より構成される円が重畳されている。これによって、処理が開始されたことが視認可能とされている。
このように、設定ウィンドウ303は、ファイルアイコンのドラッグアンドドロップにより表示され、ポインタ301が設定ウィンドウ303の表示領域外へ移動後、非表示とされる。その結果、ユーザは、設定ウィンドウ303においてOKボタン又は確定ボタン等のクリックを行うことなく、設定情報を確定させることができる。したがって、ユーザは、より簡便な操作によって印刷ウィジェット21aに対してジョブを投入することができる。
また、ポインタ301が設定ウィンドウ303の表示領域内に無いと判定された後であっても、所定時間が経過する前にポインタ301が設定ウィンドウ303の表示領域内に移動されれば、設定ウィンドウ303が再表示される。したがって、設定値の設定のし直し等における操作性を向上させることができる。但し、ポインタ301が設定ウィンドウ303の表示領域外に移動した後、直ちに設定ウィンドウ303が消去され、設定情報が確定されてもよい。
続いて、図9のステップS40における設定情報の確定に応じて実行される処理手順について説明する。
図13は、設定情報確定後における印刷ウィジェットの処理手順を説明するためのシーケンス図である。
設定情報の確定に応じ、印刷ウィジェット21aは、ドロップされたファイルアイコンに係るファイル名が引数に指定された、文書アプリ23に対する印刷指示を示すコマンドラインをOS25に入力する(S201)。その結果、当該文書アプリ23がバックグラウンドで起動される。文書アプリ23は、起動に応じ、当該文書データの印刷要求をプリンタドライバ24に入力する(S202)。印刷要求に応じ、プリンタドライバ24は、文書データに関する印刷データ(PDL(Page Description Language)データ)を生成する。印刷ウィジェット21aに対応する論理プリンタが印刷先として指定された場合、プリンタドライバ24は、当該論理プリンタに対して出力先として設定されている所定のファイル名の中間ファイルを生成し、当該中間ファイルに印刷データを出力する(S203)。
一方、印刷ウィジェット21aは、起動された後、所定のファイル名の中間ファイルが生成されるのを待機している。具体的には、印刷ウィジェット21aは、中間ファイルの有無を確認するため所定のフォルダ内の所定のファイル名のファイルをポーリングしている。印刷ウィジェット21aは、中間ファイルが生成されたことを検知すると、当該中間ファイルより印刷データを読み込む(S204)。
なお、印刷ウィジェット21aが複数起動される可能性があるユーザ端末20では、印刷ウィジェット21aごとに論理プリンタを設定しておき、各論理プリンタが出力する中間ファイルのファイル名を異なるものとしておけばよい。各印刷ウィジェット21aは、自らに対応する論理プリンタが出力する中間ファイルの生成を待機することで、同一の中間ファイルに対する複数の印刷ウィジェット21aによる競合が回避される。なお、複数の印刷ウィジェット21aを起動する意義としては、各印刷ウィジェット21aに設定されている設定情報を異なるものとし、所望する印刷態様に応じて利用対象とする印刷ウィジェット21aを切り替えることが一例としてあげられる。ユーザは、各印刷ウィジェット21aに対応する論理プリンタを選択することで、利用対象とする印刷ウィジェット21aを選択することができる。
続いて、ウィジェット情報送信部212aは、確定された設定情報と、ポーリングにより取得された印刷データとを含むウィジェット情報の登録要求をウィジェットマネージャ22に送信する(S205)。なお、印刷ウィジェット21aのウィジェット情報は、投入されたジョブに関する属性情報に相当する。また、各ウィジェット21には、ウィジェットマネージャ22と通信するための識別情報(例えば、ウィジェットマネージャ22のURL(Uniform Resource Locator)等)が予め設定されている。
図14は、印刷ウィジェットのウィジェット情報の例を示す図である。同図において、印刷ウィジェット21aのウィジェット情報は、ウィジェットID、ユーザID、連携機能識別子、ウィジェットアドレス、表示名、設定情報、及び印刷データ等を含む。
ウィジェットIDは、各ウィジェット21を一意に識別する識別情報である。ユーザIDは、印刷ウィジェット21aの所有者であるユーザの識別情報である。連携機能識別子は、印刷ウィジェット21aと連携する画像形成装置10が有している必要のある機能(換言すれば、印刷ウィジェット21aが利用する機能)を識別するための情報である。連携機能識別子の一例として「print」、「scan」等が挙げられる。「print」は、印刷機能を示す。「scan」は、スキャン機能を示す。印刷ウィジェット21aは、画像形成装置10の印刷機能を利用する。したがって、図14の例では、「print」が連携機能識別子とされている。ウィジェットアドレスは、ネットワーク通信において各ウィジェットを一意に識別するための識別情報(例えば、URL等)である。表示名は、印刷ウィジェット21aの名前の表示用の文字列である。
設定情報は、印刷ウィジェット21aについて、確定された設定情報である。印刷データは、ポーリングによって取得された印刷データである。
ステップS205において印刷ウィジェット21aのウィジェット情報送信部212aより送信されたウィジェット情報は、ウィジェットマネージャ22のウィジェット情報登録部221によって受信される。ウィジェット情報登録部221は、受信されたウィジェット情報に含まれているユーザIDに対応するウィジェット情報管理テーブル227に当該ウィジェット情報を登録する(S206)。印刷ウィジェット21aは、ウィジェット情報の登録後、中間ファイルのポーリングを再開する。
ユーザ端末20において印刷ウィジェット21aにジョブを投入後、ユーザは、当該ジョブを実行させるために画像形成装置10の設置場所へ移動する。なお、複数の画像形成装置10がネットワークに接続されている場合、同一の広告が各画像形成装置10のユーザ検知部131によって受信され、それぞれの画像形成装置10のユーザ管理テーブル136にユーザID及びウィジェット情報取得用URLが登録される。したがって、ユーザは、印刷機能を備えた画像形成装置10であれば、複数の画像形成装置10のいずれからも当該ジョブを実行させることができる。
続いて、画像形成装置10におけるユーザによる操作に応じて実行される処理について説明する。図15は、実行可能なウィジェットの一覧の表示処理の処理手順を説明するためのシーケンス図である。
ユーザによって操作パネル15を介してプロバイダアプリ1221の利用指示が入力されると(S301)、プロバイダアプリ1221のUI制御部132は、ユーザ管理テーブル136に登録されている情報に基づいてユーザ選択画面を操作パネル15に表示させる(S302)。
図16は、ユーザ選択画面の表示例を示す図である。同図に示されるユーザ選択画面610には、ユーザIDごとにボタンが表示されている。同図では、ユーザAに対応するボタン611とユーザBに対応するボタン612とが表示されている。
続いて、ユーザは、ユーザ選択画面610において自らのユーザIDに対応するボタンを押下する(S303)。ボタンの押下に応じ、ウィジェット情報取得部133は、選択されたボタンに対応するユーザIDに関連付けられているウィジェット情報取得用URLをユーザ管理テーブル136より取得する。なお、ユーザIDに対応するボタンの押下に応じ、ユーザの認証を行い、ユーザが認証された場合にのみ以降の処理が実行されるようにしてもよい。
続いて、ウィジェット情報取得部133は、選択されたユーザIDに対応するウィジェット情報取得用URL宛に、ウィジェット情報の取得要求を送信する(S304)。ウィジェット情報の取得要求は、ウィジェットマネージャ22のウィジェット情報提供部223によって受信される。ウィジェット情報提供部223は、ウィジェット情報取得用URLに対応するウィジェット情報管理テーブル227(すなわち、画像形成装置10を操作中のユーザに対応するウィジェット情報管理テーブル227)に登録されているウィジェット情報の一覧を取得し、当該一覧をプロバイダアプリ1221に返信する(S305)。ウィジェット情報の一覧の送信に際し、ウィジェット情報提供部223は、プロバイダアプリ1221と各ウィジェット21との通信を中継するためのURL(以下、「ウィジェット中継用URL」という。)をウィジェットごと(ウィジェット情報ごと)に一意に生成する。ウィジェット情報提供部223は、ウィジェットごとに生成されたウィジェット中継用URLを、各ウィジェットに対応するウィジェット情報に付加し、ウィジェット中継用URLが付加されたウィジェット情報の一覧をプロバイダアプリ1221に送信する。したがって、ステップS305において送信されるウィジェット情報は、例えば、図17に示されるような構成を有する。
図17は、ウィジェットマネージャからプロバイダアプリに送信される印刷ウィジェットのウィジェット情報の構成例を示す図である。
図17に示されるウィジェット情報は、図14のウィジェット情報に対してウィジェット中継用URLが付加されたものである。ステップS305では、同図に示されるようなウィジェット情報の一覧が送信される。ここでは、ウィジェット情報が一つしか含まれないものもウィジェット情報の一覧という。なお、後述されるように、スキャンウィジェット21bがユーザ端末20において起動されている場合、当該一覧には、スキャンウィジェット21bのウィジェット情報も含まれる。
続いて、プロバイダアプリ1221のUI制御部132は、受信されたウィジェット情報の一覧をRAM112に記録しておき、当該ウィジェット情報の一覧に基づいて、ユーザに利用可能なウィジェット21の一覧を含む画面(ウィジェット選択画面)を表示させる(S306)。
図18は、ウィジェット選択画面の表示例を示す図である。同図においてウィジェット選択画面620には、印刷ウィジェット21aの文書Aに係るジョブに対応するボタン621とスキャンウィジェット21bに対応するボタン622とが表示されている。すなわち、同図は、印刷ウィジェット21aの文書Aに係るジョブに対応するウィジェット情報と、スキャンウィジェット21bのウィジェット情報とがステップS305において受信された場合のウィジェット選択画面620の表示例である。
ウィジェット選択画面620においてボタン621が押下され、操作パネル15のスタートキーが押下されると、図19に示される処理が開始される。
図19は、印刷ウィジェットの実行時の処理手順を説明するためのシーケンス図である。
ウィジェット連携部134は、押下されたボタン621に対応するウィジェット情報(以下、「カレントウィジェット情報」という。)に含まれている連携機能識別子(「print」)に基づいて、印刷を実行すべきことを認識する。印刷を実行するために印刷データ及び設定情報を入手する必要がある。そこで、ウィジェット連携部134は、印刷データ及び設定情報の送信要求をカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S401)。
ウィジェット中継用URL宛の印刷データ及び設定情報の送信要求は、ウィジェットマネージャ22の仲介部224によって受信される。仲介部224は、ウィジェット情報管理テーブル227に登録されているウィジェット情報の中で、当該ウィジェット中継用URLが対応するウィジェット情報より印刷データ及び設定情報を取得する。仲介部224は、取得された印刷データ及び設定情報をプロバイダアプリ1221のウィジェット連携部134に返信する(S402)。
ウィジェット連携部134は、受信された印刷データ及び設定情報を機能制御部135に入力する。続いて、機能制御部135は、入力された印刷データ及び設定情報に基づく印刷ジョブを印刷アプリ1212に実行させる(S403)。その結果、当該設定情報及び印刷データに基づく印刷画像が印刷された印刷用紙がプリンタ13より出力される。
次に、第二の実施の形態について説明する。第二の実施の形態では、スキャンウィジェット21bの動作について説明する。
図20は、スキャンウィジェットのウィジェットUI部の機能構成例を示す図である。同図において、ウィジェットUI部211bは、表示制御部2111b、領域判定部2113b、設定入力受付部2114b、設定確定部2115b、及び移動制御部2116b等を有する。
表示制御部2111bは、スキャンウィジェット21bに関する表示制御を行う。例えば、表示制御部2111bは、スキャンウィジェット21bのアイコンや設定ウィンドウ等を表示装置206の表示画面300に表示させる。設定入力受付部2114bは、設定ウィンドウを介して設定情報の入力を受付ける。領域判定部2113bは、ポインタ301が所定の領域(範囲)内にあるか否かを判定する。設定確定部2115bは、ポインタ301が移動されて所定の領域内にないと判定され、かつ予め定めた一定時間が経過した場合、設定入力受付部2114bによって受け付けられた設定情報を確定する。移動制御部2116bは、表示画面300上におけるスキャンウィジェット21bの表示位置の移動を制御する。
図21は、スキャンウィジェットの起動時の処理手順を説明するためのシーケンス図である。
ユーザ端末20においてユーザによって入力されるスキャンウィジェット21bの起動指示に応じ、スキャンウィジェット21bの表示制御部2111bは、スキャンウィジェット21bを表示画面300に表示させる(S501)。
図22は、スキャンウィジェットの表示例を示す図である。表示画面300上において、スキャンウィジェット21bは、その一部分にジョブ一覧開閉ボタン402を有する。ジョブ一覧開閉ボタン402の詳細については後述する。なお、本実施の形態において、表示画面300に対するスキャンウィジェット21bの相対的な大きさは、説明の便宜上実際よりも大きくされている。
続いて、スキャンウィジェット21bのウィジェット情報送信部212は、属性情報管理ファイル215bよりウィジェット情報を取得し、当該ウィジェット情報の登録要求をウィジェットマネージャ22に送信する(S502)。
図23は、スキャンウィジェットのウィジェット情報の例を示す図である。同図に示されるウィジェット情報の構成は、図14において説明した印刷ウィジェット21aのウィジェット情報の構成とほぼ同様である。但し、スキャンウィジェット21bのウィジェット情報には印刷データは含まれていない。また、スキャンウィジェット21bに対する設定情報の構成は、印刷ウィジェット21aに対する設定情報の構成と異なる。また、スキャンウィジェット21bは、画像形成装置10のスキャン機能を利用する。したがって、連携識別子の値は「scan」とされている。
ステップS502において、スキャンウィジェット21bのウィジェット情報送信部212bより送信されたウィジェット情報は、ウィジェットマネージャ22のウィジェット情報登録部221によって受信される。ウィジェット情報登録部221は、受信されたウィジェット情報に含まれているユーザIDに対応するウィジェット情報管理テーブル227に当該ウィジェット情報を登録する(S503)。
以上でスキャンウィジェット21bのウィジェット情報はウィジェットマネージャ22に登録された。但し、ウィジェット情報の登録後において、スキャンウィジェット21bの設定情報を変更することもできる。この場合、ユーザは、表示画面300上においてポインタ301がスキャンウィジェット21b(ジョブ一覧開閉ボタン403以外の部分)を指示している状態で、マウスをシングルクリックする。当該シングルクリックに応じ、表示制御部2111bは、設定ウィンドウを表示させる(S504)。
図24は、スキャンウィジェットの設定ウィンドウの表示例を示す図である。同図に示される設定ウィンドウ403では、スキャンに対する設定情報として、カラー、両面、及び解像度の設定項目について設定が可能とされている。いずれかの設定項目が指示されると、設定値の選択候補が列挙された設定値選択メニューが表示される。設定値選択メニュー内においていずれかの設定値が選択されると、指定受付部2112bは、選択された設定値によって、メモリ装置203にロードされている設定値を更新し、当該設定値を設定ウィンドウ403に反映させる。なお、設定ウィンドウ403の初期状態においては、属性情報管理ファイル215bに記録されている設定情報に含まれている設定値が各設定項目の初期値としてメモリ装置203にロードされ、設定ウィンドウ403に表示される。
設定ウィンドウ403において設定値が変更され、OKボタン4031がクリックされると、設定確定部2115bは、メモリ装置203に記録されている設定値によって設定情報を確定させる(S505)。設定情報の確定に応じ、スキャンウィジェット21bのウィジェット情報送信部212は、更新された設定情報を含むウィジェット情報の登録要求をウィジェットマネージャ22に送信する(S506)。ウィジェットマネージャ22のウィジェット情報登録部221には、受信されたウィジェット情報によってウィジェット情報管理テーブル227に既に登録されているウィジェット情報を更新する(S507)。更新対象とされるのは、受信されたウィジェット情報と同一のウィジェットIDを有するウィジェット情報である。
その後、ユーザは、スキャンウィジェット21bを実行させるために画像形成装置10の設置場所へ移動する。印刷ウィジェット21aと同様、広告を受信しており、スキャン機能を備えた複数の画像形成装置10のいずれからもスキャンウィジェット21bを実行させることができる。
画像形成装置10の操作パネル15を介した操作によって、ウィジェット選択画面620を表示させるまでに実行される処理手順は、図15において説明した通りである。図15の処理によって、ウィジェットマネージャ22に登録されたスキャンウィジェット21bのウィジェット情報は、画像形成装置10に転送される。当該ウィジェット情報は、図23に示されるウィジェット情報にウィジェット中継用URLが付加されたものである。当該ウィジェット情報に基づいて、ウィジェット選択画面620には、図18に示されるようにスキャンウィジェット21bに対応するボタン622が表示される。
ウィジェット選択画面620表示後のスキャンウィジェット21bに関する処理手順について説明する。図25は、スキャンウィジェット実行時の処理手順を説明するためのシーケンス図である。
画像形成装置10に1枚以上の原稿がセットされ、ウィジェット選択画面620において、スキャンウィジェット21bに対応するボタン622が選択されると(S601)、プロバイダアプリ1221のウィジェット連携部134は、押下されたボタン622に対応するウィジェット情報(以下、「カレントウィジェット情報」という。)に含まれている連携機能識別子(「scan」)に基づいて、スキャンを実行すべきことを認識する。そこで、ウィジェット連携部134は、スキャンの実行を機能制御部135に要求する。
機能制御部135は、カレントウィジェット情報に含まれている設定情報に基づくスキャンジョブをスキャンアプリ1211に実行させる(S602)。スキャンアプリ1211は、画像形成装置10にセットされた原稿に対するスキャンをスキャナ12に実行させ、その結果得られる画像データ(以下「スキャン画像データ」という。)をウィジェット連携部134に出力する。
ウィジェット連携部134は、スキャン画像データをカレントウィジェット情報に含まれているウィジェット中継用URL宛に送信する(S603)。ウィジェット中継用URL宛に送信されたスキャン画像データは、ウィジェットマネージャ22の仲介部224によって受信される。
一方、スキャンウィジェット21bは、ウィジェット情報を送信した後、画像形成装置10において画像データがスキャンされたことを確認するためのポーリングを行い、画像データの転送(返信)を待機している。具体的には、スキャンウィジェット21bの連携部213bは、スキャンされた画像データ(スキャン画像データ)の取得要求をウィジェットマネージャ22の仲介部224に送信する(S511)。仲介部224は、当該取得要求に対する応答を行う(S512)。
仲介部224は、スキャン画像データの受信後に受信される、スキャン画像データの取得要求(S511)に応じ、当該取得要求元のスキャンウィジェット21bのウィジェット中継用URLに関して受信されているスキャン画像データを、スキャンウィジェット21bの連携部213bに返信する(S512)。
連携部213bは、スキャン画像データを受信すると、当該スキャン画像データをロジック部214bに入力する。ロジック部214bは、スキャン画像データを処理対象として、自らに実装されている処理(ロジック)を実行する(S604)。具体的には、ロジック部214bは、属性情報管理ファイル215bにおいて設定されているフォルダ内にファイルを生成し、当該ファイル内にスキャン画像データを出力する。続いて、連携部213bは、次のスキャンウィジェット21bの実行に備えて、スキャン画像データ取要求のポーリングを再開し(S511)、スキャン画像データの転送を待機する。
スキャンウィジェット21bによってユーザ端末20に保存(蓄積)されたスキャン画像データは、表示画面300上に表示されているスキャンウィジェット21bを介して操作することができる。具体的には、ジョブ一覧開閉ボタン402がクリックされると、表示制御部2111bは、ジョブ一覧ウィンドウを表示させる。
図26は、ジョブ一覧ウィンドウの表示例を示す図である。同図において、ジョブ一覧ウィンドウ404には、二つのスキャン画像データのファイル名が表示されている。破線の矩形によって示されている指示領域4041及び4042は、それぞれ一つ目のスキャン画像データ、二つ目のスキャン画像データを指示可能な範囲を示す。破線は、説明の便宜上描画したものである。また、スクロールバー404sbは、蓄積されているスキャン画像データが多数有る場合に、そのファイル名をスクロールさせて表示させるためのスクロールバーである。なお、ジョブ一覧ウィンドウ404において、各スキャン画像データの指示領域又はスクロールバーsb以外の領域を、以下「余白領域」という。
ジョブ一覧ウィンドウ404を参照することにより、ユーザは、現在蓄積されているスキャン画像データを確認することができる。なお、ジョブ一覧ウィンドウ404が表示されている状態で、ジョブ一覧開閉ボタン402がクリックされると、表示制御部2111bは、ジョブ一覧ウィンドウ404を閉じる(非表示とする)。
続いて、ジョブ一覧ウィンドウ404に対する操作に応じて実行される処理手順について説明する。図27は、ジョブ一覧ウィンドウに対する操作に応じて実行される処理手順を説明するためのフローチャートである。
ジョブ一覧ウィンドウ404において、いずれかのスキャン画像データの指示領域がポインタ301によって指示されると(S701でYes)、表示制御部2111は、指示されたスキャン画像データ(以下、「カレント画像データ」という。)に関する設定ウィンドウを表示画面300に表示させる(S702)。なお、ポインタ301による指示とは、ポインタ301がいずれかの指示領域内に入ったことによって確定されてもよいし、ポインタ301がいずれかの指示領域内に入っている状態でシングルクリックが実行されることによって確定されてよい。但し、指示領域内におけるシングルクリックに応じてスキャン画像データを格納したファイルのオープン(すなわち、スキャン画像データの表示)が実行されるようにしてもよい。この場合、設定ウィンドウの表示は、ポインタ301がいずれかの指示領域内に入ったことによって実行されるのが好ましい。
図28は、スキャン画像データに対する設定ウィンドウの表示例を示す図である。
同図には、2番目のスキャン画像データに対する設定ウィンドウ405が表示された状態が示されている。なお、図24において説明した設定ウィンドウ403は、スキャンウィジェット21bに対する設定情報を設定させるためのものである。すなわち、将来的に実行されるジョブに対して共通の設定情報である。一方、図28における設定ウィンドウ405は、カレント画像データ、すなわち、過去に実行された一つのジョブに対する設定情報を設定させるものである。本実施の形態では、両者の設定ウィンドウの設定項目は共通しているが、必ずしも両者の設定項目は共通していなくてもよい。設定ウィンドウ405の初期状態において、各設定項目に表示されている設定値は、カレント画像データの現在の状態(属性情報)に対応する値である。すなわち、表示制御部2111bは、カレント画像データの属性情報をカレント画像データより取得し、取得された属性情報に含まれている各設定項目の設定値をメモリ装置203に記録する。表示制御部2111bは、メモリ装置203に記録された設定値を設定ウィンドウ405に表示させる。なお、カレント画像データの属性情報は、カレント画像データとは別のファイルにおいて管理されていてもよい。この場合、画像形成装置10よりウィジェットマネージャ22を介してスキャンウィジェット21bにスキャン画像データが転送される際に、当該スキャン画像データの属性情報も共に転送されるようにすればよい。
続いて、領域判定部2113bは、ポインタ301が設定ウィンドウ405の表示領域内にあるか否かを判定する(S703)。ポインタ301が設定ウィンドウ303の表示領域内にある場合(S703でYes)、領域判定部2113bは、設定ウィンドウ405の表示領域内において、いずれかの設定項目領域(設定項目ごとに割り当てられた指示領域)が指示されたか否かを判定する(S704)。設定項目領域に対する指示についても、単にポインタ301が設定項目領域内に入ることでもよいし、ポインタ301が設定項目領域内に有る状態でシングルクリックが行われることでもよい。領域判定部2113bによって、いずれかの設定項目領域が指示されたこと、及び指示された設定項目が判定されると(S704でYes)、表示制御部2111bは、指示された設定項目(以下、「カレント設定項目」という。)に対する設定値選択メニューを表示させる(S705)。
図29は、設定値選択メニューの表示例を示す図である。同図では、カラー設定項目に対する設定値選択メニュー406が表示された例が示されている。設定値選択メニュー406には、カレント設定項目(カラー設定項目)に対して設定可能な設定値の選択肢の一覧が表示される。
設定値選択メニュー406において、いずれかの設定値が選択されると、設定入力受付部2114bは、カレント設定項目について、メモリ装置203に記録されている設定値を選択された設定値によって更新する(S406)。続いて、表示制御部2111bは、設定値選択メニュー406を消去させる(非表示とする)(S407)。表示制御部2111bは、設定値選択メニュー406の消去に伴い、選択された設定値を設定ウィンドウ405に反映させる。
図30は、設定値変更後の設定ウィンドウの表示例を示す図である。同図の例では、図29の設定値選択メニュー406において、「グレースケール」が選択された場合の例が示されている。
ところで、設定ウィンドウ405では、各設定項目について項目名は文字列によって表示されておらず、項目を示すアイコン及び設定値が表示されている。これは、設定ウィンドウ405のサイズをできるだけ小さくするためのである。すなわち、項目名を文字列によって表示した場合、当該文字列を設定値の横(水平方向)に並べると、設定ウィンドウ405の幅は、少なくとも当該文字列の長さ分大きくなってしまう。又は、図10に示される印刷ウィジェット21aの設定ウィンドウ303のように、当該文字列を設定値の上(垂直方向)に並べると、設定ウィンドウ405の高さは少なくとも当該文字列の高さ分大きくなってしまう。換言すれば、当該文字列を表示しなければ、その分設定ウィンドウ405のサイズを小さくできる。また、当該文字列を表示しなくても、設定値選択メニュー406等に表示される設定値の選択肢を参照することで、カレント選択項目の意味を理解することは容易だからである。斯かる点に鑑みれば、設定項目を表現するアイコンも表示しないようにしてもよい。
なお、後述されるように、設定ウィンドウ405は、設定ウィンドウ303と同様に操作性が非常に高い。斯かる操作性に対するバランスに鑑みても、設定ウィンドウ405のサイズは小さい方が好ましい。
一方、領域判定部2113aによってポインタ301が設定ウィンドウ405の表示領域外に移動したことが検知されると(S703でNo)、表示制御部2111bは、設定ウィンドウ303を徐々に消去させる(S708)。
図31は、設定ウィンドウが徐々に消去される例を示す図である。同図において、設定ウィンドウ405は、破線によって描画されている。これは、設定ウィンドウ405が徐々に消去されている様子を表現している。なお、徐々に消去されることの意味は、図11において設定ウィンドウ303に関して説明したものと同じである。
領域判定部2113bによってポインタ301が設定ウィンドウ405の表示領域外に移動したことが検知されてから、所定時間経過前にポインタ301が設定ウィンドウ405の表示領域内に再び移動したことが領域判定部2113bによって検知されると(S710でYes)、ステップS702に戻る。その結果、設定ウィンドウ405が完全な状態で再表示される。したがって、ユーザは、設定値の変更を行うことができる。設定値が変更された場合、変更内容は、メモリ装置203に記録されている設定値に反映される。
領域判定部2113bによってポインタ301が設定ウィンドウ405の表示領域外に移動したことが検知されてから所定時間が経過すると(S709でYes)、表示制御部2111bは、設定ウィンドウ405を完全に消去させる(S711)。
続いて、設定確定部2115bは、メモリ装置203に記録されている設定値によって設定情報を確定させる(S712)。設定情報の確定に応じ、スキャンウィジェット21bのロジック部214bは、カレント画像データについて、確定された設定情報に応じたデータ形式への変換を実行する。
一方、ジョブ一覧ウィンドウ404において、いずれのスキャン画像データも指示されず(S701でNo)、ポインタ301が余白領域内にある状態でマウスボタンが押下されると(余白領域が掴まれると)(S721でYes)、移動制御部2116bは、ドラッグされたか(押下されたままポインタ301が移動したか)否かを判定する(S722)。
図32は、ジョブ一覧ウィンドウの余白領域が掴まれた様子を示す図である。
ジョブ一覧ウィンドウ404の余白領域が掴まれたままドラッグされた場合(S722でYes)、移動制御部2116bは、表示画面300上におけるスキャンウィジェット21bの位置情報を、ポインタ301の移動に伴って更新する(S723)。その結果、スキャンウィジェット21bの表示位置は、ポインタ301の移動に伴って移動する。
このように、スキャンウィジェット21bは、ジョブ一覧ウィンドウ404の余白領域が掴まれた状態でドラッグされることにより移動させることができる。このような移動操作を可能としているのは、スキャンウィジェット21bのシングルクリックに対しては、設定ウィンドウ403(図24参照)の表示処理が割り当てられていることに一因がある。この点について更に詳しく説明する。
ウィジェット21は、様々なアプリケーションプラットフォーム(ウィジェットプラットフォーム)上において利用されることを想定しているところ、本願発明者は、シングルクリックのイベントとマウスボタンの単なる押下のイベントとが干渉してしまうアプリケーションプラットフォームの存在に気付いた。すなわち、シングルクリックとはマウスボタンを押下して離す操作をいい、通常は、単にマウスボタンを押下する操作とは異なる操作として区別される。したがって、通常であれば、シングルクリックに対して一つの動作(例えば、設定ウィンドウ403の表示)が割り当てられていたとしても、マウスボタンの押下に対して移動処理を割り当てることが可能である。しかしながら、シングルクリックとマウスボタンの押下とが干渉する(同じイベントとして扱われる)アプリケーションプラットフォーム上では、スキャンウィジェット21b上にポインタ301が配置された状態でマウスボタンが押下された時点で、シングルクリックイベントが発生してしまう。その結果、マウスボタンが押下された時点で設定ウィンドウ404が表示されてしまい、そのままスキャンウィジェット21bをドラッグすることができなくなってしまう。
そこで、本実施の形態では、シングルクリックとマウスボタンの押下とが干渉してしまうアプリケーションプラットフォームの存在を考慮して、ジョブ一覧ウィンドウ404の余白領域を掴むことによってスキャンウィジェット21bの移動を可能としているのである。
なお、印刷ウィジェット21aには、シングルクリックに対して何らかのウィンドウを表示させる動作は割り当てられていない。したがって、シングルクリックとマウスボタンの押下とが干渉してしまうアプリケーションプラットフォーム上においても、第一の実施の形態において説明したように、ドラッグによる移動が可能なのである。
このような印刷ウィジェット21aの移動操作に比べて、スキャンウィジェット21bの移動操作は煩雑である。そこで、本実施の形態では、次のような簡易的な操作によってもスキャンウィジェット21bの移動を可能としている。
図33は、スキャンウィジェットの簡易的な移動操作時の処理手順を説明するためのフローチャートである。
領域判定部2113bによって、ポインタ301がスキャンウィジェット21bの表示領域内に入ったことが検知されると(S731でYes)、表示制御部2111bは、スキャンウィジェット21bの移動指示の受け付けるための画像(以下、「移動用アイコン」という。)をスキャンウィジェット21bの近傍に表示させる(S732)。
図34は、スキャンウィジェットの移動用アイコンの表示例を示す図である。同図において、移動用アイコン407は、スキャンウィジェット21bの左側に表示されている。但し、移動用アイコン407の表示位置は、スキャンウィジェット21b407の近傍(所定画素数以内)であれば、所定の位置に限定されない。技術的には、スキャンウィジェット21bと離れた位置に移動用アイコン407を表示させることも可能である。しかし、操作性の観点より、移動用アイコン407は、スキャンウィジェット21bの近傍に表示されるのが好ましい。
続いて、領域判定部2113bによって、ポインタ301が移動用アイコン407の表示領域内に入ったことが検知され、その状態でマウスボタンの押下及びドラッグが行われたことが検知されると(S733でYes)、移動制御部2116bは、表示画面300上におけるスキャンウィジェット21bの位置情報を、ポインタ301の移動に伴って更新する(S734)。その結果、スキャンウィジェット21bの表示位置は、ポインタ301の移動に伴って移動する。
なお、ポインタ301がスキャンウィジェット21bの表示領域外に移動した場合(S731でNo)、移動用アイコン407が表示中であれば(S735でYes)、表示制御部2111bは、移動用アイコン407を消去させる(非表示とする)(S736)。
このように、移動用アイコン407を利用することで、スキャンウィジェット21bの移動操作を簡易化することができる。特に、移動用アイコン407は、ポインタ301がスキャンウィジェット21bの表示領域内に入っただけで表示されるため、すなわち、移動用アイコン407の表示にマウスボタンの押下は必要ではないため、印刷ウィジェット21aの移動操作とほぼ同様の操作性を実現することができる。
なお、本実施の形態では、ウィジェット21のアイコン及びウィジェット21の設定ウィンドウ等の操作について説明したが、本実施の形態は、ウィジェット21以外の他の各種プログラムの各種GUI(Graphical User Interface)に適用されてもよい。
なお、図35は、本発明の実施の形態における画像形成装置の一例の正面図である。
また、図36は、本発明の実施の形態における画像形成装置の一例の背面図である。
また、図37は、本発明の実施の形態における画像形成装置の一例の右側面図である。
また、図38は、本発明の実施の形態における画像形成装置の一例の左側面図である。
また、図39は、本発明の実施の形態における画像形成装置の一例の平面図である。
また、図40は、本発明の実施の形態における画像形成装置の一例の底面図である。
また、図41は、本発明の実施の形態における画像形成装置、ユーザ端末、及びユーザ端末の表示装置の一例の斜視図である。
また、図42は、本発明の実施の形態における画像形成装置の一例の操作パネルの操作画面等を示す参考図である。同図において、操作パネル15の液晶表示部151には、ウィジェット選択画面が表示されている。
また、図43は、操作パネルの液晶表示部の一例の拡大図である。同図では、ウィジェット選択画面が表示された状態が示されている。図18では、便宜上、各ウィジェット21は簡略化して描画されているが、図42及び図43では、各ウィジェット21が詳細に描画されている。
更に、図44は、本発明の実施の形態におけるユーザ端末に接続された表示装置の表示画面の拡大図である。同図では、各ウィジェットが表示画面300に表示された状態が示されている。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。