(57)【要約】【課題】機能追加および改修が容易な画面遷移制御処理を効率よく実現すること。【解決手段】アプリケーションのウィンドウの画面遷移を制御するフレームワークとして、画面フロークラス、画面クラスおよび画面遷移クラスを有する構成とし、アプリケーション切替えにともなうウィンドウ遷移およびアプリケーション内のウィンドウ遷移を制御する。また、画面遷移のパターンに応じて画面遷移クラスをサブクラス化し、ポップアップ遷移クラス、ポップダウン遷移クラス、シフト遷移クラス、単一遷移クラスおよび選択遷移クラスを有する構成とする。【選択図】        図６
2006085493.tif 000002
【特許請求の範囲】
【請求項１】
ユーザーインターフェース用ウィンドウの画面遷移を制御する画面遷移制御プログラムであって、
前記ユーザーインターフェース用ウィンドウごとの表示を制御する画面手段と、
前記画面手段を管理し、アプリケーションに所属する１または複数の前記画面手段を、アプリケーションの切替えの際に、所属するアプリケーション単位で切替える画面フロー手段と、
前記アプリケーションに所属する１または複数の前記画面手段を、所属するアプリケーションの実行状態に応じて切替える画面遷移手段と
してコンピュータを機能させることを特徴とする画面遷移制御プログラム。
【請求項２】
前記画面遷移手段は、遷移元となる前記画面手段と、遷移先となる前記画面手段とをあらかじめ記憶しておくことを特徴とする請求項１に記載の画面遷移制御プログラム。
【請求項３】
前記画面遷移手段は、遷移元となる前記画面手段の遷移後の状態と、遷移先となる前記画面手段の遷移後の状態との組合せに応じて、前記画面遷移手段の機能と、前記組合せに特化した機能とをあわせもつ第一の特化遷移手段を備えたことを特徴とする請求項１または２に記載の画面遷移制御プログラム。
【請求項４】
前記第一の特化遷移手段として、遷移元となる前記画面手段を非活性状態とし、かつ、遷移先となる前記画面手段を開始状態とするポップアップ遷移手段を備えたことを特徴とする請求項３に記載の画面遷移制御プログラム。
【請求項５】
前記第一の特化遷移手段として、遷移元となる前記画面手段を終了状態とし、かつ、遷移先となる前記画面手段を活性状態とするポップダウン遷移手段を備えたことを特徴とする請求項３または４に記載の画面遷移制御プログラム。
【請求項６】
前記第一の特化遷移手段として、遷移元となる前記画面手段を終了状態とし、かつ、遷移先となる前記画面手段を開始状態とするシフト遷移手段を備えたことを特徴とする請求項３、４または５に記載の画面遷移制御プログラム。
【請求項７】
前記画面遷移手段は、遷移先となる前記画面手段の候補数に応じて、該画面遷移手段の機能と、前記候補数に特化した機能とをあわせもつ第二の特化遷移手段を備えたことを特徴とする請求項１または２に記載の画面遷移制御プログラム。
【請求項８】
前記第二の特化遷移手段として、遷移先となる前記画面手段の候補数が１である単一遷移手段を備えたことを特徴とする請求項７に記載の画面遷移制御プログラム。
【請求項９】
前記第二の特化遷移手段として、遷移先となる前記画面手段の候補数が複数であり、遷移先の候補の中から遷移先となる前記画面手段を決定する選択遷移手段を備えたことを特徴とする請求項７または８に記載の画面遷移制御プログラム。
【請求項１０】
ユーザーインターフェース用ウィンドウの画面遷移を制御する画像形成装置であって、
前記ユーザーインターフェース用ウィンドウごとの表示を制御する画面手段と、
前記画面手段を管理し、アプリケーションに所属する１または複数の前記画面手段を、アプリケーションの切替えの際に、所属するアプリケーション単位で切替える画面フロー手段と、
前記アプリケーションに所属する１または複数の前記画面手段を、所属するアプリケーションの実行状態に応じて切替える画面遷移手段と
を備えたことを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザーインターフェース用ウィンドウの画面遷移を制御する画面遷移制御プログラムおよび画像形成装置に関し、特に、画面遷移制御処理を効率よく実現することができ、機能追加と改修を容易におこなうことができる画面遷移制御プログラムおよび画像形成装置に関するものである。
【背景技術】
【０００２】
従来、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、ＵＮＩＸ（登録商標）などの汎用ＯＳ上に、プリンタアプリ、コピーアプリおよびスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現している。
【０００３】
そして、プリンタアプリなどの各アプリケーションは、複合機の操作パネルに入出力画面を表示して利用者の指示を受け付け、利用者に情報を提供するパネル制御処理を内部に有することが通常である。複合機の多機能化にともない、複合機に搭載されるアプリケーション数が増えてくると、このような重複処理の存在によるアプリケーションの開発工数の増大が問題となってきた。このため、再利用可能なプログラム部品を提供することにより、各アプリケーションの開発規模を抑えようとする試みがなされている。
【０００４】
たとえば、特許文献１では、かかるパネル制御処理に関し、操作パネルに表示される画面（ウィンドウ）を部品化して部品群として提供し、かかる部品群を利用して各アプリケーションを作成することにより、アプリケーション開発工数の削減を図っている。
【０００５】
【特許文献１】特開２０００−３１５１５２号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この特許文献１で開示されている発明は、各ウィンドウに対応する部品をライブラリ部品として提供するものであるため、各アプリケーションは、これらの部品を再利用できるものの、提供される部品の粒度が小さいため再利用効率が高いとはいえない。
【０００７】
また、かかるライブラリ部品は、複数のアプリケーションが共通利用できるように、アプリケーションに共通した機能を抽出して作成されることが通常であるが、ライブラリ部品の作成時には存在しなかった機能が後になって必要となることも多い。このような場合には、かかるライブラリ部品を改修する必要があるが、改修対象となるライブラリ部品を利用するアプリケーションに改修の影響がおよぶおそれがある。
【０００８】
たとえば、各アプリケーションのウィンドウの切替えをおこなう画面遷移制御処理は、複合機に搭載されるすべてのアプリケーションに必要な処理であるが、各アプリケーションに必要とされる機能は微妙に異なる。また、かかる画面遷移制御処理は、新規アプリケーションにも容易に対応できる仕組みとすることが望ましい。
【０００９】
これらのことから、複合機に搭載されるアプリケーションの画面遷移制御処理をいかにして効率よく実現するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、たとえば、複数のアプリケーションを搭載し、これらのアプリケーションが表示するウィンドウの遷移を制御する装置を形成するような場合にも同様に生ずる課題である。
【００１０】
本発明は、上述した従来技術による問題点を解消するためになされたものであり、画面遷移制御処理を効率よく実現することができ、機能追加と改修を容易におこなうことができる画面遷移制御プログラムおよび画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、請求項１の発明にかかる画面遷移制御プログラムは、ユーザーインターフェース用ウィンドウの画面遷移を制御する画面遷移制御プログラムであって、前記ユーザーインターフェース用ウィンドウごとの表示を制御する画面手段と、前記画面手段を管理し、アプリケーションに所属する１または複数の前記画面手段を、アプリケーションの切替えの際に、所属するアプリケーション単位で切替える画面フロー手段と、前記アプリケーションに所属する１または複数の前記画面手段を、所属するアプリケーションの実行状態に応じて切替える画面遷移手段としてコンピュータを機能させることを特徴とする。
【００１２】
また、請求項２の発明にかかる画面遷移制御プログラムは、請求項１の発明において、前記画面遷移手段は、遷移元となる前記画面手段と、遷移先となる前記画面手段とをあらかじめ記憶しておくことを特徴とする。
【００１３】
また、請求項３の発明にかかる画面遷移制御プログラムは、請求項１または２の発明において、前記画面遷移手段は、遷移元となる前記画面手段の遷移後の状態と、遷移先となる前記画面手段の遷移後の状態との組合せに応じて、前記画面遷移手段の機能と、前記組合せに特化した機能とをあわせもつ第一の特化遷移手段を備えたことを特徴とする。
【００１４】
また、請求項４の発明にかかる画面遷移制御プログラムは、請求項３の発明において、前記第一の特化遷移手段として、遷移元となる前記画面手段を非活性状態とし、かつ、遷移先となる前記画面手段を開始状態とするポップアップ遷移手段を備えたことを特徴とする。
【００１５】
また、請求項５の発明にかかる画面遷移制御プログラムは、請求項３または４の発明において、前記第一の特化遷移手段として、遷移元となる前記画面手段を終了状態とし、かつ、遷移先となる前記画面手段を活性状態とするポップダウン遷移手段を備えたことを特徴とする。
【００１６】
また、請求項６の発明にかかる画面遷移制御プログラムは、請求項３、４または５の発明において、前記第一の特化遷移手段として、遷移元となる前記画面手段を終了状態とし、かつ、遷移先となる前記画面手段を開始状態とするシフト遷移手段を備えたことを特徴とする。
【００１７】
また、請求項７の発明にかかる画面遷移制御プログラムは、請求項１または２の発明において、前記画面遷移手段は、遷移先となる前記画面手段の候補数に応じて、該画面遷移手段の機能と、前記候補数に特化した機能とをあわせもつ第二の特化遷移手段を備えたことを特徴とする。
【００１８】
また、請求項８の発明にかかる画面遷移制御プログラムは、請求項７の発明において、前記第二の特化遷移手段として、遷移先となる前記画面手段の候補数が１である単一遷移手段を備えたことを特徴とする。
【００１９】
また、請求項９の発明にかかる画面遷移制御プログラムは、請求項７または８の発明において、前記第二の特化遷移手段として、遷移先となる前記画面手段の候補数が複数であり、遷移先の候補の中から遷移先となる前記画面手段を決定する選択遷移手段を備えたことを特徴とする。
【００２０】
また、請求項１０の発明にかかる画像形成装置は、ユーザーインターフェース用ウィンドウの画面遷移を制御する画像形成装置であって、前記ユーザーインターフェース用ウィンドウごとの表示を制御する画面手段と、前記画面手段を管理し、アプリケーションに所属する１または複数の前記画面手段を、アプリケーションの切替えの際に、所属するアプリケーション単位で切替える画面フロー手段と、前記アプリケーションに所属する１または複数の前記画面手段を、所属するアプリケーションの実行状態に応じて切替える画面遷移手段とを備えたことを特徴とする。
【発明の効果】
【００２１】
請求項１にかかる画面遷移制御プログラムによれば、ユーザーインターフェース用ウィンドウごとの表示を制御する画面手段と、画面手段を管理し、アプリケーションに所属する１または複数の画面手段を、アプリケーションの切替えの際に、所属するアプリケーション単位で切替える画面フロー手段と、アプリケーションに所属する１または複数の画面手段を、所属するアプリケーションの実行状態に応じて切替える画面遷移手段としてコンピュータを機能させるよう構成したので、画面遷移制御処理を効率よく実現することができ、機能追加と改修を容易におこなうことができるという効果を奏する。
【００２２】
また、請求項２にかかる画面遷移制御プログラムによれば、画面遷移手段は、遷移元となる画面手段と、遷移先となる画面手段とをあらかじめ記憶しておくよう構成したので、画面遷移ごとの遷移元および遷移先を個別に管理することにより、画面遷移制御処理を効率よく実現することができるという効果を奏する。
【００２３】
また、請求項３にかかる画面遷移制御プログラムによれば、画面遷移手段は、遷移元となる画面手段の遷移後の状態と、遷移先となる前記画面手段の遷移後の状態との組合せに応じて、画面遷移手段の機能と、組合せに特化した機能とをあわせもつ第一の特化遷移手段を備えるよう構成したので、画面手段の機能を引き継ぎつつ、画面遷移前後の画面状態のパターンに特有の機能を容易に追加することができるという効果を奏する。
【００２４】
また、請求項４にかかる画面遷移制御プログラムによれば、第一の特化遷移手段として、遷移元となる前記画面手段を非活性状態とし、かつ、遷移先となる前記画面手段を開始状態とするポップアップ遷移手段を備えるよう構成したので、ウィンドウのポップアップ遷移処理を効率よく実現することができるという効果を奏する。
【００２５】
また、請求項５にかかる画面遷移制御プログラムによれば、第一の特化遷移手段として、遷移元となる画面手段を終了状態とし、かつ、遷移先となる画面手段を活性状態とするポップダウン遷移手段を備えるよう構成したので、ウィンドウのポップアップ遷移処理を効率よく実現することができるという効果を奏する。
【００２６】
また、請求項６にかかる画面遷移制御プログラムによれば、第一の特化遷移手段として、遷移元となる画面手段を終了状態とし、かつ、遷移先となる画面手段を開始状態とするシフト遷移手段を備えるよう構成したので、ウィンドウのシフト遷移処理を効率よく実現することができるという効果を奏する。
【００２７】
また、請求項７にかかる画面遷移制御プログラムによれば、画面遷移手段は、遷移先となる画面手段の候補数に応じて、画面遷移手段の機能と、候補数に特化した機能とをあわせもつ第二の特化遷移手段を備えるよう構成したので、画面手段の機能を引き継ぎつつ、遷移先となる画面手段の候補数に特有の機能を容易に追加することができるという効果を奏する。
【００２８】
また、請求項８にかかる画面遷移制御プログラムによれば、第二の特化遷移手段として、遷移先となる画面手段の候補数が１である単一遷移手段を備えるよう構成したので、遷移先の候補数が１である場合の画面遷移処理を効率よく実現することができるという効果を奏する。
【００２９】
また、請求項９にかかる画面遷移制御プログラムによれば、第二の特化遷移手段として、遷移先となる画面手段の候補数が複数であり、遷移先の候補の中から遷移先となる前記画面手段を決定する選択遷移手段を備えるよう構成したので、遷移先の候補数が複数である場合の画面遷移処理を効率よく実現することができるという効果を奏する。
【００３０】
また、請求項１０にかかる画像形成装置によれば、ユーザーインターフェース用ウィンドウごとの表示を制御する画面手段と、画面手段を管理し、アプリケーションに所属する１または複数の画面手段を、アプリケーションの切替えの際に、所属するアプリケーション単位で切替える画面フロー手段と、アプリケーションに所属する１または複数の画面手段を、所属するアプリケーションの実行状態に応じて切替える画面遷移手段としてコンピュータを機能させるよう構成したので、画面遷移制御処理を効率よく実現することができ、機能追加と改修を容易におこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００３１】
以下に添付図面を参照して、この発明にかかる画面遷移制御プログラム、およびこのプログラムを実行させるためのコンピュータを含む画像形成装置の最良な実施の形態を詳細に説明する。ここでは、まず、本実施の形態に係る画像形成装置の概要および特徴について説明し、その後に、本実施の形態の特徴部分である画面遷移制御部の実施の形態について説明することとする。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、画面遷移制御処理をおこなう各種装置に適用することができる。
【００３２】
まず、本実施の形態に係る画像形成装置（以下「複合機」と言う）１のハードウェア構成について説明する。図１は、複合機１のハードウェア構成を説明するためのブロック図である。
【００３３】
同図に示すように、複合機１は、ＣＰＵ（Central Processing Unit）１０と、ＲＯＭ（Read Only Memory）１１と、ＲＡＭ（Random Access Memory）１２と、ＮＶＲＡＭ（Non Volatile Random Access Memory）１３と、操作パネル１４と、パネル制御部１５と、エンジン１６と、エンジン制御部１７と、記憶装置１８と、ディスクドライバ１９と、通信制御部２０と、モデム２１と、ホストＩ／Ｆ２２とを有し、ＣＰＵ１０と各構成部との間をバス２３で接続した構成となる。
【００３４】
ＣＰＵ１０は、複合機１の全体制御をおこなう中央処理装置である。また、ＲＯＭ１１は、プログラムコードやフォントデータといった静的データの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２は、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。そして、ＮＶＲＡＭ１３は、不揮発性のデータを格納するためのメモリであり、電源断が発生した場合あっても、格納したデータを保持することができるＲＡＭである。
【００３５】
操作パネル１４は、利用者の操作を受け付け、利用者に対する情報を表示する液晶タッチパネルなどのデバイスであり、パネル制御部１５は、かかる操作パネル１４の制御をおこなう処理部である。また、エンジン１６は、スキャンエンジンやプリントエンジンなどのイメージデータの入出力ユニットであり、エンジン制御部１７は、かかる入出力ユニットの制御をおこなう処理部である。本実施の形態の特徴部分である画面遷移制御部は、上述したパネル制御部１５を介してアプリケーションのインターフェース画面（ウィンドウ）の遷移を制御する。
【００３６】
記憶装置１８は、大量のイメージデータの蓄積や、データベースの記憶場所として用いられるＨＤＤ（Hard Disk Drive）などのストレージであり、ディスクドライバ１９は、かかるストレージの制御をおこなう処理部である。また、通信制御部２０は、イーサネット（登録商標）などのネットワークと複合機１とのデータ送受信を制御する処理部である。複合機１は、この通信制御部２０を介して外部のネットワークに接続され、ＰＣ（Personal Computer）などの外部機器と通信をおこなう。
【００３７】
モデム２１は、公衆回線を用いたデータ送受信をおこなうデバイスであり、ホストＩ／Ｆ２２は、セントロニクス（登録商標）やＲＳ−２３２Ｃといったインターフェースを制御する処理部である。複合機１は、このホストＩ／Ｆ２２を介してＰＣ（Personal Computer）などの外部機器との通信をおこなう。
【００３８】
このように、操作パネル１４およびパネル制御部１５を含むパネル操作制御部を、複合機１の筐体内に有する構成とするほかに、かかるパネル操作制御部を複合機１とは別の装置として独立させ、ネットワークを介して複合機１を遠隔操作する構成とすることもできる。図２は、図１に示したハードウェア構成の変形例を説明するためのブロック図である。
【００３９】
同図では、複合機１からパネル操作制御部１ａを分離し、ネットワークを介して、このパネル操作制御部１ａを用いてエンジン制御部１ｂの遠隔操作をおこなう構成とした場合のハードウェア構成を示している。同図に示すように、パネル操作制御部１ａは、ＣＰＵ１０ａと、ＲＯＭ１１ａと、ＲＡＭ１２ａと、ＮＶＲＡＭ１３ａと、操作パネル１４と、パネル制御部１５と、通信制御部２０ａと、バス２３ａとを有する。そして、外部ネットワークに接続された通信制御部２０ａを介して、エンジン制御部１ｂと通信をおこなう。
【００４０】
ＣＰＵ１０ａは、パネル操作制御部１ａの全体制御をおこなう中央処理装置である。また、ＲＯＭ１１ａは、プログラムコードや表示用画像データといった静的データの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ａは、プログラムやデータの展開用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。そして、ＮＶＲＡＭ１３は、不揮発性のデータを格納するためのメモリであり、電源断が発生した場合あっても格納したデータを保持することができるＲＡＭである。また、通信制御部２０ａは、イーサネット（登録商標）などのネットワークとパネル操作制御部１ａとのデータ送受信を制御する処理部である。なお、操作パネル１４およびパネル制御部１５は、上述した図１の説明と同様の処理をおこなう。
【００４１】
また、エンジン制御部１ｂは、ＣＰＵ１０ｂと、ＲＯＭ１１ｂと、ＲＡＭ１２ｂと、ＮＶＲＡＭ１３ｂと、エンジン１６と、エンジン制御部１７と、記憶装置１８と、ディスクドライバ１９と、通信制御部２０ｂと、モデム２１と、ホストＩ／Ｆ２２と、バス２３ｂとを有し、外部ネットワークに接続された通信制御部２０ｂを介して、パネル操作制御部１ａと通信をおこなう。
【００４２】
ＣＰＵ１０ｂは、複合機１の全体制御をおこなう中央処理装置である。また、ＲＯＭ１１ｂは、プログラムコードやフォントデータといった静的データの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。そして、ＮＶＲＡＭ１３ｂは、不揮発性のデータを格納するためのメモリであり、電源断が発生した場合あっても格納したデータを保持することができるＲＡＭである。また、通信制御部２０ａは、イーサネット（登録商標）などのネットワークとエンジン制御部１ｂとのデータ送受信を制御する処理部である。なお、エンジン１６、エンジン制御部１７、記憶装置１８、ディスクドライバ１９、モデム２１およびホストＩ／Ｆ２２は、上述した図１の説明と同様の処理をおこなう。
【００４３】
このように、複合機１からパネル操作制御部１ａを分離した構成とすることにより、ネットワークを経由してエンジン制御部１ｂを遠隔操作することができる。なお、図１に示した複合機１と、図２に示したパネル操作制御部１ａとを用い、複合機１上での直接操作と、ネットワークを経由した遠隔操作とをおこなうこととしてもよい。
【００４４】
次に、本実施の形態に係る複合機のソフトウェア構成について説明する。図３は、複合機１のソフトウェア構成を説明するための説明図である。オペレーティングシステム１００は、各種ドライバからの指示に基づき物理デバイスを制御し、物理デバイスの情報を欠くデバイスドライバに伝えるとともに、各デバイスドライバからの情報を物理デバイスに伝える。
【００４５】
ドライバ２００は、オペレーティングシステム１００を介して物理デバイスを制御する。ドライバ２００には、操作パネル１４を制御するパネルドライバ２００ａ、エンジン１６を制御するエンジンドライバ２００ｂ、通信ドライバを制御する通信ドライバ２００ｃなどがある。
【００４６】
制御プログラム３００は、ドライバ２００を介して各種エンジンを制御し、エンジンからの情報をアプリケーションプログラム４００に伝えるとともに、アプリケーションプログラム４００からの情報をエンジンに伝える。制御プログラム３００には、パネルドライバ２００ａを介して操作パネル１４を制御するパネル制御プログラム３００ａ、エンジンドライバ２００ｂを介してエンジン１６を制御するエンジン制御プログラム３００ｂ、通信ドライバ２００ｃを介して通信デバイスを制御する通信制御プログラム３００ｃなどがある。
【００４７】
処理パネル制御プログラム３００ａは、パネルドライバ２００ａを介して操作パネル１４を制御し、利用者からの情報をアプリケーションプログラム４００に伝えるととともに、アプリケーションプログラム４００からの情報を利用者に伝える。また、エンジン制御プログラム３００ｂは、エンジンドライバ２００ｂを介してエンジン１６を制御し、エンジン１６からの情報をアプリケーションプログラム４００に伝えるとともに、アプリケーションプログラム４００からの情報をエンジン１６に伝える。
【００４８】
そして、通信制御プログラム３００ｃは、通信ドライバ２００ｃを介して通信デバイスを制御し、通信デバイスからの情報をアプリケーションプログラム４００に伝えるとともに、アプリケーションプログラム４００からの情報を通信デバイスに伝えることにより、ネットワーク上の装置と通信する。
【００４９】
アプリケーションプログラム４００は、コピー、ファックス、プリンタなどの機能を実行するプログラムであり、各制御プログラム（３００ａ、３００ｂおよび３００ｃ）に指示を与えるとともに、各制御プログラムからの情報を取得してコピー機能やファックス機能といった機能を提供する。
【００５０】
次に、本実施の形態の特徴部分である画面遷移制御部の概要について説明する。この画面遷移制御部はフレームワーク部品の部品群からなり、かかるフレームワーク部品を利用したアプリケーションプログラム４００は、パネル制御プログラム３００ａを介してウィンドウの表示制御をおこなうことになる。本実施の形態に係る画面遷移制御部では、ライブラリ部品の提供という形をとらず、フレームワーク部品の提供という形で画面遷移制御の仕組みを提供した点に特徴がある。ここで、ライブラリ部品およびフレームワーク部品について説明しておく。
【００５１】
複合機１をはじめとするコンピュータハードウェアの高性能化、低コスト化の流れにより、かかるコンピュータハードウェアに搭載されるソフトウェアは、大規模化、複雑化している。これにともない、複合機１などの商品の開発サイクルは年々短縮される傾向にあり、ソフトウェアの開発効率の改善が要求されている。かかる開発効率改善の解決策の一つとしてソフトウェアの部品化があげられる。
【００５２】
このソフトウェアの部品化とは、ソフトウェアを再利用しやすい形で構成することにより、一度作ったものを何度も使いまわし、これにより、開発効率を向上させようとするものである。このソフトウェア部品には、大きく分類して、ライブラリ部品と、フレームワーク部品とがある。ライブラリ部品とは、複数のアプリケーションの共通機能を実現するサブルーチンなどの小規模なプログラム群のことであり、このプログラム群を、各アプリケーションがブラックボックス的に使用することにより、アプリケーションごとに同様の処理を作りこむことを省くことができる。
【００５３】
しかしながら、かかるライブラリ部品は、再利用の粒度が小さいため再利用の効果も小さい。また、複数のアプリケーションにおいて機能仕様を完全に一致させることは困難であることから、機能仕様が標準化されている分野など、特定の範囲でのみ有効であると考えられる。
【００５４】
一方、フレームワーク部品とは、ソフトウェアで解決しようとしている問題領域の骨格となる抽象モデル（フレームワーク）のことであり、かかる抽象モデルを複数のアプリケーションで再利用することにより、各アプリケーションの開発規模を抑えようとするものである。各アプリケーションは、かかるフレームワークに、アプリケーション特有の機能を付加することにより作成される。このフレームワーク部品には問題領域の骨格となる処理のみが実現されており、各アプリケーションの詳細な機能を含んでいないため、効果的な再利用が可能となる。
【００５５】
本実施の形態の特徴部分である画面遷移制御部は、アプリケーションのインターフェース画面（ウィンドウ）に関するフレームワーク部品を提供するものであり、かかるフレームワーク部品を用いることで、開発効率を向上させつつ、効率的なウィンドウ遷移の制御処理を実現することができる。
【００５６】
図４は、画面遷移制御部の構成概要を説明するための説明図である。同図に示すように、この画面遷移制御部は、アプリケーションが操作パネル１４などの表示部に表示する画面（ウィンドウ）に対応する「画面」部品と、一つのアプリケーションが表示するウィンドウの集合（フロー）を管理する「画面フロー」部品と、同じウィンドウフロー内の画面切替えをおこなう「画面遷移」部品とを用いて、画面遷移を制御するよう構成した。このように、画面遷移をおこなううえで必要となる機能を、上述した３つの部品からなるモデルで表現することにより、汎用的なソフトウェア部品の提供が可能となることが予想される。
【００５７】
図５は、かかる画面遷移制御部の処理概要を説明するための説明図である。同図に示すように、コピー機能やプリンタ機能といった各機能に対応するアプリケーションは、各アプリケーションに対応する「画面フロー」部品に、アプリケーション単位の画面切替えを指示する。指示を受けた「画面フロー」部品は、各ウィンドウに対応する「画面」部品に対し、表示または非表示の指示をすることによりウィンドウを切替える。なお、各「画面」部品は、パネルドライバを介して、操作パネル１４にウィンドウの描画を指示する。
【００５８】
また、利用者が操作パネル１４を操作して、アプリケーション内のウィンドウの切替えを指示した場合には、パネルドライバから「画面遷移」部品に対して切替え実行の指示がなされる。指示を受けた「画面遷移」部品は、関連する遷移元「画面」部品および遷移先「画面」部品にウィンドウ状態の変更を指示する。そして、各「画面」部品は、パネルドライバを介して、操作パネル１４にウィンドウの描画を指示することにより、遷移元なるウィンドウから遷移先となるウィンドウにウィンドウを遷移させる。
【００５９】
上述した概要モデルに基づいて、本実施の形態の特徴部分である画面遷移制御部をオブジェクト指向モデルとして具体化したものを、図６を用いて説明する。図６は、画面遷移制御部のクラス構成を示すＵＭＬ（Unified Modeling Language）クラス図である。ここで、ＵＭＬとは、ＯＭＧ（Object Management Group）が仕様を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このＵＭＬは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
【００６０】
同図に示すように、画面遷移制御部は、一つのアプリケーションが表示するウィンドウの集合を管理する画面フロークラス３１０、各ウィンドウの入力および表示処理をおこなう画面クラス３２０および各画面クラス３２０に画面遷移の指示をおこなう画面遷移クラス３３０を有する。
【００６１】
ここで、クラスとＵＭＬクラス図におけるクラスの記述方法について説明しておく。クラスとは、オブジェクト指向システムを構成するオブジェクトの設計図に相当する概念であり、オブジェクト内部に有する属性と処理を定義するとともに、継承関係や集約関係といった、他のクラスとの関係を定義するものである。
【００６２】
ＵＭＬクラス図におけるクラスは、３段の区画を有する矩形として記述される。それぞれの区画は、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、画面遷移クラス３３０を示す矩形の名前区画は、かかるクラスのクラス名が「画面遷移」であることを示し、属性区画は、かかるクラスが有する属性が、「遷移元」および「遷移先」であることを示し、操作区画は、かかるクラスが有する操作が、「実行（）」であることを示している。
【００６３】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、アプリケーション４００の一部として含まれるので、あらかじめＲＯＭ１１に格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２の所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００６４】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「実行（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００６５】
次に、本実施の形態の特徴部分である画面遷移制御部のクラスの概要について説明する。上述したように、画面遷移制御部は、画面フロークラス３１０、画面クラス３２０および画面遷移クラス３３０を有する。以下では、まず、これらのクラスの概要について説明する。
【００６６】
画面フロークラス３１０は、一つのアプリケーションが表示するウィンドウの集合を管理するクラスであり、かかるウィンドウのそれぞれに対応する画面クラス３２０のオブジェクトを管理してアプリケーション単位のウィンドウ切替え処理をおこなう。具体的には、この画面フロークラス３１０は、操作として表移行（）３１０ａおよび裏移行（）３１０ｂを有する。
【００６７】
表移行（）３１０ａは、アプリケーションの切替えが発生した場合に、裏となっているアプリケーションから呼び出され、かかるアプリケーションに所属するウィンドウの表示を指示する処理をおこなう。また、裏移行（）３１０ｂは、アプリケーションの切替えが発生した場合に、表となっているアプリケーションから呼び出され、かかるアプリケーションに所属するウィンドウの非表示を指示する処理をおこなう。
【００６８】
画面クラス３２０は、各ウィンドウの入力および表示処理をおこなうクラスであり、画面フロークラス３１０または画面遷移クラス３３０からの画面状態変更指示を受け付けてパネルドライバにウィンドウ描画を指示する処理をおこなう。具体的には、この画面クラス３２０は、操作として、表示（）３２０ａ、非表示（）３２０ｂ、活性（）３２０ｃ、非活性（）３２０ｄ、開始（）３２０ｅおよび終了（）３２０ｆを有する。
【００６９】
表示（）３２０ａは、画面フロークラス３１０の表移行（）３１０ａから呼び出され、対応するウィンドウを表示させる処理をおこない、非表示（）３２０ｂは、画面フロークラス３１０の裏移行（）３１０ｂから呼び出され、対応するウィンドウを非表示とする処理をおこなう。
【００７０】
活性（）３２０ｃは、利用者が操作パネル１４を操作したことにより画面の切替えが発生した場合であり、かつ、対応するウィンドウが遷移先である場合に、画面遷移クラス３３０の実行（）３３０ｃから呼び出され、対応するウィンドウを前面に表示して入力を許可する処理をおこなう。また、非活性（）３２０ｄは、利用者が操作パネル１４を操作したことにより画面の切替えが発生した場合であり、かつ、対応するウィンドウが遷移元である場合に、画面遷移クラス３３０の実行（）３３０ｃから呼び出され、対応するウィンドウの入力を不許可にする処理をおこなう。ここで「入力を不許可にする」とは、ウィンドウを暗転表示するなどして、利用者の操作を受け付けない状態とすることを指す。
【００７１】
開始（）３２０ｅは、ウィンドウを新規に生成する必要がある場合に、画面遷移クラス３３０の実行（）３３０ｃから呼び出され、対応するウィンドウを生成する処理をおこなう。また、終了（）３２０ｅは、ウィンドウを消去する必要がある場合に、画面遷移クラス３３０の実行（）３３０ｃから呼び出され、対応するウィンドウを消去する処理をおこおなう。
【００７２】
画面遷移クラス３３０は、各画面クラス３２０に画面遷移の指示をおこなうクラスであり、遷移元のウィンドウに対応する画面クラス３２０のオブジェクトと、遷移先のウィンドウに対応する画面クラスのオブジェクトとを保持し、利用者が操作パネル１４を操作したことにより画面の切替えが発生した場合に、保持している画面クラス３２０のオブジェクトに対し画面遷移を指示する処理をおこなう。具体的には、この画面遷移クラス３３０は、属性として、遷移元３３０ａおよび遷移先３３０ｂを有し、操作として実行（）３３０ｃを有する。なお、かかる画面遷移クラス３３０を実体化した画面遷移オブジェクト３３０Ａが生成されると、遷移元３３０ａおよび遷移先３３０ｂはＲＡＭ１２上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをおこなうことが可能となる。
【００７３】
遷移元３３０ａは、遷移元となるウィンドウに対応する画面オブジェクト３２０Ａを保持し、遷移先３３０ｂは、遷移先となるウィンドウに対応する画面オブジェクト３２０Ａを保持する。また、実行（）３３０ｃは、利用者が操作パネル１４を操作したことにより画面の切替えが発生した場合に、パネルドライバから呼び出され、遷移元３３０ａに保持された画面オブジェクト３２０Ａの非活性（）３２０ｄまたは終了（）３２０ｆを呼び出すとともに、遷移先３３０ｂに保持された画面オブジェクト３２０Ａの活性（）３２０ｃまたは開始（）３２０ｅを呼び出すことにより、画面遷移を実行する処理をおこなう。
【００７４】
次に、図６に示した各クラス間の関係について説明する。同図に示したように、ＵＭＬクラス図においては、クラス間に何らかの関係がある場合には、それらのクラスを表す矩形の間が直線で結ばれる。この直線の両端付近の文字はクラスのロールを表し、数字はクラスの多重度を表す。ここで、ロールとは、直線で結ばれた他方のクラスに対する当該クラスの役割のことであり、多重度とは、直線で結ばれた他方のクラスのオブジェクトと関連付けられて生成されるオブジェクトの数のことである。
【００７５】
たとえば、画面フロークラス３１０からみた画面クラス３２０の役割は「構成要素」であり、画面クラス３２０からみた画面フロークラス３１０の役割は「所有者」である。また、画面フロークラス３１０の多重度は「１」であり、画面クラス３２０の多重度は「１．．ｎ」である。ここで、「１．．ｎ」は、かかる画面クラス３２０の多重度が、１からｎの範囲であることを示している。なお、かかる多重度の上限数はｎ個としているものの、当然に、ハードウェア仕様などによる制限を受ける。
【００７６】
まず、画面フロークラス３１０と画面クラス３２０とのクラス関係について説明する。画面フロークラス３１０は、複数の画面クラス３２０のオブジェクトを管理して、アプリケーション切替えにともなう画面切替えを制御する。また、各画面クラス３２０のオブジェクトの集合は、１つの画面フローを形成する。したがって、画面フロークラス３１０と画面クラス３２０とは、「所有者」と「構成要素」という関係をなしている。
【００７７】
また、画面フローオブジェクト３１０Ａは、コピー機能やプリンタ機能といった機能に対応するアプリケーションごとに生成され、１個の画面フローオブジェクト３１０Ａは、１個以上複数個の画面オブジェクト３２０Ａを管理する。したがって、かかる画面オブジェクト３２０Ａは、１個の画面フローオブジェクト３１０Ａに対して１個以上ｎ個以下の範囲で存在する。
【００７８】
次に、画面クラス３２０と画面遷移クラス３３０との関係について説明する。画面遷移オブジェクト３３０Ａは、各画面遷移に対応して生成され、画面遷移の遷移元となる画面オブジェクト３２０Ａと、遷移先となる画面オブジェクト３２０Ａとを保持する。そして、遷移元および遷移先の画面オブジェクト３２０Ａに対して、画面表示状態の変更を指示する。したがって、画面クラス３２０と画面遷移クラス３３０とは、「遷移元」と「指示者」の関係をなすとともに、「遷移先」と「指示者」の関係をなしている。
【００７９】
また、画面遷移オブジェクト３３０Ａは各画面遷移に対応して生成されるので、１個の画面オブジェクト３２０Ａに対して、複数個の画面遷移オブジェクト３３０Ａが存在する。なお、「遷移元」となるウィンドウを単に消去する場合など、「遷移元」となるウィンドウは存在するが、「遷移先」となるウィンドウが存在しないことがあるので、「遷移先」となる画面オブジェクト３２０Ａに対応する画面遷移オブジェクト３３０Ａは存在しない場合がある。
【００８０】
このように、画面フロークラス３１０、画面クラス３２０および画面遷移クラス３３０の各オブジェクトは、相互に関連し合い、協調して、画面遷移制御部に必要な機能を実現している。
【００８１】
次に、図６に示した各クラスの操作の実行手順について例をあげて説明する。図７は、画面遷移制御部がアプリケーション間の画面切替えをおこなう際の操作の実行手順を示すＵＭＬシーケンス図である。
【００８２】
ここで、ＵＭＬシーケンス図について説明しておく。図７の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。なお、本実施の形態においては、各オブジェクトに指示を与える処理をおこなう「アプリケーション」や「パネルドライバ」も、かかる矩形であらわしている。
【００８３】
各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線（ライフライン）であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間（活性期間）を示す。また、各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれるの操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。
【００８４】
アプリケーションの切替えが発生すると、切替え前に「表」であったアプリケーションは、かかるアプリケーションに対応する画面フローオブジェクト３１０Ａの裏移行（）３１０ｂを呼び出す（ステップＳ１０１）。そして、裏移行（）３１０ｂを呼び出された画面フローオブジェクト３１０Ａは、自身が管理するすべての画面オブジェクト３２０Ａの非表示（）３２０ｂを呼び出すことにより（ステップＳ１０２）、各画面オブジェクト３２０Ａに対応するウィンドウの表示を消去する。
【００８５】
また、切替え前に「裏」であったアプリケーションは、かかるアプリケーションに対応する画面フローオブジェクト３１０Ａの表移行（）３１０ａを呼び出す（ステップＳ１０３）。そして、表移行（）３１０ａを呼び出された画面フローオブジェクト３１０Ａは、自身が管理するすべての画面オブジェクト３２０Ａの表示（）３２０ａを呼び出すことにより（ステップＳ１０４）、各画面オブジェクト３２０Ａに対応するウィンドウの表示をおこなう。
【００８６】
次に、画面遷移制御部がアプリケーション内の画面切替えをおこなう場合について、図８を用いて説明する。図８は、画面遷移制御部がアプリケーション内の画面切替えをおこなう際の操作の実行手順を示すＵＭＬシーケンス図である。
【００８７】
利用者が操作パネル１４を操作してアプリケーション内の画面の切替えが発生したならば、パネルドライバは、かかる画面の切替えに対応する画面遷移オブジェクト３３０Ａの実行（）３３０ｃを呼び出す（ステップＳ２０１）。そして、実行（）３３０ｃを呼び出された画面遷移オブジェクト３３０Ａは、遷移元３３０ａに保持する画面オブジェクト３２０Ａの非活性（）３２０ｄを呼び出す（ステップＳ２０２）。また、かかる画面遷移オブジェクト３３０Ａは、遷移先３３０ｂに保持する画面オブジェクト３２０Ａの活性（）３２０ｃを呼び出す（ステップＳ２０３）。このようにして、アプリケーション内の画面の切替えがおこなわれる。
【００８８】
次に、図６に示したクラス構成の変形例について図９を用いて説明する。図９は、図６に示した画面遷移クラス３３０のサブクラス化例１のクラス構成を示すＵＭＬクラス図である。かかるサブクラス化例１では、画面遷移パターンを画面切替え前後の画面の状態により３つに分類し、図６に示した画面遷移クラス３３０を、かかる分類に対応した３つのクラスにサブクラス化した例を示している。具体的には、画面遷移パターンを、「ポップアップ遷移」、「ポップダウン遷移」および「シフト遷移」の３つに分類し、「ポップアップ遷移」に対応するポップアップ遷移クラス３３１、「ポップダウン遷移」に対応するポップダウン遷移クラス３３２および「シフト遷移」に対応するシフト遷移クラス３３３を有する構成とした。
【００８９】
ポップアップ遷移クラス３３１、ポップダウン遷移クラス３３２およびシフト遷移クラス３３３は、画面遷移クラス３３０をサブクラス化したクラスであるので、画面遷移クラス３３０の属性（遷移元３３０ａおよび遷移先３３０ｂ）と、操作（実行（）３３０ｃ）とを継承する。なお、実行（）３３０ｃは、各サブクラスにおける具体的な処理によりオーバーライド（override）される。
【００９０】
ポップアップ遷移クラス３３１は、入力を受け付けている画面の操作により、新規な画面（たとえば、ポップアップ画面）を生成する場合の画面遷移処理をおこなうクラスである。このポップアップ遷移クラス３３１は、画面遷移クラス３３０の属性および操作を継承するとともに、継承した操作については、自身の実行（）３３１ａによってオーバーライドする。かかる実行（）３３１ａは、遷移元の画面を非活性状態（たとえば、暗転表示）にするとともに、遷移先の画面を新規に生成する。
【００９１】
ポップダウン遷移クラス３３２は、入力を受け付けている画面（たとえば、ポップアップ画面）を消去して、かかる画面の遷移元であった画面に入力制御権を与える画面遷移処理をおこなうクラスである。このポップダウン遷移クラス３３２は、画面遷移クラス３３０の属性および操作を継承するとともに、継承した操作については、自身の実行（）３３２ａによってオーバーライドする。かかる実行（）３３２ａは、遷移元の画面を消去するとともに、遷移先の画面を活性状態（利用者の入力を受け付けることができる状態）にする処理をおこなう。
【００９２】
シフト遷移クラス３３３は、入力を受け付けている画面を消去するとともに、遷移先となる画面を生成する場合の画面遷移処理をおこなうクラスである。このシフト遷移クラス３３３は、画面遷移クラス３３０の属性および操作を継承するとともに、継承した操作については、自身の実行（）３３３ａによってオーバーライドする。かかる実行（）３３３ａは、遷移元の画面を消去するとともに、遷移先の画面を新規に生成する。
【００９３】
次に、図９に示した各クラスの操作の実行手順について例をあげて説明する。図１０は、図９に示したクラス構成における操作の実行手順を示すＵＭＬシーケンス図である。同図では、「ポップアップ遷移」、「ポップダウン遷移」および「シフト遷移」の３つの画面遷移パターンについて、図９に示した各クラスの操作の実行手順を示している。
【００９４】
利用者が操作パネル１４を操作してアプリケーション内の画面の切替えが発生し、かつ、かかる切替えが「ポップアップ遷移」であったならば、パネルドライバは、対応するポップアップ遷移オブジェクト３３１Ａの実行（）３３１ａを呼び出す（ステップＳ３０１）。つづいて、実行（）３３１ａを呼び出されたポップアップ遷移オブジェクト３３１Ａは、遷移元３３０ａに保持する画面オブジェクト３２０Ａの非活性（）３２０ｄを呼び出す（ステップＳ３０２）。また、かかるポップアップ遷移オブジェクト３３１Ａは、遷移先３３０ｂに保持する画面オブジェクト３２０Ａの開始（）３２０ｅを呼び出すことにより（ステップＳ３０３）、対応するウィンドウを新規に生成する。
【００９５】
また、利用者が操作パネル１４を操作してアプリケーション内の画面の切替えが発生し、かつ、かかる切替えが「ポップダウン遷移」であったならば、パネルドライバは、対応するポップダウン遷移オブジェクト３３２Ａの実行（）３３２ａを呼び出す（ステップＳ３０４）。つづいて、実行（）３３２ａを呼び出されたポップダウン遷移オブジェクト３３２Ａは、遷移元３３０ａに保持する画面オブジェクト３２０Ａの終了（）３２０ｆを呼び出す（ステップＳ３０５）。また、かかるポップダウン遷移オブジェクト３３２Ａは、遷移先３３０ｂに保持する画面オブジェクト３２０Ａの活性（）３２０ｃを呼び出す（ステップＳ３０６）。
【００９６】
また、利用者が操作パネル１４を操作してアプリケーション内の画面の切替えが発生し、かつ、かかる切替えが「シフト遷移」であったならば、パネルドライバは、対応するシフト遷移オブジェクト３３３Ａの実行（）３３３ａを呼び出す（ステップＳ３０７）。つづいて、実行（）３３３ａを呼び出されたシフト遷移オブジェクト３３３Ａは、遷移元３３０ａに保持する画面オブジェクト３２０Ａの終了（）３２０ｆを呼び出す（ステップＳ３０８）。また、かかるシフト遷移オブジェクト３３３Ａは、遷移先３３０ｂに保持する画面オブジェクト３２０Ａの開始（）３２０ｅを呼び出す（ステップＳ３０９）。
【００９７】
次に、図６に示したクラス構成のもう一つの変形例について図１１を用いて説明する。図１１は、図６に示した画面遷移クラス３３０のサブクラス化例２のクラス構成を示すＵＭＬクラス図である。かかるサブクラス化例２では、画面遷移パターンを、画面遷移先が単数であるか複数であるかにより２つに分類し、図６に示した画面遷移クラス３３０を、かかる分類に対応した２つのクラスにサブクラス化した例を示している。具体的には、遷移先が単数である場合の画面遷移に対応する単一遷移クラス３３４と、遷移先が複数である場合の画面遷移に対応する選択遷移に対応する選択遷移クラス３３５を有する構成とした。
【００９８】
単一遷移クラス３３４および選択遷移クラス３３５は、画面遷移クラス３３０をサブクラス化したクラスであるので、画面遷移クラス３３０の属性（遷移元３３０ａおよび遷移先３３０ｂ）と、操作（実行（）３３０ｃ）とを継承する。なお、実行（）３３０ｃは、各サブクラスにおける具体的な処理によりオーバーライド（override）される。
【００９９】
単一遷移クラス３３４は、遷移先３３０ａに対応する画面に遷移する処理をおこなうクラスである。一方、選択遷移クラス３３５は、遷移先候補３３５ａに保持する複数の画面オブジェクト３２０Ａの中から遷移すべき画面に対応する画面オブジェクト３２０Ａを決定し、決定したオブジェクトに対応する画面に遷移する処理をおこなうクラスである。
【０１００】
ここで、画面クラス３２０と選択遷移クラス３３５との関係について説明する。選択遷移オブジェクト３３５Ａは、利用者の過去の操作やアプリケーションの状態によって、遷移先画面が異なる場合に生成され、画面遷移の遷移元となる画面オブジェクト３２０Ａと、遷移先となる複数の画面オブジェクト３２０Ａとを保持する。そして、遷移先となる画面オブジェクト３２０Ａを決定したうえで、遷移元および遷移先の画面オブジェクト３２０Ａに対して、画面表示状態の変更を指示する。
【０１０１】
したがって、画面クラス３２０と選択遷移クラス３３５とは、「遷移先候補」と「決定者」の関係をなす。なお、多重度の関係は、「遷移先」についての画面クラス３２０と画面遷移クラス３３０との関係とほぼ同様であるが、遷移先候補となる画面オブジェクト３２０Ａが複数であることから、１個の選択遷移オブジェクト３３５Ａに対し、画面オブジェクト３２０Ａが１個以上ｎ個以下の範囲で存在する点が異なる。
【０１０２】
また、単一遷移クラス３３４の実行（）３３４ａは、遷移先３３０ａに保持する画面オブジェクト３２０Ａの各操作を呼び出す処理をおこない、選択遷移クラス３３５の実行（）３３５ａは、遷移先候補３３５ａに保持する複数の画面オブジェクト３２０Ａの中から遷移すべき画面に対応する画面オブジェクト３２０Ａを決定したうえで、決定した画面オブジェクト３２０Ａの各操作を呼び出す処理をおこなう。
【０１０３】
次に、図１１に示した各クラスの操作の実行手順について例をあげて説明する。図１２
は、図１１に示したクラス構成における操作の実行手順を示すＵＭＬシーケンス図である。
【０１０４】
利用者が操作パネル１４を操作してアプリケーション内の画面の切替えが発生し、かつ、かかる切替えが「単一遷移」であったならば、パネルドライバは、かかる画面の切替えに対応する単一遷移オブジェクト３３４Ａの実行（）３３４ａを呼び出す（ステップＳ４０１）。そして、実行（）３３４ａを呼び出された単一遷移オブジェクト３３４Ａは、たとえば、遷移元３３０ａに保持する画面オブジェクト３２０Ａの非活性（）３２０ｄを呼び出し（ステップＳ４０２）、遷移先３３０ｂに保持する画面オブジェクト３２０Ａの活性（）３２０ｃを呼び出す（ステップＳ４０３）。なお、かかる実行（）３３４ｃがおこなう処理は、ポップアップ遷移クラス３３１の実行（）３３１ａ、ポップダウン遷移クラス３３２の実行（）３３２ａ、シフト遷移クラス３３３の実行（）３３３ａがおこなう処理と同様の処理とすることもできる。
【０１０５】
また、利用者が操作パネル１４を操作してアプリケーション内の画面の切替えが発生し、かつ、かかる切替えが「選択遷移」であったならば、パネルドライバは、かかる画面の切替えに対応する選択遷移オブジェクト３３５Ａの実行（）３３５ｂを呼び出す（ステップＳ４０４）。つづいて、実行（）３３５ｂを呼び出された選択遷移オブジェクト３３５Ａは、遷移先候補３３５ａに保持する複数の画面オブジェクト３２０Ａの中から、パネルドライバから通知された情報に基づいて、遷移先となる画面に対応する画面オブジェクト３２０Ａを決定し、遷移先３３０ｂに格納する。
【０１０６】
そして、かかる選択遷移オブジェクト３３５Ａは、たとえば、遷移元３３０ａに保持する画面オブジェクト３２０Ａの非活性（）３２０ｄを呼び出し（ステップＳ４０６）、遷移先３３０ｂに保持する画面オブジェクト３２０Ａの活性（）３２０ｃを呼び出す（ステップＳ４０７）。なお、かかる実行（）３３５ｂが遷移先を決定したあとにおこなう処理は、ポップアップ遷移クラス３３１の実行（）３３１ａ、ポップダウン遷移クラス３３２の実行（）３３２ａ、シフト遷移クラス３３３の実行（）３３３ａがおこなう処理と同様の処理とすることもできる。
【０１０７】
上述してきたように、本実施の形態では、アプリケーションのウィンドウの画面遷移を制御するフレームワークとして、画面フロークラス、画面クラスおよび画面遷移クラスを有する構成とし、アプリケーション切替えにともなうウィンドウ遷移およびアプリケーション内のウィンドウ遷移を制御することとしたので、画面遷移制御処理を効率よく実現することができ、機能追加と改修を容易におこなうことができる。また、画面遷移のパターンに応じて画面遷移クラスをサブクラス化し、ポップアップ遷移クラス、ポップダウン遷移クラス、シフト遷移クラス、単一遷移クラスおよび選択遷移クラスを有する構成としたので、プログラム作成の効率を高めることができる。
【０１０８】
また、本実施の形態の画像形成装置で実行される画面遷移制御プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、ＣＰＵ１１が上記記憶媒体から、画面遷移制御プログラムを読み出してＭＥＭ−Ｐ１２上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
【０１０９】
また、画面遷移制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかる画面遷移制御プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【産業上の利用可能性】
【０１１０】
以上のように、本発明にかかる画面遷移制御プログラムおよび画像形成装置は、アプリケーションの画面の遷移処理を制御する各種装置の画面制御に有用であり、特に、画像形成装置の画面制御に適している。
【図面の簡単な説明】
【０１１１】
【図１】複合機のハードウェア構成を説明するためのブロック図である。
【図２】図１に示したハードウェア構成の変形例を説明するためのブロック図である。
【図３】複合機のソフトウェア構成を説明するための説明図である。
【図４】画面遷移制御部の構成概要を説明するための説明図である。
【図５】画面遷移制御部の処理概要を説明するための説明図である。
【図６】画面遷移制御部のクラス構成を示すＵＭＬクラス図である。
【図７】画面遷移制御部がアプリケーション間の画面切替えをおこなう際の操作の実行手順を示すＵＭＬシーケンス図である。
【図８】画面遷移制御部がアプリケーション内の画面切替えをおこなう際の操作の実行手順を示すＵＭＬシーケンス図である。
【図９】図６に示した画面遷移クラスのサブクラス化例１のクラス構成を示すＵＭＬクラス図である。
【図１０】図９に示したクラス構成における操作の実行手順を示すＵＭＬシーケンス図である。
【図１１】図６に示した画面遷移クラスのサブクラス化例２のクラス構成を示すＵＭＬクラス図である。
【図１２】図１１に示したクラス構成における操作の実行手順を示すＵＭＬシーケンス図である。
【符号の説明】
【０１１２】
１  画像形成装置（複合機）
１０  ＣＰＵ（中央処理装置）
１０ａ  ＣＰＵ（中央処理装置）
１０ｂ  ＣＰＵ（中央処理装置）
１１  ＲＯＭ
１１ａ  ＲＯＭ
１１ｂ  ＲＯＭ
１２  ＲＡＭ
１２ａ  ＲＡＭ
１２ｂ  ＲＡＭ
１３  ＮＶＲＡＭ
１３ａ  ＮＶＲＡＭ
１３ｂ  ＮＶＲＡＭ
１４  操作パネル
１５  パネル制御部
１６  エンジン
１７  エンジン制御部
１８  記憶装置
１９  ディスクドライバ
２０  通信制御部
２０ａ  通信制御部
２０ｂ  通信制御部
２１  モデム
２２  ホストＩ／Ｆ
２３  バス
２３ａ  バス
２３ｂ  バス
１００  オペレーティングシステム
２００  ドライバ
２００ａ  パネルドライバ
２００ｂ  エンジンドライバ
２００ｃ  通信ドライバ
３００  制御プログラム
３００ａ  パネル制御プログラム
３００ｂ  エンジン制御プログラム
３００ｃ  通信制御プログラム
３１０  画面フロークラス（画面フロー手段の一例）
３１０Ａ  画面フローオブジェクト（画面フロー手段の一例）
３１０ａ  表移行（）
３１０ｂ  裏移行（）
３２０  画面クラス（画面手段の一例）
３２０Ａ  画面オブジェクト（画面手段の一例）
３２０ａ  表示（）
３２０ｂ  非表示（）
３２０ｃ  活性（）
３２０ｄ  非活性（）
３２０ｅ  開始（）
３２０ｆ  終了（）
３３０  画面遷移クラス（画面遷移手段の一例）
３３０Ａ  画面遷移オブジェクト（画面遷移手段の一例）
３３０ａ  遷移元
３３０ｂ  遷移先
３３０ｃ  実行（）
３３１  ポップアップ遷移クラス（ポップアップ遷移手段の一例）
３３１Ａ  ポップアップ遷移オブジェクト（ポップアップ遷移手段の一例）
３３１ａ  実行（）
３３２  ポップダウン遷移クラス（ポップダウン遷移手段の一例）
３３２Ａ  ポップダウン遷移オブジェクト（ポップダウン遷移手段の一例）
３３２ａ  実行（）
３３３  シフト遷移クラス（シフト遷移手段の一例）
３３３Ａ  シフト遷移オブジェクト（シフト遷移手段の一例）
３３３ａ  実行（）
３３４  単一遷移クラス（単一遷移手段の一例）
３３４Ａ  単一遷移オブジェクト（単一遷移手段の一例）
３３４ａ  実行（）
３３５  選択遷移クラス（選択遷移手段の一例）
３３５  選択遷移オブジェクト（選択遷移手段の一例）
３３５ａ  遷移先候補
３３５ｂ  実行（）
４００  アプリケーションプログラム
【図１】
2006085493.tif 000003
【図２】
2006085493.tif 000004
【図３】
2006085493.tif 000005
【図４】
2006085493.tif 000006
【図５】
2006085493.tif 000007
【図６】
2006085493.tif 000008
【図７】
2006085493.tif 000009
【図８】
2006085493.tif 000010
【図９】
2006085493.tif 000011
【図１０】
2006085493.tif 000012
【図１１】
2006085493.tif 000013
【図１２】
2006085493.tif 000014