JP3697176B2 - ユーザインタフェース制御装置および方法 - Google Patents

ユーザインタフェース制御装置および方法 Download PDF

Info

Publication number
JP3697176B2
JP3697176B2 JP2001132929A JP2001132929A JP3697176B2 JP 3697176 B2 JP3697176 B2 JP 3697176B2 JP 2001132929 A JP2001132929 A JP 2001132929A JP 2001132929 A JP2001132929 A JP 2001132929A JP 3697176 B2 JP3697176 B2 JP 3697176B2
Authority
JP
Japan
Prior art keywords
setting
user interface
processing
change
change request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001132929A
Other languages
English (en)
Other versions
JP2002328787A (ja
Inventor
智徳 皆川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2001132929A priority Critical patent/JP3697176B2/ja
Priority to US10/125,379 priority patent/US7218976B2/en
Publication of JP2002328787A publication Critical patent/JP2002328787A/ja
Application granted granted Critical
Publication of JP3697176B2 publication Critical patent/JP3697176B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ユーザインタフェースを介して入力される所定の制御対象に対する設定データの間に生じる不整合を回避するユーザインタフェース制御装置および方法に関する。
【0002】
【従来の技術】
ユーザインタフェース(以下、「UI」ともいう。)を介してユーザから複数の設定値の入力を受け付け、それらの設定値に基づき制御される機器は、数多くある。ホストコンピュータに接続され、そのホストコンピュータにおいて設定された情報に基づき画像形成処理を行う画像形成システム(プリンタシステム)はその一例である。プリンタシステムのホストコンピュータは一般に、印刷動作を制御するいわゆるプリンタドライバ、およびユーザからの印刷設定等を受け付けるUIを含む印刷処理関連プログラムを有する。
【0003】
印刷処理関連プログラムは、UIを介してユーザから設定値の入力を受け付ける度に、それまでに設定された複数の設定値の中で関連する設定値の値との関係を評価し、設定値間の不整合(コンフリクト)がないかどうかを判別する。コンフリクトの例としては、記録媒体としてセットされたOHPシートに対して両面印刷を行わせるような設定等のユーザにとって不都合と予想される設定や、プリンタに不可能な動作を行わせるような設定等がある。
【0004】
コンフリクトがあった場合には、それを回避するためのコンフリクト処理を実施する必要がある。
【0005】
ところで、ユーザインタフェースでの設定を保存する内部構造体に対し、他のプログラムからユーザインタフェースを介さずに(すなわち、ユーザインタフェースを表示することなく)、直接設定値の変更を行う場合がある。この場合にも、設定変更に関連する項目との不整合を評価し、ユーザインタフェースを介してユーザが変更した場合と同様のコンフリクト処理を実施する必要がある。
【0006】
また、デバイスの設定変更やアプリケーションとの連携の過程で内部構造体設定の整合性が失われる場合があり、ユーザインタフェースを開く際や印刷実行前等にはデータ全体の整合処理が必要となる。この場合にも、ユーザがユーザインタフェースを開いて操作を行った場合と同一の整合処理結果が得られる必要がある。
【0007】
【発明が解決しようとする課題】
ユーザインタフェースを表示しないときのコンフリクト処理と、データ全体の整合処理とでは、どちらのケースでもコンフリクト処理ルールは同一である。このことから、コンフリクト処理部をデータ処理部とユーザインタフェース処理部とに分けて、ユーザインタフェースを表示しない場合はデータ処理部のみを流用することが考えられる。
【0008】
しかし、ユーザインタフェース非表示の処理に関しては、ユーザインタフェース表示時はグレイアウト(設定項目を薄いグレイで表示すること)されていて直接変更することができない項目についても、変更要求のイベントが発生し予期しない変更処理が実施される可能性があるため、共通の処理モジュールの利用が困難であった。
【0009】
また、データ全体の整合処理に関しては、ユーザインタフェース表示時では、設定変更された項目を起点として関連する項目との整合を評価し、更新が発生する場合はさらに関連する項目へと連鎖するフローとなるのに対して、データ全体の場合は、設定変更による起点が存在せず、全体にわたるチェックが必要になるという点で前提が異なる。このことからも、共通の処理モジュールの利用が困難であった。
【0010】
しかしながら、これらをそれぞれ独立した処理モジュールにすると、ほとんど同一のアルゴリズムであるにも関わらず、別々の処理コードを作成する手間がかかるうえ、不整合検知処理の追加や変更に伴って各処理での漏れや食違いが出やすいという問題があった。
【0011】
本発明はこのような問題点に鑑みてなされたもので、ユーザインタフェースを介して入力されるデータに対するコンフリクト処理を行うためのモジュールを、ユーザインタフェースを介さずに入力されるデータに対するコンフリクト処理とデータ全体の整合処理とで共用可能にして、各処理ごとの専用のコンフリクト処理モジュールを作成する必要をなくし、もって低コストで高品質なユーザインタフェース制御装置および方法を提供することを目的としている。
【0012】
【課題を解決するための手段】
上記目的を達成するため、例えば本発明のユーザインタフェース制御装置は、以下の構成を備える。すなわち、
所定の被制御装置に対する設定変更要求をユーザインタフェースを介して入力する第1の入力手段と、前記被制御装置に対する設定変更要求を前記ユーザインタフェースを介さずに入力する第2の入力手段とを有し、前記ユーザインタフェースにおける各設定項目の設定状態の間に生じる不整合を回避するためのユーザインタフェース制御装置であって、
前記ユーザインタフェースにおける各設定項目の、前記設定状態を示す設定情報と直接変更の可否を示す情報とを記憶する第1の記憶領域と、
前記ユーザインタフェースの内部構造体として、前記第1の記憶領域における前記各設定項目の前記設定情報を反映して記憶する第2の記憶領域と、
前記第1または第2の入力手段より入力される前記設定変更要求に応じて適用される、所定の不整合回避戦略を示すコンフリクト処理ルールを記憶する第3の記憶領域と、
前記設定変更要求のあった前記設定項目に対応する前記第1の記憶領域における前記直接変更の可否を示す情報が、直接変更可であることを示しているか否かを判断する判断手段と、
前記判断手段により、前記設定変更要求のあった前記設定項目に対応する前記第1の記憶領域における前記直接変更の可否を示す情報が、直接変更可であることを示していると判断された場合において、前記コンフリクト処理ルールに従って、前記第1の記憶領域に記憶されている特定の前記設定項目の、前記設定情報および/または前記直接変更の可否を示す情報を変更する変更手段と、
を有することを特徴とする。
【0013】
【発明の実施の形態】
(ハードウェア構成)
図1は本発明の一実施形態を示す印刷処理システムのブロック構成図である。印刷処理システムは、ホストコンピュータ3000と、プリンタ1500より構成される。
【0014】
ホストコンピュータ3000において、1はシステムバス4に接続される各デバイスを総括的に制御するCPU、2はCPU1の主メモリ、ワークエリア等として機能するRAMである。3は各種プログラム、データを格納するROMであって、各種フォントを記憶するフォントROM3a、ブートプログラムやBIOS等を記憶するプログラムROM3b、および各種データを記憶するデータROM3cに区分けして構成されている。
【0015】
5はキーボードコントローラ(KBC)で、キーボード9や不図示のポインティングデバイス(マウス)からのキー入力を制御する。6はCRTコントローラ(CRTC)であり、CRTディスプレイ(CRT)10の表示を制御する。
【0016】
外部メモリ11(ディスクコントローラ(DKC)7によりアクセス制御される)は、ハードディスク(HD)やフロッピーディスク(FD)等であり、図示の如く、オペレーティングシステムプログラム(以下OS)205をはじめ各種アプリケーション(例えば、図形、イメージ、文字、表等が混在した文書処理を行う文書処理アプリケーションプログラム)201、印刷処理関連プログラム204を記憶する他、ユーザファイル、編集ファイル等も記憶する。印刷処理関連プログラム204は、ページ記述言語を用いて記述される印刷データを生成するプログラムであって、同系列の複数のプリンタに対して共通に利用されうる。また、プリンタ制御コマンド生成モジュール(以下「プリンタドライバ」という)2041、プリンタドライバUI制御モジュール2042を含む。
【0017】
8はプリンタコントローラ(PRTC)であり、双方向性インタフェース21を介してプリンタ1500に接続され、プリンタ1500との通信制御処理を行う。
【0018】
外部メモリ11に記憶されたアプリケーションは、RAM2にロードされてCPU1により実行されることになる。また、CPU1は、例えばRAM2へのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYG(What you see is What you get)を可能としている。さらに、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷設定設定画面(プリンタドライバUI制御モジュール2042により制御される)を開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバ2041に対する印刷処理の設定を行うことができる。
【0019】
プリンタ1500において、12はプリンタ1500の全体を制御するCPUである。19はCPU12の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域、NVRAM等に用いられるRAMであり、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。13はROMであり、各種フォントを記憶するフォントROM13a、制御プログラム等を記憶するプログラムROM13b、および各種データを記憶するデータROM13cより構成される。
【0020】
外部メモリ14(メモリコントローラ(MC)20によりアクセスを制御される)は、オプションとして接続されるハードディスク(HD)、フロッピーディスク(FD)、ICカード等であり、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ハードディスク等の外部メモリ14が接続されていない場合には、ROM13のデータROM13cに、ホストコンピュータ3000で利用される情報等を記憶することになる。なお、外部メモリ14は1個に限らず、複数備えるものであってもよく、例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【0021】
操作部1501にはユーザからの操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチおよびLED表示器等が配されている(図示は省略)。また、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0022】
プリンタCPU12は、ROM13のプログラムROM13bに記憶された制御プログラム等に基づき、印刷部インタフェース16を介してシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、CPU12は入力部18を介してホストコンピュータ3000との通信処理が可能となっており、プリンタ1500内の情報等をホストコンピュータ3000に通知可能に構成されている。
【0023】
(ソフトウェア構成)
図2は、所定のアプリケーションおよびプリンタ1500を制御対象とする印刷処理関連プログラムを起動して、ホストコンピュータ3000上のRAM2にロードされた状態のRAM2のメモリマップを示している。RAM2には、図示の如く、BIOS206、OS205をはじめ、アプリケーション201、印刷処理関連プログラム204、および関連データ203がロードされており、さらに空きメモリ領域202も確保されている。これにより、アプリケーション201および印刷処理関連プログラム204は実行可能状態にある。
【0024】
印刷処理関連プログラム204におけるプリンタドライバUI制御モジュール2042は、ユーザによる印刷設定指令に応じてCRT10に印刷設定画面を表示しユーザからの設定を可能にする。
【0025】
図8に、UIとしての印刷設定画面の表示例を示す。同図において、[Print Style]欄80は、印刷レイアウトを指定する欄であり、ユーザは例えば、片面印刷(1-Sided Printing)801、両面印刷(2-Sided Printing)802、および製本印刷(Booklet Printing)803のコントロールうちの、いずれかに対応するラジオボタンをマウスでクリックすることで指定することができる。
【0026】
[Finishing]欄81は、印刷済み記録媒体の出力順序および仕上げについて指定する欄であり、ユーザは例えば、以下のいずれかから指定可能となっている。
【0027】
[Collate] 811
部単位印刷。Nページの文書をM部印刷する場合に、第1ページ、第2ページ、…、第Nページの順に1枚ずつ出力し、これをM回繰り返す。
【0028】
[Group] 812
ページ単位印刷。Nページの文書をM部印刷する場合に、第1ページをM枚、第2ページをM枚、…、第NページをM枚、の順に出力する。
【0029】
[Staple] 813
ステープル仕上げ。上記[Collate] 811と同様に部単位で出力し、仕上げとして各部ごとにステープラで止める。
【0030】
なお、本明細書では、上記したようなユーザ設定可能項目を「プリンタ機能」または単に「機能」ともよぶ。この他にも多くのプリンタ機能を有するが、説明を簡単にするため省略する。
【0031】
ここで、ユーザにとって不都合と思われる設定の組み合わせ、意味のない設定の組み合わせ、すなわち設定値間の不整合(コンフリクト)は、プリンタドライバUI制御モジュール2042により、以下詳細に説明するコンフリクト処理として回避されるように設計される。
【0032】
図3は、実施形態における印刷処理関連プログラム204のプリンタドライバUI制御モジュール2042の概略構成を示している。303は、各モジュール間のデータの受け渡しやデータの更新等を管理してコンフリクト処理を統括するコンフリクトマネージャである。306が、上記した印刷設定画面表示制御を行い、本プリンタドライバUI制御モジュール2042におけるメインプログラムとしてのプリンタドライバUIである。301は、後述する記述形式で記述される不整合回避戦略を示すコンフリクト処理ルールを列記したコンフリクト処理ルール記述ファイルである。302は、コンフリクト処理ルール記述ファイル301をロードして、入力された設定値に対してコンフリクト処理ルールを適用し、各機能の状態を推論する推論エンジン、304は、各プリンタ機能の状態をリスト形式で表示する状態変数リストであり、ユーザからの入力およびコンフリクト処理ルール記述ファイル301の内容に基づき更新されうる。305は、プリンタドライバUI306が提供する画面表示の基になる帳票としての内部構造体であり、状態変数リスト304と連動して各プリンタ機能の状態を所定の形式で表示する。
【0033】
その後に、プリンタドライバUI306を介してユーザからの設定情報を受け取ったコンフリクトマネージャ303は、コンフリクト処理ルール記述ファイル301を参照する。このことは、図示の如くコンフリクト処理ルール記述ファイル301からコンフリクトマネージャ303に向かう矢印で、「R(Read)」として表示されている。参照の結果、設定情報がコンフリクト処理ルールに適合する場合、コンフリクト処理が適用される。そうして、コンフリクトマネージャ303は、状態変数リスト304および内部構造体305を更新してプリンタドライバUI306に反映させる。この更新作業は、図示の如くコンフリクトマネージャ303は、状態変数リスト304および内部構造体305とは各々双方向矢印で結ばれ、「R/W (Read/Write)」として表示されている。
【0034】
図4は、図3に示した各モジュールで扱われるデータの関連を説明する模式図である。図4において、コンフリクト処理ルール記述ファイル301は、推論エンジン302にインクルード(ロード)されたかたちで参照される。このコンフリクト処理ルール記述ファイル301はコンフリクトマネージャ303にも参照され、状態変数リスト304はコンフリクト処理ルールに従った内容を有することになる。また、内部構造体305と状態変数リスト304とは先に述べたとおり連動表示されるものであるから、互いにマッピングされる関係にある。そしてこの状態がプリンタドライバUI306の制御によってユーザに見えるかたちで表現される。
【0035】
なお、図4における状態変数リスト304は、各プリンタ機能(同図中「キー」の欄A, B, C,...)毎に状態値(ON/OFF)だけが簡略的に記述されているが、実際にはこの他に例えば、対応するコントロールのステータス(有効/無効)、フラグ、UIの表示更新メソッド、内部構造体305からのデータ取得メソッド、内部構造体305へのデータ反映メソッド等が記述されることになる。なお、「メソッド」とは、目的の機能を果たすためのデータ処理を記述したプログラムのことをいう。
【0036】
内部構造体305は、各プリンタ機能の状態を例えば、
データ型 機能名メンバ 状態メンバ
の構文で表し、プリンタ機能名A, B, C に対応する機能名メンバをそれぞれ cA, cB, cC のように表現する。そして、各機能に対する状態メンバは、状態変数リスト304における状態値がマッピングされている。
【0037】
(コンフリクト処理ルールの記述形式)
次に、コンフリクト処理ルール記述ファイル301について説明する。
【0038】
各ルールは、論理(ロジック)を用いて数学的に形式化される。述語は、
プリンタ機能名(引数)
の形で記述される。引数としては、ON/OFFの他、数値が入る場合もある(例えば、印刷部数等)。左辺には「プリンタ機能名(引数)」を、右辺には左辺が成り立つための論理条件を記述し、記号「←」で関係づける。例えば、
A(ON) ← B(ON).
は、「プリンタ機能Bの状態がONのときは、プリンタ機能Aの状態をONとする」という意味のルールになる。
【0039】
また、式中の記号「,」は論理「かつ(AND)」の意味で用いられる。例えば、「プリンタ機能Bの状態がON、かつ、プリンタ機能Cの状態がOFFのときに、プリンタ機能Aの状態をONとする」というルールは、
A(ON) ←B(ON), C(OFF).
と記述される。
【0040】
さらに、コンフリクト処理ルール記述ファイル301の中には、プリンタドライバUI306を更新するための処理を記述することが可能である。推論エンジン302がその記述を解釈した時点で、コンフリクトマネージャ303の状態変数リスト304を介して、プリンタドライバUI306の更新処理を直接行うことが可能になっている。
【0041】
例えば、UI更新の処理として{disable}セットの記述を追加することにより、該当項目のコントロールをdisableする処理(グレイアウト表示するとともに設定不可の状態にする処理)を指示することができる。
【0042】
次に、図8に表示されたプリンタ機能を例に、コンフリクト処理ルールに記述される機能名の具体例を示す。図8に示した[Collate] 811に対応する部単位印刷機能、[Group] 812に対応するページ単位印刷機能、および[Staple] 813に対応するステープル仕上げ機能の機能名はそれぞれ、Collate()、Group()、およびStaple()で示され、引数はONまたはOFFとなる。また、[PrintStyle]欄80に対応する印刷レイアウト機能は、Layout()で示され、引数は、1-Sided、2-Sided、Bookletのいずれかである。
【0043】
なお、上記した機能名はあくまでプリンタという制御対象に対する一例であって、制御対象に応じてその他の機能名が定義することができることはいうまでもない。
【0044】
図6は、以上の例に従って記述されたコンフリクト処理ルール記述ファイル301の一例である。
【0045】
(1)は、[Booklet Printing]803がチェックされたことでLayout(BOOKLET)となったときにStaple(OFF)とするルールである。後続行には{disable}が記述されているので、このルールが適用されると、コントロール[Staple]813はグレイアウトされることになる。
【0046】
(2)は、[Collate] 811がチェックされたことでCollate(ON)となったときにStaple(OFF)とするルール、(3)は、[Group] 812がチェックされたことでGroup(ON)となったときにStaple(OFF)とするルールである。
【0047】
(4)は、[Booklet Printing]803がチェックされたことでLayout(BOOKLET)となったときにCollate(ON)とするルールであり、このルールが適用されると、次の行の{disable}の記述によってコントロール[collate]811がグレイアウトされる。
【0048】
(5)は、[Booklet Printing]803がチェックされたことでLayout(BOOKLET)となったときにGroup(OFF)とするルールであり、このルールが適用されると、次の行の{disable}の記述によってコントロール[Group]812がグレイアウトされる。
【0049】
このように、各機能の状態によって適用されるルールが記述されている。
【0050】
(プリンタドライバUI制御モジュール2042の処理の内容)
以下、図5のフローチャートを用いて、コンフリクト処理を含むプリンタドライバUI制御モジュール2042の処理について、詳しく説明する。このフローチャートは、(1)UIを介して設定変更要求が発生した場合のコンフリクト処理および、(2)UIを介さずに、他のアプリケーションなどから設定変更要求が発生した場合のコンフリクト処理、を含んでいる。以下、両者の処理を別々に説明する。
【0051】
(1)UIを介して設定変更要求が発生した場合のコンフリクト処理
プリンタドライバUI制御モジュール2042の処理は、ユーザがキーボードコントローラKBC5等を用いて、印刷設定画面を開く指示をすることで始まる。ユーザが印刷設定画面を開くよう指示すると、上記したとおり、OS205の管理の下、RAM2に印刷処理関連プログラム204がロードされる。
【0052】
印刷処理関連プログラム204がRAM2にロードされると、まず、印刷設定画面を開くための初期化処理として、推論エンジン302は、コンフリクト処理ルール記述ファイル301をコンフリクトマネージャ303を介して、RAM2に読み込む(ステップS501)。
【0053】
続いて、コンフリクトマネージャ303が利用する状態変数リスト304を作成、初期化する(ステップS502)。
【0054】
このステップでは、まず、各状態変数の領域を確保しメソッドやフラグを設定する。なお、UIを開かずに初期化する場合は、UI更新メソッドを無効にしたり、フラグでUI非オープンであることを保持する等の初期化がなされることになる。
【0055】
コンフリクト処理ルール記述ファイル301に記述されるすべてのプリンタ機能名は、コンフリクトマネージャ303の内部にインクルードされた状態変数リスト304にそれぞれ、状態変数を持っている。この状態変数の値は、プリンタドライバUI306で使用される内部構造体305の対応するメンバの値と連動している。各プリンタ機能名の状態変数の初期値は、その内部構造体305のメンバの値となる。このメンバ値をメソッドを通して取得し、状態値にセットする。
【0056】
例えば、状態変数リスト304に登録されているプリンタ機能Aのメソッドは、int cAを参照し、そのメンバ値0を取得して対応するプリンタ機能Aの状態値をOFFとする。同様に、プリンタ機能Bの状態値はON、プリンタ機能Cの設定値はOFFとなる。すなわち、
A OFF
B ON
C OFF
となる。
【0057】
その後、設定全体の排他制御をプログラムによって行い、他の項目の設定に依存して利用できなくなっている項目は、対応するプリンタ機能のステータスを<無効>とする。ステータスが<無効>となっている項目は、UIを表示する場合は該当するコントロールがグレイアウト表示され、UIを表示しない場合はその項目の設定変更要求は受理されなくなる。
【0058】
具体的に、図8に示したUIを開く際の初期化処理を例にとって説明する。まず、図7に示す内部構造体中のプリンタ機能Layout、Collate、Group、およびStapleの状態変数を用意して、それぞれに各種メソッドをセットする。次に、各項目の内部構造体取得メソッドを通して内部構造体の設定値からメンバ値を取得し、状態変数値は以下のように初期化される。
Collate OFF
Group ON
Staple OFF
Layout 1-SIDED
【0059】
次に、無効となる項目をチェックし、その項目の状態変数のステータスを<無効>にする。この例では、無効となる項目はないものとする。以上でステップS502の状態変数の初期化処理が完了する。
【0060】
続いて、UIの処理が必要かどうか、すなわちUIを表示しているかどうかを判定する(ステップS503)。判定には呼び出し元を判断したり専用のフラグを用いてもよい。あるいは、状態変数のUI更新メソッドの有無や状態変数内のフラグを利用してもよい。UIをオープンする場合は、状態変数を参照しながらプリンタドライバUIのオープンのために必要な初期化処理を行い、UIをオープンする(ステップS504)。ここでは、設定値に応じた表示を行ったりステータスが<無効>の項目はグレイアウト処理を行ったりする。
【0061】
プリンタドライバUIがオープンされた後は、OSより送られてくるイベントの取得とその処理を繰り返す(ステップS505)。ステップS505で取得したイベントがユーザがプリンタドライバUI上の設定項目を変更したイベントであるかどうかの判定を行う(ステップS506)。yesの場合には、ステップS507に進み、さらに変更要求が有効な項目かどうかの判定を行う。なお、UIを表示している場合は無効な項目はグレイアウトされているため無効な項目からの入力はないので、この判定は必ず成功する。有効な項目と判定された場合は、ステップS508に進み、ステップS501で読み込んだコンフリクト処理ルールを適用する。
【0062】
ここで、取得したイベントがユーザによる設定変更要求であった場合のステップS508の一例として、図8に示す[Print Style]欄80における、片面印刷(1-Sided Printing)801から製本印刷(Booklet Printing)803に変更するものであった場合について説明する。
【0063】
プリンタ機能名Collate、Group、Staple、Layoutの状態変数の設定変更要求前における値は、図7に示した状態、すなわち、以下のようになっていた。
Collate OFF
Group ON
Staple OFF
Layout 1-SIDED
【0064】
ユーザの変更要求がLayoutを1−SidedからBookletに変更するものであるので、Layoutの状態変数の内容が変更されて、各プリンタ機能名の状態変数の値は次のようになる。
Collate OFF
Group ON
Staple OFF
Layout BOOKLET
【0065】
すると、プリンタドライバUI306はコンフリクトマネージャ303をコールし、続いて推論エンジン302がコールされて、コンフリクト処理ルール記述ファイル301を参照してコンフリクトチェックが始まる。すなわち、コンフリクト処理ルール記述ファイル301の各ルールの適用/不適用をチェックしていく。
【0066】
まず、ルール(1)が適用されることになるから、StapleはOFFのままコントロールはdisable、すなわちグレイアウト表示によって設定不可の状態にされる。
【0067】
また、ルール(4)、(5)も適用され、Collateの値はOFFからONへ、Groupの値はONからOFFへ変更され、次のように各コントロールはdisableとなる。
Collate ON (disable)
Group OFF (disable)
Staple OFF (disable)
Layout BOOKLET
【0068】
以上で、ステップS508の、推論エンジン302でのコンフリクト処理ルールの適用が終了し、状態変数リスト304の更新が完了する。
【0069】
続いて、UIの処理が必要か否かを判断し(ステップS509)、UIの処理が必要な場合には、ステップS510で、更新が必要なコントロールについて各項目の状態変数のUI更新メソッドを通してUIの更新処理を行う。ここでは設定値の更新や、ステータスが<無効>となった項目のグレイアウト処理等を行う。
【0070】
以上の処理により、上記の例では、Layoutが1-Sided PrintingからBooklet Printingに設定が変更されたことで、CollateがOFFからONへ、GroupがONからOFFへと変更され、Collate, Group, Staple がそれぞれdisable、すなわちグレイアウト表示となり、図8のUIは図10に示すとおりに更新される。その後、ステップS505に戻り処理を繰り返す。
【0071】
ステップS506において、取得したイベントが設定変更要求でないと判断した場合には、ステップS511に進み、処理の終了要求か、すなわち、UIのクローズ要求かどうかの判別を行う。クローズ要求であった場合には、ステップS512に進み、状態変数の設定値をメソッドを通して内部構造体に反映させる。続くステップS513では、UI処理が必要か否かを判断し、yesの場合にはステップS514で、UIをクローズして、全ての処理を終了する。ステップS511で、取得したイベントがクローズ要求ではなかった場合には、ステップ505に戻って処理を繰り返すことになる。
【0072】
以上の処理は、UIがクローズされるまで、繰り返し実行される。UIがクローズされると処理は全て終了し、本実施形態における印刷処理関連プログラムの処理も終了し、RAM2からはOS205の機能により消去される。
【0073】
(2)UIを介さずに、他のアプリケーションなどから設定変更要求が発生した場合のコンフリクト処理
UIを開く操作のかわりに、他のアプリケーションからの設定変更要求の受付により処理がスタートする。プリンタドライバUI306が他アプリケーションからの要求を受け付けるインタフェースとしての働きを持つことになる他は、上述した(1)の例によりUIを開く場合と構造は同じである。まず、UI表示時と同様にコンフリクトマネージャ303が起動され、コンフリクト処理ルール記述ファイル301が読み込まれる(ステップS501)。
【0074】
次に、ステップS502で状態変数リスト304を作成、初期化するが、UI表示が不要なのでUI更新メソッドは不要となる。また、必要があればフラグにUI非表示であることをセットしておいてもよい。設定値の初期化と設定全体の排他制御はUI表示時と同じである。なお、ステータスに<無効>をセットされた項目は変更要求を受け付けないので、UI上でグレイアウトされている項目が変更操作を受け付けないのと同等の効果を持つことになる。ここまででUI表示時と同一の状態変数リストが完成する。
【0075】
続いて、ステップS503にてUI処理が必要であるか否かを判定するが、本例ではUIを表示していないので、ステップS504のUIオープン処理はスキップされて、ステップS505に進む。
【0076】
ステップS505で、イベントの取得とその処理を繰り返す。UI表示時はユーザによってなされたUI操作がOSを通してイベントとして渡されるが、UI非表示時は他のアプリケーションからの要求がイベントとして渡されることになる。ステップS505で取得したイベントが設定変更要求であるか否か、すなわち項目と設定値の組合せであるか否かを判定し(ステップS506)、yesの場合にはステップS507に進み、対応する状態変数のステータスを参照して、その項目が有効であるかどうかを判定する。
【0077】
ここで、無効と判断された場合は、UI表示時であればグレイアウトされるコントロールと同等であることを意味するので、その変更要求は破棄されてステップS505に戻る。他方、有効と判断されれば、その変更要求項目を起点としてコンフリクト処理を起動し、UI表示時と同様に処理を進め、状態変数を更新する(ステップS508)。次のステップS509(UI処理の要否判断)ではnoと判断されるので、ステップS510のUI更新処理を行うことなくステップS505に戻る。
【0078】
このようにプリンタドライバ2041およびコンフリクトマネージャ303を起動している間に、ステップS505からS510の処理を他のアプリケーションから設定変更要求があるかぎり繰り返す。そして変更要求項目がなくなり、終了要求イベントが送られてきたところで(ステップS511)、UI表示時と同様に内部構造体305の更新を行う(ステップS512)。なお、本例では、ステップS513のUI表示の判定ではnoと判断されて、ステップS514のUIクローズ処理はスキップされることになる。
【0079】
以上説明した処理によれば、UIを開いてUI上で設定変更した場合とまったく同一の内部構造体を得ることができる。
【0080】
ところで、図5のステップS502は、メソッドと設定値をセットした後、プログラムによってステータスの判断を行うものであったが、このステップでもコンフリクト処理ルールを適用する例を図9に示すフローチャートを用いて説明する。
【0081】
ここでは、内部構造体305の初期状態が図11に示すとおりであり、この他に、図12に示す起点リスト、および図6のコンフリクト処理ルールを用いることとする。
【0082】
まず、状態変数の初期設定として、状態変数領域をRAM2の空き領域202(図2を参照)を確保するとともに、メソッドを設定し、メソッドを通して内部構造体305より初期値を取得する一連の処理を行う(ステップS901)。その結果、状態変数は以下のように初期化される。
Collate ON
Group OFF
Staple OFF
Layout BOOKLET
【0083】
次に、図12の起点リストを読み込み(ステップS902)、最初の項目であるLayoutを取得し、その設定値であるBOOKLETと組み合わせた[Layout, BOOKLET]を最初の起点とする(ステップS903)。まず、その起点となる項目のステータスを評価して(ステップS904)、有効であればコンフリクト処理を開始し、前記設定変更要求を起点としてコンフリクト処理ルールを適用する。起点を右辺にもつルールとして、まず図6のルール(1)が適用され、StapleはOFF、ステータスはdisableとなる。同様に、ルール(4)および(5)が適用され、状態変数は以下のように更新される。
Collate ON (disable)
Group OFF (disable)
Staple OFF (disable)
Layout BOOKLET
【0084】
これで起点リスト中のLayoutに関するコンフリクト処理が終了する。なお、ステップS904にて無効な項目と判定された場合は、ステップS905のコンフリクト処理をスキップする。
【0085】
続いて、起点リストの次の項目であるCollateを取得し、その設定値と合わせた[Collate, ON]を次の起点とする(ステップS906)。起点の有無のチェック(ステップS907)を経て、再びステップS904からの処理に戻る。ステップS904では今度の起点 Collateのステータスチェックを行うが、ルール(4)が適用されたことによってCollateのステータスはdisableであるため、その変更要求は破棄される。
【0086】
同様に、起点リスト中のGroup、Stapleについても順次処理を行い、ステップS907の判定において起点リスト中のすべての項目が終了したと判断したところで処理を終了となる。ここまでの処理で状態変数は以下のように初期化され、不整合の排除とステータスの初期化が完了する。
Collate ON (disable)
Group OFF (disable)
Staple OFF (disable)
Layout BOOKLET
【0087】
このように、UI上に表示する項目のうち、他の項目と排他関係が存在する項目をすべて起点リストに列挙しておくことで状態変数全体のステータス判定を行う。また、優先順位の高い項目から起点リストに記載することで従属関係があるものの処理も可能であり、途中で無効となった項目はコンフリクトチェックをスキップすることで処理の効率化を図ることも可能である。
【0088】
上述した実施形態では、ステップS512で処理終了時に内部構造体の更新を行っているが、その更新のタイミングはこの限りではなく、例えば、ステップS508の後で状態変数を変更する度に内部構造体を更新するようにしてもよい。
【0089】
また、上述した実施形態では、ステップS903で、項目と設定値のセットを起点としているが、かわりに項目のみを起点とし、コンフリクトマネージャ側で該当する設定値を補完した後に処理を遂行するようにしてもよい。
【0090】
また、図9の処理を図5のステップS502部分の詳細として説明したが、かわりに処理全体を、状態変数の初期化までのステップと、その後の内部構造体に書き戻すステップとの組合せにすることで、設定変更は行わずに単に内部構造体のデータ全体の整合処理を行うことも可能である。
【0091】
以上説明した実施形態によれば、UIを介さずに入力されるデータを更新する処理、およびデータ全体の整合を取る処理において、UIのコンフリクト処理をそのまま利用することができる。したがって、両者の処理のための専用プログラムを作成する煩わしさや条件の不一致や漏れによって生じる不具合から解放され、品質の高い整合処理を低コストで実現できるという効果がある。
【0092】
【他の実施形態】
なお、上述した実施形態では、プリンタ装置に対して、コンフリクト処理を含むUI制御を行う例について説明したが、本発明は、プリンタ装置に限らず、ディジタルカメラ、ディジタルレコーダ、イメージスキャナ等の周辺装置、制御機器の他、モデムやルータといったネットワーク関連機器にも適用可能であることはいうまでもない。これらの複数の機器から構成されるシステムに適用することも可能である。
【0093】
上述したように、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0094】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0095】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した図5または、図5および図9のフローチャートに対応するプログラムコードが格納されることになる。
【0096】
【発明の効果】
以上説明したように、本発明によれば、ユーザインタフェースを介して入力されるデータに対するコンフリクト処理を行うためのモジュールを、ユーザインタフェースを介さずに入力されるデータに対するコンフリクト処理とデータ全体の整合処理とで共用可能にして、各処理ごとの専用のコンフリクト処理モジュールを作成する必要をなくし、もって低コストで高品質なユーザインタフェース制御装置および方法を提供することができる。
【図面の簡単な説明】
【図1】実施形態に係る印刷処理システムのブロック構成図である。
【図2】実施形態におけるRAM2のメモリマップを示す図である。
【図3】実施形態におけるプリンタドライバUI制御モジュールの概略構成図である。
【図4】実施形態におけるプリンタドライバUI制御モジュールで扱われるデータの関連を説明する模式図である。
【図5】実施形態におけるプリンタドライバUI制御モジュールの処理を示すフローチャートである。
【図6】実施形態におけるコンフリクト処理ルール記述ファイルの一例を示す図である。
【図7】実施形態における内部構造体の一例を示す図である。
【図8】実施形態におけるプリンタドライバUIによる印刷設定画面の一例を示す図である。
【図9】実施形態における状態変数リストの作成後のコンフリクト処理ルールの適用処理の例を示すフローチャートである。
【図10】実施形態におけるプリンタドライバUIによる印刷設定画面の一例を示す図である。
【図11】実施形態における内部構造体の一例を示す図である。
【図12】実施形態における起点リストの一例を示す図である。

Claims (6)

  1. 所定の被制御装置に対する設定変更要求をユーザインタフェースを介して入力する第1の入力手段と、前記被制御装置に対する設定変更要求を前記ユーザインタフェースを介さずに入力する第2の入力手段とを有し、前記ユーザインタフェースにおける各設定項目の設定状態の間に生じる不整合を回避するためのユーザインタフェース制御装置であって、
    前記ユーザインタフェースにおける各設定項目の、前記設定状態を示す設定情報と直接変更の可否を示す情報とを記憶する第1の記憶領域と、
    前記ユーザインタフェースの内部構造体として、前記第1の記憶領域における前記各設定項目の前記設定情報を反映して記憶する第2の記憶領域と、
    前記第1または第2の入力手段より入力される前記設定変更要求に応じて適用される、所定の不整合回避戦略を示すコンフリクト処理ルールを記憶する第3の記憶領域と、
    前記設定変更要求のあった前記設定項目に対応する前記第1の記憶領域における前記直接変更の可否を示す情報が、直接変更可であることを示しているか否かを判断する判断手段と、
    前記判断手段により、前記設定変更要求のあった前記設定項目に対応する前記第1の記憶領域における前記直接変更の可否を示す情報が、直接変更可であることを示していると判断された場合において、前記コンフリクト処理ルールに従って、前記第1の記憶領域に記憶されている特定の前記設定項目の、前記設定情報および/または前記直接変更の可否を示す情報を変更する変更手段と、
    を有することを特徴とするユーザインタフェース制御装置。
  2. 前記コンフリクト処理ルールに関係する前記各設定項目を記述したリストを記憶する第4の記憶領域と、
    前記リスト中の各設定項目を、前記設定変更要求のあった設定項目とみなして、前記判断手段、前記変更手段における各処理を適用することで、前記各設定項目の設定状態の間の整合をとる手段と、
    を更に有することを特徴とする請求項1に記載のユーザインタフェース制御装置。
  3. 前記所定の被制御装置は、画像形成装置であることを特徴とする請求項1または2に記載のユーザインタフェース制御装置。
  4. 所定の被制御装置に対する設定のためのユーザインタフェースにおける各設定項目の設定状態の間に生じる不整合を回避するためのユーザインタフェース制御方法であって、
    前記被制御装置に対する設定変更要求を前記ユーザインタフェースを介して入力する第1の入力工程と、
    前記被制御装置に対する設定変更要求を前記ユーザインタフェースを介さずに入力する第2の入力工程と、
    前記ユーザインタフェースにおける各設定項目の、前記設定状態を示す設定情報と直接変更の可否を示す情報とを記憶している状態変数リストにおける、前記設定変更要求のあった前記設定項目に対応する前記直接変更の可否を示す情報が、直接変更可であることを示しているか否かを判断する判断工程と、
    前記判断工程により、前記状態変数リストにおける、前記設定変更要求のあった前記設定項目に対応する前記直接変更の可否を示す情報が、直接変更可であることを示していると判断された場合において、前記第1または第2の入力工程より入力される前記設定変更要求に応じて適用される、所定の不整合回避戦略を示すコンフリクト処理ルールに従って、前記状態変数リスト中に記憶されている特定の前記設定項目の、前記設定情報および/または前記直接変更の可否を示す情報を更新する更新工程と、
    を有することを特徴とするユーザインタフェース制御方法。
  5. コンピュータ装置が実行可能なプログラムであって、当該プログラムを実行したコンピュータ装置を、請求項1ないし3のいずれか1項に記載のユーザインタフェース制御装置として機能させることを特徴とするプログラム。
  6. 請求項5に記載のプログラムを格納した記憶媒体。
JP2001132929A 2001-04-27 2001-04-27 ユーザインタフェース制御装置および方法 Expired - Lifetime JP3697176B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001132929A JP3697176B2 (ja) 2001-04-27 2001-04-27 ユーザインタフェース制御装置および方法
US10/125,379 US7218976B2 (en) 2001-04-27 2002-04-19 User interface control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001132929A JP3697176B2 (ja) 2001-04-27 2001-04-27 ユーザインタフェース制御装置および方法

Publications (2)

Publication Number Publication Date
JP2002328787A JP2002328787A (ja) 2002-11-15
JP3697176B2 true JP3697176B2 (ja) 2005-09-21

Family

ID=18980871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001132929A Expired - Lifetime JP3697176B2 (ja) 2001-04-27 2001-04-27 ユーザインタフェース制御装置および方法

Country Status (1)

Country Link
JP (1) JP3697176B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8314969B2 (en) 2008-03-18 2012-11-20 Ricoh Company, Limited Image processing apparatus and information display method used in the image processing apparatus
US8610923B2 (en) 2008-10-21 2013-12-17 Fuji Xerox Co., Ltd. Information forming apparatus for determining whether to accept a setting change request from another device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4350565B2 (ja) 2003-03-27 2009-10-21 キヤノン株式会社 情報処理装置および方法
JP5121261B2 (ja) * 2006-04-04 2013-01-16 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、制御プログラム
JP5167886B2 (ja) * 2008-03-18 2013-03-21 株式会社リコー 画像処理装置と表示方法とプログラム
JP4987099B2 (ja) 2010-05-06 2012-07-25 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3224423B2 (ja) * 1992-07-17 2001-10-29 キヤノン株式会社 画像記録装置
JPH08278871A (ja) * 1995-04-05 1996-10-22 Canon Inc 情報処理装置及び方法
JPH0915825A (ja) * 1995-06-30 1997-01-17 Fuji Photo Film Co Ltd 画像記録装置における複写条件設定方法
JP4440998B2 (ja) * 1996-07-31 2010-03-24 キヤノン株式会社 情報処理装置及びプリンタドライバにおける設定方法
JP4028051B2 (ja) * 1997-10-22 2007-12-26 株式会社三井住友銀行 データ入力処理装置
JP3408124B2 (ja) * 1997-11-06 2003-05-19 シャープ株式会社 コンピュータシステムを利用した印刷処理装置
JPH11184654A (ja) * 1997-12-19 1999-07-09 Fuji Xerox Co Ltd 画像出力制御装置
JP3509549B2 (ja) * 1998-04-09 2004-03-22 セイコーエプソン株式会社 プリンタ制御装置およびその方法並びに記録媒体
JP2000242597A (ja) * 1999-02-18 2000-09-08 Canon Inc デバイス装置に対する出力設定を行う情報処理装置、情報処理方法及びプログラムを格納した記憶媒体
JP2001195166A (ja) * 2000-01-11 2001-07-19 Fuji Xerox Co Ltd 情報処理装置
JP3833067B2 (ja) * 2000-12-28 2006-10-11 キヤノン株式会社 ユーザインタフェース制御装置および方法ならびに記憶媒体
JP3733290B2 (ja) * 2000-12-28 2006-01-11 キヤノン株式会社 印刷制御装置および印刷制御方法および記憶媒体
JP4366027B2 (ja) * 2001-04-27 2009-11-18 キヤノン株式会社 ユーザインタフェース制御装置および方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8314969B2 (en) 2008-03-18 2012-11-20 Ricoh Company, Limited Image processing apparatus and information display method used in the image processing apparatus
US8610923B2 (en) 2008-10-21 2013-12-17 Fuji Xerox Co., Ltd. Information forming apparatus for determining whether to accept a setting change request from another device

Also Published As

Publication number Publication date
JP2002328787A (ja) 2002-11-15

Similar Documents

Publication Publication Date Title
US7218976B2 (en) User interface control apparatus and method
US7228314B2 (en) Apparatus and method for controlling user interface
JP4350565B2 (ja) 情報処理装置および方法
US20140153023A1 (en) Information processing apparatus and method
JP3679678B2 (ja) 印刷制御装置及びその制御方法
JP6784538B2 (ja) 情報処理装置、方法およびプログラム
JP2005190467A (ja) 情報処理装置、印刷制御方法及びそのプログラム
JP3697176B2 (ja) ユーザインタフェース制御装置および方法
US8842321B2 (en) Information processing apparatus, printer driver, print setting method and data structure
JP2002091728A (ja) 情報処理装置、印刷システム、及びコマンド生成方法
JP5025684B2 (ja) 制御装置及び方法、並びにプログラム
JP5700938B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4366027B2 (ja) ユーザインタフェース制御装置および方法
JP3833067B2 (ja) ユーザインタフェース制御装置および方法ならびに記憶媒体
JP5807460B2 (ja) 情報処理装置、プログラム、記憶媒体
JP3667043B2 (ja) 情報処理システム、情報処理装置、及び印刷制御方法
JP3814479B2 (ja) 情報処理装置及び情報処理方法、画像形成装置、記憶媒体
JP5106660B2 (ja) 制御装置及び方法、並びにプログラム
JP4817563B2 (ja) 情報処理装置および該装置のデータ処理方法およびデータ処理プログラムおよび該プログラムを格納した記憶媒体
JP2006236382A (ja) 情報処理装置及び情報処理方法
JP3673714B2 (ja) ユーザインタフェース制御装置および方法ならびに記憶媒体
JP4522398B2 (ja) ユーザインタフェース制御装置および方法
JP2002108580A (ja) 情報処理装置、印刷システム、及びモジュール決定方法
JP4100912B2 (ja) 情報処理装置及びその制御方法、プログラム並びに記憶媒体
JP2006228103A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20031211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050609

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050701

R150 Certificate of patent or registration of utility model

Ref document number: 3697176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130708

Year of fee payment: 8

EXPY Cancellation because of completion of term