JP2006107180A - 情報処理装置および情報処理装置のユーザインターフェース決定方法およびその方法を実行するためのプログラムおよびそのプログラムを記憶した記憶媒体 - Google Patents
情報処理装置および情報処理装置のユーザインターフェース決定方法およびその方法を実行するためのプログラムおよびそのプログラムを記憶した記憶媒体 Download PDFInfo
- Publication number
- JP2006107180A JP2006107180A JP2004293851A JP2004293851A JP2006107180A JP 2006107180 A JP2006107180 A JP 2006107180A JP 2004293851 A JP2004293851 A JP 2004293851A JP 2004293851 A JP2004293851 A JP 2004293851A JP 2006107180 A JP2006107180 A JP 2006107180A
- Authority
- JP
- Japan
- Prior art keywords
- user interface
- information
- rule
- layout
- designation information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- Stored Programmes (AREA)
Abstract
【課題】能力の異なるクライアントに対しても同じ論理ユーザインタフェースデータを配信するだけで、各クライアントにおいてユーザインタフェースデータの提供者の意図に最大限忠実な表示画面の構成が得られるようにする。
【解決手段】抽象化して記述されたユーザインタフェースの指定情報102を外部から取得する取得手段と、前記抽象化して記述されたユーザインタフェースより具体化して記述されたユーザインタフェースが分類されたユーザインタフェースルール1000に関する情報を記憶部から参照する参照手段と、前記ユーザインタフェースルール1000に関する情報を参照することにより、抽象化されたユーザインタフェース情報に属する具体化されたユーザインタフェース情報を決定する決定手段とを有する。
【選択図】図1
【解決手段】抽象化して記述されたユーザインタフェースの指定情報102を外部から取得する取得手段と、前記抽象化して記述されたユーザインタフェースより具体化して記述されたユーザインタフェースが分類されたユーザインタフェースルール1000に関する情報を記憶部から参照する参照手段と、前記ユーザインタフェースルール1000に関する情報を参照することにより、抽象化されたユーザインタフェース情報に属する具体化されたユーザインタフェース情報を決定する決定手段とを有する。
【選択図】図1
Description
本発明は、ユーザインタフェースデータを元にユーザインターフェースを構成する情報処理装置に関する。
従来、様々なパーソナルコンピュータ(以下PCと略す)において、インターネット上のサーバに存在する様々な情報をクライアント側で表示構成する表示用言語として、HTML(Hyper Text Markup Language)言語が広く普及している。このHTML言語によれば、PCの世界においてPCアーキテクチャの差異やブラウザアプリケーションによる差異を吸収する事が出来るようになった。
一方で、ネットワークに繋がるクライアント機器が多様化されている。例えば、通信インフラの整備に従い、通信環境を持つPDA(Personal Digital Assistance)及び携帯電話などについても、インターネットに接続しサーバ上の情報を利用するというニーズが広まっている。またさらに、近年は、従来の機器にない様々な画面サイズや機能を持った入出力機器が登場しており、これもまた同様にインターネットに接続し情報を表示・利用するニーズが生じている。
さらに上述の技術に加え、特定のユーザインタフェースデータを様々なクライアント機器において実現する為の技術が種々提案されている。
例えば、送信側では、受信側のデータ受信装置の表示機能ごとに複数種類のデータを用意する必要がなく、あらかじめデータ受信装置の表示機能に対応した属性情報を付与したデータを格納させておくだけで、多種多様な表示機能を有するデータ受信装置それぞれ個々に最適な表示形式でデータを表示させる技術が開示されている。(特許文献1参照)
特開2001−134518公報
しかしながら、主にPCでの表示を前提に設計されているHTMLを用いた表示データに関しては、一定の画面サイズを有するPCにおいては、ほぼ製作者の意図に忠実な表示がなされるのに対して、例えば画面の小さいPDAでは、表示の一部が欠けたり、または表示を途中で折り返して表示する為に延々とスクロール操作が必要となったりするような場合がある。
逆に、携帯電話等の小さい画面で表示することを前提にデザインされたデータをPC等大きな画面で表示しようとすると、単に画面の一部に偏った表示をすることになり、また画面の大きさや機能を生かすこともできなかった。
このような問題を解決するため、現状のHTMLにおいては、多種のクライアントのそれぞれに対して最適な表示を行うための文書をそれぞれ用意する必要がある。
本発明は、上述した課題を解決するために、能力の異なるクライアントに対しても同じ論理ユーザインタフェースデータを配信するだけで、各クライアントにおいてユーザインタフェースデータの提供者の意図に最大限忠実な表示画面の構成を得るシステムを提供することを目的とする。
上述した目的を達成するために、抽象化して記述されたユーザインターフェースの指定情報を外部から取得する取得手段と、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照する参照手段と、前記ユーザインターフェースルールに関する情報を参照することにより、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する決定手段とを有することを特徴とする情報処理装置を提供する。
本発明によれば、得られるユーザインターフェース指定情報が抽象化された記述であっても、情報処理装置内に持つユーザインターフェースルール構成の差異に関わらず、最善の表示画面構成が行われる。そのため、ユーザインターフェース指定情報を出力する側は、各機器に対応してユーザインターフェース指定情報を有する必要がなくなる。
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
図12は、本実施の形態に係る情報処理装置のハードウェア構成を示すブロック図である。
図12において、入力部1は情報(データ)を入力する。CPU2は、各種処理のための演算、論理判断等を行い、バス6に接続された各構成要素を制御する。出力部3は情報(データ)を出力するためのものであり、出力部3としては、LCDやCRT等のディスプレイや、プリンタ等によって構成される。
プログラムメモリ4は、後述するフローチャートの処理手順を含むCPU2による制御のためのプログラムを格納するメモリである。プログラムメモリ4は、ROM、および外部記憶装置等からプログラムがロードされるRAMを含む。
データメモリ5、各種処理で生じたデータを格納する。データメモリ5は、例えば、RAMとするが、不揮発性の外部記憶媒体から、後述の処理に先立ってロードしておく、あるいは必要があるごとに参照するものとする。
バス6はCPU2の制御の対象とする各構成要素を指示するアドレス信号、各構成要素を制御するためのコントロール信号、各構成要素間で相互にやりとりされるデータの転送を行う。
(第1の実施の形態)
図1は本発明に係るユーザインタフェースデータの構造の一例を示すクラス図及びユーザインターフェースルールのクラス図である。
図1は本発明に係るユーザインタフェースデータの構造の一例を示すクラス図及びユーザインターフェースルールのクラス図である。
なお、以下で述べるユーザインタフェースデータとは、ユーザインターフェースが動作するクライアント装置においてレンダリングにより表示再生される元となるデータのことを指す。
図1において、本実施の形態に係る情報処理装置がユーザインターフェースを構成するためのユーザインタフェースデータ101は、それぞれが1つのユーザインターフェースを記述する1つ以上のユーザインターフェース指定情報102から構成されており、ユーザインターフェース指定情報102は、サブクラスとしてユーザインターフェース部品について記述されたユーザインターフェース部品指定情報105と、ユーザインターフェース部品のレイアウトについて記述されたレイアウト指定情報106を有する。
各ユーザインターフェース指定情報102は、それぞれ1つのユーザインターフェース指定情報要素103を有し、さらにユーザインターフェース指定情報要素103は1つのまたは空のリストを持つ。
各ユーザインターフェース指定情報要素103は、それぞれ階層化された抽象度の1階層を表し、抽象度を表す1つのユーザインターフェース指定情報要素名104を有する。レイアウト指定情報106は前記レイアウトの対象となる1つ以上のユーザインターフェース指定情報102をその記述の内部に含むという意味において、ユーザインターフェース指定情報102と関連している。
また、情報処理装置がユーザインターフェースを構成するためのユーザインターフェースルール100は、ユーザインターフェース部品に関するルールが記述されたユーザインターフェース部品ルール201とレイアウトに関するルールが記述されたレイアウトルール401から構成される。ユーザインターフェース部品ルール201及びレイアウトルール401の詳細については後述する。このユーザインターフェースルール101は、予めプログラムメモリ4あるいはデータメモリ5に記憶しておくものとする。
図2は本実施の形態に係る抽象度に応じて階層化されたユーザインターフェースルールのうち、ユーザインターフェース部品に関するユーザインターフェースルール101の構造の一例を示すクラス図である。
図2において、ユーザインターフェース部品ルール201は、1つ以上のユーザインターフェース部品ルール要素202から構成されており、各ユーザインターフェース部品ルール要素202は、サブクラスとして非末端ユーザインターフェース部品ルール要素203と末端ユーザインターフェース部品ルール要素204を有する。
非末端ユーザインターフェース部品ルール要素203は1つ以上のユーザインターフェース部品ルール要素202を有し、末端ユーザインターフェース部品ルール要素204は1つの具体的ユーザインターフェース部品205に関連付けられている。このような構成より、ユーザインターフェース部品ルール201はツリー状構造を成し、末端のユーザインターフェース部品ルール要素202は必ず末端ユーザインターフェース部品ルール要素204となる。
なお、ユーザインターフェース部品ルール要素202はそれぞれ1つのユーザインターフェース指定情報要素名104と関連付けられており、ユーザインターフェース部品ルール201のツリー状構造の各段階はそれぞれ階層化された抽象度の1段階を表現している。
図3は、図2の具体例として、本実施の形態に実装されているユーザインターフェース部品に基づくユーザインターフェース部品ルールの一部をツリー状構造で示したものである。
本実施の形態では、上記で説明したように、ユーザインターフェース部品ルールは、ユーザインターフェース部品に対して、抽象的な分類から具体的なユーザインターフェース部品までの階層的なツリー状構造として構成されている。
すなわち、ツリー状構造の末端には、ツールキットの具体的なユーザインターフェース部品が割当てられており、階層が上がるごとにユーザインターフェースの分類の抽象度が高くなる。ツリー状構造の末端330には、ツールキットの具体的なユーザインターフェース部品としてQDial、Qslider Horizontal、Qslider Vertical、QCheckBox、QPullDown、QPullUp、QRadioButton、QLabel、QHintなどがある。これら具体的なユーザインターフェース部品の1つ上の階層320では、それぞれを抽象化した部品の概念が分類情報としてまとめられており、具体的には、ダイアル(dial)、スライダ(slider)、チェックボックス(checkbox)、プルダウンメニュー(pulldownmenu)、ラジオボタン(radiobutton)、ラベル(label)、ヒント(hint)などがある。さらに上位の階層310では、さらに抽象化した機能レベルの概念として、数値範囲(range)、選択(select)、唯一選択(selectone)、テキスト(text)などがある。
図4は、本実施形態に係る抽象度に応じて階層化されたユーザインターフェースルールのうち、レイアウトに関するレイアウトルールの構造の一例を示すクラス図である。
図において、レイアウトルール401は、1つ以上のレイアウトルール要素402から構成されており、レイアウトルール要素402は、サブクラスとして非末端レイアウトルール要素403と末端ユーザインターフェース部品ルール要素404を有する。非末端レイアウトルール要素403は、1つ以上のレイアウトルール要素402を有し、末端レイアウトルール要素404は、1つの具体的レイアウト405に関連付けられている。
このような構成により、レイアウトルール401はツリー状構造を成し、末端のレイアウトルール要素402は必ず末端レイアウトルール要素404となる。
なお、レイアウトルール要素402はそれぞれ1つのユーザインターフェース指定情報要素名104と関連付けられており、レイアウトルール401のツリー状構造の各段階はそれぞれ階層化された抽象度の1段階を表現している。
図5は、図4の具体例として、本実施の形態に実装されているレイアウトルールの一部をツリー状構造で示したものである。本実施の形態では、ユーザインターフェース部品を画面に配置するために、具体的レイアウトが組み込まれており、上記で説明したように、抽象概念をまとめてツリー状構造をなしている。
ツリー状構造の末端520には、具体的レイアウトが割当てられており、階層を上がるごとに抽象度が高くなる。具体的レイアウトの例として、ここではユーザインターフェース部品を横に並べるHorizontal、ユーザインターフェース部品を縦に並べるVertical、周囲に配置するBorder、碁盤目状に配置するGridなどがある。さらに上位の階層510では、さらに抽象化したレベルとして、グループ(group)などがある。
図6は本実施の形態の情報処理装置におけるデータメモリ5に記憶されたレイアウトスタック600のデータ構造の一例を示す概念図である。
図6において、レイアウトスタック600は、レイアウト情報(602〜605)をスタック状に複数貯めておくためのコンテナの役割を果たす。601は概念上のスタックの最上部を示す。スタックの最上部601に近いレイアウト情報が、追加され、また取り除かれることになる。ただし、本実施の形態においてレイアウト上方602は特に現在のレイアウト情報と呼び、描画オブジェクトは必ずこれに基づいてレイアウトされる。
図7は本実施の形態の情報処理装置におけるレイアウト情報のデータ構造の一例を示す概念図である。
図7において、レイアウト情報のデータ構造700は、前記レイアウト情報における次のオブジェクトをレイアウトするための原点となる座標701、レイアウトルール702を含む。座標701,レイアウトルール702は、現在のレイアウトルールに基づいて次の描画オブジェクトをレイアウトするための情報である。現在のボックスの大きさ703は現在のレイアウトルールの基でレイアウトされたすべてのオブジェクトを含むような最小矩形の大きさに関する情報である。現在のボックスの大きさ703は、現在のレイアウトが終了して、1つ前のレイアウト情報における現在の座標702と現在のボックスの大きさ703を更新するために使用される。
図8は本実施の形態における情報処理装置の処理を示すフローチャートである。
まず、S801において、ネットワーク等を介して外部から抽象化されたユーザインタフェースデータが取得されると、S802に進み、取得されたユーザインタフェースデータに含まれるレイアウト指定情報に基づいて初期レイアウト情報を生成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックに送る。
次にS803において、ユーザインタフェースデータを解析し、取得したユーザインターフェース指定情報と予めデータメモリ5に保持しているユーザインターフェースルールに基づいて最適なユーザインターフェースを決定する。さらに、S804において、アプリケーションロジックを起動し、ユーザによるユーザインターフェースの操作に応じてアプリケーションロジックに要求を出したり、逆にアプリケーションロジックからの要求に応じたりといった処理を行う。一つの処理が終わると、次のユーザインターフェース画面が必要な場合や、ユーザあるいはアプリケーションロジックからの終了要求があった場合には、S805でアプリケーションロジック処理の終了を判断し、終了する場合にはS806に進む。アプリケーションロジック処理を終了しない場合はS804に戻り、処理を継続する。
S806において、情報処理装置が起動中であった場合にはS801に戻り、情報処理装置の終了処理を判断した場合には、システムを終了する。
図9は本実施の形態におけるユーザインターフェース決定の処理を示す動作処理フローチャートである。
はじめに、S901においてユーザインタフェースデータを構成する情報を先頭から順番に読込む。次にS902において、ユーザインタフェースデータを構成する情報がある場合には、S903に進み、ユーザインタフェースデータを構成する情報がない場合には処理を終了する。
S903において、ネットワーク等を介して外部から取得した構成情報が抽象的に記述されたユーザインターフェース部品指定情報を含むユーザインターフェース指定情報である場合には、S904においてユーザインターフェース指定情報の種類を判断し、ユーザインターフェース部品に関する情報が抽象的に記述されたユーザインターフェース部品情報に属すると判断された場合には、S906に進む。S906において、ユーザインターフェース部品指定情報に属する具体的なユーザインターフェース部品を取得する。次にS907において、現在のレイアウト情報に従ってユーザインターフェース部品を配置し、続くS908においてレイアウト情報を更新する。そしてS905に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、S902の処理に戻る。
一方、S904においてレイアウト指定情報と判断された場合には、S909に進みレイアウト終了指定情報であるかどうか判断する。S909においてレイアウト終了指定情報と判断された場合には、S910においてレイアウトスタックから現在のレイアウト情報を取得して、S908においてレイアウト情報を更新する。次にS905に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、S902の処理に戻る。
S909においてレイアウト終了指定情報と判断されなかった場合には、S911に進み、ユーザインターフェース指定情報に対応する具体的なレイアウトを取得する。次にS912において、新規レイアウト情報を生成しレイアウトスタックに送る。次にS905に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、S902の処理に戻る。
図10は、本実施の形態における情報処理装置において、具体的ユーザインターフェース部品を取得する動作処理フローチャートである。
まず、S1001においてユーザインターフェース部品指定情報の最初のユーザインターフェース指定情報要素を取得する。次にS1002において、ユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素を取得する。次にS1003に進み、次のユーザインターフェース部品ルール要素が存在するか否かを判断し、存在する場合には、S1009に進み、次のユーザインターフェース指定情報要素が存在するか判断する。S1009において、次のユーザインターフェース指定情報要素があった場合にはS1004に進み、次のユーザインターフェース指定情報要素を取得する。次にS1005において、ユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素があるかを判断し、あった場合には、S1002の処理に戻る。
S1003において、次のユーザインターフェース部品ルール要素が無いと判断された場合、または、S1009において次のユーザインターフェース指定情報要素が無いと判断された場合、または、S1005においてユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素が無いと判断された場合には、S1006において現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であるかを判断し、非末端ユーザインターフェース部品ルール要素で無いと判断された場合にはS1007に進み、具体的ユーザインターフェース部品を取得して処理を終了する。S1006において現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であると判断された場合には、S1008に進み現在のユーザインターフェース部品ルール要素の最初の子要素を現在のユーザインターフェース部品ルール要素として設定し、S1006の処理に戻る。
図11は、本実施の形態における具体的なレイアウト取得するための情報処理装置の動作処理フローチャートである。
まず、S1101においてレイアウト指定情報の最初のユーザインターフェース指定情報要素を取得する。次にS1102において、ユーザインターフェース指定情報要素名に対応のレイアウトルール要素を取得する。次にS1003に進み、次のレイアウトルール要素が存在するか否かを判断し、存在する場合にはS1009に進み、次のユーザインターフェース指定情報要素が存在するか判断する。S1009において、次のユーザインターフェース指定情報要素が存在する場合にはS1004に進み、次のユーザインターフェース指定情報要素を取得する。次にS1005において、ユーザインターフェース指定情報要素名に対応のレイアウトルール要素が存在するかを判断し、存在する場合には、S1002の処理に戻る。
一方、S1003において、次のレイアウトルール要素がないと判断された場合、または、S1009において次のユーザインターフェース指定情報要素がないと判断された場合、または、S1105においてユーザインターフェース指定情報要素名に対応のレイアウトルール要素がないと判断された場合には、S1106において現在のレイアウトルール要素が非末端レイアウトルール要素であるかを判断する。S1106において、非末端レイアウトルール要素ではないと判断された場合には、S1107に進み、具体的レイアウトを取得して処理を終了する。また、S1106において現在のレイアウトルール要素が非末端レイアウトルール要素であると判断された場合には、S1108に進み、現在のレイアウトルール要素の最初の子要素を現在のレイアウトルール要素として設定し、S1106の処理に戻る。
図13は、本実施の形態に係るユーザインターフェースに関して記述したユーザインタフェースデータの一例であり、XMLの記述規則に基づき、HTMLをホスト言語として拡張されたXForms言語である。以下に詳細を説明する。図13は、取得したユーザインタフェースデータにおけるUI部品指定情報が具体的に記述されている例を示したものである。
行番号8から20までは、HTMLのheadの記述であり、この中で、XFormsに基づくmodelの記述を行っている。行番号10から16までのinstanceでは、controlSwitch以下でpanValue、tiltValue、zoomValueという3つの数値が、それぞれ0、0、50という初期値で宣言されている。また、行番号17から18で“control”というidを持ったsubmissionが定義されており、前記submissionが発生した場合、ref属性の値であるcontrolSwitch以下がXMLの書式でmethod属性に記述された“post”形式により、action属性の値である“http://server/app.cgi”に対して、送られることが記述されている。
行番号21から43までは、HTMLのbodyの記述であり、本実施の形態におけるユーザインタフェースデータの記述を行っている。行番号22の<xforms:group>と行番号42の</xforms:group>は、これらに囲まれたユーザインターフェース指定情報が一群のグループを形成することを記述している。行番号23にはimgによりsrc属性に記述された“http://server/img_000.jpg”のイメージを表示することが記述されている。
また、行番号24、30、36では、xforms:rangeにより、数値を要求する部品を3つ構成することが記述されている。さらに、xforms:rangeには、行番号27、33、39にそれぞれ、xforms:labelが付くことが記述されている。また、xforms:rangeには、行番号28、34、40にそれぞれ、rangeで“xforms−value−changed”イベントが発生すると、“control”というidを持ったsubmissionを発生させることが記述されている。
行番号22の下線部、type=“/group/vertical”は、本実施の形態によるXFormsの拡張であり、レイアウト指定情報1501を表している。それに含まれるユーザインターフェース指定情報要素“group”により、<xforms:group>から</xforms:group>まで囲われたユーザインターフェース指定情報要素が1つのグループとなり、一群で構成されること、また、ユーザインターフェース指定情報要素“vertical”により、このグループ内のユーザインターフェース部品が縦並びで構成することが記述されている。
行番号24、30、36の下線部、type=“/range/dial/qdial”は、本実施の形態によるXFormsの拡張であり、ユーザインターフェース部品指定情報1502を表している。それに含まれるユーザインターフェース指定情報要素“range”により数値範囲の部品が指定されており、ユーザインターフェース指定情報要素“dial”によりダイアルの形状を持った部品が指定されており、ユーザインターフェース指定情報要素“qdial”によりツールキットのQDialが指定されていることが記述されている。
行番号27、33、39のtype=“/text/label/qlabel”は、本実施の形態によるXFormsの拡張であり、ユーザインターフェース部品指定情報を表している。それに含まれるユーザインターフェース指定情報要素“text”により文字表示の部品が指定されており、ユーザインターフェース指定情報要素“label”によりラベル部品が指定されており、ユーザインターフェース指定情報要素“qlabel”によりツールキットのQLabelが指定されていることが記述されている。
図13のユーザインタフェースデータに基づいて、図14の画面を構成する具体的ユーザインターフェース部品を取得する処理について、図9及び図10をもちいて説明する。なお以下の説明では、既に図8のS801において図13に示すユーザインタフェースデータを取得し、S802の処理を経ているものとする。
はじめに、S901において、プログラムメモリ4が、ユーザインタフェースデータを構成する情報、すなわち図13に示すようなデータの記述を先頭から順次読込む。S902において、ユーザインタフェースデータを構成する情報が存在する限りはS903に進み、ユーザインターフェース指定情報が存在する場合、S904においてユーザインターフェース指定情報の種類を判断し対応した処理へと進む。
S904において、図13の24行目で読込まれる情報がユーザインターフェース部品指定情報であるので、s906に進み、図10の具体的ユーザインターフェース部品取得の処理を実行する。
図10のS1001において、取得されたユーザインターフェース部品指定情報1302 type“/range/dial/qdial”のうち最初のユーザインターフェース指定情報要素である“range”を取得する。続いてS1002において、図3にあるようなユーザインターフェース部品ルールを参照し、“range”のユーザインターフェース指定情報要素名“数値範囲”に対応するユーザインターフェース部品ルール要素“数値範囲”311を取得する。
次にS1003において、取得したユーザインターフェース部品ルール要素にさらに下の階層要素が存在するかを判断し、下の階層が存在する場合には、S1009に進み、ユーザインターフェース部品指定情報1302に次のユーザインターフェース指定情報要素があるかを判断し、次のs1004において、ユーザインターフェース部品指定情報1302の次のユーザインターフェース指定情報要素である“dial”を取得する。
次にS1005において、ユーザインターフェース部品ルールを参照し、“dial”のユーザインターフェース指定情報要素名“ダイアル”に対応するユーザインターフェース部品ルール要素があるかを判断する。ここでは、対応するユーザインターフェース部品ルール要素があるので、S1002の処理に戻り、図3のユーザインターフェース部品ルール要素“ダイアル”321を取得する。
同様にして、S1003において取得したユーザインターフェース部品ルール要素にさらに下の階層要素が存在するのでS1009に進む。S1009においてユーザインターフェース部品指定情報1302に次のユーザインターフェース指定情報要素があるので、s1004においてユーザインターフェース部品指定情報1302の次のユーザインターフェース指定情報要素である“qdial”を取得する。次にS1005において、ユーザインターフェース部品ルールを参照し、“qdial”のユーザインターフェース指定情報要素名“QDial”に対応するユーザインターフェース部品ルール要素があるかを判断する。ここでは、対応するユーザインターフェース部品ルール要素があるので、S1002の処理に戻り、図3のユーザインターフェース部品ルール要素“QDial”331を取得する。
次にS1003において、取得したユーザインターフェース部品ルール要素“QDial”331には下の階層要素が存在しないので、S1006に進み、現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であるかを判断する。ここでは、“QDial”331は末端ユーザインターフェース部品ルール要素であるので、S1007において、具体的ユーザインターフェース部品“QDial”を取得する。
このようにして図13の具体的ユーザインターフェース部品を持つ末端ユーザインターフェース部品ルール要素までを指定したユーザインターフェース部品指定情報により、ツールキットの具体的な部品である“QDial”が選択される。図13の行番号30、36に記述されたユーザインターフェース部品指定情報1302についても同様の処理が行われ、具体的なユーザインターフェース部品が選択される。
また、同様にして、図13の行番号27、33、39に記述されている<xforms:label type=“/text/label/qlabel”>により、ツールキットの具体的なユーザインターフェース部品である“QLabel”が選択される。
次に、図13のユーザインタフェースデータに基づいて図14の画面を構成する具体的レイアウトを取得する処理について、図9及び図11をもちいて説明する。なおここでは既に、図8のS801において、図13に示すユーザインタフェースデータを取得し、S802の処理を経て、S803でユーザインターフェース決定手段が起動されているものとする。
さて、S901において、プログラムメモリ4が、ユーザインタフェースデータを構成する情報、すなわち図13に示すようなデータの記述を先頭から順次読込む。S902において、ユーザインタフェースデータを構成する情報が存在する限りはS903に進み、ユーザインターフェース指定情報があったら、S904においてユーザインターフェース指定情報の種類を判断し対応した処理へと進む。
S904において、この場合図13の22行目で読込まれる情報がレイアウト指定情報であるので、S1106に進み、図11の具体的レイアウト取得手段を起動する。S1101において、取得されたレイアウト指定情報1301 type“/group/vertical”のうち最初のレイアウト指定情報要素である“group”を取得する。続いてS1102において、図5にあるようなレイアウトルールを参照し、“group”のレイアウト指定情報要素名“グループ”に対応するレイアウトルール要素“グループ”511を取得する。
次にS1103において、取得したレイアウトルール要素にさらに下の階層要素が存在するかを判断し、下の階層が存在する場合にはS1109に進み、レイアウト指定情報1301に次のユーザインターフェース指定情報要素があるかを判断する。ここでは、次のレイアウト指定情報要素があるので、S1104において、レイアウト指定情報1302の次のユーザインターフェース指定情報要素である“vertical”を取得する。
次にS1105において、レイアウトルールを参照し、“vertical”のユーザインターフェース指定情報要素名“Vertical”に対応するレイアウトルール要素があるかを判断する。ここでは、対応するレイアウトルール要素があるので、S1102の処理に戻り、図5のレイアウトルール要素“Vertical”522を取得する。
同様にして、S1103において取得したレイアウトルール要素にさらに下の階層要素が存在するかを判断し、S1109において次のレイアウト指定要素があるか判断し、その結果、レイアウトルール要素“Vertical”522には下の階層が存在しないので、S1106に進み、現在のレイアウトルール要素が非末端レイアウトルール要素であるかを判断する。ここでは、“Vertical”522は末端レイアウトルール要素であるので、S1107において、具体的レイアウト“Vertical”を取得する。
このようにして図13の具体的レイアウトを持つ末端レイアウトルール要素までを指定したレイアウト指定情報により、具体的なレイアウトである“Vertical”が選択され、<xforms:group>及び</xforms:group>で囲まれたユーザインターフェース指定情報要素が縦並びでレイアウトされる。
このような処理の結果、図14に示すとおり、図13のユーザインタフェースデータに基づいて、図10の処理において取得された具体的ユーザインターフェース部品が図11の処理において取得された具体的レイアウトで配置される。具体的には、1つのイメージと、それぞれ1つのQlabelとともにその水平方向に3つのQDialが配置され、Qdialのそれぞれが縦に並んで配置されたユーザインターフェース画面が表示される。
以上、取得したユーザインタフェースデータのユーザインターフェース指定情報が具体的な記述にまで及んでいるときの例を示した。と、情報処理装置のユーザインターフェースルールの情報が一致する場合について説明した。
次に、ユーザインターフェース指定情報が具体的に記述されたユーザインタフェースデータを取得した場合の情報処理装置の処理について説明する。
図15は、本実施の形態におけるユーザインターフェースに関してXForms言語で記述されたユーザインタフェースデータの一例である。図15のユーザインタフェースデータは、図13のユーザインタフェースデータと、ユーザインターフェース部品指定情報1502を記述した行番号24、30、36を除いて同じである。
図15に示すユーザインタフェースデータによれば、ユーザインターフェース部品指定情報1502 type=“/range/slider”には、ユーザインターフェース指定情報要素の抽象化された分類の記述“range”により数値範囲のユーザインターフェース部品を指定することが記述されており、さらにユーザインターフェース指定情報要素である“slider”により、ユーザインターフェース部品の指定が抽象化して記述されている。
一方、図3に示すように、情報処理装置におけるユーザインターフェースルールでは、ユーザインターフェースルール要素“スライダ”322は、その下の階層要素として、縦方向にスライダを動かす“QSlider Horizontal”332と横方向にスライダを動かす“QSlider Vertical”333を有する。
以下に、ユーザインタフェースデータの指定するユーザインターフェース部品指定情報が抽象化して記述されている場合、すなわち末端のユーザインターフェース部品要素まで指定されていない場合の情報処理装置の動作処理について説明する。
図15のユーザインタフェースデータに基づいて図16の画面を構成する処理のうち具体的ユーザインターフェース部品を取得する処理について、図9及び図10をもちいて説明する。
なお、以下の説明では、既に、図8のS801において図15に示すユーザインタフェースデータが外部より取得され、S802の処理を経て、S803でユーザインターフェース決定処理が行われているものとする。また、S906の処理までは図13のデータを取得したときと同様であるので省略する。
s906において、図10の具体的ユーザインターフェース部品取得処理を実行する。図10のS1001において、取得されたユーザインターフェース部品指定情報1302 type=“/range/slider”1502のうち最も抽象化されたユーザインターフェース指定情報要素の分類“range”を取得する。続いてS1002において、図3に示すようなユーザインターフェース部品ルールを参照し、“range”のユーザインターフェース指定情報要素名“数値範囲”311の存在を確認する。
次にS1003において、取得したユーザインターフェース部品ルール要素にさらに具体化して記述された下の階層要素が存在するかを判断する。図15のユーザインタフェースデータの場合、下の階層が存在するのでS1009に進む。s1009においてユーザインターフェース部品指定情報1502の“range”のより一段具体化されたユーザインターフェース指定情報要素の記述“slider”を取得する。
s1009において、図15のユーザインタフェースデータの場合、“slider”より具体化された記述がないのでs1006に進む。
S1006において、“スライダ”322は、情報処理装置が保持するUI部品ルールの末端には存在しないため、具体化されていない非末端ユーザインターフェース部品ルール要素であると判断される。そして、S1008に進み、現在のユーザインターフェース部品ルール要素“スライダ”322に属する具体化されたユーザインターフェースであるUI部品“QSlider Horizontal”332を出力部3の表示画面に出力すべき部品として決定し、S906に戻る。
仮に、図15のデータとは異なり、s1009においてさらに具体化された記述の存在が確認された場合、s1004に進み、s1005において取得されたユーザインタフェースデータにおいて抽象化されたユーザインターフェース部品ルール要素“スライダ”に属する対応するUI部品が存在するかどうかUI部品ルールを参照して確認する。存在する場合はその部品を出力すべきUI部品として決定する。存在しなければs1006に進む。s1006において、UI部品は末端の具体化されたUI部品が存在しているので、s1007に進む。s1007では、取得されたユーザインタフェースデータにおいて抽象化されたユーザインターフェース部品ルール要素“スライダ”に対応するUI部品の出力すべき次善のUI部品として、s1005において確認されたUI部品に決定する。
なお、レイアウト指定情報1301 type”/group/vertical”に関する処理ついては図13に示す例と同様であるので説明を省略する。
このように、図15のユーザインターフェース部品指定情報1502のように、具体的ユーザインターフェース部品を持つ末端ユーザインターフェース部品ルール要素までを指定しない記述であっても、クライアントである情報処理装置が出力可能な具体的なUI部品である“QSlider Horizontal”が選択され、ユーザインターフェースを実現することができる。なお、図15のデータにおいては、行番号30、36についても同様の処理が行われ、具体的なユーザインターフェース部品が選択される。
図16は、図10の具体的ユーザインターフェース部品取得処理において取得された具体的ユーザインターフェース部品が、図11の具体的レイアウト取得処理において取得された具体的レイアウトで配置されたユーザインターフェース画面の一例であり、1つのイメージと、それぞれ1つのQLabelを横に伴った3つのQSlider Horizontalが縦に配置されている。
次に、ユーザインタフェースデータを取得した場合の情報処理装置のユーザインターフェースルールの情報が一致しない場合のまた別の処理について説明する。
図17は、本実施の形態に係るユーザインターフェースに関して記述したユーザインタフェースデータの一例であり、XMLの記述規則に基づき、HTMLをホスト言語として拡張されたXForms言語で記述されている。なお、図17のユーザインタフェースデータは、図13のユーザインタフェースデータと、ユーザインターフェース部品指定情報1502を記述した行番号24、30、36を除いて同じである。
図17に示すユーザインタフェースデータによれば、ユーザインターフェース部品指定情報1702 type=“/range/spinbox/qspinbox”には、ユーザインターフェース指定情報要素“range”により数値範囲の部品が指定されており、さらにユーザインターフェース指定情報要素“spinbox”により、ユーザインターフェース部品として数値を直接入力またはボタンにより数値を増減できるスピンボックスが指定され、さらにまたユーザインターフェース指定情報要素“qspinbox”によりツールキットの具体的な部品であるQSpinBoxが指定されていることが記述されている。
一方、図3に示すように、情報処理装置におけるユーザインターフェースルールでは、ユーザインターフェースルール要素QSpinBoxは存在しない。
それでは以下に、ユーザインタフェースデータの指定するユーザインターフェース部品が情報処理装置の有するユーザインターフェースルール要素に存在しない場合の処理について説明する。
それでは、図17のユーザインタフェースデータに基づいてユーザインターフェースを構成する場合の処理について、図9及び図10をもちいて説明する。なおここでは既に、図8のS801において、図13に示すユーザインタフェースデータを取得し、S802の処理を経て、S803でユーザインターフェース決定処理が行われるものとする。また、S906の処理までは既に説明済みであるので省略する。
s906において、図10の具体的ユーザインターフェース部品取得処理が起動すると、S1001において、取得されたユーザインターフェース部品指定情報1702 type=“/range/spinbox/qspinbox”のうち最初のユーザインターフェース指定情報要素である“range”を取得する。続いてS1002において、図3にあるようなユーザインターフェース部品ルールを参照し、“range”のユーザインターフェース指定情報要素名“数値範囲”に対応するユーザインターフェース部品ルール要素“数値範囲”311を取得する。
次にS1003において、取得したユーザインターフェース部品ルール要素にさらに下の階層要素が存在するかを判断し、下の階層が存在するのでS1009に進み、ユーザインターフェース部品指定情報1502に次のユーザインターフェース指定情報要素があるので、次のs1004においてユーザインターフェース部品指定情報1502の“range”の次のユーザインターフェース指定情報要素である“spinbox”を取得する。
ここでS1005に進むが、取得されたユーザインターフェース指定情報要素名“spinbox”に対応するユーザインターフェース部品ルール要素が、ユーザインターフェース部品ルールには存在しない為に、S1006に進む。S1006において、現在のユーザインターフェース部品ルール要素である“数値範囲”311は非末端ユーザインターフェース部品ルール要素であると判断されるので、S1008に進み、現在のユーザインターフェース部品ルール要素の最初の子要素である“ダイアル”321を取得し、S1006の処理に戻る。同様にして、現在のユーザインターフェース部品ルール要素が、末端ユーザインターフェース部品ルール要素である“QDial”331になるまで処理を行う。S1008において現在のユーザインターフェース部品ルール要素“QDial”331を取得すると、S1007において具体的ユーザインターフェース部品“QDial”を取得する。
レイアウト指定情報1301 type“/group/vertical”については先の例と同様であるので説明を省略する。
このように、図17のユーザインターフェース部品指定情報1702のように、対応する具体的ユーザインターフェース部品が情報処理装置の有するユーザインターフェース部品ルールに存在しない場合であっても、ユーザインターフェース部品ルールを、取得したユーザインターフェース指定情報と一致するレベルまで辿って、同じく数値範囲を指定するツールキットの中より別の具体的な部品である“QDial”が選択されて、ユーザインターフェースを実現する。図17の行番号30、36についても同様に処理が行われ、具体的なユーザインターフェース部品が選択される。
このように、図17のユーザインタフェースデータに基づいて、ユーザインターフェース決定処理が行われた結果、ユーザインターフェース指定情報において指定されたユーザインターフェース部品とは異なるが、情報処理装置の方で判断された代替部品である“QDial”を使って、図14のような、1つのイメージと、それぞれ1つのQLabelを横に伴った3つのQDialが縦に配置されたユーザインターフェース画面が表示される。
以上説明した通り、本実施の形態において下記の効果が実現できる。
たとえ外部の記述が抽象的なUI部品の指定であったとしても、各クライアントの能力に対応した出力を行うことができる。そしてこのような構成によってクライアントの能力によらずに統一してた記述でユーザインタフェースデータを記述することができる。
すなわち、ユーザインターフェースを作成して送信する側は、受信側のクライアント機器の能力を考慮してデータを作成したりクライアントによって使い分けたりする必要がなく、単一のユーザインタフェースデータを用意するのみでよい、という効果がある。
(第二の実施の形態)
第一の実施の形態では、クライアント側である情報処理装置において、取得したユーザインタフェースデータと情報処理装置が予め有するユーザインターフェースルールに基づいて、ユーザインターフェース部品とレイアウトを決定し、最適なユーザインターフェース画面を構成するとしたが、本実施の形態では、情報処理装置において指定のユーザインターフェース部品が無い場合に、サーバ側からの情報を取得することにより追加する場合について説明する。
第一の実施の形態では、クライアント側である情報処理装置において、取得したユーザインタフェースデータと情報処理装置が予め有するユーザインターフェースルールに基づいて、ユーザインターフェース部品とレイアウトを決定し、最適なユーザインターフェース画面を構成するとしたが、本実施の形態では、情報処理装置において指定のユーザインターフェース部品が無い場合に、サーバ側からの情報を取得することにより追加する場合について説明する。
図22は本実施の形態における情報処理装置の処理を示すフローチャートである。
情報処理装置において処理が起動され、S3001においてユーザインタフェースデータが取得されると、S3002に進み、初期レイアウト情報を生成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックに送る。
次にS3003において、ユーザインタフェースデータを解析し、取得したユーザインターフェース指定情報とユーザインターフェースルールに基づいて最適なユーザインターフェースを決定する。次に、S3004において必要に応じてユーザインターフェース要素定義データに基づいてユーザインターフェース要素を生成する。
次にS3005においてアプリケーションロジックを起動し、ユーザによるユーザインターフェースの操作に応じてアプリケーションロジックに要求を出したり、逆にアプリケーションロジックからの要求に応じたりといった処理を行う。一つの処理が終わると、次のユーザインターフェース画面が必要な場合や、ユーザあるいはアプリケーションロジックからの終了要求があった場合には、S3006においてアプリケーションロジック処理の終了を判断し、終了する場合にはS3007に進む。アプリケーションロジック処理を終了しない場合はS3005に戻り、処理を継続する。
S3007において追加要素定義データが生成されている場合には、S3008に進み追加要素定義削除処理を起動し、追加要素定義データを削除して、S3009に進む。
S3007において、追加要素定義データがない場合には、S3009に進み、システムの処理が終了されていないか判断する。
S3009において、情報処理装置が起動中であった場合にはS3001に戻り、情報処理装置の終了処理を判断した場合には、システムを終了する。
図23は本実施の形態におけるユーザインターフェースの決定処理を示すフローチャートである。
S3101において読込まれたユーザインタフェースデータを構成する情報が、ユーザインターフェース指定情報であった場合の処理については、第一の実施の形態で説明した図9と同じであるので、これについては説明を省略する。
さて、S3103において、取得された情報がユーザインターフェース指定情報出なかった場合には、S3113に進み前記情報がユーザインターフェース要素定義であるかを判断する。ユーザインターフェース要素定義であると判断された場合には、S3314に進み、ユーザインターフェース要素定義記述を読込む。
次に、S3115において、取得されたユーザインターフェース要素定義が情報処理装置において処理可能なものであるかどうかを判断する。ここでいう判断の基準としては、ユーザインターフェース要素定義の内容であるユーザインターフェース要素記述を処理可能か否かで判断する。例えば、ユーザインターフェース要素記述がSVGで記述されていてもProfileの違いにより解釈や描画ができない場合には利用不可能と判断する。
S3113において、読み込まれた情報がユーザインターフェース要素定義で無かった場合には、S3117において、ユーザインターフェースDOM(Document Object Model)を生成し、S3105に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、S3102の処理に戻る。
S3102において、ユーザインタフェースデータを構成する情報がなくなるまで上記の処理を繰り返す。
図24は、本実施の形態におけるユーザインターフェース決定の際のユーザインターフェース要素生成処理を示すフローチャートである。
はじめに、S3201においてユーザインターフェースDOMからノードを一つ読込む。ここでいうユーザインターフェースDOMとは、取得したユーザインタフェースデータより生成された、階層構造のユーザインターフェースルールに類似した木構造を持つデータ群であり、ノードとは木構造の節にあたる階層要素を示す。
続くS3202において、ノードが無かった場合には以降の処理を行わずに終了する。S3202において、ノードがあった場合には、S3203に進み、ノードがユーザインターフェース指定情報であるか判断する。ノードがユーザインターフェース指定情報以外のノードであった場合には、S3204に進み他のノードの処理を行い、S3201の処理に戻る。
一方、S3203において、ノードがユーザインターフェース指定情報であった場合には、S3205に進み、ユーザインターフェースルールを参照し、最初のユーザインターフェース部品要素を取得する。次にS3206において、ユーザインターフェースルールに対応するユーザインターフェース部品要素があった場合には、S3207において、ユーザインターフェースルールのユーザインターフェース部品要素を現在のユーザインターフェース部品要素としてセットし、次にS3208において、次のユーザインターフェース部品要素があった場合には、S3206の処理に戻る。
S3208において、次のユーザインターフェース部品要素が無かった場合、または、S3206において、対応するユーザインターフェース部品要素が無かった場合には、S3209に進み、現在のユーザインターフェース部品要素は末端ユーザインターフェース部品要素であるかを判断する。
S3209において、末端ユーザインターフェース部品要素でなかった場合には、S3210に進み、現在のユーザインターフェース部品要素の最初の子要素?を現在のユーザインターフェース部品要素とし、S3209の処理に戻る。
S3209において、末端ユーザインターフェース部品要素であった場合には、S3211に進み、末端ユーザインターフェース部品要素に対応するユーザインターフェース要素を生成して、S3201に戻り、S3202においてノードがなくなるまで処理を繰り返す。
図25は、本実施の形態におけるユーザインタフェースデータの構造を示すクラス図である。
ユーザインタフェースデータ101は要素102、3301、3305の3種類のから成り立っている。要素102はユーザインターフェースの構成要素を指定するユーザインターフェース指定情報で、ユーザインターフェース部品やレイアウトを指定するものである。要素3301はユーザインターフェース要素定義であり、ユーザインターフェース要素の詳細なデザインや振る舞いを定義する情報である。要素3305はその他のデータである。
要素102は、それぞれ1つのユーザインターフェース指定情報要素のパス3303を有し、前記ユーザインターフェース指定情報要素のパス3303により構成される。ユーザインターフェース指定情報要素のパス3303は、サブクラスにユーザインターフェース指定情報要素定義のパス3304を含む。
ユーザインターフェース要素定義3301は、ユーザインターフェース指定情報要素定義のパス3304と、実際の定義内容であるユーザインターフェース要素記述3302から構成される。ユーザインターフェース指定情報要素定義については、図26に示す。
図38は、本実施形態におけるユーザインタフェースデータの具体例である。図38において、3810は1つのユーザインターフェース要素定義の記述である。3811は前記ユーザインターフェース要素定義が位置すべきユーザインターフェース指定情報のパス、3812は具体的なユーザインターフェース構成要素のデザインを表わす記述や動作を表わすスクリプトなどを含むユーザインターフェース要素記述である。図38に示すように、この部分はsXBLを拡張したもので記述されている。ただし、3812はデザインの記述はXMLをベースとしたベクタグラフィックス言語であるXFormsを拡張したもので記述されている。SVG、スクリプトはECMAScriptを使用しているものとする。構造的に3810は3811、3812を包含している。
3820,3830はそれぞれ生成すべきユーザインターフェース構成要素を指定するユーザインターフェース指定情報である。図のようにこの部分はXMLをベースとしたXFormsを拡張したもので記述されている。3821、3831はそれぞれ3820、3830に含まれるパスである。前記パスにより、生成すべきユーザインターフェース構成要素、すなわち図3にあるような、ユーザインターフェース部品ルールの階層要素であるユーザインターフェース部品が指定される。
図26は、本実施の形態におけるユーザインターフェース要素定義追加処理を示すアクティビティ図である。前記ユーザインターフェース要素定義処理は図23のS3116の詳細を表わすものである。
まず、S3401において、ユーザインターフェース要素定義に含まれるユーザインターフェース指定情報要素定義のパスを処理し、次にS3402において、前記ユーザインターフェース要素定義に含まれるユーザインターフェース要素記述がユーザインタフェースデータの内部に埋め込まれた形で存在するか、または、外部へのリンクという形で存在するかを判断する。前記判断の結果、前記ユーザインターフェース要素記述が外部へのリンクである場合には、S3403において、前記ユーザインターフェース要素記述をロードする。次にS3404において、ユーザインターフェース要素定義をユーザインターフェース要素定義リストに追加し、次にS3405において追加定義リストに追加し、処理を終了する。
図27は、本実施形態におけるユーザインターフェース指定情報要素定義パス処理を示すアクティビティ図である。ユーザインターフェース指定情報要素定義パス処理は図26のS3401の詳細を表わすものである。
まず、ユーザインターフェース要素定義からユーザインターフェース指定情報要素定義パスを得て(S3501)、最初のユーザインターフェース部品要素を得る(S3502)。そして、前記ユーザインターフェース部品要素をユーザインターフェースルールから探し(S3503)、ルール中に前記ユーザインターフェース部品要素が存在するか否かを判断する(S3504)。ユーザインターフェースルール中に前記ユーザインターフェース部品要素がない場合には、前記ユーザインターフェース部品要素を生成し、ユーザインターフェースルールに追加し(S3505)、前記ユーザインターフェース部品要素を追加ユーザインターフェース部品要素リストにも追加する(S3506)。
S3504の判断の結果、前記ユーザインターフェース部品要素がユーザインターフェースルール中に存在する場合には、前記パス中の次のユーザインターフェース部品要素を得ようとして(S3507)、前記パス中に次のユーザインターフェース部品要素が存在するか否かを判断し(S3508)、次のユーザインターフェース部品要素が存在するならば、S3503の処理に戻り、次のユーザインターフェース部品要素が存在しないならば、処理を終了する。
図28は、本実施形態における情報処理装置において実行される処理とデータの概略構成を示すブロック図である。同図において、3600は情報処理装置、3601はユーザインターフェースの操作対象となる機器である。3602はユーザインターフェースを使用するユーザの指示により3601における各種の処理を行うアプリケーションロジックであり、3603は3602のユーザインターフェースを記述したユーザインタフェースデータでありXMLで記述されている。3604はユーザインターフェース処理部であり、3603を元にユーザインターフェースを生成し、さらに、そのユーザインターフェースと3602とのやり取りを行う。
3605は情報処理装置3600が内蔵するデフォルトのユーザインターフェース要素定義、3606はユーザインターフェース処理部3604によって生成されたユーザインターフェースである。なお、同図では3600と3601は別の機器として描かれているが、構成上3602と3603が3600内にあっても構わない。3602、3603が外部にある場合、ユーザインタフェースデータ3603の取り込みと、ユーザインターフェース生成後のアプリケーションロジック3602とのやり取りは図1の通信I/F108を介して行われる。
図29は、図28におけるユーザインターフェース処理部3604の内部構成とそれらの作用をもう少し詳細に示すコラボレーション図である。同図において、3700はユーザインターフェース処理部であり、ユーザインタフェースデータ解析手段3701とユーザインターフェース構成要素生成手段3702の二つの処理を行う手段を持つ。3703は通信I/F108から読み込まれたユーザインタフェースデータである。3704はユーザインターフェースルールであり、ユーザインタフェースデータ3703を元にユーザインターフェースを構成する場合に必要となるユーザインターフェース構成方法を表現する。
ユーザインタフェースデータ解析手段3701は、ユーザインタフェースデータ3703内にユーザインターフェース要素定義が含まれていた場合、それが定義するユーザインターフェース型をユーザインターフェースルール3704に追加し、同時にそのユーザインターフェース要素定義をユーザインターフェース要素定義リスト3706にも追加する。
3705はユーザインタフェースデータ3703をユーザインタフェースデータ解析手段3701が解析して生成するユーザインターフェースDOM(Document Object Model)である。ユーザインターフェース構成要素生成手段3702はユーザインターフェースDOM内の各ユーザインターフェース指定情報で指定されるユーザインターフェース型について、ユーザインターフェースルール3704を用いて具象ユーザインターフェース型を決定し、決定した具象ユーザインターフェース型からユーザインターフェース構成要素を生成して3707のユーザインターフェースに加えてゆく。
それでは以下に、本実施の形態における具体的な処理の流れについて、図22と図23の一部をもちいて説明する。
まず、本実施の形態における情報処理装置において処理が起動され、S3001においてユーザインタフェースデータが取得されると、S3002に進み、初期レイアウト情報を生成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックに送る。
次にS3003において、図23のユーザインターフェース決定処理が実行され、ユーザインタフェースデータを解析する。ここでは、取得したユーザインタフェースデータを構成する情報のうちユーザインターフェース指定情報より、S3106で具体的ユーザインターフェース部品を取得し、S3111で具体的レイアウトを取得し、ユーザインターフェースルールに基づいて最適なユーザインターフェースを決定する。またここで、ユーザインタフェースデータを構成する情報のうちユーザインターフェース要素定義については、処理の可否を判断し、可能と判断されたユーザインターフェース要素定義について、S3116でユーザインターフェース要素定義追加手段を起動し、ユーザインターフェース要素定義に追加する。
ここで、取得したユーザインタフェースデータにおいて、例えば、図38に示すようなユーザインターフェース指定情報要素が記述されていた場合、
S3113において、ユーザインターフェース指定情報要素定義のパス3811 type=“/range/slider/myslider”が取得され、次にs3114において、ユーザインターフェース要素記述3812が読込まれる。ここでは、S3115において処理可能と判断されるものとして、S3116に進み、ユーザインターフェース要素定義追加処理を起動する。
S3113において、ユーザインターフェース指定情報要素定義のパス3811 type=“/range/slider/myslider”が取得され、次にs3114において、ユーザインターフェース要素記述3812が読込まれる。ここでは、S3115において処理可能と判断されるものとして、S3116に進み、ユーザインターフェース要素定義追加処理を起動する。
図24に示す、ユーザインターフェース要素定義追加処理が起動すると、S3201において、ユーザインターフェースDOMからノードを一つ読込む。次に、S3203において、ユーザインターフェース指定情報3820を読込み、S3205においてその最初のユーザインターフェース部品要素を取得する。すなわちここでは、パス3821 type=“/range/slider/mySlider”の先頭にある“range”を取得する。次にS3206において、図3に示す情報処理装置のユーザインターフェースルールを参照し、取得したユーザインターフェース部品要素“range”と一致する要素があるかを判断する。
ここで、ユーザインターフェースルールにも“range”に対応する“数値範囲”311があるので、S3207において、“数値範囲”311が現在のユーザインターフェース部品要素としてセットされる。同様の処理により、次のユーザインターフェース部品要素である“slider”に対応するユーザインターフェースルールのユーザインターフェース部品要素“スライダ”が現在のユーザインターフェース部品要素にセットされる。次に、S3208において、次のユーザインターフェース部品要素である“mySlider”が存在するが、S3206においてユーザインターフェースルールには対応するものが無い為、S3209に進むが、この時、現在のユーザインターフェース部品要素は“mySlider”である。
S3209において、現在のユーザインターフェース部品要素にセットされている“mySlider”は末端ユーザインターフェース部品要素である為、S3211に進み、これまでユーザインターフェースルールには存在していなかった“mySlider”に対応するユーザインターフェース要素を生成する。すなわち、パス3821よりユーザインターフェース要素定義のパス3811を辿り、ユーザインターフェース要素記述3812を読込んで、既存のスライダとは異なる新しいスライダを具体的なユーザインターフェースを実現する。
以下同様の処理を、ユーザインターフェースDOMにノードがある限り繰り返す。
このように、ユーザインタフェースデータにより指定されたユーザインターフェースが、ユーザインターフェースルールに存在しないものであっても、情報処理装置側の機能として実現可能なものについては、追加することができる。
なおその際に、情報処理装置において追加不可能と判断される場合には要素定義の追加を無視することにより処理の効率化を図ることも可能である。
以上説明した通り、図38のユーザインタフェースデータのユーザインターフェース指定情報要素に基づいて、本実施の形態におけるユーザインターフェース決定処理により、情報処理装置のユーザインターフェースルールには存在していなかったユーザインターフェース情報要素を追加し、新しいユーザインターフェースを実現可能にした。これにより例えば、情報処理装置に予め用意されたユーザインターフェース部品要素以外のデザインや振る舞いをするユーザインターフェース部品を追加することができ、ユーザインタフェースデータを作成し送信する側の意図通りに実行することができる。
上述したように、能力のある表示端末においてはユーザインターフェースの表現機能の拡張、すなわちユーザインターフェース部品であるユーザインターフェース要素定義の追加を可能とし、よりユーザインターフェース作成者の意図を反映できるようにすることができる。
(第三の実施の形態)
本実施の形態では、前記ユーザインターフェース指定情報を階層構造からなるXMLデータで表現し、前記ユーザインターフェースルールをXMLの描画定義で記述した場合について説明する。
本実施の形態では、前記ユーザインターフェース指定情報を階層構造からなるXMLデータで表現し、前記ユーザインターフェースルールをXMLの描画定義で記述した場合について説明する。
図18は、前記ユーザインターフェース指定情報を階層構造からなるXMLデータで表現した例である。
同図における、22から23行目において、レイアウトがgroupのverticalに指定され、25から30行目において、ユーザインターフェース部品がrangeのdialのsdialに指定されている。この例では、前記ユーザインターフェース指定情報が先頭の子要素として記述されているが、前記ユーザインターフェース指定情報であると判別可能なXMLデータを用いた別の方法で、記述されていても構わない。
図19は、前記ユーザインターフェースルールをXMLの描画定義で記述した例である。同図における、末端ノードにおいて、XMLの描画定義の一形態である、SVGで記述されたユーザインターフェース部品が指定されている。
前述の第一の実施の形態では、前記ユーザインタフェースデータが前記ユーザインターフェースルールで解釈されて構築されたユーザインターフェースは、クライアント毎に固有のツールキットを用いて実装されていたが、本実施の形態では、汎用的なXMLによる描画定義の一形態である、SVGを用いて実現される。
なお、本実施の形態によって構築されるSVGファイルの詳細については説明を省略するが、前記ユーザインタフェースデータに、具体的なSVG描画記述が追加され、ユーザインタフェースデータと描画記述がバインディングされたものとなる。
以上説明したように、ユーザインタフェースデータから構築されるユーザインターフェース記述を、XMLの描画定義で表現することで、機器に依存しない形態で表現できる。また、構築されたユーザインターフェース記述を、XSLTで別な形態に変換する等の、XMLであることを生かしたメリットが得られる。
(第四の実施の形態)
本実施の形態では、アプリケーションの機能を提供するサーバと、ネットワークを介して接続された、前記機能を利用するクライアントで構成されるサーバー・クライアントシステムについて説明する。
本実施の形態では、アプリケーションの機能を提供するサーバと、ネットワークを介して接続された、前記機能を利用するクライアントで構成されるサーバー・クライアントシステムについて説明する。
図20は、本実施の形態におけるサーバー・クライアントシステムの、一例を示した図である。
同図において、2401はアプリケーションの機能を提供するサーバであり、前記機能を利用するクライアント2402と、ネットワークを介して接続されている。
サーバ2401により、生成されたユーザインタフェースデータ2403を受信した、クライアント2402は実施の形態1で説明した方法により、前記機能を利用する為のユーザインターフェースを表示する。
前記ユーザインターフェースにより、操作&指示された画面内処理結果2404は、サーバ2401に送信され、指示に対応する機能が実行される。
図21は、本実施の形態におけるサーバー・クライアントシステムの、クラス図の一例である。
同図において、2501はアプリケーションの機能を提供するサーバであり、アプリロジックを備えている。一方、2502は前記機能を利用するクライアントであり、サーバから受信したユーザインタフェースデータ2503を解釈し、ユーザインターフェースを構成する為に必要な、ユーザインターフェース部品ルールとレイアウトルールを備えている。
ここで、前記ユーザインターフェースにより、操作&指示された画面内処理結果2504は、サーバ2501に送信され、指示に対応する機能が実行される。
具体的には、図13で説明したユーザインタフェースデータ例を用いて説明することができる。
サーバにより生成されたユーザインタフェースデータ中には、前述の通り、ユーザインタフェースイメージを記述する為の情報の他に、操作に対応するユーザインターフェース動作に対応する記述が含まれている。
同例においては、PAN,TILT,ZOOMの各ユーザインターフェース部品に対応して、“xforms−value−changed”イベントを発行させ、サーバにcontrolSwitch以下の値をsubmissionするように定義されている。
前記ユーザインタフェースデータを受信したクライアントは、前記ユーザインタフェースデータを前記ユーザインターフェース部品ルールと前記レイアウトルールを用いて、解釈した結果をユーザインターフェースとして構成する。また、操作者により、前記ユーザインターフェースを用いて行われた操作の結果、前述の“xforms−value−changed”イベントを発行され、サーバにcontrolSwitch以下の値をsubmissionされる。controlSwitch以下の値を受信したサーバは、記述されたPAN,TILT,ZOOMの値で、アプリケーションを制御し、必要であれば、その結果を再度、クライアントに送信する。
以上説明したように、あらゆる種類のクライアントに共通のユーザインタフェースデータ、ただ1つだけで、サーバはアプリケーションの機能を提供できる。かつ、クライアントに前記ユーザインタフェースデータに対応するユーザインターフェースが無い場合であっても、次善のユーザインターフェースで構成することができる。
なお、ユーザインタフェースデータはXMLで記述され、図38においてはSVG、XForms、sXBLを使用しているが、ユーザインタフェースデータの記述がこれら特定の言語に限定されるわけではなく、別のデータ形式においても上述の実施形態の機能が実現される場合も含まれることはいうまでもない。
1 入力部
2 CPU(Central Processing Unit)
3 出力部
4 プログラムメモリ
5 データメモリ
6 システムバス
100 ユーザインタフェースルール
101 ユーザインタフェースデータ
102 ユーザインターフェース指定情報
201 ユーザインターフェース部品ルール
401 レイアウトルール
2 CPU(Central Processing Unit)
3 出力部
4 プログラムメモリ
5 データメモリ
6 システムバス
100 ユーザインタフェースルール
101 ユーザインタフェースデータ
102 ユーザインターフェース指定情報
201 ユーザインターフェース部品ルール
401 レイアウトルール
Claims (7)
- 抽象化して記述されたユーザインターフェースの指定情報を外部から取得する取得手段と、
前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照する参照手段と、
前記ユーザインターフェースルールに関する情報を参照することにより、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する決定手段とを有することを特徴とする情報処理装置。 - 前記ユーザインターフェースルールは、
ユーザインターフェース部品が前記ユーザインターフェースの機能に基づいて分類され、抽象度に応じて階層化されたユーザインターフェース部品ルールと、
前記ユーザインターフェース部品の配置を記述したレイアウトが抽象度に応じて階層化されたレイアウトルールとを有し、
前記ユーザインターフェースの指定情報は、
前記ユーザインターフェース部品ルールの要素を示すユーザインターフェース部品指定情報と、前記レイアウトルールの要素を示すレイアウト指定情報と、
前記ユーザインターフェース部品を前記レイアウトに関連付ける関連情報とを有し、
前記ユーザインターフェース決定手段は、
前記ユーザインターフェース部品指定情報により決定されたユーザインターフェース部品要素と、前記レイアウト指定情報により決定されたレイアウト要素と、前記関連情報とに基づいて、対応するユーザインターフェース部品を対応するレイアウトで配置することを特徴とする請求項1記載の情報処理装置。 - さらに、前記ユーザインターフェースルールに関する情報からユーザインターフェースを生成できるかどうかを判別するユーザインターフェース生成判別手段と、
前記ユーザインターフェース生成判別手段により生成可能と判別された場合、ユーザインターフェースを生成するユーザインターフェース生成手段とを有することを特徴とする請求項1の情報処理装置。 - 前記ユーザインターフェース生成判別手段により生成不能と判断された場合、前記ユーザインターフェース生成手段は前記ユーザインターフェース要素定義を無視することを特徴とする請求項3記載の情報処理装置。
- 抽象化して記述されたユーザインターフェースの指定情報を外部から取得し、
前記取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照し、
前記ユーザインターフェースルールに関する情報を参照することにより、前記取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する情報処理装置のユーザインターフェース決定方法。 - 請求項5に記載の情報処理装置のユーザインターフェース決定方法を実行するためのプログラム。
- 請求項6に記載のプログラムを記憶した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004293851A JP2006107180A (ja) | 2004-10-06 | 2004-10-06 | 情報処理装置および情報処理装置のユーザインターフェース決定方法およびその方法を実行するためのプログラムおよびそのプログラムを記憶した記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004293851A JP2006107180A (ja) | 2004-10-06 | 2004-10-06 | 情報処理装置および情報処理装置のユーザインターフェース決定方法およびその方法を実行するためのプログラムおよびそのプログラムを記憶した記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006107180A true JP2006107180A (ja) | 2006-04-20 |
Family
ID=36376840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004293851A Withdrawn JP2006107180A (ja) | 2004-10-06 | 2004-10-06 | 情報処理装置および情報処理装置のユーザインターフェース決定方法およびその方法を実行するためのプログラムおよびそのプログラムを記憶した記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006107180A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008003649A (ja) * | 2006-06-20 | 2008-01-10 | Fuji Xerox Co Ltd | 操作画面生成方法、操作画面生成装置、電子機器、プログラム |
-
2004
- 2004-10-06 JP JP2004293851A patent/JP2006107180A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008003649A (ja) * | 2006-06-20 | 2008-01-10 | Fuji Xerox Co Ltd | 操作画面生成方法、操作画面生成装置、電子機器、プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577459B (zh) | 一种基于组件化的拖拽式跨平台应用开发系统及方法 | |
US11861334B2 (en) | Providing communication between a client system and a process-based software application | |
US8244541B2 (en) | Content creation system, content creation method, computer executable program for executing the same content creation method, computer readable storage medium having stored the same program, graphical user interface system and display control method | |
KR101299670B1 (ko) | 웹페이지의 동적 변환 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체 | |
US20210034336A1 (en) | Executing a process-based software application in a first computing environment and a second computing environment | |
CN110083790A (zh) | 页面编辑方法、页面输出方法、装置、计算机设备及介质 | |
CN104484189A (zh) | 一种应用界面的构建及设计方法 | |
CN101702123A (zh) | 移动终端界面实现方法及系统 | |
CN114564199A (zh) | 一种生成使用页面的方法、装置、设备及可读存储介质 | |
JP3733322B2 (ja) | マルチモーダル文書受信装置及びマルチモーダル文書送信装置、マルチモーダル文書送受信システム及びそれらの制御方法、プログラム | |
US20040103374A1 (en) | Function extension type browser, browser component, program and recording medium | |
CN113778405A (zh) | 一种跨平台app构建方法、装置、系统及介质 | |
KR20140042537A (ko) | 템플릿을 이용한 매쉬업 저작 장치 및 그 방법 | |
CN115439578A (zh) | 一种基于Canvas的流程图绘制系统及方法 | |
CN112732254B (zh) | 网页开发方法、装置、计算机设备和存储介质 | |
JP2006107180A (ja) | 情報処理装置および情報処理装置のユーザインターフェース決定方法およびその方法を実行するためのプログラムおよびそのプログラムを記憶した記憶媒体 | |
JP4854260B2 (ja) | リモート操作端末装置 | |
CN118485564A (zh) | 一种利用Grasshopper生成Archicad参数化构件的方法 | |
JP5049880B2 (ja) | 情報処理装置 | |
KR100784263B1 (ko) | 클립보드를 이용한 메시지 전송 방법 및 이를 위한 장치 | |
CN114281341A (zh) | 数据结构定义文件的编译方法、装置、计算机设备及介质 | |
CN112486378A (zh) | 图形生成方法、装置、终端及存储介质 | |
US20240427558A1 (en) | Graphic design code generation plugin system | |
CN117435193A (zh) | 一种页面生成方法、装置、电子设备和存储介质 | |
JP3645723B2 (ja) | 編集内容の自動置換機能付き交換サービス開発支援システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080108 |