情報処理装置
【課題】 UIデータを作成したGUI画面の設計者が想定していないUIルールを持つ情報処理装置において当該UIデータが処理された際に、設計者が全く意図していないGUI画面となることや、ユーザが操作し難いGUI画面となることを回避する。
【解決手段】 決定されたユーザインターフェースがユーザインターフェース指定情報で指定されたユーザインターフェースと同一の機能であるか否かを識別し(ステップS004)、当該識別結果を判定条件として、当該ユーザインターフェースに対応するラベル情報を表示又は非表示とするための表示制御を行うようにする(ステップS005、S008)。
【解決手段】 決定されたユーザインターフェースがユーザインターフェース指定情報で指定されたユーザインターフェースと同一の機能であるか否かを識別し(ステップS004)、当該識別結果を判定条件として、当該ユーザインターフェースに対応するラベル情報を表示又は非表示とするための表示制御を行うようにする(ステップS005、S008)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザインターフェース(以降、これを「UI」と称する)データに基づき、UIを構成する情報処理装置に関する。
【背景技術】
【0002】
従来、UIデータに基づき、UIを構成する情報処理装置において、当該UIデータは、情報処理装置が持つUIルールの任意の階層要素を示すUI指定情報から構成されており、情報処理装置は、実際のUIに対応付けられる具体的なUI記述から、当該UI記述の抽象度を高めた複数段階の抽象的なUI記述まで、抽象度の違いで段階的に階層化されたUIルールと、UI指定情報から当該UIルールを参照し、対応するUIを決定するUI決定手段と、当該UI決定手段において、UI指定情報が指定する要素に直接対応するUIを特定できない場合、UIルールの階層構造を利用して、次善のUIを特定する次善UI決定手段とを具備する階層型抽象化UIデータ表示装置が勘案されている。
【0003】
この情報処理装置によれば、当該情報処理装置内に持つUIルール構成の差異に関わらず、提供されたUIデータに基づき、常に、最善の表示画面構成が行われる。すなわち、当該情報処理装置であれば、表示画面の大きさや情報処理装置が備えているUIデバイスに関わらず、如何なる種類の物であっても、提供される単一のUIデータに基づき、且つ、UIデータの提供者の意図に最大限忠実な表示画面の構成を得ることが可能となっていた。
【0004】
また、近年、携帯型など小型の情報機器等においても、表示機能が向上し、GUI画面に使用されるGUI部品の数や種類も豊富になり、それぞれの持つ表現能力も多彩な物となっている。さらに、ユーザにGUI部品の意味を伝える手段も、文字情報だけではなく、図形や自然画など、ビジュアルな手段を用いた、直感的なデザインも採用されつつある。
【0005】
しかし、前述のような階層型抽象化UIデータ表示装置においては、GUI画面の設計者がGUI画面を構成して欲しいと考えるUIコントロール部品や、レイアウト配置を具体的にUIデータに記述したとしても、実際には、情報処理装置が持つUIルールを参照して、具象UIコントロール部品やレイアウト配置が決定されるため、もし、情報処理装置にUIデータに記述したUIコントロール部品やレイアウト配置を実現する機能が存在しない場合には、当該情報処理装置において構成可能な次善のUIコントロール部品やレイアウト配置を使用してGUI画面が構成されることになり、その結果として、GUI画面の設計者が意図しないGUI画面となるばかりでは無く、GUI画面を利用するユーザにとっても使いにくい物となってしまうと言う問題点があった。
【発明の開示】
【発明が解決しようとする課題】
【0006】
例えば、図14は、メディアプレーヤの操作画面としてGUI画面の設計者が意図したGUI画面であり、画面を構成するUIコントロール部品であるボタン部品1902〜1907には、それぞれのボタン機能の役割を明快に表す図形1908〜1913が属性情報として指定されており、図17に示すようなUIデータの一部分として記述されているものである。
【0007】
このUIデータは、情報処理装置に送られ、それぞれの情報処理装置が持つUI部品ルールに基づいて処理され、実際のGUI画面が構成されることになる。この時、UI部品ルールとして図5Aに示すUI部品ルールを持つ、利用可能なUIコントロールの種類が豊富な情報処理装置においては、図形がボタンに貼り付け可能なUIコントロールである「PictButton」325を実装しているために、先のUIデータは、画面の設計者が意図した通りのGUI画面を構成することが可能である。
【0008】
しかし、同じUIデータを別の情報処理装置、例えばUI部品ルールとして図5Bに示すようなシンプルな機能を持つ情報処理装置で処理される場合には、GUI画面の設計者が意図したUIコントロールが存在せず、その結果、テキストのみをボタンのキートップに表示可能な「TextButton」326が次善のUIコントロールとして選択され、結果として、図21に示すようなボタンの機能が全く不明なGUI画面となってしまっていた。
【0009】
このような問題を回避するために、階層型抽象化UIデータ表示装置においては、図13に示すように、UIデータに記述されたそれぞれのUIコントロール要素の子要素として、ラベルデータを持つことができる構成となっている。したがって、通常は、あらゆる種類の情報処理装置において、当該UIデータが処理されることを想定して、全てのUIコントロールについて、子要素として、当該UIコントロールの意味を表すラベルデータを子要素として持つことが必要となっている。この結果、図5Bに示すUI部品ルールを持つ情報処理装置においても、表示されるGUI画面は、例えば、図22のようになる。
【0010】
ところが、GUI画面の設計者が、予め図5Bに示すようなUIルールを持つクライアントを考慮して、図13のようなラベルデータを常に子要素として持つUIデータの記述をした場合は、最初の例で示した、図5Aに示すような豊富な種類のUIコントロールを持つ情報処理装置では、図23に示すように、図形2308〜2313が貼り付けられたボタン2302〜2307それぞれに、さらに意味を示すラベル表示2314〜2319も行われてしまい、この場合も設計者の意図通りにはならないという問題点があった。
【0011】
また、図24は、GUI画面の設計者が意図したライブカメラのリモコン操作を行うGUI画面であり、図25に示すようなUIデータにより表されている。この図25のUIデータの中で、ライブカメラの映像(行番号3)は、カメラの縦方向の移動を操作する縦スライダー(行番号4〜8)と、横並びでグループ化(行番号2及び9)されており、また、当該グループ(行番号2及び9)と、カメラの横方法の移動を操作する横スライダー(行番号10〜14)及びカメラのズーム操作を操作する横スライダー(行番号15〜20)とは縦並びでグループ化(行番号1及び21)されている。このUIデータを、利用可能なUIコントロールの種類が豊富な図5Aに示すようなUI部品ルールを持ち、なお且つ、利用可能なレイアウトの種類に縦及び横レイアウトを持つような図7Aに示すレイアウトルールを持つ情報処理装置で処理した場合には、図24の如く、GUI画面の設計者が意図した通りのGUI画面となる。このGUI画面では、カメラのライブ映像と、その右辺及び下辺にあるスライダーUIコントロールにより、カメラの方向を操作するUIコントロール部品であることは容易に類推できる。
【0012】
しかし、図5BのUI部品ルール及び図7Bのレイアウトルールに示す如く、シンプルな機能しか持たない情報処理装置において当該UIデータを処理した場合には、縦向きのスライダーUIコントロール部品も、横並びのレイアウト機能も無いために、図26のようなGUI画面が構成されることになる。この場合でも先程の例と同様に、カメラのライブ映像と下側2本のスライダーUIコントロール部品の意味関係が不明確なものとなり、設計者の意図とはかけ離れたものとなるという問題点があった。
【0013】
本発明は上述の問題点にかんがみてなされたものであり、UIデータを作成したGUI画面の設計者が想定していないUIルールを持つ情報処理装置において当該UIデータが処理された際に、設計者が全く意図していないGUI画面となることや、ユーザが操作し難いGUI画面となることを回避できるようにすることを目的とする。
【課題を解決するための手段】
【0014】
本発明の情報処理装置は、ユーザインターフェースデータに基づき、ユーザインターフェースを構成する情報処理装置であって、前記ユーザインターフェースデータは、当該情報処理装置が持つユーザインターフェースルールの任意の階層要素を示すユーザインターフェース指定情報から構成されているものであり、実際のユーザインターフェースに対応付けられる具体的なユーザインターフェース記述から、当該ユーザインターフェース記述の抽象度を高めた複数段階の抽象的なユーザインターフェース記述まで、抽象度の違いで段階的に階層化されたユーザインターフェースルールと、前記ユーザインターフェース指定情報から、前記ユーザインターフェースルールを参照して、対応するユーザインターフェースを決定するユーザインターフェース決定手段と、前記ユーザインターフェース指定情報が、当該ユーザインターフェース指定情報により指定される要素に直接対応するユーザインターフェースを特定できない場合、前記ユーザインターフェースルールの階層構造を利用して、次善のユーザインターフェースを特定する次善ユーザインターフェース特定手段と、前記ユーザインターフェース決定手段又は前記次善ユーザインターフェース特定手段により決定されたユーザインターフェースが前記ユーザインターフェース指定情報で指定されたユーザインターフェースと同一の機能であるか否かを識別する識別手段と、前記識別手段による識別結果を判定条件として、当該ユーザインターフェースに対応するラベル情報を表示又は非表示とするための表示制御を行う表示制御手段と、前記判定条件と前記ラベル情報の表示制御との組み合わせをラベル表示制御ルールとして記録する記録手段と、前記ラベル表示制御ルールを前記ユーザインターフェース指定情報の一部として処理する処理手段とを具備する。
【0015】
具体的に、本発明は、ユーザインターフェースデータに基づき、ユーザインターフェースを構成する情報処理装置において、ユーザインターフェースデータに記述されたユーザインターフェースコントロール要素について子要素としてラベル情報を原則として付加し、当該ユーザインターフェースデータが処理される際、ユーザインターフェースルールに基づいて選択された具象ユーザインターフェースコントロール及び選択されたレイアウト配置の種別条件によるルール情報にしたがって、当該ラベル情報の表示状態を制御するようにして、GUI設計者の意図を情報処理装置の種類毎にそれぞれ的確に反映させるとともに、ユーザにも分かり易いGUI画面を提供するものである。さらに、前記ルール情報に記述された条件に基づき、特定のユーザインターフェースコントロール部品についてラベル表示が必要となった際に、ユーザインターフェースデータ上の当該ユーザインターフェースコントロール部品にラベル情報が存在していなかった場合には、ユーザインターフェースデータ内の当該ユーザインターフェースコントロール部品に関する記述より、ヒント情報や当該ユーザインターフェースコントロール部品に対応する参照先変数名称、参照先ID名、あるいは具象ユーザインターフェースコントロール部品の名称の一部等をラベル情報として利用し、GUI画面を実現するものである。
【発明の効果】
【0016】
本発明によれば、UIデータを作成したGUI画面の設計者が想定していないUIルールを持つ情報処理装置において当該UIデータが処理された際に、設計者が全く意図していないGUI画面となることや、UIコントロールの意味が不明なためにユーザが操作し難いGUI画面となることを回避することができる。
【0017】
また、本発明による情報処理装置においては、ラベル情報の表示、非表示に関する制御を行う際のルール情報を保持し、例えば、当該情報処理装置が高機能なレイアウト機能や具象UIコントロール部品を持ち、ラベル表示以外の方法で明らかに当該具象UIコントロール部品の意味を示すことが可能であるか、あるいは、シンプルなデザインにする構成上などの理由により、UIコントロール部品の意味を示すラベル表示が不要であるか、さらには邪魔である場合などに、UIデータに当該UIコントロール部品のラベル情報が付加されていても表示を非表示にしたい場合には、これらを制御するための条件をルール情報として記述し、また、逆に、当該情報処理装置が持つ低い能力のレイアウト機能や具象UIコントロール部品が次善の物として採用された場合に、その結果として、実現したGUI画面を構成するUIコントロール部品の意味が不明確となる場合には、UIデータ内にあるラベル情報の表示を行うよう制御する条件として、ルール情報を記述することにより、UIデータを処理する情報処理装置の種類に関わらず、設計者やユーザに対して分かり易いGUI画面を提供することができる。
【発明を実施するための最良の形態】
【0018】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
図1において、1は情報(データ)を入力するための入力部である。2はCPUであり、各種処理のための演算、論理判断等を行い、バス6に接続された各構成要素を制御する。3は情報(データ)を出力する出力部である。出力部3としては、LCDやCRT等のディスプレイや、プリンタ等の記録装置がある。
【0019】
4はプログラムメモリであり、後述するフローチャートの処理手順を含む手順をCPU2による制御により実行するためのプログラムを格納するメモリである。このプログラムメモリ4は、ROMであってもよいし、外部記憶装置等からプログラムがロードされるRAMであってもよい。
【0020】
5はデータメモリであり、各種処理で生じたデータを格納する。このデータメモリ5は、例えば、RAMとするが、不揮発な外部記憶媒体から、処理に先立ってロードしておく、あるいは必要があるごとに参照するものとする。
【0021】
6はCPU2の制御の対象とする各構成要素を指示するアドレス信号、各構成要素を制御するためのコントロール信号、各構成要素間で相互にやりとりされるデータの転送を行うためのバスである。
【0022】
図2は、本発明の第1の実施形態に係る情報処理装置の処理を示すフローチャートである。この図2は、本発明の第1の実施形態の特徴を最も良く表す図であり、情報処理装置において利用されるUIデータ上に記述された特定のUIコントロールに付随するラベル情報を表示制御するためのスクリプト化されたルール情報の動作を示すフローチャートである。
【0023】
図2において、S001は、本実施形態の情報処理装置において、UIデータの記述より、特定の具象UIコントロール部品が決定した際に実効されるスクリプト化されたルール情報のルール解析を開始するステップである。
【0024】
S002は、当該決定した具象UIコントロール部品についての情報を取得するステップである。
【0025】
S003は、具象UIコントロール部品の子要素であるラベル部品についての情報を取得するステップである。
【0026】
S004は、先に決定した具象UIコントロール部品が、UIデータで指定された部品と同一であるか否かを判断するステップである。
【0027】
S005は、ステップS004での判断の結果、先に決定した具象UIコントロール部品が、UIデータで指定されたものと同一であった場合に、当該具象UIコントロール部品の子要素として存在するラベル部品のラベル情報について、当該具象UIコントロール部品のラベル情報としての表示を非表示とするステップである。
【0028】
S006は、ステップS004での判断の結果、先に決定した具象UIコントロール部品が、UIデータで指定されたものと同一でなかった場合に、当該具象UIコントロール部品が、キートップに文字表示可能であるか否かを判断するステップである。
【0029】
S007は、ステップS006での判断の結果、キートップに文字表示が可能である場合に、ラベル情報をキートップ文字として使用するステップである。このステップS007の処理が終了すると、ステップS005に進む。
【0030】
S008は、ステップS006での判断の結果、キートップに文字の表示が不可能であった場合に、通常のUIコントロールに対応するラベル情報の表示を行うステップである。
【0031】
S009は、ステップS005又はS008の処理が終了した場合に移行し、ラベル情報の表示制御のためのスクリプト化されたルール解析を終了するステップである。
【0032】
図3は、本発明の第1の実施形態に係る情報処理装置の処理で用いるUIデータの構造の一例を示すクラス図である。
図3において、本実施形態に係る情報処理装置がUIを構成するためのUIデータ1701は、それぞれが1つのUIを記述する1つ以上のUI指定情報1702から構成されている。このUI指定情報1702には、UI部品についての記述を行うUI部品指定情報1705と、UI部品のレイアウトについての記述を行うレイアウト指定情報1706の2種類が存在する。レイアウト指定情報1706は、当該レイアウトの対象となる1つ以上のUI指定情報1702をその記述の内部に含むという意味において、UI指定情報1702と関連している。
【0033】
各UI指定情報1702は、1つのUI指定情報要素1703を有し、さらに、UI指定情報要素1703は、1つのUI指定情報要素を持つか、あるいは持たないことによるリスト構造を成している。各UI指定情報要素1703は、階層化された抽象度の1段階を表しており、抽象度を表す1つのUI指定情報要素名1704を有する。
【0034】
図4は、本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのUI部品に関する構造の一例を示すクラス図である。
図4において、UI部品に関するUIルール201は、1つ以上のUI部品ルール要素202から構成されている。この各UI部品ルール要素202は、非末端UI部品ルール要素203、あるいは末端部品ルール要素204のいずれかであり、非末端UI部品ルール要素203は、1つ以上のUI部品ルール要素202を有し、末端UI部品ルール要素204は、1つの具体的UI部品205に結び付けられている。これにより、UI部品ルール201は、ツリー状構造を成し、末端のUI部品ルール要素202は、必ず末端UI部品ルール要素204である。また、UI部品ルール要素202は、それぞれ1つのUI指定情報要素名104と結び付けられており、UI部品ルール201のツリー状構造の各段階が階層化された抽象度の1段階を表現している。
【0035】
図5A及び図5Bは、図4の具体例として、異なる情報処理装置におけるUI部品ルールの一部をツリー状構造で示した図である。
本実施形態では、UI部品を構成するために、それぞれの情報処理装置毎に規模の異なるツールキットがライブラリとして組み込まれており、上述したように、抽象概念をまとめてツリー状構造をなしている。ツリー状構造の末端には、ツールキットの具体的な部品が当てられており、階層を上がるごとに抽象度が高くなる。
【0036】
図5Aに示すUI部品301におけるツリー状構造の末端には、ツールキットの具体的な部品として、「Dial」317、「SpinBox」318、「Slider_Horizontal」319、「Slider_Vertical」320、「CheckBox」321、「PullDown」322、「PullUp」323、「RadioButton」324、「PictButton」325、「TextButton」326、「2PictButton」327、「Label」328、「Hint」329などがある。これらの1つ上の階層では、末端の具体的な部品をそれぞれ抽象化し、部品の概念としてまとめている、ダイアル(dial)307、スピンボックス(spinbox)308、スライダ(slider)309、チェックボックス(checkbox)310、プルダウンメニュー(pulldownmenu)311、ラジオボタン(radiobutton)312、モメンタリ(momentary)313、オルタネート(alternate)314、ラベル(label)315、ヒント(hint)316などがある。これらのさらに上位の階層では、さらに抽象化したレベルとして、数値範囲(range)302、選択(select)303、唯一選択(selectone)304、トリガ(trigger)305、テキスト(text)306などがある。
【0037】
また、図5Bに示すUI部品351におけるツリー状構造の末端には、「SpinBox」362、「CheckBox」363、「PullDown」364、「TextButton」365、「Label」366などがある。これらの1つ上の階層では、スピンボックス(spinbox)357、チェックボックス(checkbox)358、プルダウンメニュー(pulldownmenu)359、モメンタリ(momentary)360、ラベル(label)361などがある。これらのさらに上の階層では、図5Aの場合と同じ、数値範囲(range)352、選択(select)353、唯一選択(selectone)354、トリガ(trigger)355、テキスト(text)356などがある。
【0038】
図6は、本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのレイアウトに関するUIルールの構造の一例を示すクラス図である。
図6において、レイアウトに関するUIルール401は、1つ以上のレイアウトルール要素402から構成されている。この各レイアウトルール要素402は、非末端レイアウトルール要素403、あるいは末端レイアウトルール要素404のいずれかであり、非末端レイアウトルール要素403は、1つ以上のレイアウトルール要素402を有し、末端レイアウトルール要素404は、1つの具体的レイアウト405に結び付けられている。これにより、レイアウトルール401は、ツリー状構造を成し、末端のレイアウトルール要素402は、必ず末端レイアウトルール要素404である。また、レイアウトルール要素402は、それぞれ1つのUI指定情報要素名104と結び付けられており、レイアウトルール401のツリー状構造の各段階が階層化された抽象度の1段階を表現している。
【0039】
図7A及び図7Bは、図6の具体例として、情報処理装置に共通なレイアウトルールの一部をツリー状構造で示した図である。
本実施形態では、UI部品を画面に配置するために、具体的レイアウトが組み込まれており、図7Aに示すように、抽象概念をまとめてツリー状構造をなしている。ツリー状構造の末端には、具体的レイアウトが当てられており、階層を上がるごとに抽象度が高くなる。
【0040】
図7Aに示すレイアウト501におけるツリー状構造の末端には、具体的レイアウトとして、UI部品を横に並べる「Horizontal」506、UI部品を縦に並べる「Vertical」507、右回りで周囲に配置する「RightOrder」508、左周りで周囲に配置する「LeftOrder」509、右上から碁盤目状に順番に配置する「UpRight」510、左上から碁盤目状に順番に配置する「UpLeft」511、右下から碁盤目状に順番に配置する「DownRight」512、左下から碁盤目状に順番に配置する「DownLeft」513などがある。これらのさらに上位の階層では、さらに抽象化したレベルとして、スタック(stack)503、ボーダー(border)504、グリッド(grid)505などがあり、さらにその上の抽象化したレベルとしてグループ(group)502などがある。
【0041】
また、図7Bに示すレイアウト521におけるツリー状構造の末端には、具体的レイアウトとして、UI部品を縦に並べる「Vertical」526、右回りで周囲に配置する「RightOrder」527、右上から碁盤目状に順番に配置する「UpRight」528などがある。これらのさらに上位の階層では、さらに抽象化したレベルとして、スタック(stack)523、ボーダー(border)524、グリッド(grid)525などがあり、さらにその上の抽象化したレベルとしてグループ(group)522などがある。
【0042】
図8は、本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウトスタックのデータ構造の一例を示す概念図である。
図8において、600は、レイアウトスタック全体を示す。レイアウトスタック600は、レイアウト情報をスタック状に複数貯めておくためのコンテナの役割を果たす。601は、概念上のスタックの最上部を示す。図8において、レイアウト情報は、このスタックの最上部601を最上位として、上から追加され、上から取り除かれる。602〜605は、それぞれ1つのレイアウト情報を表す。ただし、本実施形態において、602は、現在のレイアウト情報と呼び、描画オブジェクトは、必ずこれに基づいてレイアウトされる。レイアウト情報は、図8において下から順に追加されたレイアウト情報であり、その数には特に制限はない。
【0043】
図9は、本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウト情報のデータ構造の一例を示す概念図である。
図9において、700は、1つのレイアウト情報全体を示す。701は、当該レイアウト情報における次のオブジェクトをレイアウトするための原点となる現在の座標である。702は、現在のレイアウトルールである。現在の座標701及び現在のレイアウトルール702は、現在のレイアウトルールの基で次の描画オブジェクトをレイアウトするための情報である。703は、現在のレイアウトルールの基でレイアウトされたすべてのオブジェクトを含むような最小矩形の大きさを示す現在のボックスの大きさである。現在のボックスの大きさ703は、現在のレイアウトが終了して、1つ前のレイアウト情報における現在の座標702と当該現在のボックスの大きさを更新するために使用される。
【0044】
図10は、本発明の第1の実施形態に係る情報処理装置のUIデータ処理の一例を示すフローチャートである。なお、S801からS817は、各ステップを示す。
【0045】
まず、UIデータの処理が開始されると(ステップS801)、始めにUIデータの中に含まれているラベル情報制御ルールのスクリプトを取得する(ステップS802)。
【0046】
次に、初期レイアウト情報を作成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックにプッシュする(ステップS803)。
【0047】
次に、UIデータ中にUI指定情報がまだ存在するか否かを判断し(ステップS804)、UI指定情報が存在しなければ、処理を終了する(ステップS817)。ステップS804の判断の結果、UI指定情報がまだ存在するならば、UIデータ中のUI指定情報を1つ読み込む(ステップS805)。
【0048】
次に、当該UI指定情報が、UI部品指定情報であるか否かを判断する(ステップS806)。この判断の結果、当該UI指定情報がUI部品指定情報であるならば、UI部品ルールを参照し(ステップS807)、当該UI部品指定情報に対応する具体的なUI部品を取得し(ステップS808)、ステップS802で取得したラベル情報制御ルールを読み込み(ステップS809)、ラベル情報制御ルールに基づきラベル情報の制御を行う(ステップS810)。次に、前記レイアウトスタックの1番上にある現在のレイアウト情報に従って部品をレイアウトし、当該レイアウト情報を更新し(ステップS811)、ステップS804の処理に戻る。
【0049】
一方、ステップS806での判断の結果、UI指定情報が、UI部品指定情報でない、すなわちレイアウト指定情報であれば、当該レイアウト指定情報がレイアウト開始指定情報であるか否かを判断する(ステップS812)。この判断の結果、レイアウト指定情報がレイアウト開始指定情報であれば、レイアウトルールから当該レイアウト指定情報に対応する具体的レイアウトを得て(ステップS813)、現在のレイアウト情報と当該具体的レイアウトとを基に新たなレイアウト情報を作成して、レイアウトスタックにプッシュして(ステップS814)、その後、ステップS804の判断に戻る。
【0050】
ステップS812の判断の結果、当該レイアウト指定情報がレイアウト開始指定情報でない、すなわちレイアウト終了指定情報であれば、レイアウトスタックから、現在のレイアウト情報をポップし(ステップS815)、ポップした後の現在のレイアウト情報を更新し(ステップS816)、その後、ステップS804の判断に戻る。
【0051】
図11は、本発明の第1の実施形態に係る情報処理装置において、UI部品指定情報から具体的UI部品を得る処理の一例を示すフローチャートである。なお、S901からS910は、各ステップを示す。
【0052】
まず、処理が開始されると(ステップS901)、UI指定情報の最初のUI指定情報要素を得て(ステップS902)、当該UI指定情報要素に対応するUI部品ルール要素を得て、現在のUI部品ルール要素とする(ステップS903)。次に、当該UI指定情報中に次のUI指定情報要素が存在するか否かを判断し(ステップS904)、次のUI指定情報要素が存在する場合には(ステップS904/YES)、次のUI指定情報要素を当該UI指定情報から得る(ステップS905)。一方、ステップS904での判断の結果、当該UI指定情報中に次のUI指定情報要素が存在しない場合には、ステップS907に進む。
【0053】
次に、ステップS905で取得したUI指定情報要素に対応するUI部品ルール要素が存在するか否かを判断する(ステップS906)。この判断の結果、当該UI指定情報要素に対応するUI部品ルール要素が存在する場合には、ステップS903の処理に戻る。一方、当該UI指定情報要素に対応するUI部品ルール要素が存在しない場合には、現在のUI部品ルール要素が末端UI部品ルール要素であるか否かを判断する(ステップS907)。この判断の結果、現在のUI部品ルール要素が末端UI部品ルール要素でなければ、現在のUI部品ルール要素の最初の子供要素を現在のUI部品ルール要素として(ステップS908)、ステップS907の処理に戻る。一方、ステップS907の判断の結果、現在のUI部品ルール要素が末端UI部品ルール要素であれば、当該末端UI部品ルール要素に結び付けられている具体的UI部品を得て(ステップS909)、処理を終了する(ステップS910)。
【0054】
図12は、本発明の第1の実施形態に係る情報処理装置において、レイアウト指定情報から具体的レイアウトを得る際の処理の一例を示すフローチャートである。なお、S1001〜S1010は、各ステップを示す。
【0055】
まず、処理が開始されると(ステップS1001)、UI指定情報の最初のUI指定情報要素を得て(ステップS1002)、当該UI指定情報要素に対応するUIルール要素を得て、現在のレイアウトルール要素とする(ステップS1003)。次に、当該UI指定情報中に次のUI指定情報要素が存在するか否かを判断し(ステップS1004)、次のUI指定情報要素が存在する場合には(ステップS1004/YES)、次のUI指定情報要素を当該UI指定情報から得る(ステップS1005)。一方、ステップS1004での判断の結果、当該UI指定情報中に次のUI指定情報要素が存在しない場合には、ステップS1007に進む。
【0056】
次に、ステップS1005で取得したUI指定情報要素に対応するレイアウトルール要素が存在するか否かを判断する(ステップS1006)。この判断の結果、当該UI指定情報要素に対応するレイアウトルール要素が存在する場合には、ステップS1003の処理に戻る。一方、当該UI指定情報要素に対応するレイアウトルール要素が存在しない場合には、現在のレイアウトルール要素が末端レイアウトルール要素であるか否かを判断する(ステップS1007)。この判断の結果、現在のレイアウトルール要素が末端レイアウトルール要素でなければ、現在のレイアウトルール要素の最初の子供要素を現在のレイアウトルール要素として(ステップS1009)、ステップS1007の処理に戻る。一方、ステップS1007での判断の結果、現在のレイアウトルール要素が末端レイアウトルール要素であれば、当該末端レイアウトルール要素に結び付けられている具体的レイアウトを得て(ステップS1008)、処理を終了する(ステップS1010)。
【0057】
図13は、本発明の第1の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。図13は、XMLの記述に基づきHTMLをホスト言語とし、本実施形態により拡張されたXForms言語として記述されたUIデータのうち、コントロールパネルのGUIを構成するbody部分の一部の記述例を示しており、その他の部分、例えばtrigger要素内のsubmission属性の参照先記述など、model部分については、本発明とは直接関係が無いので記述を省略している。
【0058】
図13において、行番号1は、本実施形態の情報処理装置において構成されるGUI画面上の1つの操作パネルを構成する複数のボタンが横並びであることを示すグループ要素記述である。行番号2〜5までは、trigger要素から構成されるボタン型UIコントロール部品を示す記述であり、行番号2には、要素名とともに、抽象化レベル毎に階層化された具象UIコントロールまでを指定するType属性と、当該具象UIコントロールで使用されるキートップに貼り付けられる図形の参照ファイル名が、picture属性として記述されている。また、行番号3には、行番号2から始まるtrigger要素の子要素として、ラベル部品であるlabel要素とその内容が記述されている。行番号4には、行番号2のtrigger要素の子要素として、ボタン型UIコントロールが操作された際に実行する動作が記述されており、submission動作の参照先を示すsubmission属性を含んでいる。行番号5には、行番号2のtrigger要素の終了タグが記述されている。
【0059】
以下、行番号6〜行番号25までは、上記の行番号2〜5までと同様の繰り返しであり、これらにより構成されるUIコントロール部品が行番号1及び行番号26から構成されるグループ要素の内容となっている。ここで、行番号2、6、10、14、18、22に存在するtype="/button/momentary/pictbutton"は、本発明の基となる階層型抽象化UIデータ表示装置によるXForms言語の拡張であり、UI部品指定情報を表している。それに含まれるUI指定情報要素「trigger」によりトリガーを発生させるための部品が指定されており、UI指定情報要素「momentary」により押している間だけトリガーを発生させる部品が指定されており、UI指定情報要素「pictbutton」により、キートップに図形が貼り付け可能なツールキット部品が指定されていることが記述されている。
【0060】
以下、図13に示すUIデータにより、異なるUI部品ルールを持つ2種類の情報処理装置において、画面を構成するUIコントロール部品が選択される処理について説明する。
【0061】
図10において、図13に示すUIデータの処理が開始されると(ステップS801)、ステップS802において、図2に示すラベル情報制御ルールのスクリプトがUIデータより取得される。次に、ステップS803でレイアウト情報の初期化が行われ、ステップS804へと進む。今、UIデータの処理が図13に示す部分に進むと、ステップS805で行番号1のグループ要素が読み込まれる。ステップS806では、グループ要素がUI部品情報では無いために、ステップS812へと進む。行番号1は、レイアウト指定の開始情報を示しているためにステップS813へと進み、図12の処理が開始される。
【0062】
図12のステップS1002では、図13のレイアウト指定情報から、最初のUI指定情報要素である行番号1のtype属性より「group」を得る。次に、ステップS1003で図7Aのgroup(グループ)502を取得する。次に、ステップS1004で行番号1のtype属性でレイアウト指定情報に続きがあるので、ステップS1005で「stack」を得る。次に、ステップS1006でスタック503があるので、再びステップS1003へ戻る。
【0063】
ステップS1003では、type属性から「horizontal」を得る。そして、ステップS1006で「Horizontal」506があるので、再びステップS1003に戻る。ステップS1003で「Horizontal」506を得る。そして、ステップS1004でレイアウト指定情報に続きは無いので、ステップS1007に進む。「Horizontal」506は末端レイアウトルール要素なので、ステップS1008において、具体的レイアウトHorizontalを得る。
【0064】
次に、図10に再び戻って、ステップS814では、ステップS813で得たレイアウトの情報がスタックにプッシュされ、この状態で図13のUI部品情報が処理され、これらのUI部品は、行番号26のレイアウト指定の終了までの間、当該スタックにある状態でレイアウト配置されることになる。
【0065】
すなわち、図13に示されたUIデータにおいては、図7Aに示されたレイアウトルールが参照されて、具体的なレイアウトであるHorizontalが選択され、<xforms:group type="/group/stack/horizontal" id="controlpanel">、及び</xforms:group>で囲まれたUI指定情報要素が横並びでレイアウトされることとなる。
【0066】
また、図10のステップS805において、行番号2以降が処理される際には、当該要素がUI部品情報であるために、ステップS807へと進み、当該情報処理装置のUI部品ルールである図5AのUI部品ルールが参照されて、ステップS808において、図11に示す具体的なUIコントロール部品の取得の処理が行われる。
【0067】
ここで、図11のステップS902では、図13のUI部品指定情報から、最初のUI指定情報要素である「trigger」を得る。次に、ステップS903でtrigger(トリガ)に対応する図5Aのトリガ要素305を得る。次に、ステップS904でUI部品指定情報に続きがあるので、ステップS905で次の「momentary」を得る。次に、ステップS906でmomentary(モメンタリ)に対応するモメンタリ要素があるので、再びステップS903に戻る。そして、ステップS903でモメンタリ要素313を得る。
【0068】
次にステップS904でUI部品指定情報に続きがあるので、ステップS905で「pictbutton」を得る。次に、ステップS906で「PictButton」325があるので、再びステップS903に戻る。次に、ステップS903で「PictButton」325を得る。次に、ステップS904でUI部品指定情報に続きは無いので、ステップS907に進む。「PictButton」325は、末端UI部品ルール要素なので、ステップS909において、具体的UI部品である「PictButton」を得る。
【0069】
このようにして、図13の具体的UI部品を持つ末端UI部品ルール要素まで指定したUI部品指定情報により、ツールキットの具体的な部品である、「PictButton」が選択される。以下、図13に示した行番号6、10、14、18、22においても、同様にして「PictButton」の選択が行われる。
【0070】
次に、図10のステップS809では、ステップS802で取得したラベル情報制御ルールのスクリプトを実行可能な形式に読み込みが行われ、ステップS810において、図2の具体的なUIコントロール部品に付帯するラベル情報の制御が行われる。
【0071】
図1のステップS002では、図10のステップS808で取得した具体的なUIコントロールの部品情報が取得され、ステップS003で、図13のUIデータにより、行番号3の子要素としてのラベル部品情報が取得される。次に、ステップS004において、ステップS002で取得された具体的なUIコントロール部品について、図13のUIデータにおけるtype属性で詳細指定されたUIコントロール部品と同一か否かの判断が行われ、ここでは、「PictButton」という同一の部品が選択されたために、ステップS005へと進み、行番号3の子要素としてのラベル情報は、非表示とされて処理を終了する。
【0072】
以上、図10において、図13に示された行番号2、6、10、14、18、22と同様の処理が行われ、その結果として、実際にUIコントロールである「PictButton」が画面上に描画される際には、それぞれのキートップ上に、picture属性で指定されたファイル名を持つイメージ図形が表示されると同時に、子要素としてUIデータに存在していたラベル情報は表示されないことになる。
【0073】
上記により、図13のUIデータに基づき、図5Aに示されるUI部品ルールを持つ情報処理装置においては、キートップに図形の貼り付けが可能な「PictButton」が、ラベル情報が非表示とされた状態で、横に6個配置された図14の画面例が構成されることになる。
【0074】
次に、図13に示すUIデータが、図5Bに示すUI部品ルールを持つ情報処理装置において処理される場合を説明する。
【0075】
この場合、図10における具体的なレイアウトの取得に関しては、先の図5Aに示すUI部品ルールを持つ情報処理装置と同様であるので、説明を省略する。
【0076】
図10のステップS807においては、先程とは異なり、図5BからなるUI部品ルールが参照され、その結果、ステップS808における図11の処理が先程とは異なる処理となる。
【0077】
図11のステップS902では、図13のUI部品指定情報から、最初のUI指定情報要素である「trigger」を得る。次に、ステップS903でtrigger(トリガ)に対応する図5Bのトリガ要素355を得る。
【0078】
次に、ステップS904では、UI部品指定情報に続きがあるので、ステップS905で、次の「momentary」を得る。ステップS906でmomentary(モメンタリ)に対応するモメンタリ要素があるので、再び、ステップS903に戻る。そして、ステップS903でモメンタリ要素360を得る。次に、ステップS904でUI部品指定情報に続きがあるので、ステップS905で「pictbutton」を得る。
【0079】
ステップS906では、PictButtonが無いので、ステップS907に進む。ステップS907では、現在のUI部品ルール要素であるモメンタリ要素は、末端UI部品ルール要素では無いので、ステップS908に進み、ここで、モメンタリ要素の最初の子供要素である「TextButton」365を得る。次に、ステップS907に戻り、「TextButton」365は末端UI部品ルール要素であるので、次のステップS909において、具体的UI部品「TextButton」を得る。
【0080】
このようにして、図13の具体的UI部品を持つ末端UI部品ルール要素まで指定したUI部品指定情報により、次善のものとなるツールキットの具体的な部品である、「TextButton」が選択される。
【0081】
以下、図13に示された行番号6、10、14、18、22においても、同様にして「TextButton」の選択が行なわれる。
【0082】
次に、図10のステップS809では、ステップS802で取得したラベル情報制御ルールのスクリプトを実行可能な形式で読み込み、ステップS810において、図2に示す具体的なUIコントロール部品に付帯するラベル情報の制御が行われる。
【0083】
図2のステップS002では、図10のステップS808で取得した具体的なUIコントロールの部品情報が取得され、次のステップS003において、図13のUIデータにより、行番号3の子要素としてのラベル部品情報が取得される。
【0084】
次に、ステップS004において、ステップS002で情報が取得された具体的なUIコントロール部品について、図13のUIデータにおけるtype属性で詳細指定されたUIコントロール部品と同一か否かの判断が行われ、ここでは、UIデータのtype属性で指定されたPictButton部品とは異なるTextButton部品が具体的なUIコントロールとして選択されているので、ステップS006へと進む。ステップS006では、選択されたUIコントロール部品がキートップに文字を表示可能か否かが判断され、TextButton部品はキートップに文字を表示することが可能であるために、ステップS007でラベル情報をキートップ文字に使用し、ステップS005において、本来のラベル情報を非表示として処理を終了する。
【0085】
また、図13の行番号1は、レイアウト指定情報を示しているが、図7Aのレイアウトルールを参照し、具体的なレイアウトである「Horizontal」が選択され、<xforms:group type="/group/stack/horizontal" id="controlpanel" >、及び</xforms:group>で囲まれたUI指定情報要素がステップS811において、横並びでレイアウトされることとなる。
【0086】
以上、図10において、図13の行番号2、6、10、14、18、22において、同様の処理が行われ、その結果として、実際にUIコントロールである「TextButton」が画面上に描画される際には、それぞれのキートップ上に、それぞれのUIコントロールに付帯するラベル情報が表示されるとともに、子要素としてUIデータに存在していたラベル情報が表示されないことになる。
【0087】
上記により、図13のUIデータに基づき、図5Bに示されるUI部品ルールを持つ情報処理装置においては、キートップに文字の表示が可能な「TextButto」が、本来のラベル情報をキートップ上に表示された状態で、横に6個配置された図15の画面例が構成されることになる。
【0088】
以上説明したように、第1の実施形態によれば、同一のUIデータを用いて、異なるUI部品ルールを持つ情報処理装置において、GUI画面の表示処理を行う際に、UIコントロールに付帯するラベル情報の表示制御を行うルールを記述し、これをUIデータの一部あるいはUIデータとともに送ることにより、GUI画面の設計者が想定する範囲で、ラベル情報の的確な表示制御が可能となる。
【0089】
なお、本実施形態においては、ラベル情報の表示制御を行うルール情報がUIデータとともに情報処理装置に送られる構成としたが、当該ルール情報は、情報処理装置内に保持している構成としても構わないし、また、別途ネットワークから参照される構成でも構わない。
【0090】
(第2の実施形態)
第1の実施形態においては、GUI画面の設計者は、UIデータに存在するUIコントロール部品の記述について、予めラベル情報を付帯させておくこととした形態であったが、第2の実施形態では、UIデータに存在するUIコントロール部品について、対応するラベル情報が存在しない場合には、当該UIコントロール部品の関連情報により、ラベル情報を作成する手段を設けた形態である。
【0091】
図16は、本発明の第2の実施形態に係る情報処理装置の処理を示すフローチャートである。この図16は、本発明の第2の実施形態の特徴を最も良く表す図であり、情報処理装置において利用されるUIデータ上に記述された特定のUIコントロールに付随するラベル情報を表示制御のためのスクリプト化されたルール情報の動作を示すフローチャートである。
【0092】
第2の実施形態において、第1の実施形態との差異は、図16に示す処理の違いのみであり、他の処理については、第1の実施形態と同様のものである。すなわち、第1の実施形態を示す図10の処理において、ステップS810に係る処理のみが、図2の処理と異なるものである。また、本実施形態で使用するUIデータは、第1の実施形態で使用した図13のUIデータより、UIコントロール部品の子要素としてのラベル情報を欠落させた図17に示すUIデータを使用して説明を行う。
【0093】
図16において、S1401は、本実施形態の情報処理装置において、UIデータの記述より、特定の具象UIコントロール部品が決定した際に実効されるスクリプト化されたルール情報のルール解析を開始するステップである。
【0094】
S1402は、当該決定した具象UIコントロール部品についての情報を取得するステップである。
【0095】
S1403は、具象UIコントロール部品の子要素であるラベル部品についての情報を取得するステップである。
【0096】
S1404は、先に決定した具象UIコントロール部品が、UIデータで指定された部品と同一であるか否かを判断するステップである。
【0097】
S1405は、ステップS1404での判断の結果、具象UIコントロール部品が、UIデータで指定されたものとは異なったものであった場合に、当該具象UIコントロール部品の子要素としてのラベル部品のラベル情報が存在するか否かを判断するステップである。
【0098】
S1406は、ステップS1405での判断の結果、ラベル情報が存在しなかった場合に、当該UIコントロールのイベント処理動作の参照先であるsubmission属性のID名を取得するステップである。
【0099】
S1407は、ステップS1406において取得した参照先ID名をラベル情報として取得するステップである。
【0100】
S1408は、ステップS1405での判断の結果、ラベル情報が存在した場合、あるいはステップS1407の処理が終了した場合に、具象UIコントロール部品が、キートップに文字表示が可能か否かを判断するステップである。
【0101】
S1409は、ステップS1408での判断の結果、キートップに文字表示が可能である場合に、ラベル情報をキートップ文字として使用するステップである。
【0102】
S1410は、ステップS1404での判断の結果、具象UIコントロール部品がUIデータで指定されたものと同一であった場合、あるいはステップS1409の処理が終了した場合に、当該具象UIコントロール部品の子要素として存在するラベル部品のラベル情報について、当該具象UIコントロール部品のラベル情報としての非表示とするステップである。
【0103】
S1411は、ステップS1408での判断の結果、キートップに文字表示が不可能であった場合に、ラベル情報の表示を行うステップである。
【0104】
S1412は、ステップS1410又はS1411の処理が終了した場合に移行し、ラベル情報の表示制御のためのスクリプト化されたルール解析を終了するステップである。
【0105】
以下、第1の実施形態と同様に、図17に示すUIデータを用いて、図5Bに示すUI部品ルールを持つ情報処理装置における処理を、図10及び図16を参照して詳細に説明する。
【0106】
図17のUIデータにおいては、UIコントロールのtype属性として、pictbutton部品が指定されているが、本実施形態の情報処理装置においては、図5Bに示すUI部品ルールが適用されるために、第1の実施形態と同様に、図10のステップS808においては、具体的なUIコントロール部品として、TextButton部品が選択されることになる。
【0107】
しかる後、ステップS809において、図16に示すラベル情報表示制御のためのスクリプトがロードされ、次に、ステップS810において、ラベル情報の制御処理が図16の如く行われる。
【0108】
図16のステップS1402では、具体的なUIコントロール部品であるTextButton部品の情報が取得され、ステップS1403において、当該TextButton部品に関する子要素ラベル部品の情報が取得される。
【0109】
次に、ステップS1404では、当該TextButton部品が、UIデータにおけるtype属性で指定された部品であるか否かを判断する。ここでは、異なる部品であるために、ステップS1405へと進む。
【0110】
ステップS1405では、ステップS1403においてUIコントロール部品の子要素としてのラベル部品の取得に失敗しているために、ステップS1406へと進む。次に、ステップS1406では、UIコントロールのイベント動作を行う際のモデル部分における参照先を示すsubmission属性のID名を取得する。すなわち、図17の行番号3における「rewind」が取得される。
【0111】
次に、ステップS1407では、ステップS1406で取得したID名をラベル情報として設定し、ステップS1408へと進む。以下、第1の実施形態と同様に、TextButton部品においては、キートップに文字表示が可能であるために、ステップS1409において、先にラベル情報として設定したID名をキートップ文字として使用することになる。
【0112】
以下、図17に示す行番号3、6、9、12、15、18におけるID名がラベル情報として処理され、結果として、図18に示すGUI画面が構成される。
【0113】
以上説明したように、第2の本実施形態によれば、UIデータにおいて、UIコントロール部品に付帯するラベル情報が記述されていなくても、ラベル情報制御ルールに基づき、GUI画面の設計者が想定していないUIコントロール部品が選択された場合でも的確なラベル情報を表示することができる。
【0114】
なお、本実施形態においては、ラベル情報の代用品として、UIコントロールのイベント動作を行う際のID名を利用したが、その他、個々のUIコントロール部品と関連付けられた他属性のID名を利用しても良く、例えば、数値変数を扱うUIコントロール部品の場合には、当該数値変数の参照先ID名を用いても構わない。
【0115】
(第3の実施形態)
前述した第1及び第2の実施形態においては、ラベル情報制御ルールの駆動条件として、UIデータのtype属性で指定したUIコントロール部品と、実際に使用された具象UIコントロール部品との差異を挙げたが、その他の駆動条件として、UIデータにおけるUIコントロールのレイアウト配置の差異を用いても良い。
【0116】
例えば、図7Aに示すレイアウトルールを持つ情報処理装置を想定し、本発明による構成により、図18の如く設計された、且つ全てのUIコントロール部品にラベル情報を予め付加した図19に示すUIデータについて、実際には図7Bに示すシンプルなレイアウトルールを持つ情報処理装置において処理された場合には、UIコントロール部品の実際に採用された具体的なレイアウトがUIデータにおけるtype属性で指定したレイアウトと異なり、この異なるレイアウトとなる条件の場合に限ってラベル情報を表示させることにより、図20に示すような分かり易いGUI画面とすることが可能となる。
【図面の簡単な説明】
【0117】
【図1】本発明の第1の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図2】本発明の第1の実施形態に係る情報処理装置の処理を示すフローチャートである。
【図3】本発明の第1の実施形態に係る情報処理装置の処理で用いるUIデータの構造の一例を示すクラス図である。
【図4】本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのUI部品に関する構造の一例を示すクラス図である。
【図5A】図4の具体例として、異なる情報処理装置におけるUI部品ルールの一部をツリー状構造で示した図である。
【図5B】図4の具体例として、異なる情報処理装置におけるUI部品ルールの一部をツリー状構造で示した図である。
【図6】本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのレイアウトに関するUIルールの構造の一例を示すクラス図である。
【図7A】図6の具体例として、情報処理装置に共通なレイアウトルールの一部をツリー状構造で示した図である。
【図7B】図6の具体例として、情報処理装置に共通なレイアウトルールの一部をツリー状構造で示した図である。
【図8】本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウトスタックのデータ構造の一例を示す概念図である。
【図9】本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウト情報のデータ構造の一例を示す概念図である。
【図10】本発明の第1の実施形態に係る情報処理装置のUIデータ処理の一例を示すフローチャートである。
【図11】本発明の第1の実施形態に係る情報処理装置において、UI部品指定情報から具体的UI部品を得る処理の一例を示すフローチャートである。
【図12】本発明の第1の実施形態に係る情報処理装置において、レイアウト指定情報から具体的レイアウトを得る際の処理の一例を示すフローチャートである。
【図13】本発明の第1の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。
【図14】GUI画面例を示した図である。
【図15】GUI画面例を示した図である。
【図16】本発明の第2の実施形態に係る情報処理装置の処理を示すフローチャートである。
【図17】本発明の第2の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。
【図18】GUI画面例を示した図である。
【図19】本発明の第3の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。
【図20】GUI画面例を示した図である。
【図21】従来例に係るGUI画面例を示した図である。
【図22】従来例に係るGUI画面例を示した図である。
【図23】従来例に係るGUI画面例を示した図である。
【図24】従来例に係るGUI画面例を示した図である。
【図25】従来例に係る拡張されたXForms言語として記述されたUIデータの一例を示した図である。
【図26】従来例に係るGUI画面例を示した図である。
【符号の説明】
【0118】
1 入力部
2 CPU
3 出力部
4 プログラムメモリ
5 データメモリ
【技術分野】
【0001】
本発明は、ユーザインターフェース(以降、これを「UI」と称する)データに基づき、UIを構成する情報処理装置に関する。
【背景技術】
【0002】
従来、UIデータに基づき、UIを構成する情報処理装置において、当該UIデータは、情報処理装置が持つUIルールの任意の階層要素を示すUI指定情報から構成されており、情報処理装置は、実際のUIに対応付けられる具体的なUI記述から、当該UI記述の抽象度を高めた複数段階の抽象的なUI記述まで、抽象度の違いで段階的に階層化されたUIルールと、UI指定情報から当該UIルールを参照し、対応するUIを決定するUI決定手段と、当該UI決定手段において、UI指定情報が指定する要素に直接対応するUIを特定できない場合、UIルールの階層構造を利用して、次善のUIを特定する次善UI決定手段とを具備する階層型抽象化UIデータ表示装置が勘案されている。
【0003】
この情報処理装置によれば、当該情報処理装置内に持つUIルール構成の差異に関わらず、提供されたUIデータに基づき、常に、最善の表示画面構成が行われる。すなわち、当該情報処理装置であれば、表示画面の大きさや情報処理装置が備えているUIデバイスに関わらず、如何なる種類の物であっても、提供される単一のUIデータに基づき、且つ、UIデータの提供者の意図に最大限忠実な表示画面の構成を得ることが可能となっていた。
【0004】
また、近年、携帯型など小型の情報機器等においても、表示機能が向上し、GUI画面に使用されるGUI部品の数や種類も豊富になり、それぞれの持つ表現能力も多彩な物となっている。さらに、ユーザにGUI部品の意味を伝える手段も、文字情報だけではなく、図形や自然画など、ビジュアルな手段を用いた、直感的なデザインも採用されつつある。
【0005】
しかし、前述のような階層型抽象化UIデータ表示装置においては、GUI画面の設計者がGUI画面を構成して欲しいと考えるUIコントロール部品や、レイアウト配置を具体的にUIデータに記述したとしても、実際には、情報処理装置が持つUIルールを参照して、具象UIコントロール部品やレイアウト配置が決定されるため、もし、情報処理装置にUIデータに記述したUIコントロール部品やレイアウト配置を実現する機能が存在しない場合には、当該情報処理装置において構成可能な次善のUIコントロール部品やレイアウト配置を使用してGUI画面が構成されることになり、その結果として、GUI画面の設計者が意図しないGUI画面となるばかりでは無く、GUI画面を利用するユーザにとっても使いにくい物となってしまうと言う問題点があった。
【発明の開示】
【発明が解決しようとする課題】
【0006】
例えば、図14は、メディアプレーヤの操作画面としてGUI画面の設計者が意図したGUI画面であり、画面を構成するUIコントロール部品であるボタン部品1902〜1907には、それぞれのボタン機能の役割を明快に表す図形1908〜1913が属性情報として指定されており、図17に示すようなUIデータの一部分として記述されているものである。
【0007】
このUIデータは、情報処理装置に送られ、それぞれの情報処理装置が持つUI部品ルールに基づいて処理され、実際のGUI画面が構成されることになる。この時、UI部品ルールとして図5Aに示すUI部品ルールを持つ、利用可能なUIコントロールの種類が豊富な情報処理装置においては、図形がボタンに貼り付け可能なUIコントロールである「PictButton」325を実装しているために、先のUIデータは、画面の設計者が意図した通りのGUI画面を構成することが可能である。
【0008】
しかし、同じUIデータを別の情報処理装置、例えばUI部品ルールとして図5Bに示すようなシンプルな機能を持つ情報処理装置で処理される場合には、GUI画面の設計者が意図したUIコントロールが存在せず、その結果、テキストのみをボタンのキートップに表示可能な「TextButton」326が次善のUIコントロールとして選択され、結果として、図21に示すようなボタンの機能が全く不明なGUI画面となってしまっていた。
【0009】
このような問題を回避するために、階層型抽象化UIデータ表示装置においては、図13に示すように、UIデータに記述されたそれぞれのUIコントロール要素の子要素として、ラベルデータを持つことができる構成となっている。したがって、通常は、あらゆる種類の情報処理装置において、当該UIデータが処理されることを想定して、全てのUIコントロールについて、子要素として、当該UIコントロールの意味を表すラベルデータを子要素として持つことが必要となっている。この結果、図5Bに示すUI部品ルールを持つ情報処理装置においても、表示されるGUI画面は、例えば、図22のようになる。
【0010】
ところが、GUI画面の設計者が、予め図5Bに示すようなUIルールを持つクライアントを考慮して、図13のようなラベルデータを常に子要素として持つUIデータの記述をした場合は、最初の例で示した、図5Aに示すような豊富な種類のUIコントロールを持つ情報処理装置では、図23に示すように、図形2308〜2313が貼り付けられたボタン2302〜2307それぞれに、さらに意味を示すラベル表示2314〜2319も行われてしまい、この場合も設計者の意図通りにはならないという問題点があった。
【0011】
また、図24は、GUI画面の設計者が意図したライブカメラのリモコン操作を行うGUI画面であり、図25に示すようなUIデータにより表されている。この図25のUIデータの中で、ライブカメラの映像(行番号3)は、カメラの縦方向の移動を操作する縦スライダー(行番号4〜8)と、横並びでグループ化(行番号2及び9)されており、また、当該グループ(行番号2及び9)と、カメラの横方法の移動を操作する横スライダー(行番号10〜14)及びカメラのズーム操作を操作する横スライダー(行番号15〜20)とは縦並びでグループ化(行番号1及び21)されている。このUIデータを、利用可能なUIコントロールの種類が豊富な図5Aに示すようなUI部品ルールを持ち、なお且つ、利用可能なレイアウトの種類に縦及び横レイアウトを持つような図7Aに示すレイアウトルールを持つ情報処理装置で処理した場合には、図24の如く、GUI画面の設計者が意図した通りのGUI画面となる。このGUI画面では、カメラのライブ映像と、その右辺及び下辺にあるスライダーUIコントロールにより、カメラの方向を操作するUIコントロール部品であることは容易に類推できる。
【0012】
しかし、図5BのUI部品ルール及び図7Bのレイアウトルールに示す如く、シンプルな機能しか持たない情報処理装置において当該UIデータを処理した場合には、縦向きのスライダーUIコントロール部品も、横並びのレイアウト機能も無いために、図26のようなGUI画面が構成されることになる。この場合でも先程の例と同様に、カメラのライブ映像と下側2本のスライダーUIコントロール部品の意味関係が不明確なものとなり、設計者の意図とはかけ離れたものとなるという問題点があった。
【0013】
本発明は上述の問題点にかんがみてなされたものであり、UIデータを作成したGUI画面の設計者が想定していないUIルールを持つ情報処理装置において当該UIデータが処理された際に、設計者が全く意図していないGUI画面となることや、ユーザが操作し難いGUI画面となることを回避できるようにすることを目的とする。
【課題を解決するための手段】
【0014】
本発明の情報処理装置は、ユーザインターフェースデータに基づき、ユーザインターフェースを構成する情報処理装置であって、前記ユーザインターフェースデータは、当該情報処理装置が持つユーザインターフェースルールの任意の階層要素を示すユーザインターフェース指定情報から構成されているものであり、実際のユーザインターフェースに対応付けられる具体的なユーザインターフェース記述から、当該ユーザインターフェース記述の抽象度を高めた複数段階の抽象的なユーザインターフェース記述まで、抽象度の違いで段階的に階層化されたユーザインターフェースルールと、前記ユーザインターフェース指定情報から、前記ユーザインターフェースルールを参照して、対応するユーザインターフェースを決定するユーザインターフェース決定手段と、前記ユーザインターフェース指定情報が、当該ユーザインターフェース指定情報により指定される要素に直接対応するユーザインターフェースを特定できない場合、前記ユーザインターフェースルールの階層構造を利用して、次善のユーザインターフェースを特定する次善ユーザインターフェース特定手段と、前記ユーザインターフェース決定手段又は前記次善ユーザインターフェース特定手段により決定されたユーザインターフェースが前記ユーザインターフェース指定情報で指定されたユーザインターフェースと同一の機能であるか否かを識別する識別手段と、前記識別手段による識別結果を判定条件として、当該ユーザインターフェースに対応するラベル情報を表示又は非表示とするための表示制御を行う表示制御手段と、前記判定条件と前記ラベル情報の表示制御との組み合わせをラベル表示制御ルールとして記録する記録手段と、前記ラベル表示制御ルールを前記ユーザインターフェース指定情報の一部として処理する処理手段とを具備する。
【0015】
具体的に、本発明は、ユーザインターフェースデータに基づき、ユーザインターフェースを構成する情報処理装置において、ユーザインターフェースデータに記述されたユーザインターフェースコントロール要素について子要素としてラベル情報を原則として付加し、当該ユーザインターフェースデータが処理される際、ユーザインターフェースルールに基づいて選択された具象ユーザインターフェースコントロール及び選択されたレイアウト配置の種別条件によるルール情報にしたがって、当該ラベル情報の表示状態を制御するようにして、GUI設計者の意図を情報処理装置の種類毎にそれぞれ的確に反映させるとともに、ユーザにも分かり易いGUI画面を提供するものである。さらに、前記ルール情報に記述された条件に基づき、特定のユーザインターフェースコントロール部品についてラベル表示が必要となった際に、ユーザインターフェースデータ上の当該ユーザインターフェースコントロール部品にラベル情報が存在していなかった場合には、ユーザインターフェースデータ内の当該ユーザインターフェースコントロール部品に関する記述より、ヒント情報や当該ユーザインターフェースコントロール部品に対応する参照先変数名称、参照先ID名、あるいは具象ユーザインターフェースコントロール部品の名称の一部等をラベル情報として利用し、GUI画面を実現するものである。
【発明の効果】
【0016】
本発明によれば、UIデータを作成したGUI画面の設計者が想定していないUIルールを持つ情報処理装置において当該UIデータが処理された際に、設計者が全く意図していないGUI画面となることや、UIコントロールの意味が不明なためにユーザが操作し難いGUI画面となることを回避することができる。
【0017】
また、本発明による情報処理装置においては、ラベル情報の表示、非表示に関する制御を行う際のルール情報を保持し、例えば、当該情報処理装置が高機能なレイアウト機能や具象UIコントロール部品を持ち、ラベル表示以外の方法で明らかに当該具象UIコントロール部品の意味を示すことが可能であるか、あるいは、シンプルなデザインにする構成上などの理由により、UIコントロール部品の意味を示すラベル表示が不要であるか、さらには邪魔である場合などに、UIデータに当該UIコントロール部品のラベル情報が付加されていても表示を非表示にしたい場合には、これらを制御するための条件をルール情報として記述し、また、逆に、当該情報処理装置が持つ低い能力のレイアウト機能や具象UIコントロール部品が次善の物として採用された場合に、その結果として、実現したGUI画面を構成するUIコントロール部品の意味が不明確となる場合には、UIデータ内にあるラベル情報の表示を行うよう制御する条件として、ルール情報を記述することにより、UIデータを処理する情報処理装置の種類に関わらず、設計者やユーザに対して分かり易いGUI画面を提供することができる。
【発明を実施するための最良の形態】
【0018】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
図1において、1は情報(データ)を入力するための入力部である。2はCPUであり、各種処理のための演算、論理判断等を行い、バス6に接続された各構成要素を制御する。3は情報(データ)を出力する出力部である。出力部3としては、LCDやCRT等のディスプレイや、プリンタ等の記録装置がある。
【0019】
4はプログラムメモリであり、後述するフローチャートの処理手順を含む手順をCPU2による制御により実行するためのプログラムを格納するメモリである。このプログラムメモリ4は、ROMであってもよいし、外部記憶装置等からプログラムがロードされるRAMであってもよい。
【0020】
5はデータメモリであり、各種処理で生じたデータを格納する。このデータメモリ5は、例えば、RAMとするが、不揮発な外部記憶媒体から、処理に先立ってロードしておく、あるいは必要があるごとに参照するものとする。
【0021】
6はCPU2の制御の対象とする各構成要素を指示するアドレス信号、各構成要素を制御するためのコントロール信号、各構成要素間で相互にやりとりされるデータの転送を行うためのバスである。
【0022】
図2は、本発明の第1の実施形態に係る情報処理装置の処理を示すフローチャートである。この図2は、本発明の第1の実施形態の特徴を最も良く表す図であり、情報処理装置において利用されるUIデータ上に記述された特定のUIコントロールに付随するラベル情報を表示制御するためのスクリプト化されたルール情報の動作を示すフローチャートである。
【0023】
図2において、S001は、本実施形態の情報処理装置において、UIデータの記述より、特定の具象UIコントロール部品が決定した際に実効されるスクリプト化されたルール情報のルール解析を開始するステップである。
【0024】
S002は、当該決定した具象UIコントロール部品についての情報を取得するステップである。
【0025】
S003は、具象UIコントロール部品の子要素であるラベル部品についての情報を取得するステップである。
【0026】
S004は、先に決定した具象UIコントロール部品が、UIデータで指定された部品と同一であるか否かを判断するステップである。
【0027】
S005は、ステップS004での判断の結果、先に決定した具象UIコントロール部品が、UIデータで指定されたものと同一であった場合に、当該具象UIコントロール部品の子要素として存在するラベル部品のラベル情報について、当該具象UIコントロール部品のラベル情報としての表示を非表示とするステップである。
【0028】
S006は、ステップS004での判断の結果、先に決定した具象UIコントロール部品が、UIデータで指定されたものと同一でなかった場合に、当該具象UIコントロール部品が、キートップに文字表示可能であるか否かを判断するステップである。
【0029】
S007は、ステップS006での判断の結果、キートップに文字表示が可能である場合に、ラベル情報をキートップ文字として使用するステップである。このステップS007の処理が終了すると、ステップS005に進む。
【0030】
S008は、ステップS006での判断の結果、キートップに文字の表示が不可能であった場合に、通常のUIコントロールに対応するラベル情報の表示を行うステップである。
【0031】
S009は、ステップS005又はS008の処理が終了した場合に移行し、ラベル情報の表示制御のためのスクリプト化されたルール解析を終了するステップである。
【0032】
図3は、本発明の第1の実施形態に係る情報処理装置の処理で用いるUIデータの構造の一例を示すクラス図である。
図3において、本実施形態に係る情報処理装置がUIを構成するためのUIデータ1701は、それぞれが1つのUIを記述する1つ以上のUI指定情報1702から構成されている。このUI指定情報1702には、UI部品についての記述を行うUI部品指定情報1705と、UI部品のレイアウトについての記述を行うレイアウト指定情報1706の2種類が存在する。レイアウト指定情報1706は、当該レイアウトの対象となる1つ以上のUI指定情報1702をその記述の内部に含むという意味において、UI指定情報1702と関連している。
【0033】
各UI指定情報1702は、1つのUI指定情報要素1703を有し、さらに、UI指定情報要素1703は、1つのUI指定情報要素を持つか、あるいは持たないことによるリスト構造を成している。各UI指定情報要素1703は、階層化された抽象度の1段階を表しており、抽象度を表す1つのUI指定情報要素名1704を有する。
【0034】
図4は、本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのUI部品に関する構造の一例を示すクラス図である。
図4において、UI部品に関するUIルール201は、1つ以上のUI部品ルール要素202から構成されている。この各UI部品ルール要素202は、非末端UI部品ルール要素203、あるいは末端部品ルール要素204のいずれかであり、非末端UI部品ルール要素203は、1つ以上のUI部品ルール要素202を有し、末端UI部品ルール要素204は、1つの具体的UI部品205に結び付けられている。これにより、UI部品ルール201は、ツリー状構造を成し、末端のUI部品ルール要素202は、必ず末端UI部品ルール要素204である。また、UI部品ルール要素202は、それぞれ1つのUI指定情報要素名104と結び付けられており、UI部品ルール201のツリー状構造の各段階が階層化された抽象度の1段階を表現している。
【0035】
図5A及び図5Bは、図4の具体例として、異なる情報処理装置におけるUI部品ルールの一部をツリー状構造で示した図である。
本実施形態では、UI部品を構成するために、それぞれの情報処理装置毎に規模の異なるツールキットがライブラリとして組み込まれており、上述したように、抽象概念をまとめてツリー状構造をなしている。ツリー状構造の末端には、ツールキットの具体的な部品が当てられており、階層を上がるごとに抽象度が高くなる。
【0036】
図5Aに示すUI部品301におけるツリー状構造の末端には、ツールキットの具体的な部品として、「Dial」317、「SpinBox」318、「Slider_Horizontal」319、「Slider_Vertical」320、「CheckBox」321、「PullDown」322、「PullUp」323、「RadioButton」324、「PictButton」325、「TextButton」326、「2PictButton」327、「Label」328、「Hint」329などがある。これらの1つ上の階層では、末端の具体的な部品をそれぞれ抽象化し、部品の概念としてまとめている、ダイアル(dial)307、スピンボックス(spinbox)308、スライダ(slider)309、チェックボックス(checkbox)310、プルダウンメニュー(pulldownmenu)311、ラジオボタン(radiobutton)312、モメンタリ(momentary)313、オルタネート(alternate)314、ラベル(label)315、ヒント(hint)316などがある。これらのさらに上位の階層では、さらに抽象化したレベルとして、数値範囲(range)302、選択(select)303、唯一選択(selectone)304、トリガ(trigger)305、テキスト(text)306などがある。
【0037】
また、図5Bに示すUI部品351におけるツリー状構造の末端には、「SpinBox」362、「CheckBox」363、「PullDown」364、「TextButton」365、「Label」366などがある。これらの1つ上の階層では、スピンボックス(spinbox)357、チェックボックス(checkbox)358、プルダウンメニュー(pulldownmenu)359、モメンタリ(momentary)360、ラベル(label)361などがある。これらのさらに上の階層では、図5Aの場合と同じ、数値範囲(range)352、選択(select)353、唯一選択(selectone)354、トリガ(trigger)355、テキスト(text)356などがある。
【0038】
図6は、本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのレイアウトに関するUIルールの構造の一例を示すクラス図である。
図6において、レイアウトに関するUIルール401は、1つ以上のレイアウトルール要素402から構成されている。この各レイアウトルール要素402は、非末端レイアウトルール要素403、あるいは末端レイアウトルール要素404のいずれかであり、非末端レイアウトルール要素403は、1つ以上のレイアウトルール要素402を有し、末端レイアウトルール要素404は、1つの具体的レイアウト405に結び付けられている。これにより、レイアウトルール401は、ツリー状構造を成し、末端のレイアウトルール要素402は、必ず末端レイアウトルール要素404である。また、レイアウトルール要素402は、それぞれ1つのUI指定情報要素名104と結び付けられており、レイアウトルール401のツリー状構造の各段階が階層化された抽象度の1段階を表現している。
【0039】
図7A及び図7Bは、図6の具体例として、情報処理装置に共通なレイアウトルールの一部をツリー状構造で示した図である。
本実施形態では、UI部品を画面に配置するために、具体的レイアウトが組み込まれており、図7Aに示すように、抽象概念をまとめてツリー状構造をなしている。ツリー状構造の末端には、具体的レイアウトが当てられており、階層を上がるごとに抽象度が高くなる。
【0040】
図7Aに示すレイアウト501におけるツリー状構造の末端には、具体的レイアウトとして、UI部品を横に並べる「Horizontal」506、UI部品を縦に並べる「Vertical」507、右回りで周囲に配置する「RightOrder」508、左周りで周囲に配置する「LeftOrder」509、右上から碁盤目状に順番に配置する「UpRight」510、左上から碁盤目状に順番に配置する「UpLeft」511、右下から碁盤目状に順番に配置する「DownRight」512、左下から碁盤目状に順番に配置する「DownLeft」513などがある。これらのさらに上位の階層では、さらに抽象化したレベルとして、スタック(stack)503、ボーダー(border)504、グリッド(grid)505などがあり、さらにその上の抽象化したレベルとしてグループ(group)502などがある。
【0041】
また、図7Bに示すレイアウト521におけるツリー状構造の末端には、具体的レイアウトとして、UI部品を縦に並べる「Vertical」526、右回りで周囲に配置する「RightOrder」527、右上から碁盤目状に順番に配置する「UpRight」528などがある。これらのさらに上位の階層では、さらに抽象化したレベルとして、スタック(stack)523、ボーダー(border)524、グリッド(grid)525などがあり、さらにその上の抽象化したレベルとしてグループ(group)522などがある。
【0042】
図8は、本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウトスタックのデータ構造の一例を示す概念図である。
図8において、600は、レイアウトスタック全体を示す。レイアウトスタック600は、レイアウト情報をスタック状に複数貯めておくためのコンテナの役割を果たす。601は、概念上のスタックの最上部を示す。図8において、レイアウト情報は、このスタックの最上部601を最上位として、上から追加され、上から取り除かれる。602〜605は、それぞれ1つのレイアウト情報を表す。ただし、本実施形態において、602は、現在のレイアウト情報と呼び、描画オブジェクトは、必ずこれに基づいてレイアウトされる。レイアウト情報は、図8において下から順に追加されたレイアウト情報であり、その数には特に制限はない。
【0043】
図9は、本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウト情報のデータ構造の一例を示す概念図である。
図9において、700は、1つのレイアウト情報全体を示す。701は、当該レイアウト情報における次のオブジェクトをレイアウトするための原点となる現在の座標である。702は、現在のレイアウトルールである。現在の座標701及び現在のレイアウトルール702は、現在のレイアウトルールの基で次の描画オブジェクトをレイアウトするための情報である。703は、現在のレイアウトルールの基でレイアウトされたすべてのオブジェクトを含むような最小矩形の大きさを示す現在のボックスの大きさである。現在のボックスの大きさ703は、現在のレイアウトが終了して、1つ前のレイアウト情報における現在の座標702と当該現在のボックスの大きさを更新するために使用される。
【0044】
図10は、本発明の第1の実施形態に係る情報処理装置のUIデータ処理の一例を示すフローチャートである。なお、S801からS817は、各ステップを示す。
【0045】
まず、UIデータの処理が開始されると(ステップS801)、始めにUIデータの中に含まれているラベル情報制御ルールのスクリプトを取得する(ステップS802)。
【0046】
次に、初期レイアウト情報を作成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックにプッシュする(ステップS803)。
【0047】
次に、UIデータ中にUI指定情報がまだ存在するか否かを判断し(ステップS804)、UI指定情報が存在しなければ、処理を終了する(ステップS817)。ステップS804の判断の結果、UI指定情報がまだ存在するならば、UIデータ中のUI指定情報を1つ読み込む(ステップS805)。
【0048】
次に、当該UI指定情報が、UI部品指定情報であるか否かを判断する(ステップS806)。この判断の結果、当該UI指定情報がUI部品指定情報であるならば、UI部品ルールを参照し(ステップS807)、当該UI部品指定情報に対応する具体的なUI部品を取得し(ステップS808)、ステップS802で取得したラベル情報制御ルールを読み込み(ステップS809)、ラベル情報制御ルールに基づきラベル情報の制御を行う(ステップS810)。次に、前記レイアウトスタックの1番上にある現在のレイアウト情報に従って部品をレイアウトし、当該レイアウト情報を更新し(ステップS811)、ステップS804の処理に戻る。
【0049】
一方、ステップS806での判断の結果、UI指定情報が、UI部品指定情報でない、すなわちレイアウト指定情報であれば、当該レイアウト指定情報がレイアウト開始指定情報であるか否かを判断する(ステップS812)。この判断の結果、レイアウト指定情報がレイアウト開始指定情報であれば、レイアウトルールから当該レイアウト指定情報に対応する具体的レイアウトを得て(ステップS813)、現在のレイアウト情報と当該具体的レイアウトとを基に新たなレイアウト情報を作成して、レイアウトスタックにプッシュして(ステップS814)、その後、ステップS804の判断に戻る。
【0050】
ステップS812の判断の結果、当該レイアウト指定情報がレイアウト開始指定情報でない、すなわちレイアウト終了指定情報であれば、レイアウトスタックから、現在のレイアウト情報をポップし(ステップS815)、ポップした後の現在のレイアウト情報を更新し(ステップS816)、その後、ステップS804の判断に戻る。
【0051】
図11は、本発明の第1の実施形態に係る情報処理装置において、UI部品指定情報から具体的UI部品を得る処理の一例を示すフローチャートである。なお、S901からS910は、各ステップを示す。
【0052】
まず、処理が開始されると(ステップS901)、UI指定情報の最初のUI指定情報要素を得て(ステップS902)、当該UI指定情報要素に対応するUI部品ルール要素を得て、現在のUI部品ルール要素とする(ステップS903)。次に、当該UI指定情報中に次のUI指定情報要素が存在するか否かを判断し(ステップS904)、次のUI指定情報要素が存在する場合には(ステップS904/YES)、次のUI指定情報要素を当該UI指定情報から得る(ステップS905)。一方、ステップS904での判断の結果、当該UI指定情報中に次のUI指定情報要素が存在しない場合には、ステップS907に進む。
【0053】
次に、ステップS905で取得したUI指定情報要素に対応するUI部品ルール要素が存在するか否かを判断する(ステップS906)。この判断の結果、当該UI指定情報要素に対応するUI部品ルール要素が存在する場合には、ステップS903の処理に戻る。一方、当該UI指定情報要素に対応するUI部品ルール要素が存在しない場合には、現在のUI部品ルール要素が末端UI部品ルール要素であるか否かを判断する(ステップS907)。この判断の結果、現在のUI部品ルール要素が末端UI部品ルール要素でなければ、現在のUI部品ルール要素の最初の子供要素を現在のUI部品ルール要素として(ステップS908)、ステップS907の処理に戻る。一方、ステップS907の判断の結果、現在のUI部品ルール要素が末端UI部品ルール要素であれば、当該末端UI部品ルール要素に結び付けられている具体的UI部品を得て(ステップS909)、処理を終了する(ステップS910)。
【0054】
図12は、本発明の第1の実施形態に係る情報処理装置において、レイアウト指定情報から具体的レイアウトを得る際の処理の一例を示すフローチャートである。なお、S1001〜S1010は、各ステップを示す。
【0055】
まず、処理が開始されると(ステップS1001)、UI指定情報の最初のUI指定情報要素を得て(ステップS1002)、当該UI指定情報要素に対応するUIルール要素を得て、現在のレイアウトルール要素とする(ステップS1003)。次に、当該UI指定情報中に次のUI指定情報要素が存在するか否かを判断し(ステップS1004)、次のUI指定情報要素が存在する場合には(ステップS1004/YES)、次のUI指定情報要素を当該UI指定情報から得る(ステップS1005)。一方、ステップS1004での判断の結果、当該UI指定情報中に次のUI指定情報要素が存在しない場合には、ステップS1007に進む。
【0056】
次に、ステップS1005で取得したUI指定情報要素に対応するレイアウトルール要素が存在するか否かを判断する(ステップS1006)。この判断の結果、当該UI指定情報要素に対応するレイアウトルール要素が存在する場合には、ステップS1003の処理に戻る。一方、当該UI指定情報要素に対応するレイアウトルール要素が存在しない場合には、現在のレイアウトルール要素が末端レイアウトルール要素であるか否かを判断する(ステップS1007)。この判断の結果、現在のレイアウトルール要素が末端レイアウトルール要素でなければ、現在のレイアウトルール要素の最初の子供要素を現在のレイアウトルール要素として(ステップS1009)、ステップS1007の処理に戻る。一方、ステップS1007での判断の結果、現在のレイアウトルール要素が末端レイアウトルール要素であれば、当該末端レイアウトルール要素に結び付けられている具体的レイアウトを得て(ステップS1008)、処理を終了する(ステップS1010)。
【0057】
図13は、本発明の第1の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。図13は、XMLの記述に基づきHTMLをホスト言語とし、本実施形態により拡張されたXForms言語として記述されたUIデータのうち、コントロールパネルのGUIを構成するbody部分の一部の記述例を示しており、その他の部分、例えばtrigger要素内のsubmission属性の参照先記述など、model部分については、本発明とは直接関係が無いので記述を省略している。
【0058】
図13において、行番号1は、本実施形態の情報処理装置において構成されるGUI画面上の1つの操作パネルを構成する複数のボタンが横並びであることを示すグループ要素記述である。行番号2〜5までは、trigger要素から構成されるボタン型UIコントロール部品を示す記述であり、行番号2には、要素名とともに、抽象化レベル毎に階層化された具象UIコントロールまでを指定するType属性と、当該具象UIコントロールで使用されるキートップに貼り付けられる図形の参照ファイル名が、picture属性として記述されている。また、行番号3には、行番号2から始まるtrigger要素の子要素として、ラベル部品であるlabel要素とその内容が記述されている。行番号4には、行番号2のtrigger要素の子要素として、ボタン型UIコントロールが操作された際に実行する動作が記述されており、submission動作の参照先を示すsubmission属性を含んでいる。行番号5には、行番号2のtrigger要素の終了タグが記述されている。
【0059】
以下、行番号6〜行番号25までは、上記の行番号2〜5までと同様の繰り返しであり、これらにより構成されるUIコントロール部品が行番号1及び行番号26から構成されるグループ要素の内容となっている。ここで、行番号2、6、10、14、18、22に存在するtype="/button/momentary/pictbutton"は、本発明の基となる階層型抽象化UIデータ表示装置によるXForms言語の拡張であり、UI部品指定情報を表している。それに含まれるUI指定情報要素「trigger」によりトリガーを発生させるための部品が指定されており、UI指定情報要素「momentary」により押している間だけトリガーを発生させる部品が指定されており、UI指定情報要素「pictbutton」により、キートップに図形が貼り付け可能なツールキット部品が指定されていることが記述されている。
【0060】
以下、図13に示すUIデータにより、異なるUI部品ルールを持つ2種類の情報処理装置において、画面を構成するUIコントロール部品が選択される処理について説明する。
【0061】
図10において、図13に示すUIデータの処理が開始されると(ステップS801)、ステップS802において、図2に示すラベル情報制御ルールのスクリプトがUIデータより取得される。次に、ステップS803でレイアウト情報の初期化が行われ、ステップS804へと進む。今、UIデータの処理が図13に示す部分に進むと、ステップS805で行番号1のグループ要素が読み込まれる。ステップS806では、グループ要素がUI部品情報では無いために、ステップS812へと進む。行番号1は、レイアウト指定の開始情報を示しているためにステップS813へと進み、図12の処理が開始される。
【0062】
図12のステップS1002では、図13のレイアウト指定情報から、最初のUI指定情報要素である行番号1のtype属性より「group」を得る。次に、ステップS1003で図7Aのgroup(グループ)502を取得する。次に、ステップS1004で行番号1のtype属性でレイアウト指定情報に続きがあるので、ステップS1005で「stack」を得る。次に、ステップS1006でスタック503があるので、再びステップS1003へ戻る。
【0063】
ステップS1003では、type属性から「horizontal」を得る。そして、ステップS1006で「Horizontal」506があるので、再びステップS1003に戻る。ステップS1003で「Horizontal」506を得る。そして、ステップS1004でレイアウト指定情報に続きは無いので、ステップS1007に進む。「Horizontal」506は末端レイアウトルール要素なので、ステップS1008において、具体的レイアウトHorizontalを得る。
【0064】
次に、図10に再び戻って、ステップS814では、ステップS813で得たレイアウトの情報がスタックにプッシュされ、この状態で図13のUI部品情報が処理され、これらのUI部品は、行番号26のレイアウト指定の終了までの間、当該スタックにある状態でレイアウト配置されることになる。
【0065】
すなわち、図13に示されたUIデータにおいては、図7Aに示されたレイアウトルールが参照されて、具体的なレイアウトであるHorizontalが選択され、<xforms:group type="/group/stack/horizontal" id="controlpanel">、及び</xforms:group>で囲まれたUI指定情報要素が横並びでレイアウトされることとなる。
【0066】
また、図10のステップS805において、行番号2以降が処理される際には、当該要素がUI部品情報であるために、ステップS807へと進み、当該情報処理装置のUI部品ルールである図5AのUI部品ルールが参照されて、ステップS808において、図11に示す具体的なUIコントロール部品の取得の処理が行われる。
【0067】
ここで、図11のステップS902では、図13のUI部品指定情報から、最初のUI指定情報要素である「trigger」を得る。次に、ステップS903でtrigger(トリガ)に対応する図5Aのトリガ要素305を得る。次に、ステップS904でUI部品指定情報に続きがあるので、ステップS905で次の「momentary」を得る。次に、ステップS906でmomentary(モメンタリ)に対応するモメンタリ要素があるので、再びステップS903に戻る。そして、ステップS903でモメンタリ要素313を得る。
【0068】
次にステップS904でUI部品指定情報に続きがあるので、ステップS905で「pictbutton」を得る。次に、ステップS906で「PictButton」325があるので、再びステップS903に戻る。次に、ステップS903で「PictButton」325を得る。次に、ステップS904でUI部品指定情報に続きは無いので、ステップS907に進む。「PictButton」325は、末端UI部品ルール要素なので、ステップS909において、具体的UI部品である「PictButton」を得る。
【0069】
このようにして、図13の具体的UI部品を持つ末端UI部品ルール要素まで指定したUI部品指定情報により、ツールキットの具体的な部品である、「PictButton」が選択される。以下、図13に示した行番号6、10、14、18、22においても、同様にして「PictButton」の選択が行われる。
【0070】
次に、図10のステップS809では、ステップS802で取得したラベル情報制御ルールのスクリプトを実行可能な形式に読み込みが行われ、ステップS810において、図2の具体的なUIコントロール部品に付帯するラベル情報の制御が行われる。
【0071】
図1のステップS002では、図10のステップS808で取得した具体的なUIコントロールの部品情報が取得され、ステップS003で、図13のUIデータにより、行番号3の子要素としてのラベル部品情報が取得される。次に、ステップS004において、ステップS002で取得された具体的なUIコントロール部品について、図13のUIデータにおけるtype属性で詳細指定されたUIコントロール部品と同一か否かの判断が行われ、ここでは、「PictButton」という同一の部品が選択されたために、ステップS005へと進み、行番号3の子要素としてのラベル情報は、非表示とされて処理を終了する。
【0072】
以上、図10において、図13に示された行番号2、6、10、14、18、22と同様の処理が行われ、その結果として、実際にUIコントロールである「PictButton」が画面上に描画される際には、それぞれのキートップ上に、picture属性で指定されたファイル名を持つイメージ図形が表示されると同時に、子要素としてUIデータに存在していたラベル情報は表示されないことになる。
【0073】
上記により、図13のUIデータに基づき、図5Aに示されるUI部品ルールを持つ情報処理装置においては、キートップに図形の貼り付けが可能な「PictButton」が、ラベル情報が非表示とされた状態で、横に6個配置された図14の画面例が構成されることになる。
【0074】
次に、図13に示すUIデータが、図5Bに示すUI部品ルールを持つ情報処理装置において処理される場合を説明する。
【0075】
この場合、図10における具体的なレイアウトの取得に関しては、先の図5Aに示すUI部品ルールを持つ情報処理装置と同様であるので、説明を省略する。
【0076】
図10のステップS807においては、先程とは異なり、図5BからなるUI部品ルールが参照され、その結果、ステップS808における図11の処理が先程とは異なる処理となる。
【0077】
図11のステップS902では、図13のUI部品指定情報から、最初のUI指定情報要素である「trigger」を得る。次に、ステップS903でtrigger(トリガ)に対応する図5Bのトリガ要素355を得る。
【0078】
次に、ステップS904では、UI部品指定情報に続きがあるので、ステップS905で、次の「momentary」を得る。ステップS906でmomentary(モメンタリ)に対応するモメンタリ要素があるので、再び、ステップS903に戻る。そして、ステップS903でモメンタリ要素360を得る。次に、ステップS904でUI部品指定情報に続きがあるので、ステップS905で「pictbutton」を得る。
【0079】
ステップS906では、PictButtonが無いので、ステップS907に進む。ステップS907では、現在のUI部品ルール要素であるモメンタリ要素は、末端UI部品ルール要素では無いので、ステップS908に進み、ここで、モメンタリ要素の最初の子供要素である「TextButton」365を得る。次に、ステップS907に戻り、「TextButton」365は末端UI部品ルール要素であるので、次のステップS909において、具体的UI部品「TextButton」を得る。
【0080】
このようにして、図13の具体的UI部品を持つ末端UI部品ルール要素まで指定したUI部品指定情報により、次善のものとなるツールキットの具体的な部品である、「TextButton」が選択される。
【0081】
以下、図13に示された行番号6、10、14、18、22においても、同様にして「TextButton」の選択が行なわれる。
【0082】
次に、図10のステップS809では、ステップS802で取得したラベル情報制御ルールのスクリプトを実行可能な形式で読み込み、ステップS810において、図2に示す具体的なUIコントロール部品に付帯するラベル情報の制御が行われる。
【0083】
図2のステップS002では、図10のステップS808で取得した具体的なUIコントロールの部品情報が取得され、次のステップS003において、図13のUIデータにより、行番号3の子要素としてのラベル部品情報が取得される。
【0084】
次に、ステップS004において、ステップS002で情報が取得された具体的なUIコントロール部品について、図13のUIデータにおけるtype属性で詳細指定されたUIコントロール部品と同一か否かの判断が行われ、ここでは、UIデータのtype属性で指定されたPictButton部品とは異なるTextButton部品が具体的なUIコントロールとして選択されているので、ステップS006へと進む。ステップS006では、選択されたUIコントロール部品がキートップに文字を表示可能か否かが判断され、TextButton部品はキートップに文字を表示することが可能であるために、ステップS007でラベル情報をキートップ文字に使用し、ステップS005において、本来のラベル情報を非表示として処理を終了する。
【0085】
また、図13の行番号1は、レイアウト指定情報を示しているが、図7Aのレイアウトルールを参照し、具体的なレイアウトである「Horizontal」が選択され、<xforms:group type="/group/stack/horizontal" id="controlpanel" >、及び</xforms:group>で囲まれたUI指定情報要素がステップS811において、横並びでレイアウトされることとなる。
【0086】
以上、図10において、図13の行番号2、6、10、14、18、22において、同様の処理が行われ、その結果として、実際にUIコントロールである「TextButton」が画面上に描画される際には、それぞれのキートップ上に、それぞれのUIコントロールに付帯するラベル情報が表示されるとともに、子要素としてUIデータに存在していたラベル情報が表示されないことになる。
【0087】
上記により、図13のUIデータに基づき、図5Bに示されるUI部品ルールを持つ情報処理装置においては、キートップに文字の表示が可能な「TextButto」が、本来のラベル情報をキートップ上に表示された状態で、横に6個配置された図15の画面例が構成されることになる。
【0088】
以上説明したように、第1の実施形態によれば、同一のUIデータを用いて、異なるUI部品ルールを持つ情報処理装置において、GUI画面の表示処理を行う際に、UIコントロールに付帯するラベル情報の表示制御を行うルールを記述し、これをUIデータの一部あるいはUIデータとともに送ることにより、GUI画面の設計者が想定する範囲で、ラベル情報の的確な表示制御が可能となる。
【0089】
なお、本実施形態においては、ラベル情報の表示制御を行うルール情報がUIデータとともに情報処理装置に送られる構成としたが、当該ルール情報は、情報処理装置内に保持している構成としても構わないし、また、別途ネットワークから参照される構成でも構わない。
【0090】
(第2の実施形態)
第1の実施形態においては、GUI画面の設計者は、UIデータに存在するUIコントロール部品の記述について、予めラベル情報を付帯させておくこととした形態であったが、第2の実施形態では、UIデータに存在するUIコントロール部品について、対応するラベル情報が存在しない場合には、当該UIコントロール部品の関連情報により、ラベル情報を作成する手段を設けた形態である。
【0091】
図16は、本発明の第2の実施形態に係る情報処理装置の処理を示すフローチャートである。この図16は、本発明の第2の実施形態の特徴を最も良く表す図であり、情報処理装置において利用されるUIデータ上に記述された特定のUIコントロールに付随するラベル情報を表示制御のためのスクリプト化されたルール情報の動作を示すフローチャートである。
【0092】
第2の実施形態において、第1の実施形態との差異は、図16に示す処理の違いのみであり、他の処理については、第1の実施形態と同様のものである。すなわち、第1の実施形態を示す図10の処理において、ステップS810に係る処理のみが、図2の処理と異なるものである。また、本実施形態で使用するUIデータは、第1の実施形態で使用した図13のUIデータより、UIコントロール部品の子要素としてのラベル情報を欠落させた図17に示すUIデータを使用して説明を行う。
【0093】
図16において、S1401は、本実施形態の情報処理装置において、UIデータの記述より、特定の具象UIコントロール部品が決定した際に実効されるスクリプト化されたルール情報のルール解析を開始するステップである。
【0094】
S1402は、当該決定した具象UIコントロール部品についての情報を取得するステップである。
【0095】
S1403は、具象UIコントロール部品の子要素であるラベル部品についての情報を取得するステップである。
【0096】
S1404は、先に決定した具象UIコントロール部品が、UIデータで指定された部品と同一であるか否かを判断するステップである。
【0097】
S1405は、ステップS1404での判断の結果、具象UIコントロール部品が、UIデータで指定されたものとは異なったものであった場合に、当該具象UIコントロール部品の子要素としてのラベル部品のラベル情報が存在するか否かを判断するステップである。
【0098】
S1406は、ステップS1405での判断の結果、ラベル情報が存在しなかった場合に、当該UIコントロールのイベント処理動作の参照先であるsubmission属性のID名を取得するステップである。
【0099】
S1407は、ステップS1406において取得した参照先ID名をラベル情報として取得するステップである。
【0100】
S1408は、ステップS1405での判断の結果、ラベル情報が存在した場合、あるいはステップS1407の処理が終了した場合に、具象UIコントロール部品が、キートップに文字表示が可能か否かを判断するステップである。
【0101】
S1409は、ステップS1408での判断の結果、キートップに文字表示が可能である場合に、ラベル情報をキートップ文字として使用するステップである。
【0102】
S1410は、ステップS1404での判断の結果、具象UIコントロール部品がUIデータで指定されたものと同一であった場合、あるいはステップS1409の処理が終了した場合に、当該具象UIコントロール部品の子要素として存在するラベル部品のラベル情報について、当該具象UIコントロール部品のラベル情報としての非表示とするステップである。
【0103】
S1411は、ステップS1408での判断の結果、キートップに文字表示が不可能であった場合に、ラベル情報の表示を行うステップである。
【0104】
S1412は、ステップS1410又はS1411の処理が終了した場合に移行し、ラベル情報の表示制御のためのスクリプト化されたルール解析を終了するステップである。
【0105】
以下、第1の実施形態と同様に、図17に示すUIデータを用いて、図5Bに示すUI部品ルールを持つ情報処理装置における処理を、図10及び図16を参照して詳細に説明する。
【0106】
図17のUIデータにおいては、UIコントロールのtype属性として、pictbutton部品が指定されているが、本実施形態の情報処理装置においては、図5Bに示すUI部品ルールが適用されるために、第1の実施形態と同様に、図10のステップS808においては、具体的なUIコントロール部品として、TextButton部品が選択されることになる。
【0107】
しかる後、ステップS809において、図16に示すラベル情報表示制御のためのスクリプトがロードされ、次に、ステップS810において、ラベル情報の制御処理が図16の如く行われる。
【0108】
図16のステップS1402では、具体的なUIコントロール部品であるTextButton部品の情報が取得され、ステップS1403において、当該TextButton部品に関する子要素ラベル部品の情報が取得される。
【0109】
次に、ステップS1404では、当該TextButton部品が、UIデータにおけるtype属性で指定された部品であるか否かを判断する。ここでは、異なる部品であるために、ステップS1405へと進む。
【0110】
ステップS1405では、ステップS1403においてUIコントロール部品の子要素としてのラベル部品の取得に失敗しているために、ステップS1406へと進む。次に、ステップS1406では、UIコントロールのイベント動作を行う際のモデル部分における参照先を示すsubmission属性のID名を取得する。すなわち、図17の行番号3における「rewind」が取得される。
【0111】
次に、ステップS1407では、ステップS1406で取得したID名をラベル情報として設定し、ステップS1408へと進む。以下、第1の実施形態と同様に、TextButton部品においては、キートップに文字表示が可能であるために、ステップS1409において、先にラベル情報として設定したID名をキートップ文字として使用することになる。
【0112】
以下、図17に示す行番号3、6、9、12、15、18におけるID名がラベル情報として処理され、結果として、図18に示すGUI画面が構成される。
【0113】
以上説明したように、第2の本実施形態によれば、UIデータにおいて、UIコントロール部品に付帯するラベル情報が記述されていなくても、ラベル情報制御ルールに基づき、GUI画面の設計者が想定していないUIコントロール部品が選択された場合でも的確なラベル情報を表示することができる。
【0114】
なお、本実施形態においては、ラベル情報の代用品として、UIコントロールのイベント動作を行う際のID名を利用したが、その他、個々のUIコントロール部品と関連付けられた他属性のID名を利用しても良く、例えば、数値変数を扱うUIコントロール部品の場合には、当該数値変数の参照先ID名を用いても構わない。
【0115】
(第3の実施形態)
前述した第1及び第2の実施形態においては、ラベル情報制御ルールの駆動条件として、UIデータのtype属性で指定したUIコントロール部品と、実際に使用された具象UIコントロール部品との差異を挙げたが、その他の駆動条件として、UIデータにおけるUIコントロールのレイアウト配置の差異を用いても良い。
【0116】
例えば、図7Aに示すレイアウトルールを持つ情報処理装置を想定し、本発明による構成により、図18の如く設計された、且つ全てのUIコントロール部品にラベル情報を予め付加した図19に示すUIデータについて、実際には図7Bに示すシンプルなレイアウトルールを持つ情報処理装置において処理された場合には、UIコントロール部品の実際に採用された具体的なレイアウトがUIデータにおけるtype属性で指定したレイアウトと異なり、この異なるレイアウトとなる条件の場合に限ってラベル情報を表示させることにより、図20に示すような分かり易いGUI画面とすることが可能となる。
【図面の簡単な説明】
【0117】
【図1】本発明の第1の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図2】本発明の第1の実施形態に係る情報処理装置の処理を示すフローチャートである。
【図3】本発明の第1の実施形態に係る情報処理装置の処理で用いるUIデータの構造の一例を示すクラス図である。
【図4】本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのUI部品に関する構造の一例を示すクラス図である。
【図5A】図4の具体例として、異なる情報処理装置におけるUI部品ルールの一部をツリー状構造で示した図である。
【図5B】図4の具体例として、異なる情報処理装置におけるUI部品ルールの一部をツリー状構造で示した図である。
【図6】本発明の第1の実施形態に係る情報処理装置の処理において、抽象度の違いで段階的に階層化されたUIルールのレイアウトに関するUIルールの構造の一例を示すクラス図である。
【図7A】図6の具体例として、情報処理装置に共通なレイアウトルールの一部をツリー状構造で示した図である。
【図7B】図6の具体例として、情報処理装置に共通なレイアウトルールの一部をツリー状構造で示した図である。
【図8】本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウトスタックのデータ構造の一例を示す概念図である。
【図9】本発明の第1の実施形態に係る情報処理装置の処理に用いるレイアウト情報のデータ構造の一例を示す概念図である。
【図10】本発明の第1の実施形態に係る情報処理装置のUIデータ処理の一例を示すフローチャートである。
【図11】本発明の第1の実施形態に係る情報処理装置において、UI部品指定情報から具体的UI部品を得る処理の一例を示すフローチャートである。
【図12】本発明の第1の実施形態に係る情報処理装置において、レイアウト指定情報から具体的レイアウトを得る際の処理の一例を示すフローチャートである。
【図13】本発明の第1の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。
【図14】GUI画面例を示した図である。
【図15】GUI画面例を示した図である。
【図16】本発明の第2の実施形態に係る情報処理装置の処理を示すフローチャートである。
【図17】本発明の第2の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。
【図18】GUI画面例を示した図である。
【図19】本発明の第3の実施形態に係る情報処理装置の処理に用いるUIデータの一例を示した図である。
【図20】GUI画面例を示した図である。
【図21】従来例に係るGUI画面例を示した図である。
【図22】従来例に係るGUI画面例を示した図である。
【図23】従来例に係るGUI画面例を示した図である。
【図24】従来例に係るGUI画面例を示した図である。
【図25】従来例に係る拡張されたXForms言語として記述されたUIデータの一例を示した図である。
【図26】従来例に係るGUI画面例を示した図である。
【符号の説明】
【0118】
1 入力部
2 CPU
3 出力部
4 プログラムメモリ
5 データメモリ
【特許請求の範囲】
【請求項1】
ユーザインターフェースデータに基づき、ユーザインターフェースを構成する情報処理装置であって、
前記ユーザインターフェースデータは、当該情報処理装置が持つユーザインターフェースルールの任意の階層要素を示すユーザインターフェース指定情報から構成されているものであり、
実際のユーザインターフェースに対応付けられる具体的なユーザインターフェース記述から、当該ユーザインターフェース記述の抽象度を高めた複数段階の抽象的なユーザインターフェース記述まで、抽象度の違いで段階的に階層化されたユーザインターフェースルールと、
前記ユーザインターフェース指定情報から、前記ユーザインターフェースルールを参照して、対応するユーザインターフェースを決定するユーザインターフェース決定手段と、
前記ユーザインターフェース指定情報が、当該ユーザインターフェース指定情報により指定される要素に直接対応するユーザインターフェースを特定できない場合、前記ユーザインターフェースルールの階層構造を利用して、次善のユーザインターフェースを特定する次善ユーザインターフェース特定手段と、
前記ユーザインターフェース決定手段又は前記次善ユーザインターフェース特定手段により決定されたユーザインターフェースが前記ユーザインターフェース指定情報で指定されたユーザインターフェースと同一の機能であるか否かを識別する識別手段と、
前記識別手段による識別結果を判定条件として、当該ユーザインターフェースに対応するラベル情報を表示又は非表示とするための表示制御を行う表示制御手段と、
前記判定条件と前記ラベル情報の表示制御との組み合わせをラベル表示制御ルールとして記録する記録手段と、
前記ラベル表示制御ルールを前記ユーザインターフェース指定情報の一部として処理する処理手段と
を具備することを特徴とする情報処理装置。
【請求項2】
前記処理手段は、前記ラベル表示制御ルールを、前記ユーザインターフェース指定情報の替わりに、前記ユーザインターフェースルールの一部として処理することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記ユーザインターフェースルールは、抽象度の違いで段階的に階層化されたユーザインターフェース部品ルールと、抽象度の違いで段階的に階層化されたレイアウトルールとを含み構成され、
前記ユーザインターフェース指定情報は、前記ユーザインターフェース部品ルールの任意の階層要素を示すユーザインターフェース部品指定情報と、前記レイアウトルールの任意の階層要素を示すレイアウト指定情報と、前記ユーザインターフェース部品指定情と前記レイアウト指定情報とを関連付ける関連情報とを含み構成され、
前記ユーザインターフェース決定手段は、前記ユーザインターフェース部品指定情報により決定されたユーザインターフェース部品ルール要素と、前記レイアウト指定情報により決定されたレイアウトルール要素とに基づいて、前記ユーザインターフェース部品ルール要素に対応するユーザインターフェース部品を、前記関連情報で関連付けられた前記レイアウトルール要素に対応するレイアウトで配置するユーザインターフェース部品レイアウト手段を有し、
前記識別手段は、前記ユーザインターフェース決定手段により決定された前記レイアウトルール要素が前記レイアウト指定情報で指定されたレイアウトと同一の機能であるか否かを識別し、
前記表示制御手段は、前記識別手段による識別結果を判定条件として、当該レイアウトと関連付けられたユーザインターフェースに対応するラベル情報を表示又は非表示とし、
前記記録手段は、前記判定条件と前記ラベル情報の表示制御との組み合わせをラベル表示制御ルールとして記録し、
前記処理手段は、前記ラベル表示制御ルールを前記ユーザインターフェース指定情報の一部として処理することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記処理手段は、前記ラベル表示制御ルールを、前記ユーザインターフェース指定情報の替わりに、前記ユーザインターフェースルールの一部として処理することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記ラベル表示制御ルールは、特定のグループ要素の内容となる複数のユーザインターフェースについて、ユーザインターフェース指定情報又はレイアウト指定情報による記述に反して、同一の種類のユーザインターフェース又は同一の種類のレイアウトとして決定されたか否かを判定条件として含むことを特徴とする請求項1〜4のいずれか1項に記載の情報処理装置。
【請求項6】
前記処理手段は、前記ラベル表示制御ルールに基づき、前記ユーザインターフェースに対応するラベル情報を前記表示制御手段により表示させ、且つ、当該ラベル情報が存在しない場合に、当該ユーザインターフェースが参照するデータと対応付けるためのID名称を当該ラベル情報の代わりに用いることを特徴とする請求項1〜5のいずれか1項に記載の情報処理装置。
【請求項1】
ユーザインターフェースデータに基づき、ユーザインターフェースを構成する情報処理装置であって、
前記ユーザインターフェースデータは、当該情報処理装置が持つユーザインターフェースルールの任意の階層要素を示すユーザインターフェース指定情報から構成されているものであり、
実際のユーザインターフェースに対応付けられる具体的なユーザインターフェース記述から、当該ユーザインターフェース記述の抽象度を高めた複数段階の抽象的なユーザインターフェース記述まで、抽象度の違いで段階的に階層化されたユーザインターフェースルールと、
前記ユーザインターフェース指定情報から、前記ユーザインターフェースルールを参照して、対応するユーザインターフェースを決定するユーザインターフェース決定手段と、
前記ユーザインターフェース指定情報が、当該ユーザインターフェース指定情報により指定される要素に直接対応するユーザインターフェースを特定できない場合、前記ユーザインターフェースルールの階層構造を利用して、次善のユーザインターフェースを特定する次善ユーザインターフェース特定手段と、
前記ユーザインターフェース決定手段又は前記次善ユーザインターフェース特定手段により決定されたユーザインターフェースが前記ユーザインターフェース指定情報で指定されたユーザインターフェースと同一の機能であるか否かを識別する識別手段と、
前記識別手段による識別結果を判定条件として、当該ユーザインターフェースに対応するラベル情報を表示又は非表示とするための表示制御を行う表示制御手段と、
前記判定条件と前記ラベル情報の表示制御との組み合わせをラベル表示制御ルールとして記録する記録手段と、
前記ラベル表示制御ルールを前記ユーザインターフェース指定情報の一部として処理する処理手段と
を具備することを特徴とする情報処理装置。
【請求項2】
前記処理手段は、前記ラベル表示制御ルールを、前記ユーザインターフェース指定情報の替わりに、前記ユーザインターフェースルールの一部として処理することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記ユーザインターフェースルールは、抽象度の違いで段階的に階層化されたユーザインターフェース部品ルールと、抽象度の違いで段階的に階層化されたレイアウトルールとを含み構成され、
前記ユーザインターフェース指定情報は、前記ユーザインターフェース部品ルールの任意の階層要素を示すユーザインターフェース部品指定情報と、前記レイアウトルールの任意の階層要素を示すレイアウト指定情報と、前記ユーザインターフェース部品指定情と前記レイアウト指定情報とを関連付ける関連情報とを含み構成され、
前記ユーザインターフェース決定手段は、前記ユーザインターフェース部品指定情報により決定されたユーザインターフェース部品ルール要素と、前記レイアウト指定情報により決定されたレイアウトルール要素とに基づいて、前記ユーザインターフェース部品ルール要素に対応するユーザインターフェース部品を、前記関連情報で関連付けられた前記レイアウトルール要素に対応するレイアウトで配置するユーザインターフェース部品レイアウト手段を有し、
前記識別手段は、前記ユーザインターフェース決定手段により決定された前記レイアウトルール要素が前記レイアウト指定情報で指定されたレイアウトと同一の機能であるか否かを識別し、
前記表示制御手段は、前記識別手段による識別結果を判定条件として、当該レイアウトと関連付けられたユーザインターフェースに対応するラベル情報を表示又は非表示とし、
前記記録手段は、前記判定条件と前記ラベル情報の表示制御との組み合わせをラベル表示制御ルールとして記録し、
前記処理手段は、前記ラベル表示制御ルールを前記ユーザインターフェース指定情報の一部として処理することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記処理手段は、前記ラベル表示制御ルールを、前記ユーザインターフェース指定情報の替わりに、前記ユーザインターフェースルールの一部として処理することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記ラベル表示制御ルールは、特定のグループ要素の内容となる複数のユーザインターフェースについて、ユーザインターフェース指定情報又はレイアウト指定情報による記述に反して、同一の種類のユーザインターフェース又は同一の種類のレイアウトとして決定されたか否かを判定条件として含むことを特徴とする請求項1〜4のいずれか1項に記載の情報処理装置。
【請求項6】
前記処理手段は、前記ラベル表示制御ルールに基づき、前記ユーザインターフェースに対応するラベル情報を前記表示制御手段により表示させ、且つ、当該ラベル情報が存在しない場合に、当該ユーザインターフェースが参照するデータと対応付けるためのID名称を当該ラベル情報の代わりに用いることを特徴とする請求項1〜5のいずれか1項に記載の情報処理装置。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2007−25816(P2007−25816A)
【公開日】平成19年2月1日(2007.2.1)
【国際特許分類】
【出願番号】特願2005−203582(P2005−203582)
【出願日】平成17年7月12日(2005.7.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成19年2月1日(2007.2.1)
【国際特許分類】
【出願日】平成17年7月12日(2005.7.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]