以下、図面を参照して本発明の実施形態について詳細に説明する。
<電子機器の回路構成例>
図1は、電子機器の一例である画像出力端末における回路構成のシステムアーキテクチャの一例を示す図である。なお、図示する画像出力端末は、デジタル複写装置や複合機として利用する場合の形態を示している。
なお、本実施形態では、グラフィカルユーザインタフェースを作成する操作画面生成装置が組み込まれた電子機器の一例として、プリンタ、複写機、あるいはFAX装置などの各種の機能(複合機能)を具備した画像出力端末を例に説明するが、これに限らず、プリンタ、複写機、FAX装置、携帯電話、デジタルカメラ、パーソナルコンピュータ、CD(コンパクトディスク)レコーダ、DVDレコーダ、MDレコーダなど、何れのものであってもよい。
ここで、本実施形態の画像出力端末7は、各種の機能部の一部を、ハードウェア処理回路により構成することに限らず、その機能を実現するプログラムコードに基づき電子計算機(コンピュータ)と同様の仕組みを用いてソフトウェア的に実現することが可能に構成されている。
ソフトウェアにより所定の処理(特に本実施形態では情報アクセス管理)を実行させる仕組みとすることで、ハードウェア処理回路で構成される各機能要素の一部を取り外した構成にすることができ、またハードウェアの変更を伴うことなく、処理手順などを容易に変更できる利点を享受できるようになる。これに対して、ハードウェア処理回路で行なうことで、高速化を図ったアクセラレータシステムを構築することができるようになる。アクセラレータシステムは、処理が複雑であっても、処理速度の低下を防ぐことができ、高いスループットを得ることができる。
電子計算機と同様の仕組みで、各種機能をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ(組込マイコンなど)、あるいは、CPU(Central Processing Unit )、論理回路、読出専用の記憶部であるROM(Read Only Memory)、随時書込みおよび読出しが可能であるとともに揮発性の記憶部の一例であるRAM(Random Access Memory)、あるいは不揮発性の記憶部の一例であるRAM(NVRAMと記述する)を始めとする記憶装置などの機能を1つのチップ上に搭載して所望のシステムを実現するSOC(System On a Chip:システムオンチップ)、または、各種のプログラムをインストールすることで各種の機能を実行することが可能な構成で、記録媒体からインストールされる。
記録媒体は、コンピュータのハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気などのエネルギの状態変化を引き起こして、それに対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。
たとえば、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクFDを含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、または半導体メモリなどよりなるパッケージメディア(可搬型の記憶媒体)により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMやハードディスクなどで構成されてもよい。
また、ソフトウェアを構成するプログラムは、記録媒体を介して提供されることに限らず、有線あるいは無線などの通信網を介して提供されてもよい。
たとえば、各種機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ハードウェア処理回路にて構成する場合と同様の効果は達成される。この場合、記憶媒体から読み出されたプログラムコード自体が各種機能を実現する。
また、コンピュータが読み出したプログラムコードを実行することで各種機能が実現されるだけでなく、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(Operating Systems ;基本ソフト)などが実際の処理の一部または全部を行ない、その処理により各種機能が実現される場合であってもよい。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって各種機能が実現される場合であってもよい。
なお、各種機能を実現するプログラムコードを記述したファイルとしてプログラムが提供されるが、この場合、一括のプログラムファイルとして提供されることに限らず、コンピュータで構成されるシステムのハードウェア構成に応じて、個別のプログラムモジュールとして提供されてもよい。
たとえば、コンピュータシステムとして構成される本実施形態の画像出力端末7の処理基板(1枚とは限らない)上には、先ず動作制御部の一例であるコントローラ部100が配されている。コントローラ部100は、中央演算処理部の一例であるCPU(プロセッサ)110、メモリブリッジ部(Memory Bridge )120、および電源供給時にのみ記憶内容を保持する揮発性の記憶媒体もしくは不揮発性の記憶媒体を具備したメインメモリ(主記憶部)130を備える。
なお、図示しないが、コントローラ部100には、オペレーティングシステムOSや、画像形成に関わる各機能部分あるいは周辺デバイスを制御するためのアプリケーションソフトウェアが組み込まれる(インストールされる)不揮発性の記憶媒体(NVRAM)が設けられる。
なお、上記において“揮発性の記憶媒体”とは、装置の電源がオフされた場合には、記憶内容を消滅してしまう形態の記憶媒体を意味する。一方、“不揮発性の記憶媒体”とは、装置のメイン電源がオフされた場合でも、記憶内容を保持し続ける形態の記憶媒体を意味する。記憶内容を保持し続けることができるものであればよく、半導体製のメモリ素子自体が不揮発性を有するものに限らず、バックアップ電源を備えることで、揮発性のメモリ素子を“不揮発性”を呈するように構成するものであってもよい。
なお、半導体製のメモリ素子により構成することに限らず、磁気ディスクや光ディスクなどの媒体を利用して、擬似的に不揮発性の記憶媒体として利用できる。また、CD−ROMなどの記録媒体から情報を読み出す構成を採ることでも不揮発性の記憶媒体として利用できる。
CPU110は、画像出力端末7全体の動作制御およびデータ処理を実行するメインコントローラであり、オペレーティングシステムOSの制御下で、各種プログラムを実行するようになっている。
メインメモリ130は、CPU110が実行するプログラムをロードしたり、作業領域として使用するためのRAM(random access memory)などの揮発性の半導体メモリである。メインメモリ130内にプログラムコードやデータが収まりきらなくなった場合には、仮想メモリシステムとファイルシステムとの協調動作によって、ハードディスク装置(HDD)54などの補助記憶装置との間で入れ替え(スワッピング)が行なわれるようになっている。
メモリブリッジ部120には、CPU110と協働してCPU110とメインメモリ130との間のデータの入出力を制御するメモリコントローラが組み込まれている。そして、メインメモリ130は、メモリブリッジ部120を介してCPU110と接続されるようになっている。CPU110とメインメモリ130との間は、DMA(Direct memory Access )オペレーションにより、所定バイトのブロック単位でデータが転送される。
また、コントローラ部100は、I/Oブリッジ部(Input/Output Bridge )140、および周辺デバイスとの間の通信インタフェースを切り替える切替部の一例であるスイッチ部(Switch)150を備える。I/Oブリッジ部140には、CPU110と協働して機能するI/O(入出力)コントローラが組み込まれる。スイッチ部150には、周辺のデバイスとの間のインタフェースを採る入出力インタフェースドライバが組み込まれた種々のアドオンボード(ドライバ基板)250が追加接続(アドオン)されるようになっている。
たとえば、ギガビット(Giga Bit)ベースのLANとの間のインタフェースを採るLANボード252、IEEE1394規格のデバイスとの間のインタフェースを採る1394ボード254が、スイッチ部150に接続可能となっている。スイッチ部150に組み込まれる入出力インタフェースドライバは、周辺デバイスとの間に介在する個々のアドオンボード250(LANボード252や1394ボード254など)との間で、1対1(Peer to Peer)で接続するように構成される。
なお、I/Oブリッジ部140は、スイッチ部150を経由することなく、USB(Universal Serial Bus)2.0規格のデバイス3gとの間のインタフェースを採るUSBボード256が、直接に接続されるようになっている。LANボード252や1394ボード254についても、スイッチ部150を経由することなく接続してもかまわない。この場合、I/Oブリッジ部140に、LANボード252などとの間でのピアツーピア接続の仕組みを設ける。
また、コントローラ部100は、処理基板上には配されていないが、ハードディスク装置54を備える。このハードディスク装置54は、ハードディスクインタフェースの一例である“Serial ATA”規格によりI/Oブリッジ部140と接続される。なお、本実施形態において“Serial ATA”規格は、基本である“Serial ATA 1.0”の規格の上位規格である“Serial ATA II ”あるいは今後規格化されるであろうさらなる上位規格をも含む。
I/Oブリッジ部140は、操作パネル14や操作キー16などからなるユーザインタフェース装置と直接に接続されるようになっている。なお、コントローラ部100には、図中点線で示すように、ユーザインタフェースドライバの一例であるグラフィックスドライバ部(Graphics)160をオプションとして設けてもよい。この場合、大型ユーザインタフェースあるいはメンテナンス画面を備えたユーザインタフェース装置15が、このグラフィックスドライバ部160を介してメモリブリッジ部120に接続される。
また、I/Oブリッジ部140は、複合機などとして機能する画像出力端末7を構成する機能部分として、図示しないスキャナ装置により画像を光学的に走査することでデジタル画像データを得る画像取込部(Image Input Terminal)210と、画像取込部210により取得したデジタル画像データあるいはLAN(Local Area Network)や他の周辺デバイスから得たデジタル画像データに対して所定の画像処理を施す画像処理部(Image Processing System )220、並びに画像処理部220により所定の画像処理が施されたデジタル画像データに基づいて、所定の記録媒体に画像を形成する画像記録部(Image Output Terminal )230と接続される。
この接続間の電気信号伝送ライン上に、画像取込部210、画像処理部220、画像記録部230などの画像形成機能部202に入出力される画像データと、コントローラ部100が画像形成機能部202の動作を制御するための制御コマンドとが、共通に乗せられる。
なお、フラッシュメモリなどの半導体メモリを読み取り対象とする記録メディア読取部(メモリリーダ)、CD−RやCD−RWなどを記録媒体とする記録メディア書込部、あるいは他の画像記録部などを拡張ユニット240としてI/Oブリッジ部140と接続してもかまわない。
画像取込部210、画像処理部220、あるいは画像記録部230などの画像形成に関わる機能部分(デバイス)の電気回路は、コントローラ部100の電気回路が搭載されるプリント基板(マザーボード)とは各別のプリント基板(モジュール基板)に、マザーボードに対して着脱自在に搭載されている。
そして、これら各デバイスの電気回路を搭載したモジュール基板は、コントローラ部100の電気回路が搭載されているマザーボードから離れたところに、物理的にはケーブルを介して接続されて、分散配置される。あるいは、オンボード型の基板コネクタを介して、モジュール基板がマザーボード上に装着接続される構成としてもよい。
なお、画像取込部210、画像処理部220、あるいは画像記録部230などの、画像形成に関わる機能部分である画像形成機能部(デバイス)は、画像形成装置を構成するために使用されるボードレベルのもの(モジュール基板)として提供されてもよいし、このモジュール基板を筐体内に収容した機能ユニットとして提供されてもよい。このモジュール基板と機能ユニットとを纏めて、機能モジュールという。
このような構成の画像形成装置の一例である画像出力端末7は、画像取込部210などの画像形成機能部202、周辺デバイス用のドライバ回路204、あるいはユーザインタフェース装置など画像出力端末7の本体に対して着脱自在な周辺デバイスが備えるユーザインタフェース(User Interface)機能に関する情報(UIコンフィギュレーションJ4)を取得し、この取得したUIコンフィギュレーションJ4に基づいて、操作キー(操作部品の一例)の配置や機能割付けを決定してユーザに提示する表示メニューを構築して所定の表示デバイスに表示させ、また、提示した表示メニューや操作キーに基づくユーザ指示を受け付けて、装置の各部を制御するユーザインタフェース制御部190を備えている。つまり、動作制御部の一例であるコントローラ部100が、ユーザインタフェース制御部190を兼ねる構成となっている。
これに対応して、各画像形成機能部には、本体側のユーザインタフェース制御部190からの要求を受け、電源コンフィギュレーションJ1やUIコンフィギュレーションJ4を含むデバイスコンフィギュレーションJ0を通知するデバイス情報通知部の機能も設けられる。たとえば、デバイスシステム制御部には不揮発性のメモリが設けられ、このメモリの所定の格納部(コンフィグレーションレジスタ)には、各接続デバイスの属性を示す情報であって画像形成装置との関わりで、その接続デバイスが適正な動作を可能であるか否かを示すデバイスコンフィギュレーション(接続デバイスに固有のシステム情報)J0が記録される。
たとえば、接続デバイスがスキャナ(画像取込部210)である場合、読取解像度や有効画像サイズあるいは各種原稿検知機能の判定結果算出時間、プロセス速度、スキャン開始命令から実際にデータが送出されるまでの時間などの機種ごとの詳細動作仕様が記録される。
また、デバイスコンフィギュレーション(システム情報)J0の中には、接続デバイスの消費電力(定格値や最大値の何れでもよい)に関する情報である電源コンフィギュレーションJ1も記録される。接続デバイスの消費電力が、その接続デバイスの動作状態によって異なる場合には、動作状態ごとのデバイスコンフィギュレーションJ0が記録される。さらに、デバイスコンフィギュレーション(システム情報)J0の中には、周辺デバイスが備えるユーザインタフェース(User Interface)機能に関する情報であるUIコンフィギュレーションJ4も記録される。
ユーザインタフェース制御部190は、各接続デバイスから、デバイスの属性を示すデバイスコンフィギュレーションJ0を取得し、このデバイスコンフィギュレーションJ0に含まれているUIコンフィギュレーションJ4を参照して各デバイスの機能に応じたユーザインタフェース(操作キーや表示メニューなど)を提示することで、複数デバイスが任意に組み合わされる構成においても、効率のよいユーザインタフェースを構築する。
なお、UIコンフィギュレーションJ4は、デバイスが備える機能との関わりで必要となるユーザインタフェース用のキー(ボタン)や表示メニューに関する情報が、機能ごとに対応付けられているものである。
なお、ユーザインタフェース制御部190は、各デバイスを制御する制御ソフトウェアのモジュール変更や追加、あるいは、ユーザの使い勝手を満たすための希望条件を受け付けて、定義済の操作画面を、利用者側で変更可能とする機能を持つようにするとさらに好ましい。本実施形態のユーザインタフェース制御部190は、このような機能を持つものとする。もちろん、これらの変更要望を装置提供者が受けて、設計サイドで、定義済の操作画面を変更してから、改めて、利用者側に装置を提供するようにしてもよい。
ユーザインタフェース制御部190は、たとえばI/Oブリッジ部140と通信接続されている接続デバイスからはI/Oブリッジ部140を介して、I/Oブリッジ部140と通信接続されていない接続デバイスはたとえばメモリブリッジ部120を介してというように、各接続デバイスのデバイスコンフィギュレーションJ0を取得する。
また、ユーザインタフェース制御部190は、各接続デバイスのデバイスコンフィギュレーションJ0に基づいて各デバイスに応じたユーザインタフェース画面(操作キーや表示メニューなど)を提示する際にも、たとえば表示メニューの画面データの表示デバイスへの送出やユーザからの指示を受け付ける。
画像形成装置の一例である画像出力端末7において、コントローラ部100は、複写機能や印刷機能などのハードウェア部分、たとえば画像取込部210、画像処理部220、あるいは画像記録部230といった各デバイス間の画像データの入出力系の相互接続に関して、各デバイス間を同時に流れる大量のデータを絶え間なく管理するとともに、複写装置などの機能を果たすよう、各デバイスを制御する。
なお、操作パネル14や操作キー16などからなるユーザインタフェース装置とI/Oブリッジ部140との間に、図中点線で示すユーザインタフェースドライバ162を配してもよい。
コントローラ部100(詳しくはI/Oブリッジ部140)と、画像取込部210、画像処理部220、あるいは画像記録部230などの各デバイスの間を、所定の接続インタフェースに準拠して接続し、画像取込部210などの各デバイスを装置(詳しくはI/Oブリッジ部140)に装着することで、コントローラ部100は、各デバイスの基本情報を取得して、所用の設定(たとえばデバイスドライバの設定)をする。
上記のように、画像形成装置を実質的に1つのコンピュータとし、コントローラ部にオペレーティングシステムOSや画像形成に関わる各機能部分あるいは周辺デバイスを制御するためのアプリケーションソフトウェアを組み込むようにすれば、機能モジュールの汎用性、適用性の向上、拡張性の向上、あるいは資源の共有を図ることができる。
また、これらのことから、装置の製造メーカにとっては作り易く、ユーザにとっては使い勝手のよいものとなる。たとえば、機能モジュールのバージョンアップや機能モジュールの組合せを変えることで高性能化、多機能化、あるいは高速化を図る場合に、それらの変更に応じて、コントローラ部にインストールするアプリケーションソフトウェアを変更するだけで、変更後の機能モジュールを適切に制御して使用することができる。
バージョンアップをしたり機能モジュールの組合せを変えたりしても、コントローラ部に対する機能モジュールの接続構成は変わらないので、それらの変更に応じたアプリケーションソフトウェアの更新設計は容易である。
一方、各機能モジュールや周辺デバイスなどを任意に取り替えて装着することができるので、一義的なユーザインタフェースでは、各デバイスが備える機能を十分に使いこなすことができなくなる。たとえば、複数デバイスが任意に組み合わされる構成の場合、デバイスの組合せによっては、他の接続デバイスとの関わりで装置全体として適切なユーザインタフェースを決定する必要が生じるし、メニュー項目の増減変更が必要になることもある。
また、設計段階で構築した一義的な操作画面では、あるユーザにとっては使い勝手が悪く、そのユーザの希望に合わせて、操作画面を変更したくなる場合もあるし、その場合、それに応じたメニュー項目の増減変更が必要になることもある。
そこで、この対策のために、図1に示したように、本実施形態の画像出力端末7は、周辺デバイスが備えるユーザインタフェース機能に関するUIコンフィギュレーションJ4を各周辺デバイスから取得してその接続デバイスが備える機能に応じたユーザインタフェースを決定するユーザインタフェース制御部190を備えている。以下、ユーザインタフェース制御部190の機能について詳しく説明する。
<ユーザインタフェースの制御系統>
図2は、ユーザインタフェース制御部190の一構成例を示す図である。図2に示すように、ユーザインタフェース制御部190は、表示デバイスに提示された表示メニュー上のソフトキーやハードウェア(機構的な)の操作キー16を介したユーザ指示を受け付け、その指示に応じて装置(本体や接続デバイスの各機能部)を動作させるユーザ指示受付制御部191と、各接続デバイスからユーザインタフェース(User Interface)機能に関するUIコンフィギュレーションJ4を取得するUI機能情報取得部192とを備える。
また、ユーザインタフェース制御部190は、GUI生成に資する各種の定義情報を格納する定義情報格納部194と、操作画面の生成に関わる各種の定義情報を記述した定義ファイルや、定義情報格納部194に格納する各種の情報を記述したその他の定義ファイルを読み込む定義ファイル読込部195とを備える。
定義情報格納部194としては、想定される全てのデバイスの組合せにて必要となる全てのGUI部品(基本表示パターン)の情報(画面構成要素部品情報;GUI部品情報G2)を格納する格納領域(Widget Class Repository )や、電子機器を操作する操作メニュー項目の各種類のそれぞれとGUIを構成する操作部品の各種類のそれぞれとを関連付けるアダプタ部品(アダプタオブジェクトや中継部品とも称する)の定義情報(アダプタ情報G3)を格納する格納領域(Adapter Class Repository)などが用意される。
GUI部品情報G2やアダプタ情報G3は、装置提供者側で事前に定義情報格納部194に登録しておく。また、後述のように、GUI部品情報G2やアダプタ情報G3を後から登録することもできる。
GUI部品に対して操作メニュー項目を関連付ける際に、GUI部品についての制御命令体系と操作メニュー項目についての制御命令体系とが異なる場合、アダプタ部品は、その制御命令体系の変換をも司る。これにより、制御命令体系Aを使用するGUI部品から、別の制御命令体系Bを使用するGUI部品に変更しようとする場合でも、アダプタ部品を介在させることで、何ら不都合なく、GUI部品と操作メニュー項目とを関連付けることができる。
定義ファイル読込部195は、グラフィカルユーザインタフェース(GUI)の画面構成を定義付ける画面構成定義情報G0を記述した画面構成定義ファイルF1や、GUIを構成する操作部品と操作メニュー項目を関連付ける定義情報を記述したメニュー項目定義ファイルF2も読み込む。もちろん、画面構成定義ファイルF1やメニュー項目定義ファイルF2は、適宜更新することができる。
画面構成定義ファイルF1には、メニュー項目の設定値を操作するために必要となる操作用のGUI部品や、GUI部品が配置される領域に相当する要素配置部品などの画面構成要素部品の種類や部品間の関係を、それぞれ識別子を付して記述する。
特に、本実施形態の画面構成としては、階層構造(ツリー形式)の画面構成を前提とし、その画面構成の階層に対応する各要素配置部品には、画面構成の階層と対応を取るための階層情報G01を設定することにする。
各要素配置部品に設定する階層情報G01としては、たとえば、基本メニューや応用メニューなどのユーザ熟練度(ユーザ習熟度)の区別や、読取機能、出力機能、あるいは画像処理機能などの機能ステップの区別や、階層レベルの区別などを実現する条件式(Condition Expression)を設定しておくのがよい。
また、メニュー項目定義ファイルF2には、たとえば、列挙型、整数型、あるいは日付型を始めとする文字列型などの操作メニュー項目(データオブジェクト)の種類や構造を定義する操作メニュー定義情報G1を記述する。
特に、本実施形態の操作メニュー定義情報G1としては、各要素配置部品に設定される階層情報G01を特定する条件式に適合するように、各操作メニュー項目について、基本メニューや応用メニューなどのユーザ熟練度の区別や、読取機能、出力機能、あるいは画像処理機能などの機能ステップの区別や、階層レベルの区別を示す項目分類情報(Item Categorize Factor)G11を設定しておく。
また、定義ファイル読込部195は、定義情報格納部194に格納されるGUI部品情報G2を記述した定義ファイルの一例であるGUIライブラリや、操作メニュー定義情報G1とGUI部品情報G2とを対応付ける(関連付ける)ためのアダプタ部品の情報(アダプタ情報G3)を記述した定義ファイルの一例であるアダプタライブラリなどを読み込むこともできる。なお、GUI部品情報G2およびアダプタ情報G3は、何れも、ソフトウェア部品である。
UI機能情報取得部192は、CPU110の制御の元で、画像取込部210、画像処理部220、画像記録部230などの画像形成機能部202、周辺デバイス用のドライバ回路204、あるいはユーザインタフェース装置14,15,16など、画像出力端末7の本体に任意に着脱される各接続デバイスから、これら接続デバイスとI/Oブリッジ部140あるいはメモリブリッジ部120との接続インタフェースを利用して、各デバイスのデバイスコンフィギュレーションJ0(ここでは特にUIコンフィギュレーションJ4)を取得する。
また、ユーザインタフェース制御部190は、接続デバイスの組合せや各接続デバイスの機能に応じた動作モードに対応するユーザインタフェースを決定し、定義情報格納部194に格納されているGUI部品を利用して、決定したユーザインタフェースを反映するソフトキー(ソフトウェアスイッチ)を具備した操作画面を生成し所定の表示デバイスに提示する操作画面生成部196を備える。
定義情報格納部194と定義ファイル読込部195と操作画面生成部196とにより、電子機器の一例である画像出力端末7を操作するためのグラフィカルユーザインタフェース(GUI)を作成する操作画面生成装置193が構成される。
定義情報格納部194に格納されるGUI部品は、市販のGUIライブラリを購入して定義ファイル読込部195で読み込むことでインストールする(組み込む)など、外部にて生成され提供される新規なGUI部品(表示パターン)に適宜更新することができる。
また、操作画面生成部196にグラフィカルソフトウェア(図形操作用のアプリケーションプログラム)を組み込み、操作画面生成部196にて手動操作でGUI部品を生成し、この生成したGUI部品に更新してもよい。
GUI部品の変更を伴うGUI変更要望があるときに、アダプタ部品の変更が必要となる場合には、このアダプタ部品の情報(アダプタ情報G3)も、合わせて定義情報格納部194に格納するようにする。
その時点で想定外のデバイスの組合せやGUI変更の要望が生じたときでも、変更後のGUI構成で必要となるGUI部品およびアダプタ部品の情報を定義情報格納部194に登録すればよく、この登録は、GUI部品情報G2やアダプタ情報G3の情報を記述した定義ファイルを定義ファイル読込部195で読み込んで定義情報格納部194に登録すればよく、機器提供者側に依頼することなく、利用者側で対処できる。
操作画面生成部196は、定義ファイル読込部195が読み込んだ画面構成定義ファイルF1およびメニュー項目定義ファイルF2に基づいて、画面構成定義ファイルF1に記述された操作メニュー項目のそれぞれについて、操作メニュー項目に設定される項目分類情報G11と各要素配置部品に設定される階層情報G01とを突き合わせることで、その操作メニュー項目に対応するGUI部品を配置するべき要素配置部品を特定する項目配置決定部197と、項目配置決定部197が特定した要素配置部品の領域が不足するときにはGUI部品の新たな配置領域としての要素配置部品を追加する要素配置部品追加部198とを有する。
項目配置決定部197は、各要素配置部品に設定される階層情報G01を特定する条件式に基づいて、操作メニュー項目を対応させる要素配置部品を特定し、この特定した要素配置部品上に、操作メニュー項目に対応するGUI部品を配置していくことで、画面構成定義ファイルF1で定義付けられている各操作メニュー項目に対応するGUI部品の配置が確定された画面構成定義情報G02を生成する。
要素配置部品の全ての配置領域(画面上の領域)がメニュー項目オブジェクトで満杯になった場合には、要素配置部品追加部198は、新たな領域(要素配置部品)を追加する。項目配置決定部197は、要素配置部品追加部198により追加された要素配置部品に残りのGUI部品を配置していく。
また、操作画面生成部196は、定義ファイル読込部195が読み込んだ画面構成定義ファイルF1およびメニュー項目定義ファイルF2に基づいて、画面構成定義ファイルF1に記述された操作メニュー項目のそれぞれについて、操作メニュー項目の種類(列挙型、整数型、文字列型など)と関連付けられているGUI部品の型を考慮して、操作メニュー項目の種類に適合する操作部品を関連付ける中継部品を検索して特定する中継部品検索部の一例であるアダプタ検索部199を有する。
このアダプタ検索部199は、GUIの画面構成を定義付ける画面構成定義情報G0と、GUIを構成するGUI部品と電子機器を操作する操作メニュー項目を関連付ける操作メニュー定義情報G1に基づいて、画面構成定義情報G0に定義付けられている操作メニュー項目のそれぞれについて、操作メニュー項目の種類に適合するGUI部品を関連付ける部品割当部の一例でもある。
また操作画面生成部196は、画面構成定義ファイルF1に記述されているGUI部品を定義情報格納部194から読み出して、この読み出したGUI部品と画面構成定義ファイルF1に記述されている操作メニュー項目とを、アダプタ検索部199が特定したアダプタ部品を介して、関連付けられている操作メニュー項目とGUI部品の両者を接続することで、画面構成定義情報G0(より具体的には画面構成定義情報G02)に含まれるGUI部品群と操作メニュー項目の関連付けを作成しまたは編集する部品メニュー対応付部200を有する。
操作画面生成部196は、定義情報格納部194に格納されているGUI部品を読み出し、この読み出したGUI部品のうち、UI機能情報取得部192が取得したUIコンフィギュレーションJ4に関係のない(非対応な)表示部分をインアクティブ(無効)にする。たとえば、表示を利用したソフトキーの場合には、表示をマスクする(非表示にする)。あるいは、アクティブなキーよりも薄い色で表示するか禁止を促す色で表示するなどして、そのソフトキーが無効であることをユーザに告知できればよい。
このインアクティブにされた後のソフトキーの配列情報が、ユーザ指示受付制御部191に通知される。ユーザ指示受付制御部191は、このインアクティブにされた部分を除くソフトキーを介したユーザ指示を受け付ける。ユーザのソフトキーへのアクセスは、表示デバイスに設けられたタッチパネルへの接触を利用するものでもよいし、マウスや十字シフトキーなどのポインティングデバイスを利用するものでもよい。
また、操作画面生成部196は、ユーザが操作する操作キー16の各ボタンの機能割付けを決定する。たとえば、基本キーパターンのうち、UI機能情報取得部192が取得したUIコンフィギュレーションJ4に関係のない(非対応な)キーをインアクティブ(無効)にする。この機能割付けの情報は、ユーザ指示受付制御部191に通知される。ユーザ指示受付制御部191は、この決定された機能割付けに基づく操作キー16を介したユーザ指示を受け付ける。
ユーザ指示受付制御部191は、インアクティブに設定したキーへのアクセスがあった場合、そのアクセスを受け付けない。この場合、不正なアクセスである旨を警告音などでユーザに告知してもよい。なお、ハードウェアの操作キー16については、そのインアクティブなキーをハードウェア的にロックしてもよい。なお、ハードキーの場合、決定したキー割付けの情報を画像にてユーザに提示する(ユーザから要求されたときでよい)ことが望ましい。こうすることで、ハードキーに対してラベルを貼り付けるなどの対応が可能となる。
<グラフィカルユーザインタフェースの構築方法>
図3〜図10は、ユーザインタフェース制御部190の操作画面生成装置193によるユーザインタフェース(特にGUI)の構築方法を説明する図である。
ここで、図3は、階層提示形式の操作メニュー画面の一例を示す図である。また、図4(A)は、階層提示形式の操作メニューにおける操作メニュー定義情報G1(メニューデータオブジェクト群)を説明する図であり、また図4(B)は、操作メニュー定義情報G1とGUI部品情報G2とアダプタ情報G3との関係を示した図である。
また、図5は、メニュー項目定義ファイルF2の一例を示した図であり、図6は、画面構成定義ファイルF1の一例を示した図である。また、図7は、図6から特定される条件式の一例を示した図である。また、図8は、ツリー構造のGUIに配置されるGUI部品の配置位置の決定手法を示した図であり、図9は、GUIの構築手法の全体概要を示した図である。また、図10は、完成されたツリー構造のGUIの一例を示す図である。
本実施形態のGUI生成手法においては、定義情報格納部194に格納されているGUI部品を利用してデバイスの組合せや動作モードやユーザ希望などに適した表示メニューを生成する点に特徴を有する。
この際、本実施形態のユーザインタフェース制御部190においては、先ず、項目配置決定部197は、定義ファイル読込部195が読み込んだ画面構成定義ファイルF1に記述された操作メニュー項目のそれぞれについて、メニュー項目の種類を定義する操作メニュー定義情報G1(メニューデータオブジェクト群;メニュー項目定義ファイルF2から生成してもよい)に付与された各操作メニュー項目を区別する属性情報の一例である項目分類情報G11(これもメニュー項目定義ファイルF2から生成してもよい)を、画面構成定義ファイルF1中に記述されているツリー構造の画面構成と対応する各要素配置部品に設定される階層情報G01を特定する条件式と突き合わせる(照合する)ことで、操作メニュー項目に対応するGUI部品を配置するべき要素配置部品を特定して、要素配置部品に操作メニュー項目を配置していくことで、各操作メニュー項目に対応するGUI部品の配置が確定された画面構成定義情報G02を生成する。
つまり、操作メニュー項目に付与された属性情報としての項目分類情報G11と画面構成定義ファイルF1から生成された階層構造をなす要素配置部品ツリーの各部品に付与された階層情報G01を示す条件式に基づいて、各操作メニュー項目を要素配置部品に流し込んでいくことで、実際に使用する画面構成定義情報G02を特定するのである。
この際、ある要素配置部品について、全ての格納領域(画面上の領域)が操作メニュー項目で満杯になった場合には、新たな領域を追加するべく、別の要素配置部品を使用する。たとえば、要素配置部品として、タブパーツを使用しているときであれば、そのタブの数を増やす。
この後、操作メニュー項目に対してGUI部品を選択し接続する。この際には、メニュー項目の種類を定義する操作メニュー定義情報G1(メニューデータオブジェクト群;メニュー項目定義ファイルF2から生成してもよい)と、メニュー項目と画面構成定義情報G02に含まれるGUI部品群を関連付ける定義情報(GUI部品情報G2)とから、操作メニュー定義情報G1とGUI部品を機能的に接続するためのアダプタ部品を定義付けるアダプタ情報G3をアダプタ検索部199により検索する。
部品メニュー対応付部200は、アダプタ検索部199により検索されたアダプタ部品を用いて、関連付けられている操作メニュー定義情報G1とGUI部品の両者を接続する。
そして、操作画面生成部196は、各GUI部品を所定位置に配置し、また各GUI部品に機能を割り付け、またその機能情報を示す文字(機能文字)を追加することで、GUIを生成したり編集したりする。
なお、アダプタ部品は、メニュー項目を構成するツリーの1要素に対応したアダプタ部品に限らず、任意個の操作メニュー定義情報G1でなるメニューデータオブジェクト群の組合せおよび複数個のGUI部品の組合せに対応したアダプタ部品を用意してもよい。
また、操作メニューとしては、1つの画面内で所望の操作メニューを提示する一括提示形式のものと、上位概念のものから下位概念のものへと順次階層構造で選択していく階層提示形式のものの何れを採用してもよい。
たとえば、図3に示す事例のように、定義情報格納部194に格納されているGUI部品(図3(A))を組み合わせることで、ソフトキーを具備するGUI(図3(B))を作成することもできる。ここで、図3(B)は、画像取込部210、画像処理部220、および画像記録部230の何れかが白黒対応である場合における複写モードの表示メニュー例を示している。
すなわち、ユーザインタフェース表示は、メニュー項目の設定値を操作するために必要となるGUI部品(Control Widget)としてボタン類や、GUI部品が配置される領域に相当する要素配置部品(Container Widget)としてのタブ類などを、基本パーツ(画面構成要素部品)として予め持っている。
たとえば、図3(A)に示すように、定義情報格納部194には、プルダウンメニュー(Pulldown Menu )、ラジオボタンメニュー(Radio Button Menu )、スピナーボタンメニュー(Spinner Button Menu )の他、矩形状の角ボタン、円形状の丸ボタン、星形ボタン、六角ボタン、およびカウンタボタンがGUI部品として格納され、また、それぞれ異なる条件式(階層情報G01を特定するもの)が設定されるタブ位置の異なる複数種類のタブパーツTP(Tabbed Pane )や部品格納庫CG(Content Grid)が要素配置部品として格納される。部品格納庫CGは、タブパーツTP内の所定位置に配置される要素配置部品である。
ここで、前述のように、タブパーツTPや部品格納庫CGなどの要素配置部品には、画面構成の階層と対応を取るための階層情報G01として、たとえば、ユーザ熟練度の区別や、機能ステップの区別や、階層レベルの区別などを実現する条件式を設定できるようにしておく。条件式の具体例については、後で、項目分類情報G11との対応で説明する。
ユーザインタフェース制御部190の操作画面生成部196は、デバイス情報取得部192にて取得したUIコンフィギュレーションJ4と予め決められた選択条件とに基づいて、表示に必要となるボタンやタブを選択し、選択したボタンやタブのサイズを変更(縦横独立変倍)し、機能表示部分にキーの機能を示す文字(機能文字)を設定し、また必要に応じてボタンやタブあるいは機能文字の表示色を設定し、さらにボタン類以外の部分に配置する説明文字やその表示色を設定し、最後にそれぞれのボタンやタブあるいは説明文字の配置位置を決定することで、図3(B)に示すようなGUIを生成する。
デバイスが備える機能との関わりで必要となるユーザインタフェース用のキー(ボタン)や表示メニューに関する情報が機能ごとに対応付けられているので、UIコンフィギュレーションJ4を参照することで、ボタン類を割り付けていくことができる。
たとえば、操作画面生成部196にグラフィカルソフトウェア(図形操作用のアプリケーションプログラム)を組み込んでおくことで、これらの一連の処理がソフトウェア処理にて自動的に実行されるようにするのが効率的である。なお、選択条件とは、カラー複写機や白黒複写機、または使用頻度など、さまざまな条件が考えられる。
いかなる接続デバイスが装置に組み合わされた場合であっても、それに対応したGUIを柔軟、簡易、低コストで構築することができる。接続されたデバイスを認識した時点で適切なユーザインタフェース表示が可能となり、工場出荷後のデバイス交換にも新たなユーザインタフェース設計変更を行なわずに対応可能となる。
また、定義情報格納部194にGUI部品やアダプタ部品を適宜追加登録することができるようにすることで、当初想定していなかった新規なデバイスの組合せやユーザ変更要望が生じた場合に、たとえばサイズ変更(縦横独立変倍)で対応できないようなボタン類(GUI部品)が必要となる場合であっても、その新規な組合せに応じたGUI部品やアダプタ部品を登録することで、これらの変更に応じたGUIを実現することができる。
この場合においても、基本的な処理やハードウェア環境には何ら変更を加える必要がない。したがって、想定外の組合せに対しても柔軟かつ簡易に対応することができ、開発工数や費用を大幅に削減することができる。また、接続デバイス変更によりデバイスコンフィギュレーションが変更されても、その都度制御ソフトを変更する必要がなく、開発工数や費用を大幅に削減することもできる。
なお、前述の説明では、操作画面生成部196にグラフィカルソフトウェアを組み込んでおき、ソフトウェア処理にて自動的にユーザインタフェース画面を生成するようにしていたが、人手を介在させてもかまわない。また、UIコンフィギュレーションJ4で指定されているボタン類が定義情報格納部194に登録されていなかったために、自動生成では漏れてしまったものについては、その旨を明示し、マニュアル操作で追加できるようにしてもよい。
たとえば、上述のようにして一旦自動的に生成した後に、ボタン形状やサイズ、機能文字、表示色、あるいはそれぞれの配置位置を修正してもよい。こうすることで、キーやタブの色設定、あるいはキーへの機能割付け文字(名称)がユーザ変更可能になる。また、自動生成では漏れてしまった機能ボタンについて、強制的に登録済みのGUI部品を使用するように指示してもよい。こうすることで、想定外の組合せに対して、より柔軟かつ簡易な対応を実現することができる。
ところで、操作メニューの提示方式としては、たとえば、図4に示すように、列挙型、整数型、あるいは日付型を始めとする文字列型などを採ることができる。また、具体的な提示形態としては、列挙型の場合、複数の操作メニュー項目を列挙して選択できるようにしたプルダウンメニュー方式やラジオボタンメニュー方式を採ることができる。また、整数型や文字列型の場合には、数値や文字をキーボードで直接入力する方式の他、数値や文字を上下ボタンの操作で変更するスピナーボタンメニュー方式を採ることができる。
ここで、操作メニューの提示方式として、列挙型、整数型、および文字列型のうちの何れを採用するのが好ましいかは、操作メニュー項目の内容とその設定方法によっても異なる。1つの操作メニューを設定する設定方法は1つと限らないからである。
たとえば、複写倍率を設定する操作メニューの場合、図4(A)に示すメニュー構造例のように、縦および横の倍率を具体的に指示入力する寸法指定変倍方式と、縦および横の倍率を等しくして倍率を具体的に指示入力するズーム方式と、予め定められている複数種類の倍率の中から1つを選択する固定倍率方式などを採ることができる。
また、寸法指定変倍方式やズーム方式では、倍率を具体的に指示入力するので、操作メニューの提示方式としては、整数型となり、その際には、直接入力方式やスピナーボタンメニュー方式の操作メニューとすることができる。一方、固定倍率方式では、複数種類の倍率を選択肢として提示する必要があるので、列挙型となり、その際には、プルダウンメニュー方式やラジオボタンメニュー方式を採るのが好ましいことになる。
また、複数(たとえばN;割付数)ページを1枚の出力用紙上に割り付ける割付出力処理(NアップやNイン1とも称される機能)を指定する操作メニューの場合であれば、割付数(N)の指定や、各ページを区分けした領域のどの位置に配置するかなどを指定することが必要なる。この場合、予め定められた割付態様固定の配置パターンを列挙して提示する、プルダウンメニュー方式やラジオボタンメニュー方式の列挙型を採用することができる。また、具体的に割付数と位置を数字入力などで指定する整数型を採用することもでき、この場合、数値や文字をキーボードで直接入力する方式の他、数値や文字を上下ボタンの操作で変更するスピナーボタンメニュー方式を採ることができる。
なお、各操作メニュー項目には、当該操作メニュー項目に対応するGUI部品を配置すべき各要素配置部品に設定される階層情報G01を特定する条件式に適合するように、ユーザ熟練度の区別や、機能ステップの区別や、階層レベルの区別を示す項目分類情報G11を設定しておく。
そこで、本実施形態では、操作画面構築時には、先ず、予め、1つ1つの操作メニュー項目ごとに、何れの提示方式を採用するのかを定義付けたメニュー項目定義ファイルF2を、たとえばXML(Extensible Markup Language)ファイルなどで作成する。
このメニュー項目定義ファイルF2では、たとえば、図5に示すように、コピー倍率や割付出力を始めとする各種のジョブパラメータなどのメニュー構造を定義付ける。このメニュー項目定義ファイルF2では、基本メニューや応用メニューなどの各操作項目について、項目分類情報の定義に基づいて、ユーザ熟練度(ユーザ習熟度)の区別や、読取機能、出力機能、あるいは画像処理機能などの機能ステップの区別や、階層レベルの区別など、各パラメータの分類情報(項目分類情報G11)を付与することができる。
たとえば、ユーザ習熟度=(beginner, midium, professional )、 機能ステップ位置 =(input, process, output )、階層レベル=(1…N)とすれば、Ga部分から、複写倍率の項目分類情報G11aは、ユーザ習熟度=beginner、機能ステップ位置=process 、階層レベル=1が定義され、また、Gb部分から、割付出力の項目分類情報G11bは、ユーザ習熟度=beginner、機能ステップ位置=output 、階層レベル=1が定義されていることが分かる。
また、操作画面全体のツリー構造を定義付けた原本の画面構成定義ファイルF1_10 を、たとえばXML(Extensible Markup Language)ファイルなどで、予め作成する。
この画面構成定義ファイルF1_10 では、たとえば、図6に示すように、項目配置決定部197が、GUIの画面構成を定義付ける定義ファイル読込部195が読み込んだ画面構成定義ファイルF1_10 に基づいて、使用すべき要素配置部品を指定するとともに、指定した各要素配置部品に対してツリー構造をなすように、ユーザ熟練度の区別や、機能ステップの区別や、階層レベルの区別などを実現し得るように、階層構造をなす条件式を作成し得るような情報を記述する。
項目配置決定部197は、図7に示すように、画面構成定義ファイルF1_10 に基づいて、各要素配置部品に対して階層構造をなす階層情報G01を特定する条件式を作成する。
たとえば、画面構成定義ファイルF1_10 では、論理演算子や算術演算子およびその左辺、右辺が明示できるXML表記で記述される。条件式の作成に当たっては、画面構成定義ファイルF1_10 のXML記述に基づき、条件処理プログラムの生成や、演算子処理プログラム部品の組合せを、動的に決定する方法で実現する。
たとえば、基本コピー用として指定したタブパーツTP_1に設定される条件式は、画面構成定義ファイルF1_10 に記述の「TP1」部分から、「#TP1」のように作成することができる。また、応用コピー用として指定したタブパーツTP_2に設定される条件式は、画面構成定義ファイルF1_10 に記述の「TP2」部分から、「#TP2」のように作成することができる。
また、第1の部品格納庫CG_1に設定される条件式は、画面構成定義ファイルF1_10 に記述の「CG1」部分から、「#CG1」のように作成することができる。また、第2の部品格納庫CG_2に設定される条件式は、画面構成定義ファイルF1_10 に記述の「CG2」部分から、「#CG2」のように作成することができる。また、第3の部品格納庫CG_3に設定される条件式は、画面構成定義ファイルF1_10 に記述の「CG3」部分から、「#CG3」のように作成することができる。
また、第1のダイレクトパラメータボタンPB_1(Direct Parameter Button)に設定される条件式は、画面構成定義ファイルF1_10 に記述の「PB1」部分から、「#PB1」のように作成することができる。また、第2のダイレクトパラメータボタンPB_2に設定される条件式は、画面構成定義ファイルF1_10 に記述の「PB2」部分から、「#PB2」のように作成することができる。
項目配置決定部197は、画面構成定義ファイルF1_10 に基づいて、各要素配置部品に対して階層構造をなす階層情報G01を特定する条件式を作成すると、次に図8に示すように、この作成した条件式(つまり階層情報G01)に基づいて、画面構成定義ファイルF1_10 に記述の各操作メニュー項目について、対応するGUI部品を配置すべき要素配置部品を特定していくことで、操作画面全体の構造を示す画面構成定義情報G02を確定させる。
項目配置決定部197は、この画面構成定義情報G02を、たとえばXML(Extensible Markup Language)ファイルなどの画面構成定義ファイルF1_11 に記述する。これによって、各操作メニュー項目に対応するGUI部品を、どの要素配置部品に配置すべきか特定し得る、操作画面全体の構造を示す画面構成定義情報G02を定義付けた最終的な画面構成定義ファイルF1_11 が特定されることになる。
たとえば、コピー倍率の操作メニュー項目に関しては、項目分類情報G11として、ユーザ熟練度=beginner、機能ステップ位置=process 、階層レベル=1に設定されているので、基本コピー用として指定したタブパーツTP_1に設定される条件式「#TP1」に該当する(条件式評価=true)し、また、3つに区分け(Partition )された部品格納庫CGの内の第1の部品格納庫CG_1に設定される条件式「#CG1」にも該当する。
したがって、コピー倍率の操作メニュー項目に関しては、基本コピー用のタブパーツTP_1に配置するとともに、このタブパーツTP_1内に部品格納庫CG(図では3連構成)を配置し、その内の第1の部品格納庫CG_1に、コピー倍率用のGUI部品を配置する画面構成とすればよいことになる。
また、Nアップなどの割付出力処理の操作メニュー項目に関しては、項目分類情報G11として、ユーザ熟練度=beginner、機能ステップ位置=output、階層レベル=1に設定されているので、基本コピー用として指定したタブパーツTP_1に設定される条件式「#TP1」に該当するし、また、3つに区分けされた部品格納庫CGの内の第3の部品格納庫CG_3に設定される条件式「#CG3」にも該当するし、第1のダイレクトパラメータボタンPB_1に設定される条件式「#PB1」にも該当する。
したがって、割付出力の操作メニュー項目に関しては、基本コピー用のタブパーツTP_1に配置するとともに、このタブパーツTP_1内に配置された3連の部品格納庫CG内の第3の部品格納庫CG_1に、第1のダイレクトパラメータボタンPB_1を配置して、この第1のダイレクトパラメータボタンPB_1内に割付出力用のGUI部品を配置する画面構成とすればよいことになる。
このようにして、画面構成定義ファイルF1_11 では、GUIのGUI部品構成と、各GUI部品がどの操作メニュー項目(Data Model)と接続されるかと、各操作メニュー項目に対応するGUI部品の要素配置部品への配置対応とが定義付けられる。
ここで、前述のように、1つの操作メニューの方式(型)に対して、複数種類の提示方式が存在するので、ある操作メニュー用の操作画面を構築しようとする場合、操作メニューに対して何れの提示方式を関連付けるべきかは、一義的には定まらない。
この対応を採るには、操作メニュー項目とGUI部品とを対応付ける(関連付ける)部品割当部を介在させる必要がある。部品割当部としては、機器提供者側つまり設計側で、手作業で対応付けを行なうプログラム開発をする仕組みを採ることが先ず考えられる。しかしながら、このような仕組みでは、煩雑なプログラム開発を伴うので、即時対応が困難になるし、利用者側で、操作メニュー画面を適宜変更しようとする要望に応えることも、事実上不可能になってしまう。
そこで、本実施形態では、図4(B)に示すように、操作メニューの型とGUI部品とを関連付ける接続部材(中継部品)としてアダプタ部品を用意する。各アダプタ部品には、操作メニューの型を区別する操作メニュー定義情報G1と各GUI部品を機能的に接続するためのアダプタ部品を定義付けるアダプタ情報G3を設定しておく。
アダプタ検索部199は、メニュー項目と画面構成定義に含まれるGUI部品群を関連付けるGUI部品情報G2およびアダプタ部品を定義付けるアダプタ情報G3に基づいて、項目配置決定部197により作成された画面構成定義ファイルF1_11 により定義付けられたGUIに対して、メニュー項目定義ファイルF2で定義付けられている操作メニュー項目に接続するためのアダプタ部品を検索する。
そして、部品メニュー対応付部200は、アダプタ検索部199により検索されたアダプタ部品を用いて、関連付けられている操作メニュー定義情報G1とGUI部品の両者を接続する。また、各GUI部品を、画面構成定義ファイルF1_11 で定義付けられている所定位置に配置し、さらに、各GUI部品に機能を割り付け、またその機能情報を示す機能文字を追加することで、たとえば、図9の中央部に示すようなGUIを生成する。
この際、要素配置部品追加部198は、全ての要素配置部品(画面上の領域)が操作メニュー項目で満杯になった場合には、タブの数を増やすなどして、新たな領域を追加する。項目配置決定部197は、要素配置部品追加部198により追加された要素配置部品にも、同一の階層情報G01を設定したものとして取り扱い、残りのGUI部品を配置していけばよい。
たとえば、基本コピー用のタブパーツTP_1に配置する操作メニュー項目および対応するGUI部品が満杯になったら、要素配置部品追加部198は、2つ目の基本コピー用のタブパーツTP_1を自動的に作成し、項目配置決定部197は、基本コピー用のタブパーツTP_1に配置すべき残りのものを、要素配置部品追加部198により追加された2つ目の基本コピー用のタブパーツTP_1に配置していけばよい。
また、このようにして作成したGUIを別のGUIに編集(カスタマイズ)したければ、ユーザは、画面構成定義ファイルF1_10 を修正して、定義ファイル読込部195で読み込ませ、これを操作画面生成部196に解析させる。つまり、画面構成定義ファイルF1_10 を画面構成定義ファイルF1_20 に書き換えるのである。
ユーザインタフェース制御部190は、画面構成定義ファイルF1_10 が画面構成定義ファイルF1_20 に更新されると、この更新後の画面構成定義ファイルF1_10 に基づいて、前述と同様にしてGUIを作成する。
これによって、項目配置決定部197は、書換え後の画面構成定義ファイルF1_20 に基づいて、各要素配置部品に対して条件式を作成し、この作成した条件式に基づいて、画面構成定義ファイルF1_20 に記述の各操作メニュー項目について、対応するGUI部品を配置すべき要素配置部品を特定していくことで、操作画面全体の構造を示す画面構成定義情報G02を確定させ、この画面構成定義情報G02を、画面構成定義ファイルF1_21 に記述する。
このように、作成済のGUIを変更(カスタマイズ)したければ、GUI設定を定義付ける画面構成定義ファイルF1を書き換えるだけで済むのである。また、本実施形態の仕組みでは、GUI部品と操作メニュー項目との対応付けは、両者を対応付けるように予め用意されているアダプタ部品を利用して行なうので、両者を対応付けるためのプログラム作成やプログラム変更にユーザが介在する必要はない。
よって、GUI生成のための基本的なプログラムのロジック部分については全く変更せずに済むので、設計サイドでのGUIの再設計を行なわずとも、ユーザ自らが画面構成定義情報を書き換えるだけで、GUI構成の変更に柔軟に対処することができる。
また、新たな操作メニュー項目の構造を必要とする場合には、GUIを構成するGUI部品と操作する操作メニュー項目を関連付ける操作メニュー定義情報を書き換えるだけで、GUI構成の変更に柔軟に対処することができる。
また、全ての要素配置部品(画面上の領域)が操作メニュー項目で満杯になった場合には、タブの数を増やすなどして、新たな領域を自動的に追加することで、メニュー項目の増減に柔軟に対応することもできる。
加えて、本実施形態の操作画面生成装置193では、画面構成定義情報G0や操作メニュー定義情報G1の書換えに当たって、これらの定義情報を対話形式で入力するのではなく、予め、画面構成定義情報G0を記述した画面構成定義ファイルF1や、操作メニュー定義情報G1を記述したメニュー項目定義ファイルF2を用意し、これを定義ファイル読込部195で読み込み、その読み込んだファイル内容から各定義情報G0,G1を特定するようにしているので、ファイル内容の修正のみでGUI自動作成処理を実現できる利点がある。
なお、前記説明では、「基本コピー」タブと「応用コピー」タブといった2種類のタブパーツにメニュー項目に応じた部品を配置していく例で示したが、これは、一例に過ぎず、様々なGUI画面を構成することができるのは言うまでもない。
たとえば、図10に示すようなGUI画面を生成することもできる。この場合、前述の画面構成定義ファイルF1_10 は、たとえば、タブを5つ(TP_1〜TP_5)にし、各々適切な条件式を記述する、また、グリッド(ContentGrid )は4つCG_1〜CG_4)にして、各々適切な条件式を記述する、などして作成すればよい。
7…画像出力端末、100…コントローラ部、120…メモリブリッジ部、140…I/Oブリッジ部、190…ユーザインタフェース制御部、191…ユーザ指示受付制御部、192…UI機能情報取得部、193…操作画面生成装置、194…定義情報格納部、195…定義ファイル読込部、196…操作画面生成部、197…項目配置決定部、198…要素配置部品追加部、199…アダプタ検索部、200…部品メニュー対応付部