アプリケーション開発を支援するための開発ツールキットとしてのプログラムおよび該プログラムをインストールした画像形成装置
【課題】本発明は、GUIの開発を支援する開発ツールキットを提供することを課題とする。
【解決手段】上記課題を解決するために、本発明に係るプログラムは、アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、GUI部品と、機能情報とを関連付けると、自動的にGUI部品に対して、機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させることを特徴とする。
【解決手段】上記課題を解決するために、本発明に係るプログラムは、アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、GUI部品と、機能情報とを関連付けると、自動的にGUI部品に対して、機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーション開発を支援するための開発ツールキットとしてのプログラムおよび該プログラムをインストールした画像形成装置に関する。
【背景技術】
【0002】
従来から、アプリケーションをインストールしたりアンインストールすることが可能な複合機が提案されている(特許文献1)。こうした複合機のうち、ハードウェアやそのハードウェア上で動作するアプリケーションプラットフォーム(OSや、OS上で動作するJAVA(登録商標)プラットフォーム)に関しては、複合機ベンダーが開発を行っている。一方、そのアプリケーションプラットフォーム上で動作するアプリケーションについては、複合機ベンダーと提携するサードパーティが中心となって開発を行っている。
【0003】
また、従来から、複合機において、ユーザ(又は、そのユーザの所属するグループ)ごとに利用できる機能をGUI上で制限することが行われている(特許文献2〜5)。具体的には、例えば、ユーザの役職が低い場合に、白黒コピーは指示可能だがカラーコピーは指示不能なGUIを表示画面に表示している。このような装置について以下で簡単に説明する。
【0004】
上記のような機能制限が課されたGUIを有する装置では、まず、ユーザ識別アプリケーションが、操作パネルからユーザにユーザコードを入力させたり、IDカードを使用させたりすることでユーザを識別する。そして、その識別結果をアプリケーションプラットフォーム上で動作するアクセス制御部に送る。
【0005】
そして、アプリケーションプラットフォームで動作するアクセス制御部は、その識別されたユーザに対して許可すべき機能をテーブル(各ユーザの役職を示すテーブル)から判断する。例えば、識別されたユーザの役職が低い場合には、白黒コピーは許可すべきだが、カラーコピーは許可すべきでないと判断する。そして、その判断した情報(機能制限判断情報)を、コピー機能を司るアプリケーションの夫々に送る。ここで、機能制限判断情報とは、GUIの機能に制限を課すか否かを判断するための情報である。
【0006】
情報を受け取ったアプリケーションは、白黒コピーは指示可能だがカラーコピーは指示不能なGUIを表示画面に表示する。
【0007】
【特許文献1】特開2002−287990号公報
【特許文献2】特開2000−357064号公報
【特許文献3】特開2002−178567号公報
【特許文献4】特開2002−240398号公報
【特許文献5】特開平10−58796号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、こうした技術には、以下に示すような問題がある。例えば、コピー機能を司るアプリケーションを第三者(サードパーティ)が作成するとする。このような場合に、設計の手間の関係で、(アプリケーションプラットフォームで動作する)アクセス制御部から送られてきた機能制限判断情報を無視するような設計がなされてしまうことがある。
【0009】
このような場合、その第三者の作成したアプリケーションを用いれば、どんなに役職の低いユーザであっても、白黒コピー、カラーコピーが許可されるGUIがそのユーザの前に表示されることになってしまう。
【0010】
本発明は、上記の課題を鑑みてなされたものである。即ち、アプリケーションプラットフォーム上から送られてくる機能制限判断情報に対応したGUIの開発を支援する開発ツールキットを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本発明に係るプログラムは、アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、GUI部品と、機能情報とを関連付けると、自動的にGUI部品に対して、機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、アプリケーションプラットフォーム上から送られてくる機能制限判断情報に対応したGUIの開発が容易になる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0014】
<実施形態1>
以下で、図面を参照して、実施形態1について説明する。
【0015】
(開発ツールキットの説明)
図1は、本発明に係る開発ツールキットの概略を示す図である。開発ツールキットには、開発用アプリケーションK101、GUI部品群K102、機能APIライブラリK103が含まれる。開発用アプリケーションK101は、通常のパーソナルコンピュータ(PC)のような汎用情報処理装置上で動作する開発用のソフトウェアである。
【0016】
図1の開発用アプリケーションK101は、単体で動作するソフトウェアとして開発者に提供されても良いが、汎用の統合開発環境のプラグインとして提供されても良い。例えば、開発用アプリケーションK101は、統合開発環境として一般に知られているEclipseのプラグインとして提供されても良い。
【0017】
図1のGUI部品群K102は、複合機のGUI操作パネルに表示するためのソフトウェアである。例えば、GUI部品群K102は、ボタン、ラジオボタン、チェックボックス、リストボックス、パネル、ウィンドウなどを含む。従って、本実施形態(及び、これ以降の実施形態)においては、GUI部品とは、ボタン、ラジオボタン、チェックボックス、リストボックス、パネル、ウィンドウの何れかを示す。なお、本明細書において、GUI部品とは、ユーザからの指示を受け付けるために表示される画像を意味する。例えば、ユーザは、この画像にカーソルを合わせる、あるいは、この画像の(ディスプレイ上の)表示位置をタッチすることにより、装置に対して指示を送る(受け付けさせる)ことができる。GUI部品は、本明細書において上述の意味を有するため、アイコンなどであっても良いのは言うまでもない。ただし、GUI部品のうち後述の主GUI部品は、画像であると同時に様々な判断や変更の指示を行う機構を持っている。正確には、主GUI部品をCPUが処理すると、上記様々な判断や変更の指示を行うことが可能となる。
【0018】
図1の機能APIライブラリK103は、画像形成装置用のアプリケーションソフトが、画像形成装置のソフトウェア機能やハードウェア機能のような機能を利用するためのAPIを提供するソフトウェアライブラリ群である。ここで、APIとは、Application Program Interfaceの略である。
【0019】
開発者は、開発用アプリケーションK101を利用して、GUIレイアウトや、プログラムコードを作成し、コンパイルして、画像形成装置にインストール可能なアプリケーションを作成する。
【0020】
上記のソフトウェアK101〜K103は、CD−ROMなどの記録媒体や、インターネットを利用したダウンロード用サイトを介して、開発者に配布されても良い。また、ソフトウェアK101〜K103は、一緒に配布されても、別々に配布されても良い。
【0021】
(開発ツールの説明)
図2は、図1の開発用アプリケーションK101が汎用情報処理装置上で起動され、開発者に利用される際の表示画面を示す図である。
【0022】
図2のGUI部品リスト表示ウィンドウW201は、GUI部品群K102の一覧を表示する。
【0023】
図2のGUIレイアウト編集ウィンドウW202は、画像形成装置のGUI操作パネルに表示される画面である。開発者は、この画面を汎用情報処理装置上で編集することで、画像形成装置のGUI操作パネルを視覚的に編集するのを可能とするための画面である。
【0024】
図2のソースコード表示ウィンドウW203は、開発用アプリケーションK101により自動的に生成されたソースコードを表示したり、開発者が直接ソースコードを編集するのを可能とするための画面である。
【0025】
図2のプロパティ表示ウィンドウW204は、GUIレイアウト編集ウィンドウW202で選択状態のGUI部品の属性に設定された値を表示するウィンドウである。以下では、属性に設定された値のことを、属性の値、又は、属性値と称する。GUI部品の属性の値は、GUIレイアウト編集ウィンドウW202により自動的に設定されたり、開発者の手動の指示により設定される。なお、GUI部品に値が設定されるというのは、GUI部品に値が関連付けられることを意味する。GUI部品の属性の値は、GUI部品そのものが有するのではなく、GUI部品に関連付けられる値なのである。例えば、GUIの属性として、機能属性、グループ属性、表示名属性、表示色属性、GUIの表示形状属性、大きさ属性、表示位置属性、表示状態属性(表示、非表示、グレーアウト)がある。なお、表示状態属性のことを表示属性と呼ぶこともある。ここで、グループ属性とは、GUI部品をグループ化するための情報で、同一属性値の関連付けられたGUI部品は、グルーピングにより互いに関係があることを示す。以降、GUI部品の機能属性に設定される値(属性値)を、機能属性値と称する。
【0026】
機能属性項目P205は、プロパティ表示ウィンドウW204の中の機能属性に設定された機能属性値(例、COPY)を表示する箇所を指し示している。ユーザが、この機能属性項目P205内の機能属性値の変更を指示した場合、開発ツールキットは、GUI部品の機能属性に新しい機能属性値を設定する。なお、機能属性値のことを機能情報と称することもある。なお、機能情報とは、装置の機能に関する情報である。例えば、装置が、画像形成装置であれば、機能情報には、プリント、コピー、スキャンのような機能が含まれ、機能情報により、装置の機能が特定される。
【0027】
ここで、開発用アプリケーションK101によりソースコードが生成されたGUI部品のうち、より上位のGUI部品(例えば、図13のパネルG1301)を示す際は、主GUI部品と称する。また、主GUI部品に登録された(配置するように設定された)GUI部品(例えば、図13のコピーボタンG1302、SENDボタンG1303、リストボックスG1304)を示す際は、サブGUI部品と称す。
【0028】
なお、開発用アプリケーションK101によりソースコードが生成されたサブGUI部品は、以下のように構成されている。すなわち、サブGUI部品は、その(サブGUI部品)の機能属性に機能属性値が設定される前から、以下のような情報が関連付けられている。即ち、サブGUI部品は、そのGUI部品を管理する主GUI部品がNOの情報を受け取った場合に「表示」から「グレーアウト表示」にサブGUI部品の表示属性を設定し直すべきだと主GUI部品が判断するための情報が関連付けられている。
【0029】
なお、本実施形態では、サブGUI部品が、NOの情報を受取りうるのは以下の二つの場合である。一つ目の場合は、後述する図9の機能ライブラリ31のAPIの応答結果がNO、即ち、サブGUI部品に関連付けられた機能情報により特定される機能が画像形成装置内に存在しない場合である。二つ目の場合は、後述する図9のアクセス制御部32から送られてくる情報がNO、即ち、サブGUI部品に関連付けられた機能情報により特定される機能の利用を、サブGUI部品が許されない場合である。
【0030】
(GUI部品の機能属性の説明)
GUI部品の機能属性への機能属性値の設定は、例えば、図3に示すような画像形成装置ベンダーが定義した機能属性値の中から、ユーザの選択指示に従って、行われる。
【0031】
ここで、例えば、PRINT、COPY、SCANの機能属性値は、それぞれプリント、コピー、スキャンなど画像形成装置の機能を特定する情報である。
【0032】
また、例えば、BOX、SEND、FAXなどの機能属性値は、それぞれスキャンデータのハードディスクへの保存、スキャンデータの電子メールのような外部送信など画像形成装置の機能を特定する情報である。
【0033】
また、例えば、COLOR、BWは、それぞれスキャンデータに対するカラー処理、白黒処理など画像形成装置の機能を特定する情報である。
【0034】
また、機能属性に、機能属性値として、開発者が独自に定義した値を設定することも可能である。
【0035】
画像形成装置が機能属性値を解釈できない場合にはその値は無視される。
【0036】
図4は、GUI部品の機能属性に特定の機能属性値を設定する際の一例を示している。
【0037】
図4では、一例として、通常の実行スタートボタン401の機能属性にCOPYという機能属性値が設定され、コピースタートボタンであることが表現されている。
【0038】
また、図4では、一例として、リストボックス402の「カラー」の機能属性にCOLORという機能属性値が設定され、「モノクロ」の機能属性にBWという機能属性値が設定されている。この時、GUI部品の一種であるリストボックス402の機能属性には、複数の機能属性値が設定されていることになる。このように、機能属性には複数の機能属性値を設定可能であり、COLORとCOPYを設定することでカラーコピーを表現することもできる。
【0039】
また、図4では、一例として、チェックボックス403の「チェック有」の場合の機能属性にCOLORとCOPYという機能属性値が設定されており、「チェック無」の場合の機能属性にBWとCOPYという機能属性値が設定されている。
【0040】
上記のように、選択ボタン、リストボックスや、チェックボックスなどの選択状態を表現するGUI部品には、機能属性として複数の機能属性値が設定される。
【0041】
(コードの自動生成動作の説明)
次に、本発明における、GUI部品の機能属性にある機能属性値が設定することをユーザから指示された際の、開発用アプリケーションK101の動作を図5のフローチャートを参照して以下で説明する。
【0042】
ここで、開発用アプリケーション(アプリケーションはソフトウェアの一種である)K101は、開発用アプリケーションK101がインストールされている装置上のCPUが、開発用アプリケーションK101の命令を読み取ることにより動作する。また、以下で、開発用アプリケーションK101は、一例として、パーソナルコンピュータにインストールされているものとして説明を行う。
【0043】
まず、図5のステップS501で、開発用アプリケーションK101は、以下の処理を実行する。すなわち、プロパティ表示ウィンドウW204の機能属性項目P205に、GUI部品の機能属性値の関連付けがユーザから指示された(機能属性項目P205にユーザが機能属性値を入力した)ことを検知して、ソースコードの自動生成を開始する。なお、検知以降、ステップS505の処理が終了するまで、ユーザからの指示を受け付けることなく、自動的に処理が進んでいく。以降の処理で、開発用アプリケーションK101は、ディスプレイに表示されているGUI部品と機能情報とを関連付けることができる。
【0044】
次に、ステップS502で、開発用アプリケーションK101は、GUI部品に設定するようユーザから指示された機能属性値を取得する。
【0045】
次に、ステップS503で、開発用アプリケーションK101は、ステップS502で取得した機能属性値をGUI部品に関連づけるためのソースコードを自動生成する。具体的には、GUI部品のクラス変数に機能属性値を設定するためのソースコードを自動生成する。
【0046】
例えば、GUI部品は、オブジェクト指向設計におけるクラス構造体として表現され、機能属性値はそのクラスのクラス変数として表現可能であるため以下のようなソースコードが生成される。
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
【0047】
次に、ステップS504で、開発用アプリケーションK101は、GUI部品の機能属性値により特定される(画像形成装置の)機能の利用可否を(アクセス制御部32に)問い合わせるためのAPI、を呼び出すためのソースコードを自動生成する。自動生成されたソースコードは、GUI部品がディスプレイに表示される直前に処理される。
【0048】
これにより、ステップS504に係るソースコードは、GUI部品に関連付けられた機能情報により特定される機能の利用可否について、その機能の利用可否を管理するアクセス制御部32への問い合わせを自動的に行うための命令を含むこととなる。
【0049】
そして、ステップS504において、開発用アプリケーションK101は、ステップS504に係るソースコードと、GUI部品とを関連付ける。
【0050】
ここで、GUI部品は、例えば、開発用アプリケーションK101で開発中のアプリケーションがディスプレイに表示させる表示画面に配置されるGUI部品でも良い。この場合、開発用アプリケーションK101で開発中のアプリケーションとステップS504に係るソースコードが関連付けられることになる。
【0051】
なお、画像形成装置と記載したが、上述のように、本実施形態においては、開発用アプリケーションは、画像形成装置上で動作するわけではなく、パーソナルコンピュータ上で動作する。そのため、ここでは、画像形成装置とは、本開発アプリケーションを通じて作成されたソースコードがインストールされた装置のことを示す。
【0052】
次に、ステップS505で、開発用アプリケーションK101は、利用可否の問い合わせの応答結果に応じてGUI部品の表示状態を変更するソースコード、を自動生成する。機能の利用可否を問い合わせるAPIは、前述の機能APIライブラリK103から提供される。
【0053】
すなわち、ステップS505に係るソースコードは、「GUI部品の機能属性値により特定される機能の利用可否に関する情報を管理するアクセス制御部32」への問い合わせに対する応答の結果に応じてGUI部品の表示状態を決定するための命令を含む。このソースコードには、サブGUI部品を管理する主GUI部品がNOの情報を受け取った場合に「表示」から「グレーアウト表示」に、サブGUI部品の表示属性を設定し直すべきだと主GUI部品が判断するべきである、ことが記載されている。つまり、そう主GUI部品は、上記場合に上記判断をするように、そのソースコード上で構成されている。
【0054】
そして、ステップS505において、開発用アプリケーションK101は、ステップS505に係るソースコードと、GUI部品とを自動的に関連付ける。
【0055】
ここで、GUI部品は、例えば、開発用アプリケーションK101で開発中のアプリケーションがディスプレイに表示させる表示画面に配置されるGUI部品でも良い。この場合、開発用アプリケーションK101で開発中のアプリケーションとステップS505に係るソースコードが関連付けられることになる。
【0056】
例えば、下記のAPI例(1)(2)ようにGUI部品のクラスそのものや、機能属性値を渡して判定を依頼するような汎用的なAPIや、下記のAPI例(3)のような機能毎に用意されたAPIを提供する。
【0057】
例えば、API例(3)のようなAPIを使用するソースコードを自動生成する場合は、機能属性値と、機能属性値に対応したAPIとを関係付けるテーブルを開発ツールキットに設ける。開発用アプリケーションK101は、上記のテーブルを参照し、GUI部品に設定された機能属性値を元に、機能の利用可否を問い合わせるためのAPIをGUI部品に関連づけることができる。
【0058】
図26は、一例として、開発用アプリケーションK101が後述のソースコード例(3)を自動生成する際に参照するテーブル2601、を示している。テーブル2601は、GUI部品の表示の仕方についての情報を含んでいる。
【0059】
開発用アプリケーションK101は、テーブル2601を参照する際に、GUI部品のクラス(例えば、「ボタン」)の情報をGUI部品リスト表示ウィンドウW201から取得しても良い。また、開発用アプリケーションK101は、テーブル2601を参照する際に、GUI部品の表示名(例えば、「コピー」)の情報を、プロパティ表示ウィンドウW204から取得しても良い。
API例(1)
Void IsAvailableFunction( GUI部品クラス ); ・・・GUI部品に設定された機能属性から利用可否を判定し、GUI部品の表示状態を設定するAPI。
API例(2)
Bool IsAvailableFunction( 機能属性値 ); ・・・機能属性値を渡し、利用の可否を応答するAPI。
API例(3)
Bool IsAvailableCopyFunction( ); ・・・コピー機能の利用の可否を応答するAPI。
【0060】
上記APIを使用して自動生成したソースコードは例えば以下のようになる。下記のソースコード例(2)、(3)は、APIからの応答結果を受けてGUI部品の表示状態を変更することを示している。API例(1)のAPIは、機能の利用可否判定と、GUI部品との表示状態変更処理の両方の機能を有するものとする。
ソースコード例(1)
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
IsAvailableFunction(Button1); // GUI部品の利用可否を判定した上で表示状態が設定される。
ソースコード例(2)
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
Bool bResult = IsAvailableFunction( Button1.Function ); // 機能の利用可否を問いあわせる。
If( bResult == TRUE ){
Button1.Visible = TRUE; // 利用可能であれば、表示する
} else {
Button1.Visible = FALSE; // 利用不可であれば、表示しない。
}
ソースコード例(3)
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
Bool bResult = IsAvailableCopyFunction(); // コピー機能の利用可否を問いあわせる。
If( bResult == TRUE ){
Button1.Eable= TRUE; // 利用可能であれば、表示する
} else {
Button1. Eable = FALSE; // 利用不可であれば、グレーアウトに設定し直して表示する。
}
上記のソースコードはあくまでの一例であり、上記に示されたソースコードにより実行されるコンピュータの処理と同等の処理を決定するコンピュータで実行可能な命令又は命令のセットであればどのようなものでも良い。
【0061】
GUI部品は、利用可否の問い合わせの応答結果を1回もしくは複数回、非同期に受信し、応答結果を受信する度に、応答結果に応じて再度GUI部品の表示状態を変更して画面の再描画を行うようなケースが存在する。この場合、GUI部品は、非同期に応答結果を受信する必要があるため、応答結果を受信するための関数を、機能APIライブラリの関数登録用APIを使用して登録するソースコードを生成する。具体的なアプリケーション動作時の動作については後述の実施形態4に記載する。
【0062】
<実施形態2>
以下で、図面を参照して、実施形態2について説明する。
【0063】
実施形態1では、開発ツールキットで提供されるGUI部品群K102の夫々に、開発者が機能属性の機能属性値を設定する実施形態を示した。実施形態2では、開発ツールキットで提供されるGUI部品が利用目的に予め作成されており、各GUI部品に、各機能の利用の可否を画像形成装置に対して問い合わせる為のプログラムが組み込まれている場合の実施形態を示す。
【0064】
図6は、開発用アプリケーションK101の起動画面を示している。例えば、GUI部品リスト表示ウィンドウW601には、コピー用のボタン、プリント用のボタン、スキャン用のボタン、スキャンデータの外部送信用ボタン、カラーや白黒を選択するためのチェックボックスや、リストボックスなどが表示される。これらのGUI部品は、開発ツールキットのGUI部品群K102から提供され、開発用アプリケーションK101にロードされて表示される。
【0065】
これらのGUI部品には、機能情報と、機能情報に含まれるそれぞれの機能の利用可否を問い合わせるための命令であるAPI呼び出しを行うプログラムとがセットで組み込まれている。例えば、実施形態1で示したソースコードの例の一部が、GUI部品の表示処理プログラムに組み込まれている。
【0066】
次に、実施形態2における開発用アプリケーションK101の動作を図7のフローチャートを参照して以下で説明する。
【0067】
まず、ステップS701で、開発用アプリケーションK101は、開発用アプリケーションK101で開発中のアプリケーションで表示させるための表示画面に、GUI部品が配置されることを検知する。
【0068】
具体的には、例えば、開発用アプリケーションK101は、開発者によってGUI部品リスト表示ウィンドウW601から、GUIレイアウト編集ウィンドウW602にGUI部品がドラッグアンドドロップして配置されたことを検知する。
【0069】
次に、ステップS702で、開発用アプリケーションK101は、画像形成装置用のアプリケーションが、GUI部品を利用するためのソースコードを自動生成する。
【0070】
ここで、ステップS702に係るソースコードは、ステップS701で検知されたGUI部品に関連付けられた機能情報により特定される機能の利用可否についてアクセス制御部32に問い合わせを行うための命令を実行するためのソフトウェアとなる。
【0071】
そして、ステップS702において、開発用アプリケーションK101は、ステップS702に係るソフトウェアと、GUI部品とを自動的に関連付ける。
【0072】
例えば、開発用アプリケーションK101は、以下のようなソースコードを生成する。
CopyButton copyButton1; // コピーボタンの生成
copyButton1.Update(); // ボタンの表示実行
【0073】
上記のソースコードはあくまでの一例であり、上記に示されたソースコードにより実行されるコンピュータの処理と同等の処理を決定するコンピュータで実行可能な命令又は命令のセットであればどのようなものでも良い。
【0074】
上記、ソースコードでは、コピー機能の利用可否を問い合わせる機能を有するボタン用クラスのインスタンスを生成している。実施形態1で示した、機能の利用の可否と問い合わせや、利用可否の応答結果に応じたGUI部品の表示状態の変更処理は、copyButton.Updata() の内部処理として実行される。
【0075】
実施形態1、2では、GUI部品の一例として、ボタンのソースコードを生成する処理について説明したが、パネルやリストボックスのようなGUI部品のソースコードを生成する処理も、実施形態1、2に示されているのと同様の処理によって実行される。
【0076】
また、実施形態1、2に係るソフトウェアK101〜K103は、GUI部品群の相互関係を定めるソースコードを作成することができる。例えば、実施形態1、2に係るソフトウェアK101〜K103は、パネルの上にボタンが配置されるというソースコードを作成することができる。
【0077】
<実施形態3>
以下で、図面を参照して、実施形態3について説明する。
【0078】
本発明のユーザの機能の利用権限に応じたGUI部品表示を実施した画像形成装置(画像形成装置)における実施形態について、以下で説明する。
【0079】
図8は、本発明のアプリケーションプラットフォームを適用した画像形成装置の概略を示すブロック図である。
【0080】
(画像形成装置1の説明)
図8に示されているように画像形成装置1は、印刷装置11及び画像処理装置12からなる。
【0081】
画像処理装置12は、CPU121と、直接記憶部122(例えば、RAM)と、間接記憶部123(例えば、ROMやHDD)と、ユーザインターフェース124と、外部インターフェース125とからなる。
【0082】
直接記憶部122は、CPU121と、直接データとをやり取りする記憶部であり、間接記憶部123は直接記憶部122を介してCPU121と、データとをやり取りする記憶部である。直接記憶部122には、種々のアプリケーションプログラム及びプラットフォームプログラムが記憶されている。
【0083】
ユーザインターフェース124は、例えば、キーボード、マウス、ディスプレイからなり、ユーザからの指示の受付け、データ(画面データ)の表示をすることが可能となっている。
【0084】
外部インターフェース125は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリのような外付け記憶装置や、ネットワークを介して接続された別体のホストコンピュータ(パーソナルコンピュータ)や画像形成装置1のような別体装置が含まれる。
【0085】
(プラットフォーム部20の説明)
CPU121は、間接記憶部123に記憶されたプラットフォームプログラムを直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、CPU121がプラットフォームプログラムを実行することができる状態になる。本実施形態では、このように「CPU121がプラットフォームプログラムを実行することができる状態になること」を、プラットフォーム部20が起動すると称する。
【0086】
なお、本実施形態では、以下の3個の装置の組み合わせをプラットフォーム部20と称している。
・CPU121
・直接記憶部122のうちのプラットフォームプログラムを記憶している装置
・CPU121が上記プラットフォームプログラムを処理した際に得られる情報(例えば、計算結果)を記憶する(直接記憶部122及び間接記憶部123のうちの)装置
【0087】
(アプリケーションプログラムの説明)
プラットフォーム部20は、間接記憶部123に記憶された第一のアプリケーションプログラムおよび、アプリケーション実行に必要なプログラム群を直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、プラットフォーム部20が第一のアプリケーションプログラムを実行することができる状態になる。本実施形態ではこのことを、プラットフォーム部20が第一のアプリケーションプログラムを起動すると称する。
【0088】
逆に、プラットフォーム部20は、直接記憶部122に記憶された第一のアプリケーションプログラムを直接記憶部122から削除することができる。本実施形態ではこのことを、プラットフォーム部20が第一のアプリケーションプログラムを停止すると称する。
【0089】
プラットフォーム部20は、外部インターフェース125を介して第一のアプリケーションプログラムであるデータを受信し記憶することができる。本実施形態ではこのことを、プラットフォーム部20に第一のアプリケーションプログラムをインストールすると称する。
【0090】
逆に、プラットフォーム部20は、(プラットフォーム部20の内部にある)間接記憶部123に記憶された第一のアプリケーションを間接記憶部123から削除することができる。本実施形態ではこのことを、プラットフォーム部20が第一のアプリケーションをアンインストールすると呼称する。
【0091】
尚、プラットフォーム部20が第一のアプリケーションをアンインストールする際に、第一のアプリケーションが起動している場合には、これを停止した後にアンインストールを行う。
【0092】
また、以上の説明は、第一のアプリケーションプログラムを例にして説明を行ったが、他のアプリケーションプログラム(例、第二のアプリケーションプログラム)であっても同様であることは当業者には明白であろう。
【0093】
図9は、画像形成装置1におけるプラットフォーム部20上で起動するアプリケーションおよび、アプリケーションの動作環境を示す図である。
【0094】
図9の機能ライブラリ31は、アプリケーションが画像形成装置のソフトウェア機能およびハードウェア機能を呼び出すためのプログラムである。
【0095】
図9のアクセス制御部32は、画像形成装置にログインするユーザの情報や機能利用権限などを参照して、ログイン中のユーザが、各種画像形成装置が有する機能を利用可能な否かを判定する。
【0096】
図9のログイン処理部33は、ディスプレイ上に、ユーザのアカウント認証情報を入力可能なログイン画面(図10の画面1001)を表示し、ユーザからの入力動作を受けて、ユーザ認証処理を行う。さらにログイン処理部33は、認証したユーザに対する機能利用権限情報(図12のテーブル1201)を、間接記憶部123や外部インターフェース125を介して取得し、直接記憶部122に記憶する。
【0097】
図9において、アプリケーション1(41)、アプリケーション2(42)、アプリケーション3(43)は、画像形成装置上で起動しているアプリケーションであり、それぞれディスプレイ上に表示するための、GUI部品を抱えている。
【0098】
例えば、実施形態1および実施形態2にかかるGUI部品を実現するソースコードを、プラットフォーム部20上で起動するアプリケーション1〜3(41〜43)として動作するものとしてインストールすることができる。
【0099】
図11は、画像形成装置1にログインするユーザの管理テーブル1101を示す図である。管理テーブル1101には、ユーザ情報が記録されている。
【0100】
管理テーブル1101は、間接記憶部123や外部装置に記憶されている。
【0101】
図12は、ユーザの画像形成装置が有する機能に対する機能利用権限情報を表す図である。図12の機能利用権限情報(テーブル1201)に含まれているユーザの利用権限はユーザ毎に異なり、ユーザの管理テーブル1101に登録されたそれぞれのユーザと関連付けて、間接記憶部123や外部装置に記憶される。例えば、図12のテーブル1201は、白黒でのプリント、コピー、およびBOX(内部記憶装置へのスキャンデータの保存と取得)は、許可されていることを示している。そして、図12のテーブル1201は、カラーのプリント、コピーおよびBOXは、禁止されており、SEND(外部へのスキャンデータ送信)、FAXも禁止されていることを示している。
【0102】
すなわち、図12のテーブル1201の機能利用権限情報により、ユーザが利用可能な機能が特定される。なお、図12に示されている機能利用権限情報は、あくまでも一例であり、機能利用権限情報に利用可能回数が含まれていても良い。ここで、利用可能回数とは、例えば、ユーザが機能を利用できる回数である。
【0103】
図13は、アプリケーションのGUIのレイアウト例を表す図である。ここで、パネルG1301、コピーボタンG1302、SENDボタンG1303、リストボックスG1304は、GUI部品である。パネルG1301の上には、コピーボタンG1302、SENDボタンG1303、リストボックスG1304が配置されている。
【0104】
ここで、パネルG1301(主GUI部品)は、パネルG1301を表現するソースコードがインストールされている装置上のCPUが、パネルG1301を表現する命令を読み取ることにより動作する。また、以下で、パネルG1301を実現するソースコードは、一例として、画像形成装置1に接続されたパーソナルコンピュータにインストールされているものとして説明を行う。
【0105】
パネルG1301とその上に配置されるGUI部品は、従属関係にあり、ソースコードとして以下のようなコードで、表現することができる。
【0106】
なお、以下のソースコードは、実施形態1、2に係るソフトウェアK101〜K103により生成される。
【0107】
まず、実施形態1、2に係るソフトウェアK101〜K103は、panelG1301という名前のパネルG1301と、copyButtonG1302という名前のコピーボタンG1302とを生成する。また、実施形態1、2に係るソフトウェアK101〜K103は、sendButtonG1303という名前のSENDボタン1303と、listBoxG1304という名前のリストボックスG1304とを生成する。
【0108】
ここで、ボタンG1302、1303の名前は、図2の表示画面のプロパティ表示ウィンドウW204の識別番号によって定められても良い。例えば、図2の表示画面のプロパティ表示ウィンドウW204の識別番号が「G1302」で、機能が「COPY」のときには、ボタンの名前が「copyButtonG1302」と、実施形態1、2に係るソフトウェアK101〜K103により定められても良い。
【0109】
また、ボタンG1302、1303と同様に、パネルG1301の名前は、図2の表示画面のプロパティ表示ウィンドウW204の識別番号によって定められても良い。例えば、図2の表示画面のプロパティ表示ウィンドウW204の識別番号が「G1301」で、機能が「PANEL」のときには、ボタンの名前が「panelG1301」と、実施形態1、2に係るソフトウェアK101〜K103により定められても良い。
【0110】
実施形態1、2に係るソフトウェアK101〜K103は、ボタンG1302、1303、リストボックスG1303とパネルG1301との関係を定めるソースコードを作成することもできる。例えば、実施形態1、2に係るソフトウェアK101〜K103は、ボタンG1302、1303と、リストボックスG1304とをパネルG1301上に配置するソースコードを作成することができる。
【0111】
以上の、実施形態1、2に係るソフトウェアK101〜K103で生成された、GUI部品G1302〜G1304のソースコードと、GUI部品G1302〜G1304をパネルG1301上に配置するソースコードから以下のソースコードが生成される。
Panel panelG1301; // パネルG1301を生成せよ、という意味
panel.Add( copyButtonG1302 ); // コピーボタンG1302の登録(コピーボタンG1302を、生成されたパネルの上に配置せよ、という意味)
panel.Add( sendButtonG1303 ); // SENDボタンG1303の登録
panel.Add( listBoxG1304 ); // リストボックスG1304の登録
【0112】
上記のソースコードはあくまでの一例であり、上記に示されたソースコードにより実行されるコンピュータの処理と同等の処理を決定するコンピュータで実行可能な命令又は命令のセットであればどのようなものでも良い。
【0113】
以降、実施形態1、2の説明でも述べたように、より上位のGUI部品(例えば、パネルG1301)を示す際は、主GUI部品と称する。また、主GUI部品に登録された(配置するように設定された)GUI部品(例えば、コピーボタンG1302、SENDボタンG1303、リストボックスG1304)を示す際は、サブGUI部品と称す。
【0114】
主GUI部品は、サブGUI部品が有するAPIを呼び出すことによりサブGUI部品の状態を取得したり、変更したりすることができる。サブGUI部品は、状態の変化(例えばボタンの押下、選択状態の変化)などを主GUI部品が有するAPIを呼び出すことによって通知することができる。また、アプリケーションは、そのアプリケーション内の主GUI部品のAPIを呼び出すことになる。この主GUI部品のAPIを呼び出す動作を、GUI部品がアプリケーションからの表示要求を検知すると称す。なお、主GUI部品のAPIを呼び出すのは、アプリケーションの全体ではなくて、アプリケーションのうちの「ディスプレイへの表示要求の指示を」外部から受取るモジュールである。即ち、アプリケーションのうちの「プラットフォーム部20から呼び出され、ディスプレイへの画面表示処理を促される」モジュールである。以下では、このモジュールのことを、そのままアプリケーションと称する。
【0115】
主GUI部品は表示要求を検知すると、サブGUI部品の表示処理も合わせて実行する。このためアプリケーションは、主GUI部品にのみ表示要求を行えばよく、個々のサブGUI部品に対しては表示要求を行う必要が無い。主GUI部品は、サブGUI部品から取得した機能属性値を用いて、機能ライブラリのAPIを呼び出すことによりサブGUI部品群の利用可否を問い合わせることができる。以降の説明では、このことを、単に、主GUI部品が、サブGUI部品の利用可否を問い合わせると称す。
【0116】
なお、主GUI部品は、NOの情報を受取るとサブGUI部品の表示属性の値を設定し直すように構成されている。本実施形態では、表示属性の値が表示とされているようなサブGUI部品であっても、NOの情報を受取ると、主GUI部品は、サブGUI部品の表示属性の値を、例えば、グレーアウトに設定し直す(変更する)。なお、本実施形態では、NOの情報を受取りうるのは以下の二つの場合である。
【0117】
一つ目の場合は、図9の機能ライブラリ31のAPIの応答結果がNOで、サブGUI部品の利用が不可能な場合である。二つ目の場合は、図9のアクセス制御部32で利用がNOで、サブGUI部品の利用が不可能な場合である。
【0118】
以降の説明では、パネルG1301は主GUI部品であり、コピーボタンG1302、SENDボタンG1303、リストボックスG1304はサブGUI部品として解説する。
【0119】
図14に示されているように、機能属性値としてコピーボタンG1302にはCOPY、SENDボタンG1303にはSEND、リストボックスG1304の『カラー』選択時は、COLOR、『モノクロ』選択時にはBWが設定されているものとする。これらの機能属性値は、実施形態1や実施形態2の開発ツールキットを使って、アプリケーション作成時に予め設定されていることが考えられるが、アプリケーションが動的に書き換えても良い。
【0120】
さらに、コピーボタンG1302、SENDボタンG1303、リストボックスG1304は、グルーピングにより関連付けられている。リストボックスG1304の『カラー』選択時に、コピーボタンG1302が押下された場合は、カラーコピーが実行される。
【0121】
『モノクロ』選択時に、コピーボタンG1302が押下された場合は、白黒コピーが実行される。リストボックスG1304の『カラー』選択時に、SENDボタンG1303が押下された場合は、スキャンされたカラー画像データの外部送信が実行される。一方、『モノクロ』選択時に、SENDボタンG1303が押下された場合は、スキャンされた白黒画像データの外部送信が実行される。
【0122】
次に、図13のアプリケーションのGUIを例として、図15のフローチャートを参照して、本発明に係るGUI部品を使用したアプリケーションのGUI画面の表示時の動作について説明する。
【0123】
アプリケーションのGUI画面表示前に、ユーザが画像形成装置にログインしており、認証されたログイン中のユーザの情報および機能利用権限情報(図12のテーブル1201)が、直接記憶部122に記憶されているものとする。
【0124】
具体的には、ユーザは、ログイン処理部33が表示する図10の画面1001のようなログイン画面上で、ユーザ情報を入力することにより画像形成装置へのログイン動作を行う。
【0125】
ここで、ユーザ情報は、ユーザ名やパスワードのような、ユーザIDを含んでも良い。
【0126】
図9のログイン処理部33は、ユーザのログイン動作を検知して、入力されたユーザ情報を取得し、画像形成装置の間接記憶部123に記録された管理テーブル1101と比較することによりユーザの認証処理を行う。
【0127】
ユーザが正規のユーザである場合は、さらに間接記憶部123からユーザ情報と、ユーザ情報に関連づけられた機能利用権限情報(図12のテーブル1201)とを直接記憶部122に読み出す。直接記憶部122に記憶したユーザ情報およびユーザの機能利用権限は、アプリケーション1(41)、2(42)、3(43)や、アクセス制御部32が参照することができる。
【0128】
ログイン処理部33は、ログイン処理の完了を、プラットフォーム部20に通知する。プラットフォーム部20は、ログイン処理の完了の通知を受けて、アプリケーション1(41)、2(42)、3(43)に対しディスプレイへの画面表示処理を促す。そして、プラットフォーム部20から呼び出されたアプリケーション1(41)、2(42)、3(43)は、主GUI部品に対して表示要求を行う。
【0129】
図15に示されているように、まず、ステップS1501で、主GUI部品たるパネルG1301が、アプリケーションから、表示要求を検知して、GUI部品をディスプレイに表示させるための命令を受取ることにより動作を開始する。
【0130】
ここで、パネルG1301は、主GUI部品であり、主GUI部品上のサブGUI部品に関連付けられている機能情報を、いつでも、取得することができる。
【0131】
次に、ステップS1502で、パネルG1301は、パネルG上のサブGUI部品(コピーボタンG1302、SENDボタンG1303、リストボックスG1304)の機能属性値を取得する。そして、パネルG1301は、取得した機能属性値を機能ライブラリ31のAPIを介してアクセス制御部32に通知することによりサブGUIに関連付けられている機能情報により特定される各機能の利用可否を問い合わせる。
【0132】
この時、パネルG1301は、サブGUI部品に設定された機能属性値を合成(合算)する。例えば、パネルG1301は、合成(合算)により得られた機能属性値として、カラーコピー(COPY/COLOR)、白黒コピー(COPY/BW)、カラー画像データの外部送信(SEND/COLOR)、白黒データの外部送信(SEND/BW)を生成する。
【0133】
次に、ステップS1503で、パネルG1301は、アクセス制御部32に、ログイン中のユーザのサブGUI部品に関連付けられた機能情報により特定される機能の利用権限を問い合わせる。
【0134】
上記のように、パネルG1301は、サブGUI部品の機能属性値の合算により得られた情報を用いて、サブGUI部品に関連付けられた機能情報により特定される機能の利用可否を、アクセス制御部32に問い合わせる。
【0135】
次に、ステップS1504で、問い合わせを受けたアクセス制御部32は、直接記憶部122からログイン中のユーザのサブGUI部品の機能利用権限情報(図12のテーブル1201)を取得する。すなわち、ステップS1504で、アクセス制御部32は、ユーザ情報に関連付けられた機能制限情報を取得する。
【0136】
そして、アクセス制御部32は、パネルG1301から通知された機能属性値とテーブル1201との比較を行い、サブGUI部品の機能の利用が可能か否か(YES又はNO)を判定する。すなわち、アクセス制御部32は、パネルG1301から通知された機能属性値とテーブル1201との対応関係に基づいて、パネルG1301から通知された機能属性値がテーブル1201において利用が可能とされている場合には、可能と判定する。一方、アクセス制御部32は、パネルG1301から通知された機能属性値とテーブル1201との対応関係に基づいて、パネルG1301から通知された機能属性値がテーブル1201において利用が不可能とされている場合には、不可能と判定する。
【0137】
例えば、図13のリストボックスG1304で、「カラー」が選択され、コピーボタンG1302が押下された場合には、機能属性値は、「カラーコピー(COPY/COLOR)」である。したがって、図12のテーブル1201より、「カラーコピー(COPY/COLOR)」機能の利用は不可能(NO)であると判定される。
【0138】
次に、ステップS1505で、アクセス制御部32は、判定結果(YESorNO)を、パネルG1301に通知する。
【0139】
次に、ステップS1506で、パネルG1301は、ステップS1505で通知された判定結果(YES又はNO)を参照して、サブGUI部品の機能の利用が可能か否か(YES又はNO)を判定する。判定結果がYESの場合は、機能の利用はYESである。参照結果がNOの場合は機能の利用はNOである。
【0140】
ステップS1506で、YESの情報を受取ったと判定した場合には、ステップS1507に進み、パネルG1301は、サブGUI部品を、表示属性の値を変更することなく、パネルG1301に表示する。そして、ステップS1509に処理が進む。
【0141】
一方、ステップS1506で、NOの情報を受取ったと判定した場合には、ステップS1508に進み、パネルG1301は、サブGUI部品をパネルG1301で所定の表示状態になるように決定する。そして、パネルG1301は、その決定に基づく表示をする(例えば、非表示にする、グレーアウト表示する)。そして、ステップS1509に処理が進む。なお、所定の表示状態とは、例えば非表示、グレーアウト表示のように、そのサブGUI部品(又は、そのサブGUI部品の一部)をユーザに選択させないための状態のことである。ここで、例えば、サブGUI部品がリストボックスの場合には、ユーザにサブGUI部品の一部を選択させないために、サブGUI部品の一部が非表示となっても良い。また、例えば、サブGUI部品がチェックを受け付けるGUI部品の場合には、ユーザにサブGUI部品の一部を選択させないために、サブGUI部品のチェックを受け付ける部分が非表示となっても良い。
【0142】
このステップS1508で、パネルG1301は、図12のテーブル1201において、パネルG1301は、カラー白黒に関わらず利用不可であるSENDボタンの表示状態を表す属性(表示属性の値)をグレーアウトに設定し直すように決定し、設定し直す。そして、パネルG1301は、パネルG1301上に、SENDボタンをグレーアウトの状態で表示する。なお、パネルG1301は上述したように予めディスプレイに表示されている。
【0143】
ここで、テーブル1201の内容に基づいて、例えば、パネルG1301上のリストボックスG1304と、SENDボタンG1303とが両方ともグレーアウトの状態で表示される場合もある。また、テーブル1201の内容に基づいて、例えば、パネルG1301上のリストボックスG1304のうち「カラー」のみがグレーアウトの状態で表示され、SENDボタン1303はグレーアウトの状態では表示されない(通常表示される)場合もある。
【0144】
上記のステップS1506〜1508の処理により、ステップS1502に係るアクセス制御部32への問い合わせに対する応答の結果に応じた表示状態のGUI部品をディスプレイに表示させるように制御することができる。
【0145】
そして、ステップS1509で、表示処理が終了する。
【0146】
図15の処理により、機能情報に関連付けられたGUI部品が複数存在する場合に、機能情報により特定される機能の利用可否に関する情報を管理するアクセス制御部32からの応答結果に応じて、GUI部品の表示状態が決定される。
【0147】
また、機能情報に関連付けられたGUI部品が複数存在する場合に、GUI部品の表示状態が変化した場合に、機能情報により特定される機能の利用可否に関する情報に応じて、GUI部品に関連する他のGUI部品の表示状態が決定されてもよい。
【0148】
図16は、ログイン中のユーザの機能利用権限情報(図12のテーブル1201)を元に表示された初期表示時のGUIの一例を示している。
【0149】
アプリケーションのGUI表示後、ユーザのGUI操作により、GUIの表示状態が変化したことを検知すると、GUI部品は、機能の利用の可否を再判定し、再びGUI部品の表示状態を更新する。
【0150】
例えば、図16の状態において、カラーコピー(COPY/COLOR)が禁止である場合に、パネルG1301が、ユーザがリストボックスG1304の選択状態を『モノクロ』から『カラー』に変更したことを検知すると以下の処理が実行される。すなわち、パネルG1301は、図17に示されているように、カラーコピー(COPY/COLOR)を禁止するために、コピーボタンG1302の表示状態を表す属性をグレーアウトに設定する。
【0151】
このとき、パネルG1301は、初期表示時に取得したカラーコピー(COPY/COLOR)の利用可否の判定結果を使用しても、再びアクセス制御部32に問い合わせても良い。予め初期表示時に、コピー、SENDに関わらず利用できないリストボックスG1304の『カラー』を選択できないように、グレーアウトや非表示するといった制御も可能である。
【0152】
<実施形態4>
以下で、図面を参照して実施形態4について説明する。
【0153】
下記、実施形態は、画像形成装置の機能の利用可否に関する情報を管理する管理手段が複数存在する場合に、ネットワークを通じてGUI部品の機能の利用可否を問い合わせる時間を短縮するものである。上記問題を解決するため、本実施形態は、画像形成装置が格納している過去のGUI部品の機能利用可否の判定履歴(利用可否判定履歴)を利用してGUI部品の表示を速やかに行う。
【0154】
本実施形態では、実施形態3と同様に、例えば、実施形態1および実施形態2にかかるGUI部品を実現するソースコードを、プラットフォーム部20上で起動するアプリケーション1〜3(41〜43)として動作するものとしてインストールすることができる。
【0155】
なお、本実施形態でも、実施形態1〜3と同様に、GUI部品の機能は、機能情報により特定される。
【0156】
図18は、本実施形態におけるネットワークを示す図である。
【0157】
図18に示されているように、印刷上限管理サーバ1801は、ネットワークN1802を介して複数の画像形成装置M1803、M1804、M1805と接続されており、相互に通信が可能である。
【0158】
図18の印刷上限管理サーバ1801は、画像形成装置のユーザと印刷上限(各ユーザが印刷可能な用紙枚数の上限値)と印刷実績(実際に印刷した用紙枚数)を図19のテーブル1901を用いて管理する。
【0159】
図18の画像形成装置M1803、M1804、M1805は、ユーザの印刷に使用した用紙枚数を印刷上限管理サーバ1801に通知する機能を有する。さらに、印刷上限管理サーバ1801は、画像形成装置からログイン中のユーザの印刷の利用可否に関する問い合わせを受けて、ユーザの印刷上限と印刷実績を比較し、印刷の利用可否を判定して、その結果を応答する。そして、印刷実績が印刷上限に達している場合は、印刷上限管理サーバ1801は、印刷の利用は不可と判定する。
【0160】
実施形態4に係る画像形成装置M1803〜M1805は、実施形態3に係る画像形成装置1と同様である。画像形成装置M1803〜M1805は、上記、印刷上限および印刷実績情報とは別に、画像形成装置の間接記憶部123にユーザの管理テーブル1101および各ユーザの機能利用権限情報(図12のテーブル1201)を記憶する。そして、画像形成装置M1803〜M1805は、各ユーザの機能利用権限をアクセス制御部32において管理する。
【0161】
複数の画像形成装置M1803〜M1805のうちの一つの画像形成装置のアクセス制御部32は、プリントやコピー機能の利用の可否に関して問い合わせを受けた場合、ログイン中のユーザの機能利用権限情報(図12のテーブル1201)を参照する。そしてさらに外部インターフェース125を介して印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせを行う。最終的なプリントやコピー機能の利用の可否は、ログイン中のユーザのGUI部品の機能利用権限情報と、印刷上限管理サーバへの問い合わせの応答結果との両方が『可』を示す場合にのみ利用可能であると判定する。
【0162】
すなわち、実施形態4では、直接記憶部122に格納されているログイン中のユーザのGUI部品の機能利用権限情報により、印刷上限管理サーバへのネットワークN1802を通じた問い合わせの結果を待たずに、プリントやコピー機能の可否を判定できる。
【0163】
さらに判定結果は、ユーザ毎に利用可否判定履歴として間接記憶部123に記憶し、一時的な機能利用可否の判定のために使用する。利用可否判定履歴は、ユーザログアウト後も保持し、同一ユーザが再ログインする際にも利用する。
【0164】
次に、図20のフローチャートを参照して、本実施形態におけるGUI部品(例えば、コピーボタン)の表示動作について説明する。
【0165】
まず、図20のステップS2001で、GUI部品は、アプリケーションからの表示要求を検知することにより表示動作を開始する。
【0166】
次に、ステップS2002で、GUI部品は、GUI部品の機能属性をアクセス制御部32に通知する。そして、GUI部品は、GUI部品の機能(例えば、コピー機能)の利用可否を問い合わせるために機能ライブラリ31のAPIを介してアクセス制御部32に問い合わせる。
【0167】
次に、ステップS2003で、アクセス制御部32は、直接記憶部122からログイン中のユーザのGUI部品の機能利用権限情報を取得する。ステップS2003と同時に、ステップS2004で、アクセス制御部32は、外部インターフェース125を介して印刷上限管理サーバ1801にログイン中のユーザのGUI部品の機能の利用可否を問い合わせる。この際、問い合わせの応答を非同期に待つため、応答待機中に平行して後述のステップS2005からステップS2011の処理が実行される。
【0168】
次に、ステップS2005で、アクセス制御部32は、ログイン中のユーザのGUI部品の機能の利用可否判定履歴を、間接記憶部123から直接記憶部122に読み出して取得する。
【0169】
次に、ステップS2006で、アクセス制御部32は、ステップS2003で取得したログイン中のユーザの機能利用権限情報から、ログイン中のユーザに、GUI部品の機能の利用権限が有るか否かを判定する。
【0170】
ステップS2006で、ログイン中のユーザに、GUI部品の機能の利用権限が有ると今回判定された場合には、ステップS2007に処理が進む。
【0171】
ステップS2006で、ログイン中のユーザに、GUI部品の機能の利用権限が無いと今回判定された場合には、ステップS2009に処理が進む。
【0172】
次に、ステップS2007で、アクセス制御部32は、ステップS2005で取得したGUI部品の機能の利用可否判定履歴を参照し、過去の利用可否判定は何であったかを判定する。
【0173】
ここで、「過去」とは、ステップS2007の処理が実行される以前を指す。
【0174】
ステップS2007で、ログイン中のユーザの、過去のGUI部品の機能の利用判定履歴が、「可」であった場合には、ステップS2008に処理が進む。
【0175】
ステップS2007で、ログイン中のユーザの、過去のGUI部品の機能の利用判定履歴が、「否」であった場合には、ステップS2009に処理が進む。
【0176】
ステップS2007により、アクセス制御部32は、図5および図15に係る処理における問い合わせに対する過去の応答の結果に応じた表示状態でGUI部品をディスプレイに表示させる命令をGUI部品に関連付ける。
【0177】
次に、ステップS2009で、GUI部品は、GUI部品の機能の利用が「否」であるという通知又は、GUI部品の機能の利用権限が「無し」の通知をアクセス制御部32から受け取り、GUI部品をグレーアウトに設定し直して表示する処理を行う。
【0178】
次に、ステップS2008で、GUI部品は、GUI部品の機能の利用が「可」という通知と、GUI部品の機能の利用権限が「有り」という通知をアクセス制御部32から受け取り、GUI部品の通常の表示処理を行う。
【0179】
ステップS2008、2009により、アクセス制御部32は、今回の応答の結果を受け次第、今回の応答の結果に応じた表示状態へGUI部品の表示状態を変更するための命令をGUI部品に関連付ける。そして、ステップS2008、2009により、アクセス制御部32は、ステップ2006、2007で決定された表示状態のGUI部品をディスプレイに表示されるように制御する。
【0180】
なお、上記で、「今回の」とは、「ステップS2008、2009の処理の実行時点での」という意味である。
【0181】
次に、ステップS2010で、GUI部品が受け取った通知が含むGUI部品の機能の利用可否の判定結果を、GUI部品もしくは、アクセス制御部32が、間接記憶部123に利用可否判定履歴として保存する。
【0182】
次に、ステップS2011で、GUI部品は、一旦処理を終了する。
【0183】
上記のステップS2003〜ステップS2011により、アクセス制御部32は、図5および図15に係る処理における過去の問い合わせ処理での問い合わせに対する応答の結果に応じた表示状態のGUI部品がディスプレイに表示されるように制御する。
【0184】
ステップS2012で、S2004の印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせに対する応答結果を受け次第、アクセス制御部32は再び処理を開始する。
【0185】
次に、ステップS2013で、以下の処理が行われる。すなわち、アクセス制御部32は、印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせの応答結果と、ステップS2003で取得したログイン中のユーザの利用権限とから、ログイン中のユーザのGUI部品の機能の利用可否を再判定する。
【0186】
ステップS2013で、GUI部品の機能の利用が「可」であると再判定された場合には、ステップS2014に処理が進む。
【0187】
ステップS2013で、GUI部品の機能の利用が「否」であると再判定された場合には、ステップS2015に処理が進む。
【0188】
ステップS2014で、GUI部品は、GUI部品の機能の利用が「可」であるという通知を受取り、GUI部品を再描画して、通常の表示処理を行う。
【0189】
ステップS2015で、GUI部品は、GUI部品の機能の利用が「否」であるという通知を受取り、GUI部品を再描画して、GUI部品をグレーアウトに設定し直して表示する処理を行う。
【0190】
上記のステップS2013〜2015により、S2004の印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせに対する応答結果を受け次第、以下のような処理が実行される。すなわち、アクセス制御部32は、機能情報により特定される機能の利用可否を再判定して、再判定の結果に応じた表示状態のGUI部品をディスプレイに表示させるように制御する。
【0191】
次に、ステップS2016で、GUI部品が受取った通知に含まれるGUI部品の利用可否の判定結果は、再び、GUI部品もしくは、アクセス制御部32が、間接記憶部123に利用可否判定履歴として保存し、ステップS2017で、処理が終了する。
【0192】
上記のステップS2012〜ステップS2017により、アクセス制御部32は、図5および図15に係る処理における今回の問い合わせ処理での問い合わせに対する応答の結果を受け次第、以下のような処理を実行する。すなわち、アクセス制御部32は、今回の問い合わせ処理での問い合わせに対する応答の結果に応じた表示状態のGUI部品が表示手段に表示されるように制御する。
【0193】
図20のフローチャートでは、ステップS2003以降の処理とステップS2004以降の処理が並列で処理されている。しかし、ステップS2003で取得されたユーザのGUI部品の機能の利用権限を参照して、利用権限がある場合にのみ、ステップS2004以降の処理を実行しても良い。
【0194】
<実施形態5>
以下で、図面を参照して実施形態5について説明する。下記の実施形態5は、GUI部品に機能属性がついていない場合に、過去のGUI操作にともなう利用不可のエラー情報の発生履歴(エラー履歴)を元に、再びエラーを発生させないように、次回のGUI部品の表示状態が変更される。実施形態5に係る動作環境は、実施形態3に係るものと同様である。
【0195】
本実施形態では、実施形態3と同様に、例えば、実施形態1および実施形態2にかかるGUI部品を実現するソースコードを、プラットフォーム部20上で起動するアプリケーション1〜3(41〜43)として動作するものとしてインストールすることができる。
【0196】
以下、図21、図22のフローチャートを参照して本実施形態における動作について説明する。
【0197】
以下では、一例として、図23に示されているように、ユーザが、アプリケーションのGUI画面操作において、リストボックスからカラーを選択した状態で、コピーボタンG1302を押下した場合を想定して説明を行う。
【0198】
パネルG1301は、パネル上のGUI部品の動作を監視しており、パネル上のGUI部品の状態変化や発生イベントを知ることができる。尚、以下の説明において、一例として、ユーザは事前に画像形成装置にログインしているものとする。
【0199】
まず、図21のステップS2101で、画像形成装置は、コピーボタンG1302がユーザに押下されたことを検知して動作を開始する。この際、パネルG1301も、ボタンG1301の押下されたことを検知し、そのことを、直接記憶部122に記憶する。
【0200】
次に、ステップS2102で、コピーボタンG1302は、ボタンに関連付けられたボタン押下時のアプリケーションプログラムを呼び出す。
【0201】
次に、ステップS2103で、アプリケーションプログラムは、コピーボタンG1302の機能を提供する機能ライブラリ31を呼び出す。
【0202】
次に、ステップS2104で、ステップS2103で呼び出された機能ライブラリ31は、直接記憶部122を参照して、ログイン中のユーザ情報を取得する。そして、ユーザ情報により指定されるユーザのコピーボタンG1302の機能の利用の可否をアクセス制御部32に問い合わせる。
【0203】
次に、ステップS2105で、機能ライブラリ31は、ログイン中のユーザが、コピーボタンG1302を利用できるか否かを判定する。
【0204】
ここで、機能ライブラリ31は、コピーボタンG1302に関連付けられた機能情報により特定される機能(コピー)の利用権限がログイン中のユーザにあるか否かを判定する
ステップS2105で、コピーボタンG1302の利用が「可」であると判定された場合には、ステップS2106に処理が進む。
【0205】
一方、ステップS2105で、コピーボタンG1302の利用が「否」であると判定された場合には、ステップS2107に処理が進む。
【0206】
すなわち、ステップS2105で、ログイン中のユーザにコピーボタンG1302の利用権限が無いと判定された場合に、ステップS2107に処理が進む。
【0207】
ステップS2106で、機能実行ライブラリ31は、プラットフォーム部20を介して、画像形成装置のハードウェア機能を呼び出して、コピー処理を実行し、ステップS2113で、処理を終了する。
【0208】
ステップS2107で、機能ライブラリ31は、ログイン中のユーザにコピーボタンG1302の機能の利用権限が無いことを示すエラー情報を発行する。
【0209】
次に、ステップS2108で、機能実行ライブラリ31は、アプリケーションにエラー情報を通知する。
【0210】
次に、ステップS2109で、アプリケーションは、通知されたエラー情報をいずれかのGUI部品に通知する。本実施形態では、一例として、パネルG1301が、エラー情報の通知を受けるものとする。
【0211】
次に、ステップS2110で、エラー情報を受信したパネルG1301は、パネル上のGUI部品の情報(GUI部品の識別情報および表示状態)、エラーの起因となった最後のイベント、受信したエラー情報をアクセス制御部32に通知する。
【0212】
次に、ステップS2111で、アクセス制御部32は、通知されたエラー情報を、ログイン中のユーザを識別する情報と共にエラー履歴として直接記憶部122および間接記憶部123に記憶する。
【0213】
また、ステップS2111で、アクセス制御部32は、上記のエラー情報と、エラーが発生したときのGUI部品の表示状態とを関連づけてエラー履歴として直接記憶部122および間接記憶部123に保存する。
【0214】
例えば、記録される情報は図24のテーブル2401のようになる。
【0215】
次に、ステップS2112で、パネルG1301は、エラー情報をパネル上に表示して、ステップS2113で、一旦、処理を終了する。
【0216】
次に、図22のフローチャートを参照して、上記処理後のアプリケーションのGUI画面再表示処理について説明する。
【0217】
まず、図22のステップS2214で、パネルG1301は、アプリケーションからのGUI画面表示要求、もしくはユーザの操作によるGUI部品の状態変化を検知することでGUI画面の表示処理を開始する。
【0218】
次に、ステップS2215で、パネルG1301は、パネル上のGUI部品の情報(GUI種類、および識別情報)と状態をアクセス制御部32に通知し、表示の可否を問い合わせる。ここで、GUI部品とは、例えば、コピーボタンG1302、SENDボタンG1303、リストボックスG1304である。
【0219】
次に、ステップS2217で、ステップS2215で通知を受取ったアクセス制御部32は、直接記憶部122からログイン中のユーザの情報を取得する。そして、アクセス制御部32は、図21のステップS2111の処理により、ユーザの情報と記憶されたエラー履歴とを比較し、現在のアプリケーションの表示状態において過去にエラーが有るか否かを判定する。
【0220】
次に、ステップS2217で、過去にエラーが「有り」と判定された場合には、ステップS2218に処理が進む。
【0221】
次に、ステップS2217で、過去にエラーが「無し」と判定された場合には、ステップS2219に処理が進む。
【0222】
ステップS2218で、例えば、識別子が1234のコピーボタンG1302の押下で権限無しエラーが発生したことがパネルG1301に通知される。そして、パネルG1301は、この通知を受けて、コピーボタンG1302をグレーアウトに設定し直して表示する処理を行い、図25に示されているように、ディスプレイへの表示処理を行う。そして、ステップ2220で処理が終了する。
【0223】
ステップS2217で、エラー履歴が無いという通知をパネルG1301が受取り、パネルG1301は、通常のGUI部品表示処理を行い、ステップS2220で処理を終了する。
【0224】
上記のステップS2217〜2219の処理により、パネルG1302は、エラー履歴を参照して、次回のGUI部品の表示状態を決定することができる。
【0225】
アクセス制御部32は、間接記憶部123に記憶されたユーザの管理テーブル1101および機能利用権限情報(図12のテーブル1201)が変更されたことを検知した場合には、変更されたユーザに関するエラー履歴を削除する。
【0226】
本実施形態では、エラー履歴の保存と参照および現在のGUI部品の状態との比較をアクセス制御部32が行っているが、GUI部品が行っても良い。
【0227】
<上記以外の実施形態>
実施形態3〜5では、GUI部品、機能ライブラリ31、アクセス制御部32を別々のプログラムとして分割しているが、機能ライブラリ31やアクセス制御部32の機能の一部もしくは全てをGUI部品に実装することも可能である。
【0228】
以上のように、本発明によれば、ユーザの管理テーブル1101およびテーブル1201の各ユーザの機能利用権限情報を用いることにより、アプリケーションプラットフォーム上から送られてくる機能制限判断情報に対応したGUIの開発が容易となる。
【図面の簡単な説明】
【0229】
【図1】開発ツールキットを示す概略図である。
【図2】開発用アプリケーションのGUI画面を示す図である。
【図3】GUI部品に設定可能な機能属性値を示す図である。
【図4】GUI部品への機能属性値の設定例を示す図である。
【図5】実施形態1における開発用アプリケーションの動作例を表すフローチャートである。
【図6】実施形態2におけるGUI部品のドラッグアンドドロップ動作を示す図である。
【図7】実施形態2における開発用アプリケーションの動作例を表すフローチャートである。
【図8】画像形成装置を表す概略図である。
【図9】画像形成装置におけるアプリケーション動作環境をあらわすソフトウェアの概略図である。
【図10】画像形成装置のディスプレイに表示されるユーザログイン画面を示す図である。
【図11】画像形成装置が記憶するユーザ情報の一例を示す図である。
【図12】画像形成装置が記憶するユーザの機能利用権限情報の一例を示す図である。
【図13】アプリケーションのGUI部品の一例を示す図である。
【図14】アプリケーションのGUI部品の情報の一例を表す図である。
【図15】実施形態3における画像形成装置の動作を表すフローチャートである。
【図16】実施形態3におけるGUI画面制御の一例を示す図である。
【図17】実施形態3におけるGUI画面制御の一例を示す図である。
【図18】実施形態4におけるネットワークを示す簡略図である。
【図19】実施形態4の印刷上限管理サーバが管理する情報の一例を示す図である。
【図20】実施形態4における画像形成装置の動作を表すフローチャートである。
【図21】実施形態5における画像形成装置の動作を表すフローチャートである。
【図22】実施形態5における画像形成装置の動作を表すフローチャートである。
【図23】実施形態5におけるアプリケーションの初期画面を示す図である。
【図24】実施形態5におけるエラー履歴の一例を示す図である。
【図25】実施形態5におけるアプリケーションの再表示画面を示す図である。
【図26】APIを使用してソースコードを自動生成する際に用いられるテーブルの一例を示す図である。
【符号の説明】
【0230】
1 画像形成装置
11 印刷装置
12 画像処理装置
20 プラットフォーム部
121 CPU
122 直接記憶部
123 間接記憶部
124 ユーザインターフェース
125 外部インターフェース
【技術分野】
【0001】
本発明は、アプリケーション開発を支援するための開発ツールキットとしてのプログラムおよび該プログラムをインストールした画像形成装置に関する。
【背景技術】
【0002】
従来から、アプリケーションをインストールしたりアンインストールすることが可能な複合機が提案されている(特許文献1)。こうした複合機のうち、ハードウェアやそのハードウェア上で動作するアプリケーションプラットフォーム(OSや、OS上で動作するJAVA(登録商標)プラットフォーム)に関しては、複合機ベンダーが開発を行っている。一方、そのアプリケーションプラットフォーム上で動作するアプリケーションについては、複合機ベンダーと提携するサードパーティが中心となって開発を行っている。
【0003】
また、従来から、複合機において、ユーザ(又は、そのユーザの所属するグループ)ごとに利用できる機能をGUI上で制限することが行われている(特許文献2〜5)。具体的には、例えば、ユーザの役職が低い場合に、白黒コピーは指示可能だがカラーコピーは指示不能なGUIを表示画面に表示している。このような装置について以下で簡単に説明する。
【0004】
上記のような機能制限が課されたGUIを有する装置では、まず、ユーザ識別アプリケーションが、操作パネルからユーザにユーザコードを入力させたり、IDカードを使用させたりすることでユーザを識別する。そして、その識別結果をアプリケーションプラットフォーム上で動作するアクセス制御部に送る。
【0005】
そして、アプリケーションプラットフォームで動作するアクセス制御部は、その識別されたユーザに対して許可すべき機能をテーブル(各ユーザの役職を示すテーブル)から判断する。例えば、識別されたユーザの役職が低い場合には、白黒コピーは許可すべきだが、カラーコピーは許可すべきでないと判断する。そして、その判断した情報(機能制限判断情報)を、コピー機能を司るアプリケーションの夫々に送る。ここで、機能制限判断情報とは、GUIの機能に制限を課すか否かを判断するための情報である。
【0006】
情報を受け取ったアプリケーションは、白黒コピーは指示可能だがカラーコピーは指示不能なGUIを表示画面に表示する。
【0007】
【特許文献1】特開2002−287990号公報
【特許文献2】特開2000−357064号公報
【特許文献3】特開2002−178567号公報
【特許文献4】特開2002−240398号公報
【特許文献5】特開平10−58796号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、こうした技術には、以下に示すような問題がある。例えば、コピー機能を司るアプリケーションを第三者(サードパーティ)が作成するとする。このような場合に、設計の手間の関係で、(アプリケーションプラットフォームで動作する)アクセス制御部から送られてきた機能制限判断情報を無視するような設計がなされてしまうことがある。
【0009】
このような場合、その第三者の作成したアプリケーションを用いれば、どんなに役職の低いユーザであっても、白黒コピー、カラーコピーが許可されるGUIがそのユーザの前に表示されることになってしまう。
【0010】
本発明は、上記の課題を鑑みてなされたものである。即ち、アプリケーションプラットフォーム上から送られてくる機能制限判断情報に対応したGUIの開発を支援する開発ツールキットを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本発明に係るプログラムは、アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、GUI部品と、機能情報とを関連付けると、自動的にGUI部品に対して、機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、アプリケーションプラットフォーム上から送られてくる機能制限判断情報に対応したGUIの開発が容易になる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0014】
<実施形態1>
以下で、図面を参照して、実施形態1について説明する。
【0015】
(開発ツールキットの説明)
図1は、本発明に係る開発ツールキットの概略を示す図である。開発ツールキットには、開発用アプリケーションK101、GUI部品群K102、機能APIライブラリK103が含まれる。開発用アプリケーションK101は、通常のパーソナルコンピュータ(PC)のような汎用情報処理装置上で動作する開発用のソフトウェアである。
【0016】
図1の開発用アプリケーションK101は、単体で動作するソフトウェアとして開発者に提供されても良いが、汎用の統合開発環境のプラグインとして提供されても良い。例えば、開発用アプリケーションK101は、統合開発環境として一般に知られているEclipseのプラグインとして提供されても良い。
【0017】
図1のGUI部品群K102は、複合機のGUI操作パネルに表示するためのソフトウェアである。例えば、GUI部品群K102は、ボタン、ラジオボタン、チェックボックス、リストボックス、パネル、ウィンドウなどを含む。従って、本実施形態(及び、これ以降の実施形態)においては、GUI部品とは、ボタン、ラジオボタン、チェックボックス、リストボックス、パネル、ウィンドウの何れかを示す。なお、本明細書において、GUI部品とは、ユーザからの指示を受け付けるために表示される画像を意味する。例えば、ユーザは、この画像にカーソルを合わせる、あるいは、この画像の(ディスプレイ上の)表示位置をタッチすることにより、装置に対して指示を送る(受け付けさせる)ことができる。GUI部品は、本明細書において上述の意味を有するため、アイコンなどであっても良いのは言うまでもない。ただし、GUI部品のうち後述の主GUI部品は、画像であると同時に様々な判断や変更の指示を行う機構を持っている。正確には、主GUI部品をCPUが処理すると、上記様々な判断や変更の指示を行うことが可能となる。
【0018】
図1の機能APIライブラリK103は、画像形成装置用のアプリケーションソフトが、画像形成装置のソフトウェア機能やハードウェア機能のような機能を利用するためのAPIを提供するソフトウェアライブラリ群である。ここで、APIとは、Application Program Interfaceの略である。
【0019】
開発者は、開発用アプリケーションK101を利用して、GUIレイアウトや、プログラムコードを作成し、コンパイルして、画像形成装置にインストール可能なアプリケーションを作成する。
【0020】
上記のソフトウェアK101〜K103は、CD−ROMなどの記録媒体や、インターネットを利用したダウンロード用サイトを介して、開発者に配布されても良い。また、ソフトウェアK101〜K103は、一緒に配布されても、別々に配布されても良い。
【0021】
(開発ツールの説明)
図2は、図1の開発用アプリケーションK101が汎用情報処理装置上で起動され、開発者に利用される際の表示画面を示す図である。
【0022】
図2のGUI部品リスト表示ウィンドウW201は、GUI部品群K102の一覧を表示する。
【0023】
図2のGUIレイアウト編集ウィンドウW202は、画像形成装置のGUI操作パネルに表示される画面である。開発者は、この画面を汎用情報処理装置上で編集することで、画像形成装置のGUI操作パネルを視覚的に編集するのを可能とするための画面である。
【0024】
図2のソースコード表示ウィンドウW203は、開発用アプリケーションK101により自動的に生成されたソースコードを表示したり、開発者が直接ソースコードを編集するのを可能とするための画面である。
【0025】
図2のプロパティ表示ウィンドウW204は、GUIレイアウト編集ウィンドウW202で選択状態のGUI部品の属性に設定された値を表示するウィンドウである。以下では、属性に設定された値のことを、属性の値、又は、属性値と称する。GUI部品の属性の値は、GUIレイアウト編集ウィンドウW202により自動的に設定されたり、開発者の手動の指示により設定される。なお、GUI部品に値が設定されるというのは、GUI部品に値が関連付けられることを意味する。GUI部品の属性の値は、GUI部品そのものが有するのではなく、GUI部品に関連付けられる値なのである。例えば、GUIの属性として、機能属性、グループ属性、表示名属性、表示色属性、GUIの表示形状属性、大きさ属性、表示位置属性、表示状態属性(表示、非表示、グレーアウト)がある。なお、表示状態属性のことを表示属性と呼ぶこともある。ここで、グループ属性とは、GUI部品をグループ化するための情報で、同一属性値の関連付けられたGUI部品は、グルーピングにより互いに関係があることを示す。以降、GUI部品の機能属性に設定される値(属性値)を、機能属性値と称する。
【0026】
機能属性項目P205は、プロパティ表示ウィンドウW204の中の機能属性に設定された機能属性値(例、COPY)を表示する箇所を指し示している。ユーザが、この機能属性項目P205内の機能属性値の変更を指示した場合、開発ツールキットは、GUI部品の機能属性に新しい機能属性値を設定する。なお、機能属性値のことを機能情報と称することもある。なお、機能情報とは、装置の機能に関する情報である。例えば、装置が、画像形成装置であれば、機能情報には、プリント、コピー、スキャンのような機能が含まれ、機能情報により、装置の機能が特定される。
【0027】
ここで、開発用アプリケーションK101によりソースコードが生成されたGUI部品のうち、より上位のGUI部品(例えば、図13のパネルG1301)を示す際は、主GUI部品と称する。また、主GUI部品に登録された(配置するように設定された)GUI部品(例えば、図13のコピーボタンG1302、SENDボタンG1303、リストボックスG1304)を示す際は、サブGUI部品と称す。
【0028】
なお、開発用アプリケーションK101によりソースコードが生成されたサブGUI部品は、以下のように構成されている。すなわち、サブGUI部品は、その(サブGUI部品)の機能属性に機能属性値が設定される前から、以下のような情報が関連付けられている。即ち、サブGUI部品は、そのGUI部品を管理する主GUI部品がNOの情報を受け取った場合に「表示」から「グレーアウト表示」にサブGUI部品の表示属性を設定し直すべきだと主GUI部品が判断するための情報が関連付けられている。
【0029】
なお、本実施形態では、サブGUI部品が、NOの情報を受取りうるのは以下の二つの場合である。一つ目の場合は、後述する図9の機能ライブラリ31のAPIの応答結果がNO、即ち、サブGUI部品に関連付けられた機能情報により特定される機能が画像形成装置内に存在しない場合である。二つ目の場合は、後述する図9のアクセス制御部32から送られてくる情報がNO、即ち、サブGUI部品に関連付けられた機能情報により特定される機能の利用を、サブGUI部品が許されない場合である。
【0030】
(GUI部品の機能属性の説明)
GUI部品の機能属性への機能属性値の設定は、例えば、図3に示すような画像形成装置ベンダーが定義した機能属性値の中から、ユーザの選択指示に従って、行われる。
【0031】
ここで、例えば、PRINT、COPY、SCANの機能属性値は、それぞれプリント、コピー、スキャンなど画像形成装置の機能を特定する情報である。
【0032】
また、例えば、BOX、SEND、FAXなどの機能属性値は、それぞれスキャンデータのハードディスクへの保存、スキャンデータの電子メールのような外部送信など画像形成装置の機能を特定する情報である。
【0033】
また、例えば、COLOR、BWは、それぞれスキャンデータに対するカラー処理、白黒処理など画像形成装置の機能を特定する情報である。
【0034】
また、機能属性に、機能属性値として、開発者が独自に定義した値を設定することも可能である。
【0035】
画像形成装置が機能属性値を解釈できない場合にはその値は無視される。
【0036】
図4は、GUI部品の機能属性に特定の機能属性値を設定する際の一例を示している。
【0037】
図4では、一例として、通常の実行スタートボタン401の機能属性にCOPYという機能属性値が設定され、コピースタートボタンであることが表現されている。
【0038】
また、図4では、一例として、リストボックス402の「カラー」の機能属性にCOLORという機能属性値が設定され、「モノクロ」の機能属性にBWという機能属性値が設定されている。この時、GUI部品の一種であるリストボックス402の機能属性には、複数の機能属性値が設定されていることになる。このように、機能属性には複数の機能属性値を設定可能であり、COLORとCOPYを設定することでカラーコピーを表現することもできる。
【0039】
また、図4では、一例として、チェックボックス403の「チェック有」の場合の機能属性にCOLORとCOPYという機能属性値が設定されており、「チェック無」の場合の機能属性にBWとCOPYという機能属性値が設定されている。
【0040】
上記のように、選択ボタン、リストボックスや、チェックボックスなどの選択状態を表現するGUI部品には、機能属性として複数の機能属性値が設定される。
【0041】
(コードの自動生成動作の説明)
次に、本発明における、GUI部品の機能属性にある機能属性値が設定することをユーザから指示された際の、開発用アプリケーションK101の動作を図5のフローチャートを参照して以下で説明する。
【0042】
ここで、開発用アプリケーション(アプリケーションはソフトウェアの一種である)K101は、開発用アプリケーションK101がインストールされている装置上のCPUが、開発用アプリケーションK101の命令を読み取ることにより動作する。また、以下で、開発用アプリケーションK101は、一例として、パーソナルコンピュータにインストールされているものとして説明を行う。
【0043】
まず、図5のステップS501で、開発用アプリケーションK101は、以下の処理を実行する。すなわち、プロパティ表示ウィンドウW204の機能属性項目P205に、GUI部品の機能属性値の関連付けがユーザから指示された(機能属性項目P205にユーザが機能属性値を入力した)ことを検知して、ソースコードの自動生成を開始する。なお、検知以降、ステップS505の処理が終了するまで、ユーザからの指示を受け付けることなく、自動的に処理が進んでいく。以降の処理で、開発用アプリケーションK101は、ディスプレイに表示されているGUI部品と機能情報とを関連付けることができる。
【0044】
次に、ステップS502で、開発用アプリケーションK101は、GUI部品に設定するようユーザから指示された機能属性値を取得する。
【0045】
次に、ステップS503で、開発用アプリケーションK101は、ステップS502で取得した機能属性値をGUI部品に関連づけるためのソースコードを自動生成する。具体的には、GUI部品のクラス変数に機能属性値を設定するためのソースコードを自動生成する。
【0046】
例えば、GUI部品は、オブジェクト指向設計におけるクラス構造体として表現され、機能属性値はそのクラスのクラス変数として表現可能であるため以下のようなソースコードが生成される。
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
【0047】
次に、ステップS504で、開発用アプリケーションK101は、GUI部品の機能属性値により特定される(画像形成装置の)機能の利用可否を(アクセス制御部32に)問い合わせるためのAPI、を呼び出すためのソースコードを自動生成する。自動生成されたソースコードは、GUI部品がディスプレイに表示される直前に処理される。
【0048】
これにより、ステップS504に係るソースコードは、GUI部品に関連付けられた機能情報により特定される機能の利用可否について、その機能の利用可否を管理するアクセス制御部32への問い合わせを自動的に行うための命令を含むこととなる。
【0049】
そして、ステップS504において、開発用アプリケーションK101は、ステップS504に係るソースコードと、GUI部品とを関連付ける。
【0050】
ここで、GUI部品は、例えば、開発用アプリケーションK101で開発中のアプリケーションがディスプレイに表示させる表示画面に配置されるGUI部品でも良い。この場合、開発用アプリケーションK101で開発中のアプリケーションとステップS504に係るソースコードが関連付けられることになる。
【0051】
なお、画像形成装置と記載したが、上述のように、本実施形態においては、開発用アプリケーションは、画像形成装置上で動作するわけではなく、パーソナルコンピュータ上で動作する。そのため、ここでは、画像形成装置とは、本開発アプリケーションを通じて作成されたソースコードがインストールされた装置のことを示す。
【0052】
次に、ステップS505で、開発用アプリケーションK101は、利用可否の問い合わせの応答結果に応じてGUI部品の表示状態を変更するソースコード、を自動生成する。機能の利用可否を問い合わせるAPIは、前述の機能APIライブラリK103から提供される。
【0053】
すなわち、ステップS505に係るソースコードは、「GUI部品の機能属性値により特定される機能の利用可否に関する情報を管理するアクセス制御部32」への問い合わせに対する応答の結果に応じてGUI部品の表示状態を決定するための命令を含む。このソースコードには、サブGUI部品を管理する主GUI部品がNOの情報を受け取った場合に「表示」から「グレーアウト表示」に、サブGUI部品の表示属性を設定し直すべきだと主GUI部品が判断するべきである、ことが記載されている。つまり、そう主GUI部品は、上記場合に上記判断をするように、そのソースコード上で構成されている。
【0054】
そして、ステップS505において、開発用アプリケーションK101は、ステップS505に係るソースコードと、GUI部品とを自動的に関連付ける。
【0055】
ここで、GUI部品は、例えば、開発用アプリケーションK101で開発中のアプリケーションがディスプレイに表示させる表示画面に配置されるGUI部品でも良い。この場合、開発用アプリケーションK101で開発中のアプリケーションとステップS505に係るソースコードが関連付けられることになる。
【0056】
例えば、下記のAPI例(1)(2)ようにGUI部品のクラスそのものや、機能属性値を渡して判定を依頼するような汎用的なAPIや、下記のAPI例(3)のような機能毎に用意されたAPIを提供する。
【0057】
例えば、API例(3)のようなAPIを使用するソースコードを自動生成する場合は、機能属性値と、機能属性値に対応したAPIとを関係付けるテーブルを開発ツールキットに設ける。開発用アプリケーションK101は、上記のテーブルを参照し、GUI部品に設定された機能属性値を元に、機能の利用可否を問い合わせるためのAPIをGUI部品に関連づけることができる。
【0058】
図26は、一例として、開発用アプリケーションK101が後述のソースコード例(3)を自動生成する際に参照するテーブル2601、を示している。テーブル2601は、GUI部品の表示の仕方についての情報を含んでいる。
【0059】
開発用アプリケーションK101は、テーブル2601を参照する際に、GUI部品のクラス(例えば、「ボタン」)の情報をGUI部品リスト表示ウィンドウW201から取得しても良い。また、開発用アプリケーションK101は、テーブル2601を参照する際に、GUI部品の表示名(例えば、「コピー」)の情報を、プロパティ表示ウィンドウW204から取得しても良い。
API例(1)
Void IsAvailableFunction( GUI部品クラス ); ・・・GUI部品に設定された機能属性から利用可否を判定し、GUI部品の表示状態を設定するAPI。
API例(2)
Bool IsAvailableFunction( 機能属性値 ); ・・・機能属性値を渡し、利用の可否を応答するAPI。
API例(3)
Bool IsAvailableCopyFunction( ); ・・・コピー機能の利用の可否を応答するAPI。
【0060】
上記APIを使用して自動生成したソースコードは例えば以下のようになる。下記のソースコード例(2)、(3)は、APIからの応答結果を受けてGUI部品の表示状態を変更することを示している。API例(1)のAPIは、機能の利用可否判定と、GUI部品との表示状態変更処理の両方の機能を有するものとする。
ソースコード例(1)
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
IsAvailableFunction(Button1); // GUI部品の利用可否を判定した上で表示状態が設定される。
ソースコード例(2)
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
Bool bResult = IsAvailableFunction( Button1.Function ); // 機能の利用可否を問いあわせる。
If( bResult == TRUE ){
Button1.Visible = TRUE; // 利用可能であれば、表示する
} else {
Button1.Visible = FALSE; // 利用不可であれば、表示しない。
}
ソースコード例(3)
ButtonClass Button1; // ボタンクラスの生成
Button1.Name = “コピー”; // ボタンの表示名の設定
Button1.Functions = “COPY”; // ボタンの機能属性の機能属性値の設定
Bool bResult = IsAvailableCopyFunction(); // コピー機能の利用可否を問いあわせる。
If( bResult == TRUE ){
Button1.Eable= TRUE; // 利用可能であれば、表示する
} else {
Button1. Eable = FALSE; // 利用不可であれば、グレーアウトに設定し直して表示する。
}
上記のソースコードはあくまでの一例であり、上記に示されたソースコードにより実行されるコンピュータの処理と同等の処理を決定するコンピュータで実行可能な命令又は命令のセットであればどのようなものでも良い。
【0061】
GUI部品は、利用可否の問い合わせの応答結果を1回もしくは複数回、非同期に受信し、応答結果を受信する度に、応答結果に応じて再度GUI部品の表示状態を変更して画面の再描画を行うようなケースが存在する。この場合、GUI部品は、非同期に応答結果を受信する必要があるため、応答結果を受信するための関数を、機能APIライブラリの関数登録用APIを使用して登録するソースコードを生成する。具体的なアプリケーション動作時の動作については後述の実施形態4に記載する。
【0062】
<実施形態2>
以下で、図面を参照して、実施形態2について説明する。
【0063】
実施形態1では、開発ツールキットで提供されるGUI部品群K102の夫々に、開発者が機能属性の機能属性値を設定する実施形態を示した。実施形態2では、開発ツールキットで提供されるGUI部品が利用目的に予め作成されており、各GUI部品に、各機能の利用の可否を画像形成装置に対して問い合わせる為のプログラムが組み込まれている場合の実施形態を示す。
【0064】
図6は、開発用アプリケーションK101の起動画面を示している。例えば、GUI部品リスト表示ウィンドウW601には、コピー用のボタン、プリント用のボタン、スキャン用のボタン、スキャンデータの外部送信用ボタン、カラーや白黒を選択するためのチェックボックスや、リストボックスなどが表示される。これらのGUI部品は、開発ツールキットのGUI部品群K102から提供され、開発用アプリケーションK101にロードされて表示される。
【0065】
これらのGUI部品には、機能情報と、機能情報に含まれるそれぞれの機能の利用可否を問い合わせるための命令であるAPI呼び出しを行うプログラムとがセットで組み込まれている。例えば、実施形態1で示したソースコードの例の一部が、GUI部品の表示処理プログラムに組み込まれている。
【0066】
次に、実施形態2における開発用アプリケーションK101の動作を図7のフローチャートを参照して以下で説明する。
【0067】
まず、ステップS701で、開発用アプリケーションK101は、開発用アプリケーションK101で開発中のアプリケーションで表示させるための表示画面に、GUI部品が配置されることを検知する。
【0068】
具体的には、例えば、開発用アプリケーションK101は、開発者によってGUI部品リスト表示ウィンドウW601から、GUIレイアウト編集ウィンドウW602にGUI部品がドラッグアンドドロップして配置されたことを検知する。
【0069】
次に、ステップS702で、開発用アプリケーションK101は、画像形成装置用のアプリケーションが、GUI部品を利用するためのソースコードを自動生成する。
【0070】
ここで、ステップS702に係るソースコードは、ステップS701で検知されたGUI部品に関連付けられた機能情報により特定される機能の利用可否についてアクセス制御部32に問い合わせを行うための命令を実行するためのソフトウェアとなる。
【0071】
そして、ステップS702において、開発用アプリケーションK101は、ステップS702に係るソフトウェアと、GUI部品とを自動的に関連付ける。
【0072】
例えば、開発用アプリケーションK101は、以下のようなソースコードを生成する。
CopyButton copyButton1; // コピーボタンの生成
copyButton1.Update(); // ボタンの表示実行
【0073】
上記のソースコードはあくまでの一例であり、上記に示されたソースコードにより実行されるコンピュータの処理と同等の処理を決定するコンピュータで実行可能な命令又は命令のセットであればどのようなものでも良い。
【0074】
上記、ソースコードでは、コピー機能の利用可否を問い合わせる機能を有するボタン用クラスのインスタンスを生成している。実施形態1で示した、機能の利用の可否と問い合わせや、利用可否の応答結果に応じたGUI部品の表示状態の変更処理は、copyButton.Updata() の内部処理として実行される。
【0075】
実施形態1、2では、GUI部品の一例として、ボタンのソースコードを生成する処理について説明したが、パネルやリストボックスのようなGUI部品のソースコードを生成する処理も、実施形態1、2に示されているのと同様の処理によって実行される。
【0076】
また、実施形態1、2に係るソフトウェアK101〜K103は、GUI部品群の相互関係を定めるソースコードを作成することができる。例えば、実施形態1、2に係るソフトウェアK101〜K103は、パネルの上にボタンが配置されるというソースコードを作成することができる。
【0077】
<実施形態3>
以下で、図面を参照して、実施形態3について説明する。
【0078】
本発明のユーザの機能の利用権限に応じたGUI部品表示を実施した画像形成装置(画像形成装置)における実施形態について、以下で説明する。
【0079】
図8は、本発明のアプリケーションプラットフォームを適用した画像形成装置の概略を示すブロック図である。
【0080】
(画像形成装置1の説明)
図8に示されているように画像形成装置1は、印刷装置11及び画像処理装置12からなる。
【0081】
画像処理装置12は、CPU121と、直接記憶部122(例えば、RAM)と、間接記憶部123(例えば、ROMやHDD)と、ユーザインターフェース124と、外部インターフェース125とからなる。
【0082】
直接記憶部122は、CPU121と、直接データとをやり取りする記憶部であり、間接記憶部123は直接記憶部122を介してCPU121と、データとをやり取りする記憶部である。直接記憶部122には、種々のアプリケーションプログラム及びプラットフォームプログラムが記憶されている。
【0083】
ユーザインターフェース124は、例えば、キーボード、マウス、ディスプレイからなり、ユーザからの指示の受付け、データ(画面データ)の表示をすることが可能となっている。
【0084】
外部インターフェース125は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置としては、外付けHDDや外付けUSBメモリのような外付け記憶装置や、ネットワークを介して接続された別体のホストコンピュータ(パーソナルコンピュータ)や画像形成装置1のような別体装置が含まれる。
【0085】
(プラットフォーム部20の説明)
CPU121は、間接記憶部123に記憶されたプラットフォームプログラムを直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、CPU121がプラットフォームプログラムを実行することができる状態になる。本実施形態では、このように「CPU121がプラットフォームプログラムを実行することができる状態になること」を、プラットフォーム部20が起動すると称する。
【0086】
なお、本実施形態では、以下の3個の装置の組み合わせをプラットフォーム部20と称している。
・CPU121
・直接記憶部122のうちのプラットフォームプログラムを記憶している装置
・CPU121が上記プラットフォームプログラムを処理した際に得られる情報(例えば、計算結果)を記憶する(直接記憶部122及び間接記憶部123のうちの)装置
【0087】
(アプリケーションプログラムの説明)
プラットフォーム部20は、間接記憶部123に記憶された第一のアプリケーションプログラムおよび、アプリケーション実行に必要なプログラム群を直接記憶部122に移動する(記憶させる)ことができる。移動が完了すると、プラットフォーム部20が第一のアプリケーションプログラムを実行することができる状態になる。本実施形態ではこのことを、プラットフォーム部20が第一のアプリケーションプログラムを起動すると称する。
【0088】
逆に、プラットフォーム部20は、直接記憶部122に記憶された第一のアプリケーションプログラムを直接記憶部122から削除することができる。本実施形態ではこのことを、プラットフォーム部20が第一のアプリケーションプログラムを停止すると称する。
【0089】
プラットフォーム部20は、外部インターフェース125を介して第一のアプリケーションプログラムであるデータを受信し記憶することができる。本実施形態ではこのことを、プラットフォーム部20に第一のアプリケーションプログラムをインストールすると称する。
【0090】
逆に、プラットフォーム部20は、(プラットフォーム部20の内部にある)間接記憶部123に記憶された第一のアプリケーションを間接記憶部123から削除することができる。本実施形態ではこのことを、プラットフォーム部20が第一のアプリケーションをアンインストールすると呼称する。
【0091】
尚、プラットフォーム部20が第一のアプリケーションをアンインストールする際に、第一のアプリケーションが起動している場合には、これを停止した後にアンインストールを行う。
【0092】
また、以上の説明は、第一のアプリケーションプログラムを例にして説明を行ったが、他のアプリケーションプログラム(例、第二のアプリケーションプログラム)であっても同様であることは当業者には明白であろう。
【0093】
図9は、画像形成装置1におけるプラットフォーム部20上で起動するアプリケーションおよび、アプリケーションの動作環境を示す図である。
【0094】
図9の機能ライブラリ31は、アプリケーションが画像形成装置のソフトウェア機能およびハードウェア機能を呼び出すためのプログラムである。
【0095】
図9のアクセス制御部32は、画像形成装置にログインするユーザの情報や機能利用権限などを参照して、ログイン中のユーザが、各種画像形成装置が有する機能を利用可能な否かを判定する。
【0096】
図9のログイン処理部33は、ディスプレイ上に、ユーザのアカウント認証情報を入力可能なログイン画面(図10の画面1001)を表示し、ユーザからの入力動作を受けて、ユーザ認証処理を行う。さらにログイン処理部33は、認証したユーザに対する機能利用権限情報(図12のテーブル1201)を、間接記憶部123や外部インターフェース125を介して取得し、直接記憶部122に記憶する。
【0097】
図9において、アプリケーション1(41)、アプリケーション2(42)、アプリケーション3(43)は、画像形成装置上で起動しているアプリケーションであり、それぞれディスプレイ上に表示するための、GUI部品を抱えている。
【0098】
例えば、実施形態1および実施形態2にかかるGUI部品を実現するソースコードを、プラットフォーム部20上で起動するアプリケーション1〜3(41〜43)として動作するものとしてインストールすることができる。
【0099】
図11は、画像形成装置1にログインするユーザの管理テーブル1101を示す図である。管理テーブル1101には、ユーザ情報が記録されている。
【0100】
管理テーブル1101は、間接記憶部123や外部装置に記憶されている。
【0101】
図12は、ユーザの画像形成装置が有する機能に対する機能利用権限情報を表す図である。図12の機能利用権限情報(テーブル1201)に含まれているユーザの利用権限はユーザ毎に異なり、ユーザの管理テーブル1101に登録されたそれぞれのユーザと関連付けて、間接記憶部123や外部装置に記憶される。例えば、図12のテーブル1201は、白黒でのプリント、コピー、およびBOX(内部記憶装置へのスキャンデータの保存と取得)は、許可されていることを示している。そして、図12のテーブル1201は、カラーのプリント、コピーおよびBOXは、禁止されており、SEND(外部へのスキャンデータ送信)、FAXも禁止されていることを示している。
【0102】
すなわち、図12のテーブル1201の機能利用権限情報により、ユーザが利用可能な機能が特定される。なお、図12に示されている機能利用権限情報は、あくまでも一例であり、機能利用権限情報に利用可能回数が含まれていても良い。ここで、利用可能回数とは、例えば、ユーザが機能を利用できる回数である。
【0103】
図13は、アプリケーションのGUIのレイアウト例を表す図である。ここで、パネルG1301、コピーボタンG1302、SENDボタンG1303、リストボックスG1304は、GUI部品である。パネルG1301の上には、コピーボタンG1302、SENDボタンG1303、リストボックスG1304が配置されている。
【0104】
ここで、パネルG1301(主GUI部品)は、パネルG1301を表現するソースコードがインストールされている装置上のCPUが、パネルG1301を表現する命令を読み取ることにより動作する。また、以下で、パネルG1301を実現するソースコードは、一例として、画像形成装置1に接続されたパーソナルコンピュータにインストールされているものとして説明を行う。
【0105】
パネルG1301とその上に配置されるGUI部品は、従属関係にあり、ソースコードとして以下のようなコードで、表現することができる。
【0106】
なお、以下のソースコードは、実施形態1、2に係るソフトウェアK101〜K103により生成される。
【0107】
まず、実施形態1、2に係るソフトウェアK101〜K103は、panelG1301という名前のパネルG1301と、copyButtonG1302という名前のコピーボタンG1302とを生成する。また、実施形態1、2に係るソフトウェアK101〜K103は、sendButtonG1303という名前のSENDボタン1303と、listBoxG1304という名前のリストボックスG1304とを生成する。
【0108】
ここで、ボタンG1302、1303の名前は、図2の表示画面のプロパティ表示ウィンドウW204の識別番号によって定められても良い。例えば、図2の表示画面のプロパティ表示ウィンドウW204の識別番号が「G1302」で、機能が「COPY」のときには、ボタンの名前が「copyButtonG1302」と、実施形態1、2に係るソフトウェアK101〜K103により定められても良い。
【0109】
また、ボタンG1302、1303と同様に、パネルG1301の名前は、図2の表示画面のプロパティ表示ウィンドウW204の識別番号によって定められても良い。例えば、図2の表示画面のプロパティ表示ウィンドウW204の識別番号が「G1301」で、機能が「PANEL」のときには、ボタンの名前が「panelG1301」と、実施形態1、2に係るソフトウェアK101〜K103により定められても良い。
【0110】
実施形態1、2に係るソフトウェアK101〜K103は、ボタンG1302、1303、リストボックスG1303とパネルG1301との関係を定めるソースコードを作成することもできる。例えば、実施形態1、2に係るソフトウェアK101〜K103は、ボタンG1302、1303と、リストボックスG1304とをパネルG1301上に配置するソースコードを作成することができる。
【0111】
以上の、実施形態1、2に係るソフトウェアK101〜K103で生成された、GUI部品G1302〜G1304のソースコードと、GUI部品G1302〜G1304をパネルG1301上に配置するソースコードから以下のソースコードが生成される。
Panel panelG1301; // パネルG1301を生成せよ、という意味
panel.Add( copyButtonG1302 ); // コピーボタンG1302の登録(コピーボタンG1302を、生成されたパネルの上に配置せよ、という意味)
panel.Add( sendButtonG1303 ); // SENDボタンG1303の登録
panel.Add( listBoxG1304 ); // リストボックスG1304の登録
【0112】
上記のソースコードはあくまでの一例であり、上記に示されたソースコードにより実行されるコンピュータの処理と同等の処理を決定するコンピュータで実行可能な命令又は命令のセットであればどのようなものでも良い。
【0113】
以降、実施形態1、2の説明でも述べたように、より上位のGUI部品(例えば、パネルG1301)を示す際は、主GUI部品と称する。また、主GUI部品に登録された(配置するように設定された)GUI部品(例えば、コピーボタンG1302、SENDボタンG1303、リストボックスG1304)を示す際は、サブGUI部品と称す。
【0114】
主GUI部品は、サブGUI部品が有するAPIを呼び出すことによりサブGUI部品の状態を取得したり、変更したりすることができる。サブGUI部品は、状態の変化(例えばボタンの押下、選択状態の変化)などを主GUI部品が有するAPIを呼び出すことによって通知することができる。また、アプリケーションは、そのアプリケーション内の主GUI部品のAPIを呼び出すことになる。この主GUI部品のAPIを呼び出す動作を、GUI部品がアプリケーションからの表示要求を検知すると称す。なお、主GUI部品のAPIを呼び出すのは、アプリケーションの全体ではなくて、アプリケーションのうちの「ディスプレイへの表示要求の指示を」外部から受取るモジュールである。即ち、アプリケーションのうちの「プラットフォーム部20から呼び出され、ディスプレイへの画面表示処理を促される」モジュールである。以下では、このモジュールのことを、そのままアプリケーションと称する。
【0115】
主GUI部品は表示要求を検知すると、サブGUI部品の表示処理も合わせて実行する。このためアプリケーションは、主GUI部品にのみ表示要求を行えばよく、個々のサブGUI部品に対しては表示要求を行う必要が無い。主GUI部品は、サブGUI部品から取得した機能属性値を用いて、機能ライブラリのAPIを呼び出すことによりサブGUI部品群の利用可否を問い合わせることができる。以降の説明では、このことを、単に、主GUI部品が、サブGUI部品の利用可否を問い合わせると称す。
【0116】
なお、主GUI部品は、NOの情報を受取るとサブGUI部品の表示属性の値を設定し直すように構成されている。本実施形態では、表示属性の値が表示とされているようなサブGUI部品であっても、NOの情報を受取ると、主GUI部品は、サブGUI部品の表示属性の値を、例えば、グレーアウトに設定し直す(変更する)。なお、本実施形態では、NOの情報を受取りうるのは以下の二つの場合である。
【0117】
一つ目の場合は、図9の機能ライブラリ31のAPIの応答結果がNOで、サブGUI部品の利用が不可能な場合である。二つ目の場合は、図9のアクセス制御部32で利用がNOで、サブGUI部品の利用が不可能な場合である。
【0118】
以降の説明では、パネルG1301は主GUI部品であり、コピーボタンG1302、SENDボタンG1303、リストボックスG1304はサブGUI部品として解説する。
【0119】
図14に示されているように、機能属性値としてコピーボタンG1302にはCOPY、SENDボタンG1303にはSEND、リストボックスG1304の『カラー』選択時は、COLOR、『モノクロ』選択時にはBWが設定されているものとする。これらの機能属性値は、実施形態1や実施形態2の開発ツールキットを使って、アプリケーション作成時に予め設定されていることが考えられるが、アプリケーションが動的に書き換えても良い。
【0120】
さらに、コピーボタンG1302、SENDボタンG1303、リストボックスG1304は、グルーピングにより関連付けられている。リストボックスG1304の『カラー』選択時に、コピーボタンG1302が押下された場合は、カラーコピーが実行される。
【0121】
『モノクロ』選択時に、コピーボタンG1302が押下された場合は、白黒コピーが実行される。リストボックスG1304の『カラー』選択時に、SENDボタンG1303が押下された場合は、スキャンされたカラー画像データの外部送信が実行される。一方、『モノクロ』選択時に、SENDボタンG1303が押下された場合は、スキャンされた白黒画像データの外部送信が実行される。
【0122】
次に、図13のアプリケーションのGUIを例として、図15のフローチャートを参照して、本発明に係るGUI部品を使用したアプリケーションのGUI画面の表示時の動作について説明する。
【0123】
アプリケーションのGUI画面表示前に、ユーザが画像形成装置にログインしており、認証されたログイン中のユーザの情報および機能利用権限情報(図12のテーブル1201)が、直接記憶部122に記憶されているものとする。
【0124】
具体的には、ユーザは、ログイン処理部33が表示する図10の画面1001のようなログイン画面上で、ユーザ情報を入力することにより画像形成装置へのログイン動作を行う。
【0125】
ここで、ユーザ情報は、ユーザ名やパスワードのような、ユーザIDを含んでも良い。
【0126】
図9のログイン処理部33は、ユーザのログイン動作を検知して、入力されたユーザ情報を取得し、画像形成装置の間接記憶部123に記録された管理テーブル1101と比較することによりユーザの認証処理を行う。
【0127】
ユーザが正規のユーザである場合は、さらに間接記憶部123からユーザ情報と、ユーザ情報に関連づけられた機能利用権限情報(図12のテーブル1201)とを直接記憶部122に読み出す。直接記憶部122に記憶したユーザ情報およびユーザの機能利用権限は、アプリケーション1(41)、2(42)、3(43)や、アクセス制御部32が参照することができる。
【0128】
ログイン処理部33は、ログイン処理の完了を、プラットフォーム部20に通知する。プラットフォーム部20は、ログイン処理の完了の通知を受けて、アプリケーション1(41)、2(42)、3(43)に対しディスプレイへの画面表示処理を促す。そして、プラットフォーム部20から呼び出されたアプリケーション1(41)、2(42)、3(43)は、主GUI部品に対して表示要求を行う。
【0129】
図15に示されているように、まず、ステップS1501で、主GUI部品たるパネルG1301が、アプリケーションから、表示要求を検知して、GUI部品をディスプレイに表示させるための命令を受取ることにより動作を開始する。
【0130】
ここで、パネルG1301は、主GUI部品であり、主GUI部品上のサブGUI部品に関連付けられている機能情報を、いつでも、取得することができる。
【0131】
次に、ステップS1502で、パネルG1301は、パネルG上のサブGUI部品(コピーボタンG1302、SENDボタンG1303、リストボックスG1304)の機能属性値を取得する。そして、パネルG1301は、取得した機能属性値を機能ライブラリ31のAPIを介してアクセス制御部32に通知することによりサブGUIに関連付けられている機能情報により特定される各機能の利用可否を問い合わせる。
【0132】
この時、パネルG1301は、サブGUI部品に設定された機能属性値を合成(合算)する。例えば、パネルG1301は、合成(合算)により得られた機能属性値として、カラーコピー(COPY/COLOR)、白黒コピー(COPY/BW)、カラー画像データの外部送信(SEND/COLOR)、白黒データの外部送信(SEND/BW)を生成する。
【0133】
次に、ステップS1503で、パネルG1301は、アクセス制御部32に、ログイン中のユーザのサブGUI部品に関連付けられた機能情報により特定される機能の利用権限を問い合わせる。
【0134】
上記のように、パネルG1301は、サブGUI部品の機能属性値の合算により得られた情報を用いて、サブGUI部品に関連付けられた機能情報により特定される機能の利用可否を、アクセス制御部32に問い合わせる。
【0135】
次に、ステップS1504で、問い合わせを受けたアクセス制御部32は、直接記憶部122からログイン中のユーザのサブGUI部品の機能利用権限情報(図12のテーブル1201)を取得する。すなわち、ステップS1504で、アクセス制御部32は、ユーザ情報に関連付けられた機能制限情報を取得する。
【0136】
そして、アクセス制御部32は、パネルG1301から通知された機能属性値とテーブル1201との比較を行い、サブGUI部品の機能の利用が可能か否か(YES又はNO)を判定する。すなわち、アクセス制御部32は、パネルG1301から通知された機能属性値とテーブル1201との対応関係に基づいて、パネルG1301から通知された機能属性値がテーブル1201において利用が可能とされている場合には、可能と判定する。一方、アクセス制御部32は、パネルG1301から通知された機能属性値とテーブル1201との対応関係に基づいて、パネルG1301から通知された機能属性値がテーブル1201において利用が不可能とされている場合には、不可能と判定する。
【0137】
例えば、図13のリストボックスG1304で、「カラー」が選択され、コピーボタンG1302が押下された場合には、機能属性値は、「カラーコピー(COPY/COLOR)」である。したがって、図12のテーブル1201より、「カラーコピー(COPY/COLOR)」機能の利用は不可能(NO)であると判定される。
【0138】
次に、ステップS1505で、アクセス制御部32は、判定結果(YESorNO)を、パネルG1301に通知する。
【0139】
次に、ステップS1506で、パネルG1301は、ステップS1505で通知された判定結果(YES又はNO)を参照して、サブGUI部品の機能の利用が可能か否か(YES又はNO)を判定する。判定結果がYESの場合は、機能の利用はYESである。参照結果がNOの場合は機能の利用はNOである。
【0140】
ステップS1506で、YESの情報を受取ったと判定した場合には、ステップS1507に進み、パネルG1301は、サブGUI部品を、表示属性の値を変更することなく、パネルG1301に表示する。そして、ステップS1509に処理が進む。
【0141】
一方、ステップS1506で、NOの情報を受取ったと判定した場合には、ステップS1508に進み、パネルG1301は、サブGUI部品をパネルG1301で所定の表示状態になるように決定する。そして、パネルG1301は、その決定に基づく表示をする(例えば、非表示にする、グレーアウト表示する)。そして、ステップS1509に処理が進む。なお、所定の表示状態とは、例えば非表示、グレーアウト表示のように、そのサブGUI部品(又は、そのサブGUI部品の一部)をユーザに選択させないための状態のことである。ここで、例えば、サブGUI部品がリストボックスの場合には、ユーザにサブGUI部品の一部を選択させないために、サブGUI部品の一部が非表示となっても良い。また、例えば、サブGUI部品がチェックを受け付けるGUI部品の場合には、ユーザにサブGUI部品の一部を選択させないために、サブGUI部品のチェックを受け付ける部分が非表示となっても良い。
【0142】
このステップS1508で、パネルG1301は、図12のテーブル1201において、パネルG1301は、カラー白黒に関わらず利用不可であるSENDボタンの表示状態を表す属性(表示属性の値)をグレーアウトに設定し直すように決定し、設定し直す。そして、パネルG1301は、パネルG1301上に、SENDボタンをグレーアウトの状態で表示する。なお、パネルG1301は上述したように予めディスプレイに表示されている。
【0143】
ここで、テーブル1201の内容に基づいて、例えば、パネルG1301上のリストボックスG1304と、SENDボタンG1303とが両方ともグレーアウトの状態で表示される場合もある。また、テーブル1201の内容に基づいて、例えば、パネルG1301上のリストボックスG1304のうち「カラー」のみがグレーアウトの状態で表示され、SENDボタン1303はグレーアウトの状態では表示されない(通常表示される)場合もある。
【0144】
上記のステップS1506〜1508の処理により、ステップS1502に係るアクセス制御部32への問い合わせに対する応答の結果に応じた表示状態のGUI部品をディスプレイに表示させるように制御することができる。
【0145】
そして、ステップS1509で、表示処理が終了する。
【0146】
図15の処理により、機能情報に関連付けられたGUI部品が複数存在する場合に、機能情報により特定される機能の利用可否に関する情報を管理するアクセス制御部32からの応答結果に応じて、GUI部品の表示状態が決定される。
【0147】
また、機能情報に関連付けられたGUI部品が複数存在する場合に、GUI部品の表示状態が変化した場合に、機能情報により特定される機能の利用可否に関する情報に応じて、GUI部品に関連する他のGUI部品の表示状態が決定されてもよい。
【0148】
図16は、ログイン中のユーザの機能利用権限情報(図12のテーブル1201)を元に表示された初期表示時のGUIの一例を示している。
【0149】
アプリケーションのGUI表示後、ユーザのGUI操作により、GUIの表示状態が変化したことを検知すると、GUI部品は、機能の利用の可否を再判定し、再びGUI部品の表示状態を更新する。
【0150】
例えば、図16の状態において、カラーコピー(COPY/COLOR)が禁止である場合に、パネルG1301が、ユーザがリストボックスG1304の選択状態を『モノクロ』から『カラー』に変更したことを検知すると以下の処理が実行される。すなわち、パネルG1301は、図17に示されているように、カラーコピー(COPY/COLOR)を禁止するために、コピーボタンG1302の表示状態を表す属性をグレーアウトに設定する。
【0151】
このとき、パネルG1301は、初期表示時に取得したカラーコピー(COPY/COLOR)の利用可否の判定結果を使用しても、再びアクセス制御部32に問い合わせても良い。予め初期表示時に、コピー、SENDに関わらず利用できないリストボックスG1304の『カラー』を選択できないように、グレーアウトや非表示するといった制御も可能である。
【0152】
<実施形態4>
以下で、図面を参照して実施形態4について説明する。
【0153】
下記、実施形態は、画像形成装置の機能の利用可否に関する情報を管理する管理手段が複数存在する場合に、ネットワークを通じてGUI部品の機能の利用可否を問い合わせる時間を短縮するものである。上記問題を解決するため、本実施形態は、画像形成装置が格納している過去のGUI部品の機能利用可否の判定履歴(利用可否判定履歴)を利用してGUI部品の表示を速やかに行う。
【0154】
本実施形態では、実施形態3と同様に、例えば、実施形態1および実施形態2にかかるGUI部品を実現するソースコードを、プラットフォーム部20上で起動するアプリケーション1〜3(41〜43)として動作するものとしてインストールすることができる。
【0155】
なお、本実施形態でも、実施形態1〜3と同様に、GUI部品の機能は、機能情報により特定される。
【0156】
図18は、本実施形態におけるネットワークを示す図である。
【0157】
図18に示されているように、印刷上限管理サーバ1801は、ネットワークN1802を介して複数の画像形成装置M1803、M1804、M1805と接続されており、相互に通信が可能である。
【0158】
図18の印刷上限管理サーバ1801は、画像形成装置のユーザと印刷上限(各ユーザが印刷可能な用紙枚数の上限値)と印刷実績(実際に印刷した用紙枚数)を図19のテーブル1901を用いて管理する。
【0159】
図18の画像形成装置M1803、M1804、M1805は、ユーザの印刷に使用した用紙枚数を印刷上限管理サーバ1801に通知する機能を有する。さらに、印刷上限管理サーバ1801は、画像形成装置からログイン中のユーザの印刷の利用可否に関する問い合わせを受けて、ユーザの印刷上限と印刷実績を比較し、印刷の利用可否を判定して、その結果を応答する。そして、印刷実績が印刷上限に達している場合は、印刷上限管理サーバ1801は、印刷の利用は不可と判定する。
【0160】
実施形態4に係る画像形成装置M1803〜M1805は、実施形態3に係る画像形成装置1と同様である。画像形成装置M1803〜M1805は、上記、印刷上限および印刷実績情報とは別に、画像形成装置の間接記憶部123にユーザの管理テーブル1101および各ユーザの機能利用権限情報(図12のテーブル1201)を記憶する。そして、画像形成装置M1803〜M1805は、各ユーザの機能利用権限をアクセス制御部32において管理する。
【0161】
複数の画像形成装置M1803〜M1805のうちの一つの画像形成装置のアクセス制御部32は、プリントやコピー機能の利用の可否に関して問い合わせを受けた場合、ログイン中のユーザの機能利用権限情報(図12のテーブル1201)を参照する。そしてさらに外部インターフェース125を介して印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせを行う。最終的なプリントやコピー機能の利用の可否は、ログイン中のユーザのGUI部品の機能利用権限情報と、印刷上限管理サーバへの問い合わせの応答結果との両方が『可』を示す場合にのみ利用可能であると判定する。
【0162】
すなわち、実施形態4では、直接記憶部122に格納されているログイン中のユーザのGUI部品の機能利用権限情報により、印刷上限管理サーバへのネットワークN1802を通じた問い合わせの結果を待たずに、プリントやコピー機能の可否を判定できる。
【0163】
さらに判定結果は、ユーザ毎に利用可否判定履歴として間接記憶部123に記憶し、一時的な機能利用可否の判定のために使用する。利用可否判定履歴は、ユーザログアウト後も保持し、同一ユーザが再ログインする際にも利用する。
【0164】
次に、図20のフローチャートを参照して、本実施形態におけるGUI部品(例えば、コピーボタン)の表示動作について説明する。
【0165】
まず、図20のステップS2001で、GUI部品は、アプリケーションからの表示要求を検知することにより表示動作を開始する。
【0166】
次に、ステップS2002で、GUI部品は、GUI部品の機能属性をアクセス制御部32に通知する。そして、GUI部品は、GUI部品の機能(例えば、コピー機能)の利用可否を問い合わせるために機能ライブラリ31のAPIを介してアクセス制御部32に問い合わせる。
【0167】
次に、ステップS2003で、アクセス制御部32は、直接記憶部122からログイン中のユーザのGUI部品の機能利用権限情報を取得する。ステップS2003と同時に、ステップS2004で、アクセス制御部32は、外部インターフェース125を介して印刷上限管理サーバ1801にログイン中のユーザのGUI部品の機能の利用可否を問い合わせる。この際、問い合わせの応答を非同期に待つため、応答待機中に平行して後述のステップS2005からステップS2011の処理が実行される。
【0168】
次に、ステップS2005で、アクセス制御部32は、ログイン中のユーザのGUI部品の機能の利用可否判定履歴を、間接記憶部123から直接記憶部122に読み出して取得する。
【0169】
次に、ステップS2006で、アクセス制御部32は、ステップS2003で取得したログイン中のユーザの機能利用権限情報から、ログイン中のユーザに、GUI部品の機能の利用権限が有るか否かを判定する。
【0170】
ステップS2006で、ログイン中のユーザに、GUI部品の機能の利用権限が有ると今回判定された場合には、ステップS2007に処理が進む。
【0171】
ステップS2006で、ログイン中のユーザに、GUI部品の機能の利用権限が無いと今回判定された場合には、ステップS2009に処理が進む。
【0172】
次に、ステップS2007で、アクセス制御部32は、ステップS2005で取得したGUI部品の機能の利用可否判定履歴を参照し、過去の利用可否判定は何であったかを判定する。
【0173】
ここで、「過去」とは、ステップS2007の処理が実行される以前を指す。
【0174】
ステップS2007で、ログイン中のユーザの、過去のGUI部品の機能の利用判定履歴が、「可」であった場合には、ステップS2008に処理が進む。
【0175】
ステップS2007で、ログイン中のユーザの、過去のGUI部品の機能の利用判定履歴が、「否」であった場合には、ステップS2009に処理が進む。
【0176】
ステップS2007により、アクセス制御部32は、図5および図15に係る処理における問い合わせに対する過去の応答の結果に応じた表示状態でGUI部品をディスプレイに表示させる命令をGUI部品に関連付ける。
【0177】
次に、ステップS2009で、GUI部品は、GUI部品の機能の利用が「否」であるという通知又は、GUI部品の機能の利用権限が「無し」の通知をアクセス制御部32から受け取り、GUI部品をグレーアウトに設定し直して表示する処理を行う。
【0178】
次に、ステップS2008で、GUI部品は、GUI部品の機能の利用が「可」という通知と、GUI部品の機能の利用権限が「有り」という通知をアクセス制御部32から受け取り、GUI部品の通常の表示処理を行う。
【0179】
ステップS2008、2009により、アクセス制御部32は、今回の応答の結果を受け次第、今回の応答の結果に応じた表示状態へGUI部品の表示状態を変更するための命令をGUI部品に関連付ける。そして、ステップS2008、2009により、アクセス制御部32は、ステップ2006、2007で決定された表示状態のGUI部品をディスプレイに表示されるように制御する。
【0180】
なお、上記で、「今回の」とは、「ステップS2008、2009の処理の実行時点での」という意味である。
【0181】
次に、ステップS2010で、GUI部品が受け取った通知が含むGUI部品の機能の利用可否の判定結果を、GUI部品もしくは、アクセス制御部32が、間接記憶部123に利用可否判定履歴として保存する。
【0182】
次に、ステップS2011で、GUI部品は、一旦処理を終了する。
【0183】
上記のステップS2003〜ステップS2011により、アクセス制御部32は、図5および図15に係る処理における過去の問い合わせ処理での問い合わせに対する応答の結果に応じた表示状態のGUI部品がディスプレイに表示されるように制御する。
【0184】
ステップS2012で、S2004の印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせに対する応答結果を受け次第、アクセス制御部32は再び処理を開始する。
【0185】
次に、ステップS2013で、以下の処理が行われる。すなわち、アクセス制御部32は、印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせの応答結果と、ステップS2003で取得したログイン中のユーザの利用権限とから、ログイン中のユーザのGUI部品の機能の利用可否を再判定する。
【0186】
ステップS2013で、GUI部品の機能の利用が「可」であると再判定された場合には、ステップS2014に処理が進む。
【0187】
ステップS2013で、GUI部品の機能の利用が「否」であると再判定された場合には、ステップS2015に処理が進む。
【0188】
ステップS2014で、GUI部品は、GUI部品の機能の利用が「可」であるという通知を受取り、GUI部品を再描画して、通常の表示処理を行う。
【0189】
ステップS2015で、GUI部品は、GUI部品の機能の利用が「否」であるという通知を受取り、GUI部品を再描画して、GUI部品をグレーアウトに設定し直して表示する処理を行う。
【0190】
上記のステップS2013〜2015により、S2004の印刷上限管理サーバ1801に印刷の利用可否に関する問い合わせに対する応答結果を受け次第、以下のような処理が実行される。すなわち、アクセス制御部32は、機能情報により特定される機能の利用可否を再判定して、再判定の結果に応じた表示状態のGUI部品をディスプレイに表示させるように制御する。
【0191】
次に、ステップS2016で、GUI部品が受取った通知に含まれるGUI部品の利用可否の判定結果は、再び、GUI部品もしくは、アクセス制御部32が、間接記憶部123に利用可否判定履歴として保存し、ステップS2017で、処理が終了する。
【0192】
上記のステップS2012〜ステップS2017により、アクセス制御部32は、図5および図15に係る処理における今回の問い合わせ処理での問い合わせに対する応答の結果を受け次第、以下のような処理を実行する。すなわち、アクセス制御部32は、今回の問い合わせ処理での問い合わせに対する応答の結果に応じた表示状態のGUI部品が表示手段に表示されるように制御する。
【0193】
図20のフローチャートでは、ステップS2003以降の処理とステップS2004以降の処理が並列で処理されている。しかし、ステップS2003で取得されたユーザのGUI部品の機能の利用権限を参照して、利用権限がある場合にのみ、ステップS2004以降の処理を実行しても良い。
【0194】
<実施形態5>
以下で、図面を参照して実施形態5について説明する。下記の実施形態5は、GUI部品に機能属性がついていない場合に、過去のGUI操作にともなう利用不可のエラー情報の発生履歴(エラー履歴)を元に、再びエラーを発生させないように、次回のGUI部品の表示状態が変更される。実施形態5に係る動作環境は、実施形態3に係るものと同様である。
【0195】
本実施形態では、実施形態3と同様に、例えば、実施形態1および実施形態2にかかるGUI部品を実現するソースコードを、プラットフォーム部20上で起動するアプリケーション1〜3(41〜43)として動作するものとしてインストールすることができる。
【0196】
以下、図21、図22のフローチャートを参照して本実施形態における動作について説明する。
【0197】
以下では、一例として、図23に示されているように、ユーザが、アプリケーションのGUI画面操作において、リストボックスからカラーを選択した状態で、コピーボタンG1302を押下した場合を想定して説明を行う。
【0198】
パネルG1301は、パネル上のGUI部品の動作を監視しており、パネル上のGUI部品の状態変化や発生イベントを知ることができる。尚、以下の説明において、一例として、ユーザは事前に画像形成装置にログインしているものとする。
【0199】
まず、図21のステップS2101で、画像形成装置は、コピーボタンG1302がユーザに押下されたことを検知して動作を開始する。この際、パネルG1301も、ボタンG1301の押下されたことを検知し、そのことを、直接記憶部122に記憶する。
【0200】
次に、ステップS2102で、コピーボタンG1302は、ボタンに関連付けられたボタン押下時のアプリケーションプログラムを呼び出す。
【0201】
次に、ステップS2103で、アプリケーションプログラムは、コピーボタンG1302の機能を提供する機能ライブラリ31を呼び出す。
【0202】
次に、ステップS2104で、ステップS2103で呼び出された機能ライブラリ31は、直接記憶部122を参照して、ログイン中のユーザ情報を取得する。そして、ユーザ情報により指定されるユーザのコピーボタンG1302の機能の利用の可否をアクセス制御部32に問い合わせる。
【0203】
次に、ステップS2105で、機能ライブラリ31は、ログイン中のユーザが、コピーボタンG1302を利用できるか否かを判定する。
【0204】
ここで、機能ライブラリ31は、コピーボタンG1302に関連付けられた機能情報により特定される機能(コピー)の利用権限がログイン中のユーザにあるか否かを判定する
ステップS2105で、コピーボタンG1302の利用が「可」であると判定された場合には、ステップS2106に処理が進む。
【0205】
一方、ステップS2105で、コピーボタンG1302の利用が「否」であると判定された場合には、ステップS2107に処理が進む。
【0206】
すなわち、ステップS2105で、ログイン中のユーザにコピーボタンG1302の利用権限が無いと判定された場合に、ステップS2107に処理が進む。
【0207】
ステップS2106で、機能実行ライブラリ31は、プラットフォーム部20を介して、画像形成装置のハードウェア機能を呼び出して、コピー処理を実行し、ステップS2113で、処理を終了する。
【0208】
ステップS2107で、機能ライブラリ31は、ログイン中のユーザにコピーボタンG1302の機能の利用権限が無いことを示すエラー情報を発行する。
【0209】
次に、ステップS2108で、機能実行ライブラリ31は、アプリケーションにエラー情報を通知する。
【0210】
次に、ステップS2109で、アプリケーションは、通知されたエラー情報をいずれかのGUI部品に通知する。本実施形態では、一例として、パネルG1301が、エラー情報の通知を受けるものとする。
【0211】
次に、ステップS2110で、エラー情報を受信したパネルG1301は、パネル上のGUI部品の情報(GUI部品の識別情報および表示状態)、エラーの起因となった最後のイベント、受信したエラー情報をアクセス制御部32に通知する。
【0212】
次に、ステップS2111で、アクセス制御部32は、通知されたエラー情報を、ログイン中のユーザを識別する情報と共にエラー履歴として直接記憶部122および間接記憶部123に記憶する。
【0213】
また、ステップS2111で、アクセス制御部32は、上記のエラー情報と、エラーが発生したときのGUI部品の表示状態とを関連づけてエラー履歴として直接記憶部122および間接記憶部123に保存する。
【0214】
例えば、記録される情報は図24のテーブル2401のようになる。
【0215】
次に、ステップS2112で、パネルG1301は、エラー情報をパネル上に表示して、ステップS2113で、一旦、処理を終了する。
【0216】
次に、図22のフローチャートを参照して、上記処理後のアプリケーションのGUI画面再表示処理について説明する。
【0217】
まず、図22のステップS2214で、パネルG1301は、アプリケーションからのGUI画面表示要求、もしくはユーザの操作によるGUI部品の状態変化を検知することでGUI画面の表示処理を開始する。
【0218】
次に、ステップS2215で、パネルG1301は、パネル上のGUI部品の情報(GUI種類、および識別情報)と状態をアクセス制御部32に通知し、表示の可否を問い合わせる。ここで、GUI部品とは、例えば、コピーボタンG1302、SENDボタンG1303、リストボックスG1304である。
【0219】
次に、ステップS2217で、ステップS2215で通知を受取ったアクセス制御部32は、直接記憶部122からログイン中のユーザの情報を取得する。そして、アクセス制御部32は、図21のステップS2111の処理により、ユーザの情報と記憶されたエラー履歴とを比較し、現在のアプリケーションの表示状態において過去にエラーが有るか否かを判定する。
【0220】
次に、ステップS2217で、過去にエラーが「有り」と判定された場合には、ステップS2218に処理が進む。
【0221】
次に、ステップS2217で、過去にエラーが「無し」と判定された場合には、ステップS2219に処理が進む。
【0222】
ステップS2218で、例えば、識別子が1234のコピーボタンG1302の押下で権限無しエラーが発生したことがパネルG1301に通知される。そして、パネルG1301は、この通知を受けて、コピーボタンG1302をグレーアウトに設定し直して表示する処理を行い、図25に示されているように、ディスプレイへの表示処理を行う。そして、ステップ2220で処理が終了する。
【0223】
ステップS2217で、エラー履歴が無いという通知をパネルG1301が受取り、パネルG1301は、通常のGUI部品表示処理を行い、ステップS2220で処理を終了する。
【0224】
上記のステップS2217〜2219の処理により、パネルG1302は、エラー履歴を参照して、次回のGUI部品の表示状態を決定することができる。
【0225】
アクセス制御部32は、間接記憶部123に記憶されたユーザの管理テーブル1101および機能利用権限情報(図12のテーブル1201)が変更されたことを検知した場合には、変更されたユーザに関するエラー履歴を削除する。
【0226】
本実施形態では、エラー履歴の保存と参照および現在のGUI部品の状態との比較をアクセス制御部32が行っているが、GUI部品が行っても良い。
【0227】
<上記以外の実施形態>
実施形態3〜5では、GUI部品、機能ライブラリ31、アクセス制御部32を別々のプログラムとして分割しているが、機能ライブラリ31やアクセス制御部32の機能の一部もしくは全てをGUI部品に実装することも可能である。
【0228】
以上のように、本発明によれば、ユーザの管理テーブル1101およびテーブル1201の各ユーザの機能利用権限情報を用いることにより、アプリケーションプラットフォーム上から送られてくる機能制限判断情報に対応したGUIの開発が容易となる。
【図面の簡単な説明】
【0229】
【図1】開発ツールキットを示す概略図である。
【図2】開発用アプリケーションのGUI画面を示す図である。
【図3】GUI部品に設定可能な機能属性値を示す図である。
【図4】GUI部品への機能属性値の設定例を示す図である。
【図5】実施形態1における開発用アプリケーションの動作例を表すフローチャートである。
【図6】実施形態2におけるGUI部品のドラッグアンドドロップ動作を示す図である。
【図7】実施形態2における開発用アプリケーションの動作例を表すフローチャートである。
【図8】画像形成装置を表す概略図である。
【図9】画像形成装置におけるアプリケーション動作環境をあらわすソフトウェアの概略図である。
【図10】画像形成装置のディスプレイに表示されるユーザログイン画面を示す図である。
【図11】画像形成装置が記憶するユーザ情報の一例を示す図である。
【図12】画像形成装置が記憶するユーザの機能利用権限情報の一例を示す図である。
【図13】アプリケーションのGUI部品の一例を示す図である。
【図14】アプリケーションのGUI部品の情報の一例を表す図である。
【図15】実施形態3における画像形成装置の動作を表すフローチャートである。
【図16】実施形態3におけるGUI画面制御の一例を示す図である。
【図17】実施形態3におけるGUI画面制御の一例を示す図である。
【図18】実施形態4におけるネットワークを示す簡略図である。
【図19】実施形態4の印刷上限管理サーバが管理する情報の一例を示す図である。
【図20】実施形態4における画像形成装置の動作を表すフローチャートである。
【図21】実施形態5における画像形成装置の動作を表すフローチャートである。
【図22】実施形態5における画像形成装置の動作を表すフローチャートである。
【図23】実施形態5におけるアプリケーションの初期画面を示す図である。
【図24】実施形態5におけるエラー履歴の一例を示す図である。
【図25】実施形態5におけるアプリケーションの再表示画面を示す図である。
【図26】APIを使用してソースコードを自動生成する際に用いられるテーブルの一例を示す図である。
【符号の説明】
【0230】
1 画像形成装置
11 印刷装置
12 画像処理装置
20 プラットフォーム部
121 CPU
122 直接記憶部
123 間接記憶部
124 ユーザインターフェース
125 外部インターフェース
【特許請求の範囲】
【請求項1】
アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、
GUI部品と、機能情報とを関連付けると、自動的に前記GUI部品に対して、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させるためのプログラム。
【請求項2】
前記関連付け工程は、GUI部品と機能情報とを関連付けると、さらに、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段への問い合わせに対する応答の結果に応じて前記GUI部品の表示状態を決定するための命令を、自動的に前記GUI部品に関連付けることを特徴とする請求項1に記載のプログラム。
【請求項3】
アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、
前記アプリケーションが表示手段に表示させる表示画面に配置されるGUI部品と、機能情報とを関連付けると、自動的に前記アプリケーションに対して、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させるためのプログラム。
【請求項4】
前記関連付け工程は、前記GUI部品と機能情報を関連付けると、さらに、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段への問い合わせに対する応答の結果に応じて前記表示画面でのGUI部品の表示状態を決定するための命令を、自動的に前記アプリケーションに関連付けることを特徴とする請求項3に記載のプログラム。
【請求項5】
アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、
GUI部品と、機能情報と、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令とのセットを含んでおり、
前記アプリケーションが表示手段に表示させるための表示画面に、前記GUI部品が配置されることを検知すると、自動的に、前記アプリケーションに対して、前記セットのうち前記管理手段に問い合わせを行うための命令を実行するためのソフトウェアを関連付ける関連付け工程をコンピュータに実行させるためのプログラム。
【請求項6】
機能情報と関連付けられたGUI部品を表示手段に表示させるための命令をアプリケーションから受取る受取り工程と、
前記受取り工程で前記命令を受取ると、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行う問い合わせ工程と、
前記問い合わせ工程での問い合わせに対する応答の結果に応じた表示状態のGUI部品を表示手段に表示させるように制御する制御工程とをコンピュータに実行させるためのプログラム。
【請求項7】
前記関連付け工程は、GUI部品と機能情報とを関連付けると、さらに、過去の前記応答の結果に応じた表示状態でGUI部品を表示手段に表示させる命令を、前記GUI部品に関連付け、今回の応答の結果を受け次第、前記応答の結果に応じた表示状態へGUI部品の表示状態を変更するための命令を、前記GUI部品に関連付けることを特徴とする請求項2に記載のプログラム。
【請求項8】
過去の前記問い合わせ工程での問い合わせに対する応答の結果に応じた表示状態のGUI部品が表示手段に表示されるように制御する制御工程と、
今回の前記問い合わせ工程での問い合わせに対する応答の結果を受け次第、前記応答の結果に応じた表示状態のGUI部品が表示手段に表示されるように制御する制御工程とをコンピュータに実行させるための請求項6に記載のプログラム。
【請求項9】
前記問い合わせ工程は、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段が複数存在する場合に、それぞれの管理手段に問い合わせを行い、
前記複数の管理手段の一つの管理手段から応答があった場合に、
前記応答の結果と、過去の前記問い合わせ工程での問い合わせに対する応答の結果から前記機能情報により特定される機能の利用可否を判定して、GUI部品の表示状態を決定する決定工程と、
前記決定工程により決定された表示状態のGUI部品が表示手段に表示されるように制御する制御工程と、
前記問い合わせ工程による問い合わせに応答していない管理手段から応答結果を受け次第、前記機能情報により特定される機能の利用可否を再判定して、前記再判定の結果に応じた表示状態のGUI部品を表示手段に表示させるように制御する制御工程とをコンピュータに実行させるための請求項8に記載のプログラム。
【請求項10】
前記機能情報に関連付けられたGUI部品が複数存在する場合に、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段からの応答結果に応じて、前記GUI部品の表示状態を決定する工程をコンピュータに実行させるための請求項1乃至9のいずれかに記載のプログラム。
【請求項11】
前記機能情報に関連付けられたGUI部品が複数存在する場合に、前記GUI部品の表示状態が変化した場合に、前記機能情報により特定される機能の利用可否に関する情報に応じて、前記GUI部品に関連する他のGUI部品の表示状態を決定する工程をコンピュータに実行させるための請求項1乃至10のいずれかに記載のプログラム。
【請求項12】
機能情報により特定される機能の利用権限を判定する利用権限の判定工程と、
前記利用権限の判定工程において、利用権限が無いと判定された場合に、利用権限が無いことを示すエラー情報を発行する工程と、
前記エラー情報と、エラーが発生したときのGUI部品の表示状態とを関連づけてエラー履歴として保存する工程と、
前記エラー履歴を参照して、次回のGUI部品の表示状態を決定する工程とをコンピュータに実行させるためのプログラム。
【請求項13】
利用権限の設定が変更されたこと検知すると、エラー履歴を削除する工程をコンピュータに実行させるための請求項12に記載のプログラム。
【請求項14】
機能の利用可否に関する情報が、ユーザ毎の機能に対する利用権限、利用可能回数のいずれかに関する情報であることを特徴とする請求項1乃至11のいずれかに記載のプログラム。
【請求項15】
請求項6乃至13のいずれかに記載のプログラムをインストールした画像形成装置。
【請求項16】
前記GUI部品のソースコードの生成は、前記GUI部品の表示の仕方についての情報を含むテーブルを用いて行われることを特徴とする請求項4乃至6に記載のプログラム。
【請求項17】
機能情報と関連付けられたGUI部品を表示手段に表示させるための命令をアプリケーションから受取る受取り工程と、
前記受取り工程で前記命令を受取ると、前記GUI部品の機能属性値を合算した情報を用いて、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行う問い合わせ工程と、
前記問い合わせ工程での問い合わせに対する応答の結果に応じた表示状態のGUI部品を表示手段に表示させるように制御する制御工程とをコンピュータに実行させるためのプログラム。
【請求項1】
アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、
GUI部品と、機能情報とを関連付けると、自動的に前記GUI部品に対して、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させるためのプログラム。
【請求項2】
前記関連付け工程は、GUI部品と機能情報とを関連付けると、さらに、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段への問い合わせに対する応答の結果に応じて前記GUI部品の表示状態を決定するための命令を、自動的に前記GUI部品に関連付けることを特徴とする請求項1に記載のプログラム。
【請求項3】
アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、
前記アプリケーションが表示手段に表示させる表示画面に配置されるGUI部品と、機能情報とを関連付けると、自動的に前記アプリケーションに対して、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令を関連付ける関連付け工程をコンピュータに実行させるためのプログラム。
【請求項4】
前記関連付け工程は、前記GUI部品と機能情報を関連付けると、さらに、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段への問い合わせに対する応答の結果に応じて前記表示画面でのGUI部品の表示状態を決定するための命令を、自動的に前記アプリケーションに関連付けることを特徴とする請求項3に記載のプログラム。
【請求項5】
アプリケーションの開発を支援するための開発ツールキットとしてのプログラムであって、
GUI部品と、機能情報と、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行うための命令とのセットを含んでおり、
前記アプリケーションが表示手段に表示させるための表示画面に、前記GUI部品が配置されることを検知すると、自動的に、前記アプリケーションに対して、前記セットのうち前記管理手段に問い合わせを行うための命令を実行するためのソフトウェアを関連付ける関連付け工程をコンピュータに実行させるためのプログラム。
【請求項6】
機能情報と関連付けられたGUI部品を表示手段に表示させるための命令をアプリケーションから受取る受取り工程と、
前記受取り工程で前記命令を受取ると、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行う問い合わせ工程と、
前記問い合わせ工程での問い合わせに対する応答の結果に応じた表示状態のGUI部品を表示手段に表示させるように制御する制御工程とをコンピュータに実行させるためのプログラム。
【請求項7】
前記関連付け工程は、GUI部品と機能情報とを関連付けると、さらに、過去の前記応答の結果に応じた表示状態でGUI部品を表示手段に表示させる命令を、前記GUI部品に関連付け、今回の応答の結果を受け次第、前記応答の結果に応じた表示状態へGUI部品の表示状態を変更するための命令を、前記GUI部品に関連付けることを特徴とする請求項2に記載のプログラム。
【請求項8】
過去の前記問い合わせ工程での問い合わせに対する応答の結果に応じた表示状態のGUI部品が表示手段に表示されるように制御する制御工程と、
今回の前記問い合わせ工程での問い合わせに対する応答の結果を受け次第、前記応答の結果に応じた表示状態のGUI部品が表示手段に表示されるように制御する制御工程とをコンピュータに実行させるための請求項6に記載のプログラム。
【請求項9】
前記問い合わせ工程は、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段が複数存在する場合に、それぞれの管理手段に問い合わせを行い、
前記複数の管理手段の一つの管理手段から応答があった場合に、
前記応答の結果と、過去の前記問い合わせ工程での問い合わせに対する応答の結果から前記機能情報により特定される機能の利用可否を判定して、GUI部品の表示状態を決定する決定工程と、
前記決定工程により決定された表示状態のGUI部品が表示手段に表示されるように制御する制御工程と、
前記問い合わせ工程による問い合わせに応答していない管理手段から応答結果を受け次第、前記機能情報により特定される機能の利用可否を再判定して、前記再判定の結果に応じた表示状態のGUI部品を表示手段に表示させるように制御する制御工程とをコンピュータに実行させるための請求項8に記載のプログラム。
【請求項10】
前記機能情報に関連付けられたGUI部品が複数存在する場合に、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段からの応答結果に応じて、前記GUI部品の表示状態を決定する工程をコンピュータに実行させるための請求項1乃至9のいずれかに記載のプログラム。
【請求項11】
前記機能情報に関連付けられたGUI部品が複数存在する場合に、前記GUI部品の表示状態が変化した場合に、前記機能情報により特定される機能の利用可否に関する情報に応じて、前記GUI部品に関連する他のGUI部品の表示状態を決定する工程をコンピュータに実行させるための請求項1乃至10のいずれかに記載のプログラム。
【請求項12】
機能情報により特定される機能の利用権限を判定する利用権限の判定工程と、
前記利用権限の判定工程において、利用権限が無いと判定された場合に、利用権限が無いことを示すエラー情報を発行する工程と、
前記エラー情報と、エラーが発生したときのGUI部品の表示状態とを関連づけてエラー履歴として保存する工程と、
前記エラー履歴を参照して、次回のGUI部品の表示状態を決定する工程とをコンピュータに実行させるためのプログラム。
【請求項13】
利用権限の設定が変更されたこと検知すると、エラー履歴を削除する工程をコンピュータに実行させるための請求項12に記載のプログラム。
【請求項14】
機能の利用可否に関する情報が、ユーザ毎の機能に対する利用権限、利用可能回数のいずれかに関する情報であることを特徴とする請求項1乃至11のいずれかに記載のプログラム。
【請求項15】
請求項6乃至13のいずれかに記載のプログラムをインストールした画像形成装置。
【請求項16】
前記GUI部品のソースコードの生成は、前記GUI部品の表示の仕方についての情報を含むテーブルを用いて行われることを特徴とする請求項4乃至6に記載のプログラム。
【請求項17】
機能情報と関連付けられたGUI部品を表示手段に表示させるための命令をアプリケーションから受取る受取り工程と、
前記受取り工程で前記命令を受取ると、前記GUI部品の機能属性値を合算した情報を用いて、前記機能情報により特定される機能の利用可否に関する情報を管理する管理手段に問い合わせを行う問い合わせ工程と、
前記問い合わせ工程での問い合わせに対する応答の結果に応じた表示状態のGUI部品を表示手段に表示させるように制御する制御工程とをコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2010−39841(P2010−39841A)
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願番号】特願2008−203212(P2008−203212)
【出願日】平成20年8月6日(2008.8.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願日】平成20年8月6日(2008.8.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]