(57)【要約】【課題】  必要に応じてユーザインタフェースルールを変更することにより、実現される情報処理装置のユーザインタフェースの機能制限を変化させること実現することを目的とする。【解決手段】  装置の状態などに応じて複数のユーザインタフェースルールから一つを選択する。【選択図】  図１６
2006107181.tif 000002
【特許請求の範囲】
【請求項１】
抽象化して記述されたユーザインターフェースの指定情報を外部から取得する取得手段と、
前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照する参照手段と、
前記ユーザインターフェースルールに関する情報を参照することにより、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する決定手段と、
ユーザインターフェースルールを変更するユーザインターフェースルール変更手段とを有することを特徴とする情報処理装置。
【請求項２】
前記ユーザインターフェースルール変更手段は、
変更されたユーザインターフェースルールの有効期限を設定するユーザインターフェースルール有効期限設定手段とを有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ユーザインターフェースルール有効期限設定手段は、前記ユーザインターフェースルールの有効期限をユーザ毎に設定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
さらに、前記情報処理装置の状況に関する情報を検出する検出手段を有し、
ユーザインターフェースルール変更手段は、前記検出手段によって検出された前記情報処理装置の状況に関する情報に応じて前記ユーザインターフェースルールを変更することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記ユーザインターフェース決定手段は、前記ユーザインターフェース指定情報が指定する要素に直接対応するユーザインターフェースを特定できない場合、前記ユーザインターフェースルールの階層構造を利用して、次善のユーザインターフェースを特定することを特徴とする情報処理装置。
【請求項６】
さらに、ユーザインターフェース部品要素について同時に使用可能な数を制限する手段と、
前記ユーザインターフェース部品要素に対して前記制限を越えた選択が発生した際には、ユーザインターフェース指定情報に付加された優先度情報に基づいて割り当てる手段とを有し、
前記ユーザインターフェース決定手段は、前記ユーザインターフェース部品要素が、ユーザインターフェース指定情報によって直接または次善のユーザインターフェース部品として制限を超えて選択された場合には、前記ユーザインターフェースルールの階層構造を利用して、前記ユーザインターフェース部品要素以外のさらに次善のユーザインターフェースを特定することを特徴とする請求項１記載の情報処理装置。
【請求項７】
さらに、前記情報処理装置を操作するユーザに関する情報を取得するユーザ情報取得手段とを有し、
前記ユーザインターフェースルール変更手段は、ユーザ情報に応じてユーザインターフェースルールを変更することを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記ユーザに関する情報は、前記情報処理装置を操作するユーザの身体的な情報およびユーザの操作の平易さや習熟度を判別する為の操作情報の少なくともいずれか１つを含むことを特徴とする請求項７記載の情報処理装置。
【請求項９】
抽象化して記述されたユーザインターフェースの指定情報を外部から取得する取得ステップと、
前記取得ステップにおいて取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照する参照ステップと、
前記ユーザインターフェースルールに関する情報を参照することにより、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する決定ステップと、
ユーザインターフェースルールを変更するユーザインターフェースルール変更ステップとを有することを特徴とする情報処理装置の処理方法。
【請求項１０】
請求項９に記載の処理方法を実行するプログラムを記録した記録媒体。
【請求項１１】
請求項１乃至８記載の処理をコンピュータによって実現させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインターフェースを提供する情報処理装置に関する。
【背景技術】
【０００２】
近年、通信インフラ整備の進展とネットワークに繋がるクライアント機器の多様化により、従来に無い様々な画面サイズや機能を持った入出力機器や表示情報処理装置をもつ機器において、インターネットに接続しサーバ上の情報を利用するというニーズが広まっている。
【０００３】
一方、ユーザインタフェースデータを送受し操作するリモートユーザインタフェースシステム、すなわち、サーバとクライアント機器間、または、機器の操作を別の機器の画面と入力機能を使って行う仕組みがあり、これを利用したグラフィックユーザインタフェースの工夫により、種類の異なる複数の機器及びユーザに対してユーザインターフェースを変えることを可能とする仕組みが存在する。
【０００４】
さらに上述の技術に加え、特定のユーザインタフェースデータを様々なクライアント機器において実現する為の技術が種々提案されている。
【０００５】
例えば、ユーザインターフェース要素の機能を抽象化した論理ユーザインターフェース要素を用いることにより、動作主体のプログラミング言語にかかわらず共通のユーザインターフェースを提供できるユーザインターフェース実現方法を提供する技術が開示されている。（特許文献１参照）
またさらに、クライアント側で表示の為に必要な機能が不足している場合には、サーバ側より最適な代替手段の提示、または必要なソフトウェアモジュールの提供を行うことにより、表示の実現を行う為の技術が開示されている。（特許文献２参照）
また例えば、予めコンテンツそのものをアクセシブルに作成し、ユーザの配信要求があった場合に、ユーザの特性に応じてコンテンツを動的に再構築して全ての人がアクセスできる情報を提供する為の技術が開示されている。（特許文献３参照）
【特許文献１】特開２００１−２１７８５０公報
【特許文献２】特開平１１−６６１０１公報
【特許文献３】特開２００３−２２３４６３公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、情報処理装置の状態に関わらず、表示されるユーザインターフェースの部品が固定であった。
【０００７】
またこのユーザインターフェースの部品を変更するには、また別のユーザインタフェースデータを外部から取得する必要があった。
【０００８】
すなわち、本発明は、上記課題を解決することを目的とし、必要に応じてユーザインターフェースルールを変更することにより、実現される情報処理装置のユーザインターフェースの機能制限を変化させること実現する。
【課題を解決するための手段】
【０００９】
本発明によれば、抽象化して記述されたユーザインターフェースの指定情報を外部から取得する取得手段と、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照する参照手段と、前記ユーザインターフェースルールに関する情報を参照することにより、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する決定手段と、ユーザインターフェースルールを変更するユーザインターフェースルール変更手段とを有することを特徴とする情報処理装置が提供される。
【発明の効果】
【００１０】
本発明によれば、情報処理装置の機能や状況、あるいは操作ユーザの属性に応じて、最適なユーザインターフェースを提供することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
【００１２】
図１２は以下に示す実施形態における表示情報処理装置のハードウェア構成を示す図である。
【００１３】
ＣＰＵ１２は、各種処理のための演算や論理判断等を行い、バス１１に接続された各構成要素を制御する。本情報処理装置には、ＲＯＭ１３とＲＡＭ１４が搭載されている。プログラムメモリには、フローチャートにつき後述する処理手順を含むＣＰＵ１２による制御の為のプログラムを格納する。メモリはＲＯＭ１３の代わりに外部記憶情報処理装置などからプログラムがロードされるものであってもよい。図１２において、入力装置１６はユーザからの入力情報を取得するマウス、タッチパネル、キーボードなどによって構成され、出力装置１８は、ユーザによる操作結果や、情報処理装置により分析されたデータ等の出力情報を出力するＣＲＴや液晶ディスプレイなどの表示情報処理装置などである。また、これらの出力装置１８に表示される内容を保持するメモリとしてＶＲＡＭ１５を備える。ネットワークＩ／Ｆ１７は、ネットワークで接続された他の機器とデータの送受を行う。
【００１４】
図１は本実施の形態に係るユーザインタフェースデータの構造の一例を示すクラス図及びユーザインターフェースルールのクラス図である。
【００１５】
図において、本実施の形態の情報処理装置がユーザインターフェースを構成するためのユーザインタフェースデータ１０１は、それぞれが１つのユーザインターフェースを記述する１つ以上のユーザインターフェース指定情報１０２から構成されており、ユーザインターフェース指定情報１０２は，サブクラスとしてユーザインターフェース部品について記述されたユーザインターフェース部品指定情報１０５と、ユーザインターフェース部品のレイアウトについて記述されたレイアウト指定情報１０６を持つ。
【００１６】
各ユーザインターフェース指定情報１０２は、それぞれ１つのユーザインターフェース指定情報要素１０３を有し、さらにユーザインターフェース指定情報要素１０３は１つのまたは空のリストを持つ。
【００１７】
各ユーザインターフェース指定情報要素１０３は、それぞれ階層化された抽象度の１階層を表し、抽象度を表す１つのユーザインターフェース指定情報要素名１０４を有する。レイアウト指定情報１０６は前記レイアウトの対象となる１つ以上のユーザインターフェース指定情報１０２をその記述の内部に含むという意味において、ユーザインターフェース指定情報１０２と関連している。
【００１８】
また、本発明に係る情報処理装置がユーザインターフェースを構成するためのユーザインターフェースルール１００は、ユーザインターフェース部品に関するルールが記述されたユーザインターフェース部品ルール２０１とレイアウトに関するルールが記述されたレイアウトルール４０１から構成される。ユーザインターフェース部品ルール２０１及びレイアウトルール４０１の詳細については後述する。
【００１９】
図２は本実施の形態における抽象度に応じて階層化されたユーザインターフェースルールのうち、ユーザインターフェース部品に関するユーザインターフェースルールの構造の一例を示すクラス図である。
【００２０】
図２において、ユーザインターフェース部品ルール２０１は、１つ以上のユーザインターフェース部品ルール要素２０２から構成されており、各ユーザインターフェース部品ルール要素２０２は、サブクラスとして非末端ユーザインターフェース部品ルール要素２０３と末端ユーザインターフェース部品ルール要素２０４を持つ。非末端ユーザインターフェース部品ルール要素２０３は１つ以上のユーザインターフェース部品ルール要素２０２を有し、末端ユーザインターフェース部品ルール要素２０４は１つの具体的ユーザインターフェース部品２０５に関連付けられている。
【００２１】
これにより、ユーザインターフェース部品ルール２０１はツリー状構造を成し、末端のユーザインターフェース部品ルール要素２０２は必ず末端ユーザインターフェース部品ルール要素２０４となる。
【００２２】
なお、ユーザインターフェース部品ルール要素２０２はそれぞれ１つのユーザインターフェース指定情報要素名１０４と関連付けられており、ユーザインターフェース部品ルール２０１のツリー状構造の各段階はそれぞれ階層化された抽象度の１段階を表現している。
【００２３】
図２４は、図２の具体例として、本実施の形態に実装されているユーザインターフェース部品に基づくユーザインターフェース部品ルールの一部をツリー状構造で示したものである。
【００２４】
本実施形態では、ユーザインターフェース部品を構成する為のツールキットがライブラリとして組み込まれており、上記で説明したように抽象概念をまとめてツリー状構造をなしている。ツリー状構造の末端には、ツールキットの具体的なユーザインターフェース部品が割り当てられており、階層を上がるごとに抽象度が高くなる。ツリー状構造の末端には、ツールキットの具体的なユーザインターフェース部品としてｑｄｉａｌ  ２５０９、ｑｓｌｉｄｅｒ＿ｈｏｒｉｚｏｎｔａｌ  ２５１０、ｑｓｌｉｄｅｒ＿ｖｅｒｔｉｃａｌ  ２５１１、ｑｌａｂｅｌ  ２５１２、ｑｐｕｓｈｂｕｔｔｏｎ  ２５１３などがある。これら具体的なユーザインターフェース部品の１つ上の階層では、それぞれを抽象化した部品の概念がまとめられており、ダイアル（ｄｉａｌ  ２５０５）、スライダ（ｓｌｉｄｅｒ  ２５０６）、ラベル（ｌａｂｅｌ  ２５０７）、プッシュボタン（ｐｕｓｈｂｕｔｔｏｎ  ２５０８）、などがある。さらに上位の階層では、さらに抽象化した機能レベルの概念として、数値範囲（ｒａｎｇｅ  ２５０２）、テキスト（ｔｅｘｔ  ２５２５）、トリガ（ｔｒｉｇｇｅｒ  ２５０４）などがある。
【００２５】
図４は本実施の形態における抽象度に応じて階層化されたユーザインターフェースルールのうち、レイアウトに関するレイアウトルールの構造の一例を示すクラス図である。
【００２６】
図４において、レイアウトルール４０１は、１つ以上のレイアウトルール要素４０２から構成されており、レイアウトルール要素４０２は、サブクラスとして非末端レイアウトルール要素４０３と末端ユーザインターフェース部品ルール要素４０４を持つ。非末端レイアウトルール要素４０３は１つ以上のレイアウトルール要素４０２を有し、末端レイアウトルール要素４０４は１つの具体的レイアウト４０５に関連付けられている。
【００２７】
これにより、レイアウトルール４０１はツリー状構造を成し、末端のレイアウトルール要素４０２は必ず末端レイアウトルール要素４０４となる。
【００２８】
なお、レイアウトルール要素４０２はそれぞれ１つのユーザインターフェース指定情報要素名１０４と関連付けられており、レイアウトルール４０１のツリー状構造の各段階はそれぞれ階層化された抽象度の１段階を表現している。
【００２９】
図６は本実施の形態の情報処理装置におけるレイアウトスタックのデータ構造の一例を示す概念図である。
【００３０】
図６において、６００はレイアウトスタック全体を示す。レイアウトスタック６００はレイアウト情報をスタック状に複数貯めておくためのコンテナの役割を果たす。６０１は概念上のスタックの最上部を示す。図において、レイアウト情報はこの線を最上位として、上から追加され、上から取り除かれる。６０２から６０５はそれぞれ１つのレイアウト情報を表す。ただし、本発明において６０２は現在のレイアウト情報と呼び、描画オブジェクトは必ずこれに基づいてレイアウトされる。レイアウト情報は図において下から順に追加されたレイアウト情報であり、その数には特に制限はない。
【００３１】
図７は本実施の形態における情報処理装置におけるレイアウト情報のデータ構造の一例を示す概念図である。
【００３２】
図７において、７００は１つのレイアウト情報全体を示す。７０１は前記レイアウト情報における次のオブジェクトをレイアウトするための原点となる座標である。７０２は現在のレイアウトルールである。７０１，７０２は現在のレイアウトルールの基で次の描画オブジェクトをレイアウトするための情報である。７０３は現在のレイアウトルールの基でレイアウトされたすべてのオブジェクトを含むような最小矩形の大きさである。７０３は現在のレイアウトが終了して、１つ前のレイアウト情報における現在の座標７０２と現在のボックスの大きさ７０３を更新するために使用される。
【００３３】
図８は本実施の形態における情報処理装置の処理を示すフローチャートである。
【００３４】
情報処理装置において処理が起動され、Ｓ８０１においてユーザインタフェースデータが取得されると、Ｓ８０２に進み、初期レイアウト情報を生成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックに送る。次にＳ８０３において、ユーザインタフェースデータを解析し、取得したユーザインターフェース指定情報とユーザインターフェースルールに基づいて最適なユーザインターフェースを決定する。
【００３５】
次にＳ８０４においてアプリケーションロジックを起動し、ユーザによるユーザインターフェースの操作に応じてアプリケーションロジックに要求を出したり、逆にアプリケーションロジックからの要求に応じたりといった処理を行う。
【００３６】
後述する入力操作に関する各処理は、Ｓ８０４のアプリロジック処理の中で、それぞれ起動・実行される。
【００３７】
一つの処理が終わると、次のユーザインターフェース画面が必要な場合や、ユーザあるいはアプリケーションロジックからの終了要求があった場合には、Ｓ８０５でアプリケーションロジック処理の終了を判断し、終了する場合にはＳ８０６に進む。アプリケーションロジック処理を終了しない場合はＳ８０４に戻り、処理を継続する。
【００３８】
Ｓ８０６において、情報処理装置が起動中であった場合にはＳ８０１に戻り、情報処理装置の終了処理を判断した場合には、システムを終了する。
【００３９】
後述する各処理は、Ｓ８０４のアプリロジック処理の中で、それぞれ起動・実行される。
【００４０】
図９は本実施の形態におけるユーザインターフェース決定処理を示すフローチャートである。
【００４１】
まず、Ｓ９０１においてユーザインタフェースデータを構成する情報を先頭から順番に読込む。次にＳ９０２において、ユーザインタフェースデータを構成する情報がある場合には、Ｓ９０３に進み、ユーザインタフェースデータを構成する情報が無い場合には処理を終了する。
【００４２】
Ｓ９０３において、取得した構成情報がユーザインターフェース指定情報である場合には、Ｓ９０４においてユーザインターフェース指定情報の種類を判断し、ユーザインターフェース部品指定情報と判断された場合には、Ｓ９０６においてユーザインターフェース指定情報に対応する具体的なユーザインターフェース部品を取得する。次にＳ９０７において、現在のレイアウト情報に従ってユーザインターフェース部品を配置し、続くＳ９０８においてレイアウト情報を更新する。次にＳ９０５に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、Ｓ９０２の処理に戻る。
【００４３】
Ｓ９０４においてレイアウト指定情報と判断された場合には、Ｓ９０９に進みレイアウト終了指定情報であるかどうか判断する。Ｓ９０９においてレイアウト終了指定情報と判断された場合には、Ｓ９１０においてレイアウトスタックから現在のレイアウト情報を取得して、Ｓ９０８においてレイアウト情報を更新する。次にＳ９０５に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、Ｓ９０２の処理に戻る。
【００４４】
Ｓ９０９においてレイアウト終了指定情報と判断されなかった場合には、Ｓ９１１に進み、ユーザインターフェース指定情報に対応する具体的なレイアウトを取得する。次にＳ９１２において、新規レイアウト情報を生成しレイアウトスタックに送る。次にＳ９０５に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、Ｓ９０２の処理に戻る。
【００４５】
図１０は本実施の形態におけるユーザインターフェース決定処理において実行される具体的ユーザインターフェース部品の取得処理を示すフローチャートである。
【００４６】
まず、Ｓ１００１においてユーザインターフェース部品指定情報の最初のユーザインターフェース指定情報要素を取得する。次にＳ１００２において、ユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素を取得する。次にＳ１００３に進み、次のユーザインターフェース部品ルール要素があるかを判断し、あった場合にはＳ１００９に進み、次のユーザインターフェース指定情報要素があるか判断する。Ｓ１００９において、次のユーザインターフェース指定情報要素があった場合にはＳ１００４に進み、次のユーザインターフェース指定情報要素を取得する。次にＳ１００５において、ユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素があるかを判断し、あった場合には、Ｓ１００２の処理に戻る。
【００４７】
Ｓ１００３において、次のユーザインターフェース部品ルール要素が無いと判断された場合、または、Ｓ１００９において次のユーザインターフェース指定情報要素が無いと判断された場合、または、Ｓ１００５においてユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素が無いと判断された場合には、Ｓ１００６において現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であるかを判断し、非末端ユーザインターフェース部品ルール要素で無いと判断された場合にはＳ１００７に進み、具体的ユーザインターフェース部品を取得して処理を終了する。
【００４８】
Ｓ１００６において現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であると判断された場合には、Ｓ１００８に進み現在のユーザインターフェース部品ルール要素の最初の子要素を現在のユーザインターフェース部品ルール要素として設定し、Ｓ１００６の処理に戻る。
【００４９】
図１１は本実施の形態におけるユーザインターフェース決定処理において実行される具体的レイアウト取得処理を示すフローチャートである。
【００５０】
まず、Ｓ１１０１においてレイアウト指定情報の最初のユーザインターフェース指定情報要素を取得する。次にＳ１１０２において、ユーザインターフェース指定情報要素名に対応のレイアウトルール要素を取得する。次にＳ１１０３に進み、次のレイアウトルール要素があるかを判断し、あった場合にはＳ１１０９に進み、次のユーザインターフェース指定情報要素があるか判断する。
【００５１】
Ｓ１１０９において、次のユーザインターフェース指定情報要素があった場合にはＳ１１０４に進み、次のユーザインターフェース指定情報要素を取得する。次にＳ１１０５において、ユーザインターフェース指定情報要素名に対応のレイアウトルール要素があるかを判断し、あった場合には、Ｓ１１０２の処理に戻る。
【００５２】
Ｓ１１０３において、次のレイアウトルール要素が無いと判断された場合、または、Ｓ１１０９において次のユーザインターフェース指定情報要素が無いと判断された場合、または、Ｓ１１０５においてユーザインターフェース指定情報要素名に対応のレイアウトルール要素が無いと判断された場合には、Ｓ１１０６において現在のレイアウトルール要素が非末端レイアウトルール要素であるかを判断し、非末端レイアウトルール要素で無いと判断された場合にはＳ１１０７に進み、具体的レイアウトを取得して処理を終了する。
【００５３】
Ｓ１１０６において現在のレイアウトルール要素が非末端レイアウトルール要素であると判断された場合には、Ｓ１１０８に進み現在のレイアウトルール要素の最初の子要素を現在のレイアウトルール要素として設定し、Ｓ１１０６の処理に戻る。
【００５４】
（第１の実施の形態）
本実施形態では、ある一つのユーザインタフェースデータに対してユーザインターフェースルールのみを変更することで、提供するユーザインターフェースを変更する例について説明する。
【００５５】
図１６は本実施形態におけるシステム全体の処理の流れを示すフローチャートである。
【００５６】
まず、Ｓ１７０１においてシステムの初期設定が起動し、あらかじめプログラムされた情報処理装置の起動時の処理等が行われる。次にＳ１７０２において、情報処理装置内のイベント処理部においてイベントを取得し、Ｓ２０２３で判断されるイベント種類に基づいてＳ１７０４以下の各処理が行われる。
【００５７】
Ｓ１７０３において、イベント種類がユーザインターフェースルール取得であると判断された場合には、Ｓ１７０４に進み、取得のユーザインターフェースルールのユーザインターフェースルール定義を取得し、次にＳ１７０９においてユーザインターフェースルール定義よりユーザインターフェースルールを作成処理が実行される。次に、Ｓ１７１０において、作成したユーザインターフェースルールを情報処理装置のユーザインターフェースルールとして設定し、Ｓ１７０２の処理に戻る。
【００５８】
Ｓ１７０３において、イベント種類がユーザインターフェースの構成であると判断された場合には、Ｓ１７０５に進みユーザインターフェース構成処理を起動してユーザインターフェースの構成を行い、Ｓ１７０２の処理に戻る。
【００５９】
Ｓ１７０３において、イベント種類がユーザインタフェースデータ取得であると判断された場合には、Ｓ１７０８に進みユーザインターフェース決定処理を起動し、取得のユーザインタフェースデータと情報処理装置のユーザインターフェースルールに基づきユーザインターフェースを決定し、Ｓ１７０２の処理に戻る。
【００６０】
Ｓ１７０３において、イベント種類がその他であると判断された場合には、Ｓ１７０６に進みその他処理を起動し、Ｓ１７０２の処理に戻る。Ｓ１７０３において、イベント種類が終了イベントであると判断された場合には、Ｓ１７０７の終了処理を起動して処理を終了する。
【００６１】
図２６は、ユーザインターフェースルール定義ファイルの例を示す図である。
【００６２】
この図にはユーザインターフェース部品のルールが記載されており、このユーザインターフェースルール定義ファイル２７０１を入力としてＳ１７０９で取得すると、Ｓ１７０９のユーザインターフェースルール作成により、図２４に示すようなユーザインターフェースルールが作成される。
【００６３】
図２７は、ユーザインターフェースルール定義データのその他の例を示す図である。
【００６４】
このユーザインターフェースルール定義ファイル２８０１を入力として、図２５に示すようなユーザインターフェースルールが作成される。
【００６５】
それでは以下に、具体的な処理の流れを、図１６のフローチャートに従って詳細に説明する。
【００６６】
まず、情報処理装置において、起動時に初期ユーザインターフェースルールとして図２４に示すようなユーザインターフェースルールが設定されているものとして、この時、図２８に示すようなユーザインタフェースデータの表示要求が発生したとする。
【００６７】
現在、前記情報処理装置にて設定されている図２４のユーザインターフェースルールにおいて、“ｒａｎｇｅ”２５０２の子要素は、“ｄｉａｌ”２５０５と“ｓｌｉｄｅｒ”２５０６の二つであり、前記ユーザインタフェースデータのユーザインターフェース部品指定情報１７０２  ｔｙｐｅ＝“／ｒａｎｇｅ／ｓｐｉｎｂｏｘ／ｑｓｐｉｎｂｏｘ”にて指定されている“ｓｐｉｎｂｏｘ”以下に対応する要素は存在しない。
【００６８】
従って、Ｓ８２５のユーザインターフェース決定処理において、図２８に示す現在のユーザインタフェースデータと図２４に示すユーザインターフェースルールに基づいて、“ｓｐｉｎｂｏｘ”以下に替わる次善のユーザインターフェース部品として、“ｒａｎｇｅ”２５０２の第１の子要素である“ｄｉａｌ”２５０５が選択され、さらにその子要素である具体的ユーザインターフェース部品“ｑｄｉａｌ”２５０９が選択される。
【００６９】
その結果、図１４のようなダイアル形式のユーザインターフェースにより構成される画面が表示される。
【００７０】
さてここで、ユーザ要求またはサーバ等からの要求によって、新たにユーザインターフェースルールが取得されると、Ｓ１７０４においてユーザインターフェースルール定義ファイル２８０１が取得される。Ｓ１７０９において、ユーザインターフェースルール定義ファイル２８０１より図２５のようなユーザインターフェースルールが作成され、Ｓ１７１０でこのユーザインターフェースルールを情報処理装置のユーザインターフェースルールとして設定する。これはすなわち“ｒａｎｇｅ”の子要素の順番を入れ替えたものである。これにより、指定のユーザインターフェース部品が存在しない場合に選択される次善のユーザインターフェース部品は、“ｓｌｉｄｅｒ”２６０５となる。
【００７１】
そこで、Ｓ１７０３においてユーザインタフェースデータの表示要求が発生すると、変更されたユーザインターフェースルールにおいて“ｒａｎｇｅ”の第１の子要素である“ｓｌｉｄｅｒ”の具体的ユーザインターフェース部品“ｑｓｌｉｄｅｒ＿ｈｏｒｉｚｏｎｔａｌ”が選択され、図１５のようなスライダ形式のユーザインターフェースにより構成される画面が表示される。
【００７２】
以上説明した通り、ユーザインターフェースルールの変更により、同じユーザインタフェースデータを表示させた場合でも、図１４と図１５のように異なった画面が表示される。
【００７３】
すなわち、本実施形態の構成により、ユーザインターフェースルールを別のユーザインターフェースルールに変更することにより、ユーザ毎、あるいは１つのユーザインタフェースデータを表示する期間等のセッション毎にユーザインターフェースルールを切り替え、それぞれ個別のユーザインターフェースを提供することが出来る。
【００７４】
さらにまた、ユーザインターフェースルールは図２４に示すような階層化構造を持った形式の他に、ユーザインターフェースルールを作成する為の情報、例えば図２６に示すようなユーザインターフェースルール定義を記述したテキストであってもよく、ユーザインターフェースルールをテキスト化することができる為に、ユーザインターフェースルールを簡単に作成、また配布可能とする。
【００７５】
（第２の実施の形態）
本実施形態では、一つのユーザインタフェースデータに対して複数のユーザインターフェースルールを提示し、これより一つを選択することによりユーザインターフェースを変更する例について説明する。
【００７６】
図１７は、本実施形態におけるシステム全体の処理の流れを示すフローチャートである。図１６の処理に対して、ユーザインターフェースルール選択イベントによる処理が追加されている以外は同じであるので、それ以外の処理については説明を省略する。Ｓ１８０３において、イベント種類がユーザインターフェースルール選択であると判断された場合には、Ｓ１８１０に進みユーザインターフェースルール選択処理を起動する。
【００７７】
図１８は、ユーザインターフェースルール選択処理の流れを示すフローチャートである。処理が起動されると、Ｓ１９０１において、現在システムにおいて有効なユーザインターフェースルールを取得し、Ｓ１９０２でユーザインターフェースルール一覧提示処理を起動して表示情報処理装置においてユーザに対して現在選択可能なユーザインターフェースルールの一覧を提示する。次にＳ１９０３において、ユーザによる選択操作の結果を判断し、これに基づき、ユーザインターフェースルールの設定を更新し、Ｓ１８０２の処理に戻る。
【００７８】
それでは以下に、具体的な処理の流れを、図１７のフローチャートに従って詳細に説明する。
【００７９】
まず、情報処理装置において、起動時に初期ユーザインターフェースルールとして図２４に示すようなユーザインターフェースルールが設定されているものとする。本実施形態においては、メニューよりユーザインターフェースルールの選択が可能であるものとする。
【００８０】
本実施形態において、第一の実施形態における処理と同様に、図２６のような初期のユーザインターフェースルールを設定し、続いてＳ１８０２のイベント取得からＳ１８０５のユーザインターフェース構成処理までの処理においてユーザインタフェースデータを表示した後、Ｓ１８０２において次のイベントが発生するのを待っているとする。
【００８１】
さてここで、ユーザにより、情報処理装置のユーザインターフェースルール選択がメニューより選択されると、Ｓ１８０９の有効ユーザインターフェースルール取得処理を起動し、現在の状況、例えば、時間、操作ユーザ、メモリ等のシステム状態において、有効なユーザインターフェースルールを取得する。ここでいう有効なユーザインターフェースルールとは、例えば、現在の操作ユーザに対して使用許可と設定されているユーザインターフェースルールであったり、夜間等指定の時間のみに使用可能なユーザインターフェースルールであったり、情報処理装置のリソースが少ない場合に使用する省資源対策として定義されたユーザインターフェースルールであったり、過去に情報処理装置外部から取得したユーザインターフェースルールであったりする。
【００８２】
また、前記有効なユーザインターフェースルールは、図２４のように抽象度に応じて階層化されたユーザインターフェースルールであってもよいし、図２６の２７０１のような、ユーザインターフェースルールを作成する為の情報、例えばユーザインターフェースルール定義を記述したテキストなどであってもよい。
【００８３】
このようにして取得されたユーザインターフェースルールの情報を、Ｓ１８１０のユーザインターフェースルール一覧提示処理において、ユーザが選択可能であるように提示する。ここで表示されるユーザインターフェースルール選択画面の例を図２９に示す。
【００８４】
続いて、ユーザ操作により、ユーザインターフェースルール一覧より一つを選択しＯＫボタンが押されると、Ｓ１８１２においてユーザインターフェースルールの設定が更新される。
【００８５】
なお、ここでは表示装置の表示画面上に出力されるユーザインターフェースの部品を一例として説明した、これは、ユーザインターフェースの部品として、音声読み上げによる提示などであってもよいものとする。
【００８６】
以上説明した通り、複数のユーザインターフェースルールの中から１つを選択して変更することができるので、同じユーザインタフェースデータを表示させた場合でも、幾通りものユーザインターフェースを表示させることが出来る。
【００８７】
（第３の実施形態）
本実施形態では、ユーザインターフェースルールに有効期限の設定がある場合の例について示す。
【００８８】
図１９は本実施形態におけるシステム全体の処理の流れを示すフローチャートである。図１６の処理に対して、ユーザインターフェースルール取得イベントによる処理に有効期限確認処理が追加されている点、及びユーザインターフェースルール有効期限設定手段イベントによる処理が追加されている点以外同じであるので、それ以外の処理については説明を省略する。
【００８９】
Ｓ２００３において、イベント種類がユーザインターフェースルール取得であると判断された場合には、Ｓ２００４に進み、取得のユーザインターフェースルールのユーザインターフェースルール定義を取得する。次にＳ２００９においてユーザインターフェースルール定義よりユーザインターフェースルールを作成する。次にＳ２０１１において、取得のユーザインターフェースルールに有効期限設定データがればユーザインターフェースルール有効期限設定イベントを発行する。次にＳ２０１２において現在処理対象となっているユーザインターフェースルールを情報処理装置のユーザインターフェースルールとして設定し、Ｓ２００２の処理に戻る。
【００９０】
Ｓ２００３において、イベント種類がユーザインターフェースルール有効期限設定であると判断された場合には、Ｓ２０１０においてユーザインターフェースルール有効期限設定処理を起動し、ユーザインターフェースルールの有効期限に基づいてユーザインターフェースルール設定を更新し、Ｓ２００２の処理に戻る。
【００９１】
図２１は、ユーザインターフェースルール有効期限設定確認処理の流れを示すフローチャートである。まず、Ｓ２２０１において、取得したユーザインターフェースルールについて有効期限設定情報があるかを判断し、有効期限設定情報がある場合にはＳ２２０２において、現在適用中のユーザインターフェースルールをメモリに保存する。これは、現在処理対象となっているユーザインターフェースルールの有効期限終了後にはもとのユーザインターフェースルールに復帰できるようにする為である。
【００９２】
次に取得したユーザインターフェースルールの有効期限設定イベントを発行して、処理を終了する。
【００９３】
Ｓ２２０１において、有効期限設定情報がない場合は、そのまま処理を終了する。
【００９４】
図２３は、ユーザインターフェースルール有効期限設定イベントに対して起動される処理の流れを示すフローチャートである。Ｓ２４０１において、ユーザインターフェースルールの有効期限設定情報を取得し、Ｓ２４０２において、有効期限設定情報が有効かどうかを判断する。Ｓ２４０２において、有効期限設定情報が無効の場合は、Ｓ２４０３においてメモリ上に保存されているユーザインターフェースルールがあるか判断し、保存のユーザインターフェースルールがある場合には、Ｓ２４０４において前記ユーザインターフェースルールを取得する。
【００９５】
Ｓ２４０３において保存のユーザインターフェースルールがない場合には、Ｓ２４０５においてデフォルトのユーザインターフェースルールを取得する。次に、Ｓ２４０６において、取得のユーザインターフェースルールを現在のユーザインターフェースルールとして設定を更新して処理を終了する。Ｓ２４０２において、有効期限設定情報が有効である場合は、処理をそのまま終了する。
【００９６】
以下に、具体的な処理の流れを、図１９のフローチャートに従って詳細に説明する。
【００９７】
情報処理装置において、起動時に初期ユーザインターフェースルールとして図２４に示すようなユーザインターフェースルールが設定されているものとする。
【００９８】
本実施形態において、第一の実施形態における処理と同様にＳ２００１のシステム初期設定から、Ｓ２００４のユーザインターフェースルール設定・変更処理までの処理において図２６のような初期のユーザインターフェースルールを設定し、続いてＳ２００２のイベント取得からＳ２００５のユーザインターフェース構成処理までの処理においてユーザインタフェースデータを表示した後、Ｓ２００２において次のイベントが発生するのを待っているとする。
【００９９】
なおここで、説明を平易なものとするために、現在適用中のユーザインターフェースルールをルールＡ、新規に取得したユーザインターフェースルールを、ルールＢと呼ぶことにする。
【０１００】
さて、新規ユーザインタフェースデータの入力を受け、Ｓ２００８においてユーザインターフェース決定処理が起動され、図８のフローチャートに従ってユーザインタフェースデータを解析し所定の処理を行う。
【０１０１】
この時、同時にユーザインターフェースルールＢを取得したとして、かつそのユーザインターフェースルール定義には、「ユーザインタフェースデータを表示する場合のみ有効とする」という有効期限設定情報をもつとする。すなわち、同時に取得されたユーザインタフェースデータと対になって適用されるユーザインターフェースルールであるという意味のことが定義されている。
【０１０２】
これにより、ユーザインターフェースルール取得イベントによる処理が発生し、Ｓ２００４で取得のユーザインターフェースルールＢの定義を取得し、これに基づいてＳ２００９においてユーザインターフェースルールＢが作成される。
【０１０３】
次にＳ２０１１において、有効期限確認処理を実行する。前記ユーザインターフェースルール定義には有効期限設定情報があるので、Ｓ２２０２に進み、現在適用中のユーザインターフェースルールＡをメモリに保存する。これは、取得のユーザインターフェースルールＢの有効期限が終了した後に、元のユーザインターフェースルールＡに戻る為である。次にＳ２２０３において、ユーザインターフェースルール有効期限設定イベントが発行され、次にＳ２０１２において、ユーザインターフェースルールＢを現在の情報処理装置のユーザインターフェースルールとして設定する。
【０１０４】
次にＳ２００２の処理に戻ると、ユーザインターフェースルール有効期限設定イベントがあるので、Ｓ２００８のユーザインターフェース有効期限設定処理が起動される。
【０１０５】
Ｓ２４０１において、ユーザインターフェースルール有効期限設定情報を取得すると、Ｓ２４０２において取得の有効期限が有効と判断され、処理をそのまま終了する。
【０１０６】
この結果、取得のユーザインターフェースルールＢが現在の装置のユーザインターフェースルールとして設定されているものとする。
【０１０７】
さてその後、ユーザインターフェースルールＢの有効期限が終了すると、ユーザインターフェース有効期限設定イベントが発行され、再びＳ２００８のユーザインターフェースルール有効期限設定処理が起動される。この時、Ｓ２４０２において、有効期限の無効が判断され、かつここでは、ユーザインターフェースルールＡが保存されているので、Ｓ２４０４においてユーザインターフェースルールＡが取得され、Ｓ２４０６において装置のＵＩルールとして設定が更新され、再び元のユーザインターフェースルールが適用されたユーザインターフェースが表示される。
【０１０８】
以上説明したように、上述した処理によってユーザインターフェースルールごとに有効期限を設定することにより、ユーザインターフェースルールの動的な変更を簡単に行い、データやユーザに最適なユーザインターフェースを提示することができる。
【０１０９】
なお、ここでは、ユーザインタフェースデータとユーザインターフェースルールを一体として説明したが、ユーザインタフェースデータとユーザインターフェースルールは必ずしも一体または一緒に送られなくてもよい。例えば、ユーザインターフェースルールを適応したい人とユーザインタフェースデータ作成者が異なる場合、ユーザインターフェースルールは操作者（情報処理装置のユーザ）が設定し、別の誰かが作成したユーザインタフェースデータや別の誰かが送信したデータを表示する場合などが考えられる。
【０１１０】
また、ユーザインタフェースデータ作成者がそのデータ特有のユーザインターフェースルールを付随させる場合や、ユーザインタフェースデータ作成者がユーザインターフェースルールを付随させたユーザインタフェースデータを送信してくる場合において、このユーザインターフェースルールを使用する例としては、同じ装置を２人以上のユーザが使用していて、あるＵＩデータを見るときは、ユーザＡが細かい表示を希望し、ユーザＢが大きい表示にしたいときなど、それぞれに設定したＵＩルールを有効にしてから、同じＵＩデータを表示する、といったことが考えられる。
【０１１１】
これにより例えば、ユーザは自分が操作する時のみという条件でユーザインターフェースルールを変えることができる。すなわち有効期限をユーザ毎に設定することにより、任意のユーザの操作開始（ログイン）時に前記ユーザ専用のユーザインターフェースルールを適応し、そのユーザの操作終了（ログオフ）時にユーザインターフェースルールをデフォルトのものに再設定しても良い。
【０１１２】
なお、このユーザインターフェースルールの有効期限は、上記の例で示したように、特定のデータに属するものとしてもよいし、「今から３時間」「ＡＭ８：００〜ＰＭ５：００」等のように明示的に時間で設定しても良い。
【０１１３】
さらに、ユーザインターフェースルールを変更する条件として、第一ないし第三の実施形態においては、ユーザによる操作画面からの選択操作をもちいたが、これを情報処理装置の操作または外部より取得する情報より判断するユーザ属性を条件として、自動で変更してもよい。
【０１１４】
例えば、モニタリングカメラからの操作ユーザの映像情報や、センサーにより検知されるユーザの位置や身体の稼動範囲、例えば身長の高低や手の持ち上がることのできる高さ等から、操作ユーザにとって操作可能なユーザインターフェースとその配置を計算し、それに適したユーザインターフェースルールに変更することも可能である。
【０１１５】
これにより、例えばタッチパネルをもちいた機器における操作画面において、操作の為のＧＵＩ部品のサイズまたは色、配置等の見易さの工夫で、高齢者や情報機器の操作に不慣れなユーザ、または身体機能に制限があり使えないユーザインターフェースが存在するユーザなどについても、ユーザの状況を上記カメラやセンサー等からの取得情報より判断し、自動で最適なユーザインターフェースルールに変更し、それぞれの操作ユーザに最適な操作し易いユーザインターフェースの提供を実現する。また例えば、一時的なユーザの操作困難な状況等、例えば手に荷物を持っていて操作に手を使えない等にも対応することができる。
【０１１６】
この場合、タッチパネルに限定せず、音声入出力機能を備える機器の場合などには、表示の他に、音声出力、音声入力など機能の異なるハードウェアユーザインタフェースを使い分けることができる。
【０１１７】
（第４の実施の形態）
本実施形態では、情報処理装置のリソースに応じて、適用するユーザインターフェースルールを動的に変更することで、ユーザインターフェースを最適化する。
【０１１８】
図３２は本実施の形態における情報処理装置におけるユーザインターフェース決定処理の一例を示す流れ図である。
【０１１９】
まず、Ｓ３３０１において処理が開始されると、Ｓ３３０２において当前記ユーザインタフェースデータによって構成される表示画面のモードがダイアログ画面であるか標準画面であるかを判断し、ダイアログ画面である場合には、Ｓ３３０３においてダイアログ画面用に最適化されたユーザインターフェースルールが選択される。標準画面で構成される場合には、Ｓ３３０４において、標準画面用に最適化されたユーザインターフェースルールが選択される。
【０１２０】
次にＳ３３０５において、レイアウト情報を初期化し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックにプッシュする。次にＳ３３０６において、ユーザインタフェースデータ中にユーザインターフェース指定情報がまだ存在するか否かを判断し、ユーザインターフェース指定情報が存在しなければ、Ｓ３３１７に進み処理を終了する。Ｓ３３０６の判断の結果、ユーザインターフェース指定情報がまだ存在するならば、Ｓ３３０７においてユーザインタフェースデータ中のユーザインターフェース指定情報を１つ読み込む。
【０１２１】
次にＳ３３０８において、前記ユーザインターフェース指定情報がユーザインターフェース部品指定情報かレイアウト指定情報かを判断する。前記判断の結果、前記ユーザインターフェース指定情報がユーザインターフェース部品指定情報であるならば、Ｓ３３０９においてユーザインターフェース部品ルールを参照する。
【０１２２】
次にＳ３３１０において、前記ユーザインターフェース部品指定情報に対応するユーザインターフェース部品を取得する。次にＳ３３１１において、前記レイアウトスタックの１番上にある現在のレイアウト情報に従って部品をレイアウトし、Ｓ３３０６の判断に戻る。Ｓ３３０８の判断の結果、前記ユーザインターフェース指定情報がレイアウト指定情報であれば、Ｓ３３１２において前記レイアウト指定情報がレイアウト開始指定情報か、レイアウト終了指定情報かを判断する。
【０１２３】
前記判断の結果、前記レイアウト指定情報がレイアウト開始指定情報であれば、Ｓ３３１３において、レイアウトルールからレイアウト指定情報に対応する具体的レイアウトを取得し、現在のレイアウト情報と前記具体的レイアウトを基に新たなレイアウト情報を作成し、Ｓ３３１４において前記レイアウトスタックにプッシュした後、Ｓ３３０６の判断に戻る。
【０１２４】
Ｓ３３１２の判断の結果、前記レイアウト指定情報がレイアウト終了指定情報であれば、Ｓ３３１５において前記レイアウトスタックから現在のレイアウト情報をポップし、Ｓ３３１６においてポップした後の現在のレイアウト情報を更新し、Ｓ３３０６の判断に戻る。
【０１２５】
図３ａのツリー状構造の末端には、ツールキットの具体的な部品としてＤｉａｌ、ＳｐｉｎＢｏｘ、Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌ、Ｓｌｉｄｅｒ＿Ｖｅｒｔｉｃａｌ、ＣｈｅｃｋＢｏｘ、ＰｕｌｌＤｏｗｎ、ＬｉｓｔＴａｂｌｅ、ＬｉｓｔＢｏｘ、ＰｉｃｔＢｕｔｔｏｎ、ＴｅｘｔＢｕｔｔｏｎ、２ＰｉｃｔＢｕｔｔｏｎ、Ｌａｂｅｌ、Ｈｉｎｔなどがある。それらの１つ上の階層では、末端の具体的な部品をそれぞれ抽象化し、部品の概念としてまとめている、ダイアル（ｄｉａｌ）、スピンボックス（ｓｐｉｎｂｏｘ）、スライダ（ｓｌｉｄｅｒ）、チェックボックス（ｃｈｅｃｋｂｏｘ）、プルダウンメニュー（ｐｕｌｌｄｏｗｎｍｅｎｕ）、リスト（ｌｉｓｔ）、モメンタリ（ｍｏｍｅｎｔａｒｙ）、オルタネート（ａｌｔｅｒｎａｔｅ）、ラベル（ｌａｂｅｌ）、ヒント（ｈｉｎｔ）などがある。それらのさらに上位の階層では、さらに抽象化したレベルとして、数値範囲（ｒａｎｇｅ）、選択（ｓｅｌｅｃｔ）、唯一選択（ｓｅｌｅｃｔｏｎｅ）、トリガ（ｔｒｉｇｇｅｒ）、テキスト（ｔｅｘｔ）などがある。
【０１２６】
また、図３ｂのツリー状構造の末端には、図３ａとは異なり、小さい画面用に最適化された末尾に“＿Ｓ”が付くユーザインタフェースコントロール部品であるＳｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌ＿Ｓ、ＣｈｅｃｋＢｏｘ＿Ｓ、ＬｉｓｔＢｏｘ＿Ｓ、ＰｉｃｔＢｕｔｔｏｎ＿Ｓ、Ｌａｂｅｌ＿Ｓなどがあり、それらの一つ上の階層では、スピンボックス（ｓｐｉｎｂｏｘ）、チェックボックス（ｃｈｅｃｋｂｏｘ）、リスト（ｌｉｓｔ）、モメンタリ（ｍｏｍｅｎｔａｒｙ）、ラベル（ｌａｂｅｌ）などがある。それらのさらに上の階層では、図３ａと同じ、数値範囲（ｒａｎｇｅ）、選択（ｓｅｌｅｃｔ）、唯一選択（ｓｅｌｅｃｔｏｎｅ）、トリガ（ｔｒｉｇｇｅｒ）、テキスト（ｔｅｘｔ）などがある。
【０１２７】
図５は、図４の具体例として、本実施の形態の情報処理装置に保持されているレイアウトルールの一部をツリー状構造で示したものである。本実施の形態では、ユーザインターフェース部品を画面に配置するために、具体的レイアウトが組み込まれており、上記で説明したように、抽象概念をまとめてツリー状構造をなしている。ツリー状構造の末端には、具体的レイアウトが当てられており、階層を上がるごとに抽象度が高くなる。
【０１２８】
図５のツリー状構造の末端に、具体的レイアウトとしてユーザインターフェース部品を横に並べるＨｏｒｉｚｏｎｔａｌ、ユーザインターフェース部品を縦に並べるＶｅｒｔｉｃａｌ、右回りで周囲に配置するＲｉｇｈｔＯｒｄｅｒ、左周りで周囲に配置するＬｅｆｔＯｒｄｅｒ、右上から碁盤目状に順番に配置するＵｐＲｉｇｈｔ、左上から碁盤目状に順番に配置するＵｐＬｅｆｔ、以下同様に、右下から順番に配置するＤｏｗｎＲｉｇｈｔ、左下から順番に配置するＤｏｗｎＬｅｆｔなどがある。それらのさらに上位の階層では、さらに抽象化したレベルとして、スタック（ｓｔａｃｋ）、ボーダー（ｂｏｒｄｅｒ）、グリッド（ｇｒｉｄ）などがあり、さらにその上の抽象化したレベルとしてグループ（ｇｒｏｕｐ）などがある。
【０１２９】
図１３は、ＸＭＬの記述に基づき、ＸＦｏｒｍｓ言語として記述されたユーザインタフェースデータのうち、コントロールパネルのＧＵＩを構成するｂｏｄｙ部分の一部分を表す例である。なお、例えばｔｒｉｇｇｅｒ要素内のｓｕｂｍｉｓｓｉｏｎ属性の参照先記述など、ｍｏｄｅｌ部分については、本実施の形態の処理の特徴とは直接関係が無いので記述を省略している。
【０１３０】
行番号１は本実施の形態の情報処理装置において構成されるＧＵＩ画面上の一つの操作パネルを構成する大きな３つのグループである、複数ボタンとスライダ、リストボックス及び複数ボタンが縦並びである事を示すグループ要素記述である。行番号２は、上記の複数のボタンとスライダが横並びである事を示すグループ要素記述である。
【０１３１】
行番号３から６まではｔｒｉｇｇｅｒ要素から構成されるボタン型ユーザインタフェースコントロール部品を示す記述であり、行番号の３では、要素名と共に、抽象化レベル毎に階層化された具象ユーザインタフェースコントロールまでを指定するＴｙｐｅ属性と、当前記具象ユーザインタフェースコントロールで使用されるキートップに貼り付けられる図形の参照ファイル名が、ｐｉｃｔｕｒｅ属性として記述されている。行番号４では、行番号３から始まるｔｒｉｇｇｅｒ要素の子要素として、ラベル部品であるｌａｂｅｌ要素とその内容の記述がある。行番号５では、行番号３のｔｒｉｇｇｅｒ要素の子要素として、ボタン型ユーザインタフェースコントロールが操作された際に実行する動作が記述されており、ｓｕｂｍｉｓｓｉｏｎ動作の参照先を示すｓｕｂｍｉｓｓｉｏｎ属性を含んでいる。行番号６は行番号２のｔｒｉｇｇｅｒ要素の終了タグである。
【０１３２】
以下、行番号７から行番号１８までは、上記の行番号３から６までの繰り返しである。
【０１３３】
また、行番号１９はｒａｎｇｅ要素から構成されるスライダ型ユーザインタフェースコントロール部品を示す記述であり、行番号の１９では、要素名と共に、抽象化レベル毎に階層化された具象ユーザインタフェースコントロールまでを指定するＴｙｐｅ属性が、また、行番号２０では、当前記ユーザインタフェースコントロール部品で制御される変数のモデル参照先がｒｅｆ属性として記述されている。また、行番号２１では、当前記ユーザインタフェースコントロール部品で制御される変数の範囲や表示ステップ、及び操作が行われた際に数値を変更するイベントを発生するか否かのフラグ等が記述される。また行番号２２では、行番号１９から始まるｒａｎｇｅ要素の子要素として、ラベル部品であるｌａｂｅｌ要素とその内容の記述がある。
【０１３４】
以上、これらにより構成されるユーザインタフェースコントロール部品群が、行番号２及び行番号２４から構成されるグループ要素の内容となっている。
【０１３５】
ここで、行番号１、２、３、７、１１、１５、１９に存在するｔｙｐｅ属性は、本発明の基となるによる階層型抽象化ユーザインタフェースデータ表示情報処理装置によるＸＦｏｒｍｓ言語の拡張であり、ユーザインターフェース部品指定情報を表している。
【０１３６】
例えば、行番号３、７、１１、１５に含まれるｔｙｐｅ属性において、ユーザインターフェース指定情報要素“ｔｒｉｇｇｅｒ”によりトリガを発生させる為の部品が指定されており、ユーザインターフェース指定情報要素“ｍｏｍｅｎｔａｒｙ”により押している間だけトリガを発生させる部品が指定されており、ユーザインターフェース指定情報要素“ｐｉｃｔｂｕｔｔｏｎ”により、キートップに図形が貼り付け可能なツールキット部品が指定されていることが記述されている。
【０１３７】
次に、行番号２５は、ｓｅｌｅｃｔｏｎｅ要素から構成されるリストボックス型ユーザインタフェースコントロール部品を示す記述であり、行番号の２５では、要素名と共に、抽象化レベル毎に階層化された具象ユーザインタフェースコントロールまでを指定するＴｙｐｅ属性と、当前記具象ユーザインタフェースコントロールで表示されるプレイリストのデータの参照先がｒｅｆ属性として記述されている。
【０１３８】
次に、行番号２７から５０は、先程の行番号３から１８までの記述と同様に、ｔｒｉｇｇｅｒ要素から構成されるボタン型ユーザインタフェースコントロール部品を示す記述であり、これらも先程と同様に行番号２６及び５１に示すグループ要素の内容となっている。
【０１３９】
またさらに、上記の二つのグループ要素及びその間に存在するリストボックス型ユーザインタフェースコントロール部品は、行番号１及び５２に示すグループ要素の内容となっている。
【０１４０】
それでは以下に、図１３のユーザインタフェースデータにより異なる２種類の画面モードにおける情報処理装置における動作について、画面を構成するユーザインタフェースコントロール部品が選択される具体的な処理の流れを、図３２と図１１のフローチャートに従って説明する。
【０１４１】
図３２において、図１３のユーザインタフェースデータの処理が開始されると、Ｓ３３０２において、図１３に示されるユーザインタフェースデータによるＧＵＩ画面が、ダイアログ画面上で構成されるものか、あるいは標準画面上で構成されるものかの判定が行われる。
【０１４２】
まず、情報処理装置上で、他のアプリケーションが実行されておらず、標準画面上において、当前記ＧＵＩ画面が構成される場合の例を説明する。このとき、Ｓ３３０２においては、ダイアログモードとは判定されない為に、Ｓ３３０４において標準画面用のユーザインターフェース部品ルールである図３ａのユーザインターフェース部品ルールが取得され、次にＳ３３０５においてレイアウト情報の初期化が行われる。
【０１４３】
次にＳ３３０６において、まず、図１３のユーザインタフェースデータの行番号１のグループ要素が読み込まれる。Ｓ３３０８において、グループ要素はユーザインターフェース部品情報では無い為に、Ｓ３３１２へと進む。行番号１はレイアウト指定の開始情報を示している為にＳ３３１３へと進み、図１１の具体的レイアウト取得処理が開始される。
【０１４４】
図１１のＳ１１０１において、図１３のレイアウト指定情報から、最初のユーザインターフェース指定情報要素である行番号１のｔｙｐｅ属性より“ｇｒｏｕｐ”を取得し、次にＳ１１０２でユーザインターフェース指定情報要素名ｇｒｏｕｐ（グループ）に対応するレイアウトルール要素として図５の５０２のグループを取得する。次にＳ１１０３で行番号１のｔｙｐｅ属性でレイアウト指定情報に続きがあるので、次にレイアウトルール要素があると判断され、Ｓ１１０４において“ｓｔａｃｋ”を取得する。
【０１４５】
次にＳ１１０５において、５０３のスタックがあるのでＳ１１０２の処理に戻る。Ｓ１１０２において、ｔｙｐｅ属性から“ｖｅｒｔｉｃａｌ”を取得し、Ｓ１１０５でユーザインターフェース指定情報要素名に対応するレイアウトルール要素として５０７の“Ｖｅｒｔｉｃａｌ”があるので、再び、Ｓ１１０３の処理に戻る。Ｓ１１０２において、対応するレイアウトルール要素として５０７のＶｅｒｔｉｃａｌを取得すると、Ｓ１１０３においてレイアウト指定情報に続きは無いので、Ｓ１１０６に進む。Ｓ１１０６において、５０７のＶｅｒｔｉｃａｌは末端レイアウトルール要素なので、Ｓ１１０７において、具体的レイアウトＶｅｒｔｉｃａｌを得る。
【０１４６】
このようにして、図１３のレイアウト指定情報と、図５のユーザインターフェースルール参照に基づき、図１１の処理では具体的なレイアウトＨｏｒｉｚｏｎｔａｌを取得する。
【０１４７】
次にＳ３３１４において、Ｓ３３１３で取得したレイアウト情報が再びスタックにプッシュされ、Ｓ３３０６において次のユーザインターフェース指定情報要素があるので、Ｓ３３０７においてユーザインターフェース指定情報要素が読み込まれる。
【０１４８】
この状態で図１３のユーザインタフェースデータよりユーザインターフェース部品情報が処理され、これらのユーザインターフェース部品は、行番号２４のレイアウト指定の終了までの間、当前記スタックにある状態でレイアウト配置される事になる。
【０１４９】
すなわち、行番号３から２３の間、図１３のユーザインタフェースデータにおいては、図５のレイアウトルールを参照し、具体的なレイアウトであるＨｏｒｉｚｏｎｔａｌが選択され、図３１ａの３２０２から３２０６に示す様に、＜ｘｆｏｒｍｓ：ｇｒｏｕｐ＞および＜／ｘｆｏｒｍｓ：ｇｒｏｕｐ＞で囲まれたユーザインターフェース指定情報要素が横並びでレイアウトされる事となる。
【０１５０】
次に、Ｓ３３０７で読み込まれた行番号２４のユーザインターフェース指定情報要素は、レイアウトの終了情報である為にＳ３３０８からＳ３３１２へと進みＳ３３１５の処理が行われる事になる。すなわち、Ｓ３３１４でプッシュされたレイアウト情報がポップされ、当前記スタックの状態はＶｅｒｔｉｃａｌへと戻る事になる。
【０１５１】
従って、次にＳ３３０７において読み込まれる行番号２５のｓｅｌｅｃｔｉｏｎ要素からなるユーザインターフェース指定情報要素は、Ｓ３３０８からＳ３３０９へと進み、Ｓ３３１０において、具体的なユーザインターフェース部品としてＬｉｓｔＢｏｘが選択され、Ｓ３３１１において、先に配置されたグループ要素と縦並びで、図３１ａの３２１２及び３２１３で示す様なユーザインターフェース部品のレイアウトの配置が行われる事になる。
【０１５２】
以下、行番号２６から５１までのグループ要素についても、図３１ａの３２１４から３２１９に示す様に、中身は横並びのレイアウト配置で行われ、また、前記グループ要素については、引き続き、縦並びでレイアウトの配置が行われる。
【０１５３】
また、上記の具体的なユーザインタフェースコントロール部品であるＰｉｃｔＢｕｔｔｏｎ及びＳｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌについては、子要素であるラベル要素の内容がそれぞれのユーザインタフェースコントロール部品の下部に表示され、図３１ａに示す様なＧＵＩ画面が構成されるものである。
【０１５４】
次に、その他の実施の形態として、当前記情報処理装置上で他のアプリケーションが既に実行されており、ダイアログ画面上において当前記ＧＵＩ画面が構成される場合の例を説明する。
【０１５５】
この時、Ｓ３３０２において、ダイアログモードと判定される為に、Ｓ３４０４において、ダイアログ画面用のユーザインターフェース部品ルールである図３ｂのユーザインターフェース部品ルールが取得され、次にＳ３３０５においてレイアウト情報の初期化が行われる。
【０１５６】
次にＳ３３０６において、まず、図１３のユーザインタフェースデータの行番号１のグループ要素が読み込まれる。Ｓ３３０８において、グループ要素はユーザインターフェース部品情報では無い為に、Ｓ３３１２へと進む。行番号１はレイアウト指定の開始情報を示している為にＳ１１１２へと進み、図１１の具体的レイアウト取得処理が開始される。
【０１５７】
図１１の処理においては、先程の標準画面の場合の説明と同様にレイアウトスタックの処理が行われ、Ｓ１１０７において、行番号３のユーザインターフェース指定情報要素の読み込みが行われ、当前記ユーザインターフェース指定情報要素はユーザインターフェース部品情報要素である為にＳ３３０９へと進み、図３ｂのユーザインターフェース部品ルールへの参照が行われ、Ｓ３３１０において、図１０に示す具体的ユーザインターフェース部品取得処理が実行される。
【０１５８】
ここで、図１０のＳ１００１において、最初のユーザインターフェース指定情報要素である“ｔｒｉｇｇｅｒ”を得る。Ｓ１００２において、ｔｒｉｇｇｅｒ（トリガ）に対応する図３ａの３０５のトリガ要素を得る。Ｓ１００３において、次のユーザインターフェース部品ルール要素に続きがあり、かつＳ１００９においてユーザインターフェース部品指定情報に続きがあるので、Ｓ１００４において、次の“ｍｏｍｅｎｔａｒｙ”を取得する。Ｓ１００５において、ｍｏｍｅｎｔａｒｙ（モメンタリ）に対応するモメンタリ要素があるので、Ｓ１００２の処理に戻る。
【０１５９】
同様にして、Ｓ１００２でモメンタリ要素３１３を取得し、Ｓ１００４で“ｐｉｃｔｂｕｔｔｏｎ”を取得する。Ｓ１００５において“ｐｉｃｔｂｕｔｔｏｎ”に対応するユーザインターフェース部品ルール要素ＰｉｃｔＢｕｔｔｏｎは存在しないので、Ｓ１００６に進み、当前記モメンタリ要素が末端ユーザインターフェース部品ルール要素であるか否かを判断し、ここでは末端ユーザインターフェース部品ルール要素ではないのでＳ１００８へと進み、最初の子要素であるＰｉｃｔＢｕｔｔｏｎ＿Ｓを取得し、現在のユーザインターフェース部品ルール要素としてＳ１００７の処理に戻る。Ｓ１００７において、当前記ユーザインターフェース部品ルール要素であるＰｉｃｔＢｕｔｔｏｎ＿Ｓは末端ユーザインターフェース部品ルールであるので、Ｓ１００７において具体的なユーザインターフェース部品である、ＰｉｃｔＢｕｔｔｏｎ＿Ｓを取得する。
【０１６０】
このようにして図１３の末端ユーザインターフェース部品ルール要素まで指定したユーザインターフェース部品指定情報では、対応するユーザインターフェース部品が見つからなかったために、図３ｂのユーザインターフェース部品ルールより、次善のユーザインターフェース部品として、ＰｉｃｔＢｕｔｔｏｎ＿Ｓが選択される。
【０１６１】
以下、行番号７、１１、１５においても同様にしてＰｉｃｔＢｕｔｔｏｎ＿Ｓの選択される。これらのユーザインターフェース部品がレイアウトスタックの状態により横並びにレイアウト配置された結果、図３１ｂの３２０２から３２０５に示す様な、ダイアログ画面に適した小型でなおかつラベル表示を省略したユーザインターフェース部品が配置されることになる。
【０１６２】
また、行番号１９のｒａｎｇｅ要素についても具体的なユーザインターフェース部品としてＳｌｉｄｅｒ＿Ｈｒｉｚｏｎｔａｌ＿Ｓが、行番号２５のｓｅｌｅｃｔｏｎｅ要素についても具体的なユーザインタフェースコントロール部品として、ＬｉｓｔＢｏｘ＿Ｓが、それぞれ選択され、図３１ｂの３００６及び３００７としてレイアウト配置される。以下、行番号２７、３１、３５、３９、４３、４７についても同様の処理が行われた結果、図３１ａではスクロールバー３２２０ａに変わって、図３１ｂではスピンボックス３２２０ｂが表示されている。このようにして、ダイアログ画面上に小型のユーザインターフェースをコントロールするユーザインターフェース部品が選択され、レイアウトされた事により、全てのユーザインターフェース部品をダイアログ画面上に構成することが可能となった。
【０１６３】
以上説明した様に、本実施形態によれば、同一のユーザインタフェースデータを用いて、同一の情報処理装置上でＧＵＩ画面の構成を行う際に、予め、当前記情報処理装置における画面モード、すなわち、ここでは前記のＧＵＩ画面の構成を行う際に許された表示画面の大きさによる制限を検出し、当前記検出した結果に基づき、それぞれの画面サイズに適したツールキット部品からなるユーザインターフェース部品ルールを選択し、当前記ユーザインターフェース部品ルールを用いて、ユーザインタフェースデータに基づくＧＵＩ画面の構成を行うことで、画面サイズごとに最適な、ユーザに使いやすいＧＵＩを提供出来る。
【０１６４】
なお、本実施の形態においては、ＧＵＩ画面が構成される際の表示画面の種類として、ダイアログ画面と標準画面という組み合わせとしたが、ユーザインターフェース部品ルールと対応する表示画面の種類として、１画面と２分割画面など、画面を分割する際の種類としてもよい、また更に、対応するユーザインターフェース部品ルールも２種類だけではなく、３分割画面用、４分割画面用など、それぞれの画面用にユーザインターフェース部品ルールを用意しても構わない。
【０１６５】
また、さらに、個々のユーザインターフェース部品ルールに対応する情報処理装置の状態には、メモリやキャッシュの使用量など、ＧＵＩ画面を構成する際に必要とする全てのリソースの状態を含む物でも構わない。この様な構成では、当前記リソースが少ない状態を予め検出し、この様な場合には、ＧＵＩ画面を構成する際に、当前記リソースの消費が少ないユーザインターフェース部品から成るツールキットに対応したユーザインターフェース部品ルールを選択する構成としてもよい。また、さらに、上記の実施の形態では、複数用意するユーザインターフェースルールとして、ユーザインターフェース部品ルールの例を挙げたが、各種リソースの消費が少ないレイアウトルールなどを用意して、これを選択する構成としても良い。
【０１６６】
なお、ユーザインターフェースルールを変更する条件として、本実施形態においては、情報処理装置のリソースとして画面サイズをもちいたが、これを現在使用可能な情報処理装置機能としてもよい。
【０１６７】
例えば、タッチパネル機能と音声入出力機能をもつ表示情報処理装置であったとして、タッチパネル機能が故障している場合には、通常タッチパネル操作で提供されているユーザインターフェースを音声入出力機能をもちいたものに変えることができる。これにより、一つの機能が使えない状況であっても、他のユーザインターフェースに変更することで常にその状況下においてユーザに最適なユーザインターフェースを提供できる。
【０１６８】
このような処理によって、液晶からなる表示情報処理装置のバックライトが切れてしまい、表示画面が見えなくなってしまったような状況においても、情報処理装置の状況を検知して、表示以外のユーザインターフェースを使うようユーザインターフェースルールを変更すれば、表示画面が見えなくて操作ができないというような事態を避けることができる。
【０１６９】
（第五の実施形態）
第四の実施形態においては、情報処理装置の持つ各種リソースの状態を検出し、それぞれの状態に最適に対応するユーザインターフェースルールを選択する構成としたが、具体的なユーザインターフェース部品について、ハードウェアから成るユーザインターフェース部品から構成されている場合など、その同時使用可能な数に限りがある場合に、ユーザインターフェース部品ルール内にこれを管理する情報要素を追加し、当前記ユーザインターフェース部品の使用個数に制限を持たせる構成にしてもよい。
【０１７０】
ここでは、その場合の例について説明する。図２０は、本実施例におけるユーザインターフェース部品ルールの一例であり、その同時使用可能な数に制限のある具体的なユーザインターフェース部品であるＨＷ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌ（２１３０）及びＨＷ＿Ｓｌｉｄｅｒ＿Ｖｅｒｔｉｃａｌ（２１３１）について、子要素として、当前記ユーザインターフェース部品が使用可能である残りの数を示すｒｅｍａｉｎ要素（２１３４及び２１３５）を設け、当前記要素のデータとして２１３６及び２１３７を設けたものである。
【０１７１】
図３３は本実施形態において適用される、その他のユーザインターフェース決定処理を示すフローチャートである。
【０１７２】
Ｓ３４０８においてユーザインターフェース部品情報であるかの判断を行うまでの処理は図３２と同じであるので説明を省略する。
【０１７３】
Ｓ３４０８において、ユーザインターフェース部品情報であるかの判断の結果、前記ユーザインターフェース指定情報がユーザインターフェース部品指定情報であるならば、Ｓ３４０９においてユーザインターフェース部品ルールを参照して当前記ユーザインターフェース部品ルールの中身を探索し、Ｓ３４１０において、ｒｅｍａｉｎ要素のデータが０個であるユーザインターフェース部品ルール要素について当前記要素そのものを削除する。
【０１７４】
次にＳ３４１１において、具体的なユーザインタフェースコントロール要素部品を持たないユーザインターフェース部品ルール要素について探索し、その様なユーザインターフェース部品ルール要素があれば要素そのものを削除する。次にＳ３４１２において、具体的ユーザインターフェース取得処理を実行する。
【０１７５】
Ｓ３４１２において、先のユーザインターフェース部品指定情報に対応する具体的ユーザインターフェース部品を取得し、次にＳ３４１３において、前記レイアウトスタックの１番上にある現在のレイアウト情報に従って部品をレイアウトし、前記レイアウト情報を更新し、Ｓ３４０６の判断に戻る。Ｓ３４０８の判断の結果、前記ユーザインターフェース指定情報がレイアウト指定情報であれば、Ｓ３４１４において、前記レイアウト指定情報がレイアウト開始指定情報か、レイアウト終了指定情報かを判断する。
【０１７６】
前記判断の結果、前記レイアウト指定情報がレイアウト開始指定情報であれば、Ｓ３４１５において、レイアウトルールから前記レイアウト指定情報に対応する具体的レイアウトを得て、現在のレイアウト情報と前記具体的レイアウトを基に新たなレイアウト情報を作成し、Ｓ３４１５において、前記レイアウトスタックにプッシュした後、Ｓ３４０６の判断に戻る。
【０１７７】
Ｓ３４１４の判断の結果、前記レイアウト指定情報がレイアウト終了指定情報であれば、Ｓ３４１７において、前記レイアウトスタックから、現在のレイアウト情報をポップし、Ｓ３４１８においてポップした後の現在のレイアウト情報を更新し、Ｓ３４０６の判断に戻る。
【０１７８】
ここで、図３０に示す様なライブカメラの操作を行うＧＵＩ画面を構成するユーザインタフェースデータの処理を行う際の動作について説明する。行番号１及び２はグループ要素によるレイアウトの開始指定であり、それぞれ、図１の処理により、レイアウトスタックにプッシュすることで現在のレイアウト状態を得る。行番号３では、ライブカメラのストリームデータを映像として表示するための特別なｓｔｒｅａｍｍｏｖｉｅ要素であり、図１の動作によらず動作が完了するものである。これにより、図３０に示す３１０２の如く画像が表示されるものである。
【０１７９】
次に、行番号４のｒａｎｇｅ要素の処理に移ると、Ｓ３４０８においてユーザインターフェース部品情報であると判定され、Ｓ３４０９において図２２に示すユーザインターフェース部品ルールが参照される。次にＳ３４１０において、ユーザインターフェース部品ルールにおいて残りの数が０であるユーザインターフェース部品ルール要素が探索され、今は存在しないので、Ｓ３４１１において次の具体的ユーザインターフェース要素の無いユーザインターフェース部品ルール要素が探索される。ここでもやはり存在しないので、Ｓ３４１２において、当前記ユーザインターフェース部品ルールを使用して具体的なユーザインタフェースコントロール部品が取得される。
【０１８０】
この時、行番号４のｔｙｐｅ属性（／ｒａｎｇｅ／ｓｌｉｄｅｒ／ＨＷ＿Ｓｌｉｄｅｒ／ＨＷ＿Ｓｌｉｄｅｒ＿Ｖｉｒｔｉｃａｌ）より、対応する具体的なユーザインタフェースコントロールが存在するために、ユーザインターフェース部品ルール要素のＨＷ＿Ｓｌｉｄｅｒ＿Ｖｅｒｔｉｃａｌが選択され、図３０の３１０４に示すハードウェアから成るユーザインタフェースコントロール部品が対応付けられ、さらに当前記ユーザインタフェースコントロール部品の残りの数を示すｒｅｍａｉｎ要素のデータが一つ減らされ０となる。
【０１８１】
次に行番号１１のｒａｎｇｅ要素の処理に移ると、同様にして、Ｓ３４０８においてユーザインターフェース部品情報であると判定され、Ｓ３４０９において図２２に示すユーザインターフェース部品ルールが参照される。
【０１８２】
次にＳ３４１０においてユーザインターフェース部品ルールにおいて残りの数が０であるユーザインターフェース部品ルール要素が探索されると、先程残りの数を０としたユーザインターフェース部品ルール要素であるＨＷ＿Ｓｌｉｄｅｒ＿Ｖｅｒｔｉｃａｌについて、そのノードごと削除を行う。
【０１８３】
このとき、ユーザインターフェース部品ルールについて、ＸＭＬ等のファイル形式で保持しているものに付いては、メモリ上にＤＯＭをして保持しているユーザインターフェース部品ルールについてのみ要素を削除し、前述のファイル形式で保持している物については実体を削除する必要は無い。次にＳ３４１１において、具体的ユーザインターフェース要素の無いユーザインターフェース部品ルール要素が探索され、やはり今は存在しないので、Ｓ３４１２において当前記ユーザインターフェース部品ルールを使用して具体的なユーザインターフェース部品が取得される。この時、行番号１１のｔｙｐｅ属性（／ｒａｎｇｅ／ｓｌｉｄｅｒ／ＨＷ＿Ｓｌｉｄｅｒ／ＨＷ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌ）より、対応する具体的なユーザインタフェースコントロールが存在する為に、ユーザインターフェース部品ルール要素のＨＷ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌが選択され、図３０の３１０５に示すハードウェアから成るユーザインタフェースコントロール部品が対応付けられ、さらに当前記ユーザインタフェースコントロール部品の残りの数を示すｒｅｍａｉｎ要素のデータが一つ減らされ０となる。
【０１８４】
次に、行番号１７のｒａｎｇｅ要素の処理に移ると、同様にして、Ｓ３４０８においてユーザインターフェース部品情報であると判定され、Ｓ３４０９において図２２に示すユーザインターフェース部品ルールが参照される。
【０１８５】
次にＳ３４１０において、ユーザインターフェース部品ルールにおいて残りの数が０であるユーザインターフェース部品ルール要素が探索され、先程残りの数を０としたユーザインターフェース部品ルール要素であるＨＷ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌについて、そのノードごと削除を行う。
【０１８６】
次にＳ３４１１において、具体的ユーザインターフェース要素の無いユーザインターフェース部品ルール要素が探索され、今回はユーザインターフェース部品ルール要素におけるＨＷ＿Ｓｌｉｄｅｒ要素が前記当する為に、当前記要素が削除される。この時も、ユーザインターフェース部品ルールについて、ＸＭＬ等のファイル形式で保持しているものに付いては、メモリ上にＤＯＭをして保持しているユーザインターフェース部品ルールについてのみ要素を削除し、前述のファイル形式で保持している物については実体を削除する必要は無い。
【０１８７】
次にＳ３４１１までの処理の結果、Ｓ３４１２において、図２２の様に変化したユーザインターフェース部品ルールを使用して具体的なユーザインタフェースコントロール部品が取得される。この時、行番号１７のｔｙｐｅ属性（／ｒａｎｇｅ／ｓｌｉｄｅｒ／ＨＷ＿Ｓｌｉｄｅｒ／ＨＷ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌ）より、対応する具体的なユーザインタフェースコントロールが存在しない為に、次善のユーザインタフェースコントロール部品としてユーザインターフェース部品ルール要素のＧＵＩ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌ（２３３２）が選択され、図３０の３１０６に示すＧＵＩから成るユーザインタフェースコントロール部品が対応付けられる事になる。
【０１８８】
以上説明した様に、本実施の形態によれば、同一のユーザインタフェースデータを用いて、同一の情報処理装置上でＧＵＩ画面の構成を行う際に、予め、選択されたユーザインターフェース部品ルールについて、使用不可能なユーザインターフェース部品ルール要素を取り除く事によって、構成されないユーザインターフェース部品の発生を回避出来るものである。
【０１８９】
なお、本実施の形態においては、ユーザインターフェース部品ルールから使用不可能なユーザインターフェース部品ルール要素を削除する構成としたが、具体的なユーザインターフェース部品要素を参照する際に、常に残りの数を調査し、それを基に具体的なユーザインターフェース部品要素の使用不使用を制御し、尚且つ、全ての具体的なユーザインターフェース部品要素が使用出来ないユーザインターフェース部品ルール要素については、さらに上流に遡ってユーザインターフェース部品ルール要素を探索する構成としても良い。
【０１９０】
（第六の実施形態）
上述の第五の実施形態においては、ユーザインターフェース部品ルールに記述された具体的なユーザインターフェース部品要素において、その数に制限がある場合は、ユーザインタフェースデータの処理を行う順番で数に制限のあるユーザインターフェース部品要素を割り当てていたが、図３４のユーザインタフェースデータを記述する際に、行番号１１から１２、及び行番号１７から１８に示す様に、数に制限のあるハードウェアからなるユーザインタフェースコントロール部品を複数指定する際には、その記述中に、優先度を示すｐｒｉｏｒｉｔｙ属性を追加し、当前記優先度の順番に従って前述の数に制限のある具体的なユーザインタフェースコントロールを割り当てても良い。
【０１９１】
この場合、ユーザインタフェースデータを処理する際は、当前記ユーザインタフェースデータを２パスで処理する必要がある。まず、１パス目で、図３５に示す様なユーザインタフェースデータに記述されている数に制限ある具体的なユーザインタフェースコントロール部品のリストを作成する。当前記リストには、ユーザインタフェースデータの当前記数に制限のあるユーザインタフェースコントロールのノードＩＤ、タイプ属性、優先度属性及び優先度順に割り当てた際のユーザインタフェースコントロールの残りの個数と優先度より判定した割り当て可否の判定フラグを格納する。
【０１９２】
次の２パス目の処理では、上述の実施例２における処理と同様の処理を行い、ユーザインタフェースデータにおける図３５のリストに前記当するノードＩＤの処理を行う際には、前述のリスト情報の割り当て可否フラグに従い、具体的なユーザインタフェースコントロール部品の対応付けを行う事になる。
【０１９３】
即ち、図３４の行番号１１から１２に示すｒａｎｇｅ要素については、図３５のリスト情報より割り当てが不可能である為に、次善の策としてＧＵＩ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌのユーザインタフェースコントロール部品が割り当てられる。また、行番号１７から１８に示すｒａｎｇｅ要素については、同様に割り当てが可である為に、ＨＷ＿Ｓｌｉｄｅｒ＿Ｈｏｒｉｚｏｎｔａｌのユーザインタフェースコントロール部品が割り当てられる。
【０１９４】
以上、この様な構成によれば、ユーザインタフェースデータに記述された、数に制限のあるユーザインタフェースコントロール部品をユーザインターフェース部品ルールに基づき割り当てる際にも、ユーザインタフェースデータに現れる当前記要素の順番では無く、予めＧＵＩの設計者が意図した優先度にしたがって、ユーザインタフェースコントロール部品を割り当てる事が出来るために、図３４のユーザインタフェースデータに対しても、先に現れたハードウェアからなるユーザインタフェースコントロール部品への具体的な指定にも関わらず、図２５に示す様に、ＧＵＩからなるユーザインタフェースコントロール部品に割り当て、また、後に現れたハードウェアからなるユーザインタフェースコントロール部品への具体的な指定について、ハードウェアからなるユーザインタフェースコントロール部品に割り当てる事が可能となる。
【図面の簡単な説明】
【０１９５】
【図１】本発明におけるユーザインタフェースデータとユーザインタフェースルールの一例を示すクラス図である。
【図２】本発明における抽象度の違いで段階的に階層化されたユーザインタフェース部品ルールの一例を示すクラス図である。
【図３】（ａ）は本発明の実施形態において適用されるユーザインタフェース部品に基づくユーザインタフェースルールの一部をツリー状構造で示した例である。（ｂ）は本発明の実施形態において適用されるユーザインタフェース部品に基づくユーザインタフェースルールの一部をツリー状構造で示した例である。
【図４】本発明における抽象度の違いで段階的に階層化されたレイアウトルールの一例を示すクラス図である。
【図５】本発明における実施形態において適用されるユーザインタフェース部品に基づくユーザインタフェースルールの一部をツリー状構造で示した例である。
【図６】本発明におけるレイアウトスタックのデータ構造の一例を示す概念図である。
【図７】本発明におけるレイアウト情報のデータ構造の一例を示す概念図である。
【図８】本発明におけるシステムの処理の流れを示すフローチャートである。
【図９】本発明におけるユーザインタフェース決定処理の流れを示すフローチャートである。
【図１０】本発明におけるユーザインタフェース決定処理のうち、具体的ユーザインタフェース部品取得処理フローチャートである。
【図１１】本発明におけるユーザインタフェース決定処理のうち、具体的レイアウト取得処理を示すフローチャートである。
【図１２】本実施形態における情報処理装置のハードウェア構成を示す図である。
【図１３】本発明に係る拡張されたＸＦｏｒｍｓ言語として記述されたユーザインタフェースデータの例である。
【図１４】ユーザインタフェースデータとＵＩルールに基づいて構成されるユーザインタフェース画面の一例である。
【図１５】ユーザインタフェースデータとＵＩルールに基づき構成されるユーザインタフェース画面の例である。
【図１６】本発明の第一の実施形態におけるシステム全体の処理の流れを示す図である。
【図１７】本発明の第二の実施形態におけるシステム全体の処理の流れを示す図である。
【図１８】本発明の第一の実施形態におけるＵＩルール選択処理の処理の流れを示す図である。
【図１９】本発明の第三の実施形態におけるシステム全体の処理の流れを示す図である。
【図２０】本発明の実施形態において適用されるユーザインタフェース部品に基づくユーザインタフェースルールの一部をツリー状構造で示した例である。
【図２１】本発明の実施形態において、ＵＩルール設定・変更イベントにより起動される有効期限確認処理の流れを示す図である。
【図２２】本発明の実施形態において適用されるユーザインタフェース部品に基づくユーザインタフェースルールの一部をツリー状構造で示した例である。
【図２３】本発明の第三の実施形態におけるＵＩルール有効期限設定処理の処理の流れを示す図である。
【図２４】本実施形態に実装されているＵＩ部品に基づくＵＩルールの一部をツリー状構造で示したものである。
【図２５】本実施形態に実装されているＵＩ部品に基づくＵＩルールの一部をツリー状構造で示したものである。
【図２６】本発明の実施形態において適用されるユーザインタフェースルール定義データの例を示す図である。
【図２７】本発明の実施形態において適用されるユーザインタフェースルール定義データの例を示す図である。
【図２８】本発明の拡張されたＸＦｏｒｍｓ言語として記述されたＵＩデータの例である。
【図２９】本発明のユーザインタフェースルール選択画面の一例である。
【図３０】本発明のユーザインタフェースデータにより構成されるユーザインタフェース画面の一例である。
【図３１】本発明のユーザインタフェースデータにより構成されるユーザインタフェース画面の一例である。
【図３２】本発明のその他のユーザインタフェース決定処理フローチャートである。
【図３３】本発明のその他のユーザインタフェース決定処理の流れを示すフローチャートである。
【図３４】本発明の実施形態において適用されるユーザインタフェース部品に基づくユーザインタフェースルールの一部をツリー状構造で示した一例である。
【図３５】本発明の実施形態において適用されるＧＵＩからなるユーザインタフェースコントロール部品の割り当てテーブルの例を示した図である。
【符号の説明】
【０１９６】
１２  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
１３  ＲＯＭ（Ｒｅａｄ  Ｏｎ  Ｍｅｍｏｒｙ）
１４  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）
１５  ＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）
１６  入力情報処理装置
１７  ネットワークＩ／Ｆ
１１  システムバス
１８  出力情報処理装置
１００  ユーザインタフェースルール
１０１  ユーザインタフェースデータ
１０２  ユーザインタフェース指定情報
２０１  ユーザインタフェース部品ルール
４０１  レイアウトルール
【図１】
2006107181.tif 000003
【図２】
2006107181.tif 000004
【図３】
2006107181.tif 000005
【図４】
2006107181.tif 000006
【図５】
2006107181.tif 000007
【図６】
2006107181.tif 000008
【図７】
2006107181.tif 000009
【図８】
2006107181.tif 000010
【図９】
2006107181.tif 000011
【図１０】
2006107181.tif 000012
【図１１】
2006107181.tif 000013
【図１２】
2006107181.tif 000014
【図１３】
2006107181.tif 000015
【図１４】
2006107181.tif 000016
【図１５】
2006107181.tif 000017
【図１６】
2006107181.tif 000018
【図１７】
2006107181.tif 000019
【図１８】
2006107181.tif 000020
【図１９】
2006107181.tif 000021
【図２０】
2006107181.tif 000022
【図２１】
2006107181.tif 000023
【図２２】
2006107181.tif 000024
【図２３】
2006107181.tif 000025
【図２４】
2006107181.tif 000026
【図２５】
2006107181.tif 000027
【図２６】
2006107181.tif 000028
【図２７】
2006107181.tif 000029
【図２８】
2006107181.tif 000030
【図２９】
2006107181.tif 000031
【図３０】
2006107181.tif 000032
【図３１】
2006107181.tif 000033
【図３２】
2006107181.tif 000034
【図３３】
2006107181.tif 000035
【図３４】
2006107181.tif 000036
【図３５】
2006107181.tif 000037