(57)【要約】ユーザインタフェース生成装置１は、アプリケーションプログラムを記憶する記憶部５０と、１つのユーザインタフェースの生成が指示されると、単体用ユーザインタフェースオブジェクト群を表示し、複数のユーザインタフェースの生成が指示されると、単体用ユーザインタフェースオブジェクト群から抽出したユーザインタフェースオブジェクトを合成処理して合成ユーザインタフェースオブジェクト群を表示するように制御する制御部１０と、を有し、制御部１０は、複数のユーザインタフェースの生成が指示されると、その複数のユーザインタフェースの各々が単体で生成指示されたときに表示する単体用ユーザインタフェースオブジェクト群の表示へ切り替えるためのユーザインタフェースオブジェクトを表示する。
2010013758.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを記憶することが可能な記憶部と、
該記憶部に記憶されているアプリケーションプログラムに基づいて、１つのユーザインタフェースの生成が指示されると、該指示されたユーザインタフェースに対応する単体用ユーザインタフェースオブジェクト群を表示し、複数のユーザインタフェースの生成が指示されると、該指示された複数のユーザインタフェースの各々に対応する単体用ユーザインタフェースオブジェクト群から抽出したユーザインタフェースオブジェクトを合成処理して合成ユーザインタフェースオブジェクト群を表示するように制御する制御部と、を有し、
該制御部は、複数のユーザインタフェースの生成が指示されると、該複数のユーザインタフェースの各々が単体で生成指示されたときに表示する単体用ユーザインタフェースオブジェクト群の表示へ切り替えるためのユーザインタフェースオブジェクトを表示することを特徴とするユーザインタフェース生成装置。
【請求項２】
アプリケーションプログラムを記憶することが可能な記憶部と、
該記憶部に記憶されているアプリケーションプログラムに基づいて、１つのユーザインタフェースの生成が指示されると、該指示されたユーザインタフェースに対応する単体用ユーザインタフェースオブジェクト群を表示し、複数のユーザインタフェースの生成が指示されると、該指示された複数のユーザインタフェースの各々に対応する単体用ユーザインタフェースオブジェクト群から抽出したユーザインタフェースオブジェクトを合成処理して合成ユーザインタフェースオブジェクト群を表示するように制御する制御部と、を有し、
該制御部は、複数のユーザインタフェースの生成が指示されると、該複数のユーザインタフェースの各々が単体で生成指示されたときに表示する単体用ユーザインタフェースオブジェクト群の表示へ切り替えるアクションを、前記抽出したユーザインタフェースオブジェクトの何れかに関連付けることを特徴とするユーザインタフェース生成装置。
【請求項３】
前記制御部は、前記単体用ユーザインタフェースオブジェクト群の表示へ切り替えるアクションを、前記抽出したユーザインタフェースオブジェクトのうち、アクションの関連付けられていないユーザインタフェースオブジェクトに新規のアクションとして関連付けることを特徴とする、請求項２に記載のユーザインタフェース生成装置。
【請求項４】
前記制御部は、前記単体用ユーザインタフェースオブジェクト群の表示へ切り替えるアクションを、前記抽出したユーザインタフェースオブジェクトの何れかに対する追加のアクションとして関連付けることを特徴とする、請求項２に記載のユーザインタフェース生成装置。
【発明の詳細な説明】
【０００１】
【関連出願の相互参照】
［０００１］
本出願は、２００８年７月３０日に出願された日本国特許出願２００８−１９６６２０号の優先権を主張するものであり、この先の出願の開示全体をここに参照のために取り込む。
【技術分野】
【０００２】  本発明は、ユーザインタフェース生成装置に関し、特に、携帯端末のユーザインタフェースを生成するユーザインタフェース生成装置に関するものである。
【背景技術】
【０００３】  携帯電話に代表される携帯端末のユーザインタフェース（以下、適宜「ＵＩ」と略記する）は、ユーザが携帯端末を操作する際の操作性を大きく左右する。そのため、携帯端末のＵＩは、ユーザが携帯端末を購入する際の決め手となる重要な要素の１つになっている。【０００４】  近年、携帯端末は著しく多機能化し、それに伴いアニメーションや３Ｄの表現などを利用した表現力豊かなＵＩを備える携帯端末も多い。また、ユーザの嗜好に合わせてＵＩをカスタマイズできる携帯端末もあり、このような携帯端末は、ユーザにとっての利便性を著しく向上させている。【０００５】  従来の携帯端末は、各メーカ間および各機種間でＵＩのデザインや操作方法が異なるのが一般的であった。すなわち、ＵＩは各端末機器に固有のものであり、端末ごとに機種依存性の高いＵＩを備えるものがほとんどであった。そのため、端末の開発を行う際に、他の端末のプログラムコードを再利用する場合、そのプログラムコードに対して必要なＵＩ部分の変更は膨大になる。したがって、ある端末のプログラムコードを他の端末に移植するのは困難であった。【０００６】  そこで、最近では、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）をベースにしたＵＩが導入されつつある。記述方式が共通化されたＸＭＬファイルを用いてＵＩを表現することによって、プログラムコードの再利用が容易になり、他の機種へのＵＩの移植も可能になる。したがって、例えば、異なるメーカの異なる端末機種間でも同じＵＩを使用することができるなど、各端末からＵＩのみを独立させるように扱うことも可能になる。【０００７】  このような、ＸＭＬをベースにしたＵＩのうち代表的なものとして、ＴＡＴ社（ｈｔｔｐ：／／ｗｗｗ．ｔａｔ．ｓｅ／）が開発したＵＩ  Ｆｏｕｎｄａｔｉｏｎや、Ａｃｒｏｄｅａ社（ｈｔｔｐ：／／ｗｗｗ．ａｃｒｏｄｅａ．ｃｏ．ｊｐ／）が開発したＶＩＶＩＤ  ＵＩや、Ｑｕａｌｃｏｍｍ社（ｈｔｔｐ：／／ｗｗｗ．ｑｕａｌｃｏｍｍ．ｃｏ．ｊｐ／）が開発したＵＩ  Ｏｎｅなどを挙げることができる。【０００８】  また、近年の携帯端末は、端末本体の多機能化および高性能化に伴い、同時に複数のタスクを並行して実行できるマルチタスク処理に対応したＯＳ（オペレーティングシステム）を実装したものが増えている。さらに、並行して同時に処理する複数のタスクにそれぞれの表示領域（ウィンドウ）を割り当てて、出力画面の表示を多重化するマルチウィンドウ機能に対応した携帯端末も普及しつつある。【０００９】  ところで、例えば特開２００１−３６６５２号公報には、赤外線通信部を備える携帯電話端末を用いて、赤外線通信により複数の外部機器を遠隔操作（制御）できるようにした技術が開示されている。この特開２００１−３６６５２号公報に記載の携帯電話端末は、外部機器との通信を行う外部制御部を備えている。この携帯電話端末は、外部の機器を遠隔制御するための外部機器制御情報を、電話回線などを介して取得したり、または外部機器から受信するなどして記憶し、この外部機器制御情報に基づいて外部機器を遠隔制御することができる。すなわち、内蔵のアプリケーションプログラム（以下、単に「アプリケーション」という）を変更することで、通常は携帯電話として使用する端末本体を、複数の外部機器を遠隔操作するリモートコントロール（以下、単に「リモコン」という）端末として用いることができる。
【発明の概要】
【発明が解決しようとする課題】
【００１０】  上記特開２００１−３６６５２号公報に開示されている携帯電話端末によれば、各外部機器に対応するそれぞれの外部機器制御情報に基づいて、１台の携帯電話端末で複数の外部機器を遠隔操作できる。したがって、複数の外部機器のそれぞれについて個別のリモコン端末を複数使い分けるという煩雑な操作が必要なく、ユーザにとっての利便性を高めることができる。【００１１】  このような、遠隔制御する複数の外部機器を切り替えることができるリモコンの機能を、上述したマルチタスク処理が可能な携帯端末にて実現すれば、各リモコンのアプリケーションをいちいち一旦終了させて次のリモコンのアプリケーションを起動させる必要はない。すなわち、複数のアプリケーションを１つの端末で同時に起動させて、その中から、使いたい任意のリモコンのアプリケーションに適時切り替えて使用できる。【００１２】  しかしながら、複数のアプリケーションを頻繁に切り替えて使用する場合には、その切り替え操作は煩雑なものとなる。【００１３】  そこで、携帯端末に上述したマルチウィンドウの機能を組み合わせれば、複数のウィンドウに、複数のアプリケーションを操作するＵＩをそれぞれ再現することも可能になる。このようにすれば、複数のアプリケーションを切り替えて使用するのではなく、１画面上で同時に使用できる。【００１４】  すなわち、例えば、図１２（Ａ）に示すようなテレビのリモコン端末単独であれば、図１２（Ｂ）に示すように、例えばタッチパネル２００を備える携帯端末１００上に、テレビリモコンアプリケーションのＵＩを、その操作性を維持したまま再現できる。なお、図１２（Ａ）のリモコン端末において、テンキーなどのキーやボタンは機械式のキーであるが、図１２（Ｂ）の携帯端末１００においては、テンキーなどを描画して再現したオブジェクトをタッチパネル２００に表示している。以下、このように、タッチパネルに表示されたＵＩを構成する各種キーまたはボタンおよび情報表示箇所などを、「ＵＩオブジェクト」と記す。また、図１２（Ｃ）に示すような、エアコンディショナーのリモコン端末単独の場合も同様に、図１２（Ｄ）のように、タッチパネル２００を備える携帯端末１００上に、エアコンディショナーリモコンアプリケーションのＵＩを、その操作性を維持したまま再現できる。さらに、それぞれのアプリケーションのＵＩを、ＸＭＬをベースとして記述すれば、他メーカの端末などにアプリケーションを移植しても、ＵＩを記述したＸＭＬのファイルを加工するだけでほとんど同じＵＩを容易に再現できる。【００１５】  しかしながら、上述の例において、テレビの視聴中にエアコンディショナーの操作を行う場合に、テレビもエアコンディショナーも頻繁な操作を要する状況も想定される。このような場合、両方のリモコンのアプリケーションを、マルチタスクおよびマルチウィンドウの機能を用いて、表示部の表示領域を分割して同時に表示したとする。この場合、各アプリケーションは単独で使用することを想定したＵＩしか備えていないため、各ＵＩをそのまま同時表示すると、図１３（Ａ）〜（Ｄ）に示すような状態になる。【００１６】  図１３（Ａ）〜（Ｄ）は、マルチタスクおよびマルチウィンドウの機能を���装した携帯端末１００を用いて、２つのアプリケーションのＵＩを同時表示した様子を示す図である。図に示す例においては、タッチパネル２００の表示部の表示を上下に分割した各ウィンドウ内で、それぞれのＵＩをそのまま再現したため、各ＵＩとも一部しか表示されていない。画面上に表示しきれない部分の操作を行うために、各ウィンドウの右端にはスクロールバーを備えている。【００１７】  例えば図１３（Ａ）に示す状態で、テレビの音量を調節したい場合、ユーザは、テレビリモコンＵＩのウィンドウのスクロールバーを移動して、図１３（Ｂ）に示すようにテレビリモコンＵＩの表示範囲を移動させなくてはならない。同様に、例えば図１３（Ｃ）に示す状態で、エアコンディショナーの温度を調節したい場合、ユーザは、エアコンディショナーリモコンＵＩのウィンドウのスクロールバーを移動して、図１３（Ｄ）に示すようにエアコンディショナーリモコンＵＩの表示範囲を移動させなくてはならない。さらに、マルチウィンドウで複数のアプリケーションを起動する場合、ＵＩを重畳表示する際は、まず入力するウィンドウを選択してアクティブにしてから入力操作を開始しなくてはならない。【００１８】  特に、携帯端末の場合は、端末本体が非常に小さく設計されるため、タッチパネルで構成するＵＩの場合も物理的なキーで構成するＵＩの場合も、ＵＩとして利用できる領域は極めて制限されている。したがって、リモコンなどのアプリケーションのＵＩを構成する操作部は、もともと最小に近い大きさで設計されるのが一般的である。そのため、複数のアプリケーションのＵＩを同時表示する際に、各ＵＩをそれぞれ全体的に縮小して同時に表示するのは現実的ではない。【００１９】  このように、一画面用にデザインされた、単独で使用することを想定したＵＩ（以下、適宜「単体ＵＩ」と略記する）をマルチウィンドウで表示した場合、その操作性は悪化してしまう。【００２０】  そこで、このような問題に対処するために、各単体ＵＩを構成する要素であるキーまたはボタンなどのＵＩオブジェクトからいくつかを選択し、選択されたＵＩオブジェクトで構成される、合成されたＵＩ（以下、「合成ＵＩ」と略記する）を生成することも考えられる。例えば、図１２（Ｂ）に示したテレビリモコンアプリケーションのＵＩ、および図１２（Ｄ）に示したエアコンディショナーリモコンアプリケーションのＵＩから所定のＵＩオブジェクトを選択し、図１４に示すような合成ＵＩを生成することが考えられる。図１４に示す携帯端末１００は、上述した２つのリモコンアプリケーションのＵＩから所定のＵＩオブジェクトを選択し、それらを１つの合成ＵＩとして、タッチパネル２００に表示した例を示している。【００２１】  このようにＵＩを合成すれば、使用頻度の高いＵＩオブジェクト、またはユーザが使用を所望するＵＩオブジェクトを選択して合成ＵＩを構成することができるため、各ＵＩオブジェクトを、使い勝手の良さ、すなわち操作性を犠牲にして縮小したりする必要はない。【００２２】  しかしながら、このように所定のＵＩオブジェクトを選択して合成ＵＩを生成すると、当然、合成ＵＩを生成するに際し選択されないＵＩオブジェクトが存在することになる。例���ば、図１４の携帯端末１００のタッチパネル２００に表示した合成ＵＩにおいては、図１２（Ｄ）に示したエアコンディショナーリモコンＵＩの温度調節用ＵＩオブジェクト（温度＋および温度−のＵＩオブジェクト）が選択されていない。したがって、このままではユーザが温度調節を行うことができない。このような場合、ユーザは、現在表示中の合成ＵＩおよび当該合成ＵＩに関連するアプリケーションを一旦終了させて、使用したいＵＩオブジェクトを含む単体ＵＩを使用するアプリケーションを起動させなければならない。このような操作は、時間および手間がかかるものである。【００２３】  上記の例においては、合成ＵＩの生成時に、エアコンディショナーの温度調整のような使用頻度が高いと想定されるＵＩオブジェクトが自動選択される設定にしたり、または使用したいＵＩオブジェクトをユーザが自ら選択できるようにすることも考えられる。しかしながら、たとえそのようにしたとしても、複数の単体ＵＩから選択されたＵＩオブジェクトを用いて合成ＵＩを生成する限り、選択されなかったＵＩオブジェクトに対してユーザが入力を望む場合には、同様の問題が生じることになる。【００２４】  また、合成ＵＩに含まれていないＵＩオブジェクトを表示させるため単体ＵＩを使用するアプリケーションを一旦起動させると、再び合成ＵＩに戻す際には、現在の単体ＵＩを使用するアプリケーションを終了させて、合成ＵＩを使用するアプリケーションを起動させなければならない。合成ＵＩに含まれていない単体ＵＩのＵＩオブジェクトを使用するたびにこのような操作を行うのは、ユーザにとっては相当な手間となる。【００２５】  したがって、かかる事情に鑑みてなされた本発明の目的は、複数のアプリケーションプログラムのユーザインタフェースを合成した後でも、簡単な操作で単体用のユーザインタフェースに入力を行うことができるユーザインタフェース生成装置を提供することにある。
【課題を解決するための手段】
【００２６】  上記目的を達成する第１の観点に係るユーザインタフェース生成装置の発明は、
アプリケーションプログラムを記憶することが可能な記憶部と、
該記憶部に記憶されているアプリケーションプログラムに基づいて、１つのユーザインタフェースの生成が指示されると、該指示されたユーザインタフェースに対応する単体用ユーザインタフェースオブジェクト群を表示し、複数のユーザインタフェースの生成が指示されると、該指示された複数のユーザインタフェースの各々に対応する単体用ユーザインタフェースオブジェクト群から抽出したユーザインタフェースオブジェクトを合成処理して合成ユーザインタフェースオブジェクト群を表示するように制御する制御部と、を有し、
該制御部は、複数のユーザインタフェースの生成が指示されると、該複数のユーザインタフェースの各々が単体で生成指示されたときに表示する単体用ユーザインタフェースオブジェクト群の表示へ切り替えるためのユーザインタフェースオブジェクトを表示することを特徴とするものである。【００２７】  また、上記目的を達成する第２の観点に係るユーザインタフェース生成装置の発明は、
アプリケーションプログラムを記憶することが可能な記憶部と、
該記憶部に記憶されているアプリケーションプログラムに基づいて、１つのユーザインタフェースの生成が指示されると、該指示されたユーザインタフェースに対応する単体用ユーザインタフェースオブジェクト群を表示し、複数のユーザインタフェースの生成が指示されると、該指示された複数のユーザインタフェースの各々に対応する単体用ユーザインタフェースオブジェクト群から抽出したユーザインタフェースオブジェクトを合成処理して合成ユーザインタフェースオブジェクト群を表示するように制御する制御部と、を有し、
該制御部は、複数のユーザインタフェースの生成が指示されると、該複数のユーザインタフェースの各々が単体で生成指示されたときに表示する単体用ユーザインタフェースオブジェクト群の表示へ切り替えるアクションを、前記抽出したユーザインタフェースオブジェクトの何れかに関連付けることを特徴とするものである。【００２８】  第３の観点に係る発明は、第２の観点に係るユーザインタフェース生成装置において、
前記制御部は、前記単体用ユーザインタフェースオブジェクト群の表示へ切り替えるアクションを、前記抽出したユーザインタフェースオブジェクトのうち、アクションの関連付けられていないユーザインタフェースオブジェクトに新規のアクションとして関連付けることを特徴とするものである。【００２９】  第４の観点に係る発明は、第２の観点に係るユーザインタフェース生成装置において、
前記制御部は、前記単体用ユーザインタフェースオブジェクト群の表示へ切り替えるアクションを、前記抽出したユーザインタフェースオブジェクトの何れかに対する追加のアクションとして関連付けることを特徴とするものである。
【図面の簡単な説明】
【００３０】
【図１】第１実施の形態に係るユーザインタフェース生成装置の概略構成を示すブロック図である。
【図２】本発明のユーザインタフェース定義ファイルの構成を説明する概念図である。
【図３】本発明の合成ユーザインタフェース定義ファイルの構成を説明する概念図である。
【図４】第１実施の形態に係る単体のユーザインタフェースを示す図である。
【図５】第１実施の形態に係るユーザインタフェースオブジェクト属性情報である優先度を示す情報を説明する図である。
【図６】第１実施の形態に係るユーザインタフェース生成の全体処理を説明するフローチャートである。
【図７】第１実施の形態に係るユーザインタフェース生成処理を説明するフローチャートである。
【図８】第１実施の形態に係るユーザインタフェース合成処理を説明するフローチャートである。
【図９】第１実施の形態に係るユーザインタフェース合成処理により２つの単体ユーザインタフェースを合成した例を示す図である。
【図１０】第１実施の形態に係るユーザインタフェースにイベントが発生した際の処理を説明するフローチャートである。
【図１１】第２実施の形態に係るユーザインタフェース合成処理により２つの単体ユーザインタフェースを合成した例を示す図である。
【図１２】従来のリモートコントロール端末を携帯端末のユーザインタフェースで再現した状態を示す図である。
【図１３】従来の携帯端末にて２つのユーザインタフェースを合成した例を示す図である。
【図１４】携帯端末にて２つの単体ユーザインタフェースを合成した例を示す図である。
【発明を実施するための形態】
【００３１】  以下、本発明の各実施の形態について、図面を参照して説明する。以下の各実施の形態では、本発明のユーザインタフェース（以下、「ＵＩ」と記す）生成装置の一例として、各種外部機器の遠隔制御が可能なリモコン機能を実装した携帯電話を想定して説明する。しかしながら、本発明のＵＩ生成装置は携帯電話に限定されるものではなく、例えばノートパソコンやＰＤＡなどの任意の携帯端末などに適用することができる。また、本発明の実装を必要とする装置であれば、携帯端末にも限定されることはない。なお、本発明は、複数のＵＩを同時に使用できるように合成することを主目的とするものであり、各ＵＩにより指示を受けるアプリケーションはリモコン機能に限定されるものではなく、任意の各種アプリケーションに本発明を適用することができる。
【００３２】（第１実施の形態）
図１は、本発明の第１実施の形態に係るＵＩ生成装置である携帯電話の概略構成を示すブロック図である。
【００３３】  携帯電話１は、全体を制御する制御部１０と、ユーザからの入力を受け付けると共に、各アプリケーションに応じて入力結果などの表示を行うタッチパネル２０とを備えている。タッチパネル２０は、ユーザからの入力を受け付けるマトリクススイッチなどで構成した入力部２２を、液晶ディスプレイなどで構成した表示部２４の前面に重畳させて構成する。タッチパネル２０の入力部２２は、ユーザの指先またはスタイラスのようなペン型入力デバイス等が接触するのを検知することにより、当該接触による入力に対応する信号を出力する。表示部２４は、アプリケーションプログラムに関する表示をする他、ユーザの操作入力を受け付ける各種キーやボタンなどのＵＩオブジェクトにより構成されるＵＩを所定のＵＩ表示領域に描画して表示する。なお、ＵＩ表示領域とは、タッチパネル２０の表示部２４において、ＵＩオブジェクトから構成されるＵＩを表示する領域のことをいう。
【００３４】  また、携帯電話１は、図示しない基地局と音声通話および電子メールのデータなど各種情報をインターネットや無線等を使って送受信する無線通信部３０と、図示しない各種外部機器と赤外線により通信を行う赤外線通信部４０とを備えている。無線通信部３０を用いて、携帯電話１は、インターネットや無線回線等を介して端末外部と各種データの送受信を行う。
【００３５】  さらに、携帯電話１は、入力された情報および各種アプリケーション等を記憶したり、ワークメモリなどとしても機能する記憶部５０を有する。記憶部５０は、アプリケーション記憶領域５１と、ＵＩ定義ファイル記憶領域５２と、個別ＵＩリソース記憶領域５３と、共通ＵＩリソース記憶領域５４と、関連アプリケーション情報記憶領域５５と、合成ＵＩ定義ファイル記憶領域５６とを含む。
【００３６】  なお、制御部１０は、アプリケーション実行部１１と、ＵＩ取得部１２と、ＵＩ生成部１３と、計時部１４と、ＵＩイベント処理部１５とを含んでいる。
【００３７】  制御部１０において、アプリケーション実行部１１は、記憶部５０のアプリケーション記憶領域５１に保存された各種アプリケーションを読み出して実行すると共に、当該実行に関する制御を行う。また、アプリケーション実行部１１は、アプリケーション記憶領域５１から読み出して実行している各種アプリケーションに対応するＵＩへの入力に基づいて、当該入力に対応する各種アプリケーションの機能を実行する。
【００３８】  ＵＩ取得部１２は、無線通信部３０などを介して端末の外部にあるリソース（画像データ等）およびＵＩ定義ファイル（ＸＭＬファイルなど）を取得する。ＵＩ生成部１３は、ＵＩ定義ファイルに対してパース処理（パーシング）およびＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）化処理などを行い、実際に使用するＵＩを生成する。なお、ＵＩ生成部１３は、ＸＭＬの形式で記述されたＵＩの情報をＸＭＬエンジンによって解釈し、ＵＩ定義ファイルに基づいて生成されたＵＩをタッチパネル２０の表示部２４に表示する。このＵＩ生成部１３は、合成ＵＩを含む各種ＵＩの生成に関する各種処理を行う。ＵＩ生成部１３の詳細については後述する。
【００３９】  計時部１４は、カウンタにより所定の時間の長さを計測することができる他、現在時刻を出力したり、（予め設定された）所定の時刻の到来を通知する。ＵＩイベント処理部１５は、ＵＩ生成部１３が生成したＵＩに対して、ユーザ操作による入力部２２などへの入力に基づいて発生するイベントなどを処理すると共に、アプリケーション実行部１１に対して、適宜、各種機能の実行を指示する。
【００４０】  上述したＵＩ生成部１３は、その内部に、複数のＵＩ定義ファイルに基づいてＵＩの合成処理を行うＵＩ合成処理部６０を含む。また、ＵＩ合成処理部６０は、ＵＩオブジェクト定義情報解析部６１と、ＵＩオブジェクト選択処理部６２と、合成ＵＩ定義ファイル生成部６３と、自動レイアウト処理部６４と、ＵＩリソース整形部６５と、単体ＵＩ起動用ＵＩオブジェクト生成部６６とを含む。
【００４１】  ＵＩオブジェクト定義情報解析部６１は、ＵＩ定義ファイルに含まれる、各種のＵＩオブジェクトを定義するＵＩオブジェクト定義情報を解析する。
【００４２】  ＵＩオブジェクト選択処理部６２は、多数のＵＩオブジェクトの中から、必要とするＵＩオブジェクトを、自動的にまたはユーザの入力により選択する処理を行う。ユーザの入力により選択を行う場合、ＵＩオブジェクト選択処理部６２は、表示部２４に描画するＵＩオブジェクトを定義するＵＩオブジェクト定義情報を解析することにより、ユーザによるＵＩオブジェクトの選択入力を受け付ける選択画面を生成する処理および制御を行う。
【００４３】  合成ＵＩ定義ファイル生成部６３は、ＵＩ合成処理部６０によって合成されたＵＩを、合成ＵＩ定義ファイルとして生成して出力する。
【００４４】  自動レイアウト処理部６４は、ＵＩを合成する際のレイアウトに関する各種の制御および処理を行う。例えば、自動レイアウト処理部７０は、各ＵＩオブジェクトの配置設定処理、配置可否判定処理、縮小オブジェクト選択処理、サイズ下限値設定処理、マージン設定処理などを行う。以下、これらの各処理の概略を説明する。
【００４５】  各ＵＩオブジェクトの配置設定処理は、所定のＵＩ表示領域内にて実際にＵＩオブジェクトの配置を行う前に、所定の手順に従って仮想的にＵＩオブジェクトの配置を行う処理である。配置可否判定処理は、配置設定処理により仮想的に配置されたＵＩオブジェクトが所定のＵＩ表示領域内に配置可能か否かを判定する処理である。縮小オブジェクト選択処理は、配置可否判定処理によりＵＩオブジェクトの全てを所定のＵＩ表示領域内に配置することはできないと判定された場合、所定の手順に従って、縮小するＵＩオブジェクトを選択する処理である。サイズ下限値設定処理は、端末依存情報やＵＩオブジェクト定義情報に従って、ＵＩオブジェクトを縮小する際の下限値をＵＩオブジェクト毎に設定する処理である。マージン設定処理は、ＵＩオブジェクトを配置する際に、当該ＵＩオブジェクトが他のＵＩオブジェクトまたはＵＩ表示領域の縁部などに近接し過ぎないように、当該ＵＩオブジェクトの周囲に適度な間隔（マージン）の設定を行う処理である。
【００４６】  ＵＩリソース整形部６５は、各ＵＩオブジェクトの表示サイズに基づいて、選択されたＵＩオブジェクトのプレビュー処理や、ＵＩを合成する際に利用するリソースのデータの拡大または縮小処理などを行う。なお、この場合、個別ＵＩリソース記憶領域５３または共通ＵＩリソース記憶領域５４に記憶されているリソースのデータを読み出して使用する。
【００４７】  単体ＵＩ起動用ＵＩオブジェクト生成部６６は、合成ＵＩの生成時に選択されたＵＩオブジェクトがもともと含まれていた単体ＵＩを起動するための情報（単体ＵＩ起動情報）を含むＵＩオブジェクトを生成する。この単体ＵＩ起動用ＵＩオブジェクトを生成する処理については後述する。
【００４８】  記憶部５０において、アプリケーション記憶領域５１には、各種の機能を実現する為の処理手順が記載されたデータで構成される、各種のアプリケーションを記憶する。ＵＩ定義ファイル記憶領域５２には、各ＵＩがそれぞれＵＩ全体を生成する際の一連の生成ルールを定義するＵＩ定義ファイルを記憶する。また、個別ＵＩリソース記憶領域５３は、各アプリケーション固有のＵＩを生成する際に使用する画像データや文字列（テキスト）データなどの個別ＵＩリソースを記憶する。共通ＵＩリソース記憶領域５４は、各アプリケーション固有の個別ＵＩリソース以外の、端末にて用いられる、ＵＩが共有して使用する画像データやフォントのデータなどの共通のＵＩリソースを記憶する。実際にＵＩを生成する際には、個別ＵＩリソース記憶領域５３および共通ＵＩリソース記憶領域５４に記憶された画像データおよびテキストデータなどを、タッチパネル２０の表示部２４に表示する。
【００４９】  また、関連アプリケーション情報記憶領域５５には、合成ＵＩ定義ファイル（後述する）に関連するアプリケーションに対する起動情報などを含む関連アプリケーション情報を記憶する。さらに、合成ＵＩ定義ファイル記憶領域５６は、合成ＵＩ定義ファイル生成部６３が生成した合成ＵＩ定義ファイルを記憶する。
【００５０】  次に、本実施の形態にてＵＩ定義ファイル記憶領域５２に記憶するＵＩ定義ファイルについて説明する。
【００５１】  記憶部５０のＵＩ定義ファイル記憶領域５２には、アプリケーション記憶領域５１に記憶された各アプリケーションが実行される際に必要なＵＩの、当該アプリケーションに対応した各仕様および動作などを定義するＵＩ定義ファイルを記憶する。異なるアプリケーションで同じＵＩを使う状況も考えられるが、ここでは説明の便宜のため、異なるアプリケーションに対してそれぞれ異なるＵＩを用いる場合を想定し、各アプリケーションに対応した各ＵＩ定義ファイルを保存する場合について説明する。
【００５２】  例えば、図示しない外部機器であるテレビ受像機を携帯電話１にて遠隔制御するテレビリモコンアプリケーションに対応して、テレビリモコンＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２に記憶する。同様に、図示しない外部機器のエアコンディショナーを携帯電話１にて遠隔制御するエアコンディショナーリモコンアプリケーションに対応して、エアコンディショナーリモコンＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２に記憶する。
【００５３】  本実施の形態では、ＵＩ定義ファイルを記述する言語の例として、ＸＭＬ言語をベースにしたＵＩＭＬ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）の形式に従って説明する。各ＵＩを起動して使用可能にする際には、ＵＩ生成部１３は、このＵＩＭＬファイル形式で記述される定義に従って、携帯電話１のタッチパネル２０の表示部２４にＵＩを表示し、アプリケーション実行部１１は、ユーザによる入力部２２に対する入力に応じた処理を行う。
【００５４】  図２は、ＵＩ定義ファイルの構成を説明する概念図である。図２に示すように、携帯電話１の記憶部５０内のＵＩ定義ファイル記憶領域５２には、各ＵＩがそれぞれＵＩ全体を生成する際の一連の生成ルールを定義するＵＩ定義ファイルを格納する。図２では、ＵＩ定義ファイル（１）〜（６）の６つのＵＩ定義ファイルを格納しているが、使用するＵＩに応じて、ＵＩ定義ファイル記憶領域５２には任意の数のＵＩ定義ファイルを格納できる。
【００５５】  また、各ＵＩ定義ファイルは、図２に示すように、複数のＵＩオブジェクト定義情報を含む。図２では、ＵＩ定義ファイル（２）は６つのＵＩオブジェクト定義情報（（２）−１〜（２）−６）を含んでいるが、実際には、当該ＵＩ定義ファイル（２）に基づいて構成されるＵＩが含むＵＩオブジェクトの個数に対応する数のＵＩオブジェクト定義情報を含む。
【００５６】  ＵＩ定義ファイルに含まれるそれぞれのＵＩオブジェクト定義情報は、図示のように、当該ＵＩオブジェクト定義情報により定義されるＵＩオブジェクトに関連する各種の属性を表す情報を含む。以下、ＵＩオブジェクト定義情報に含まれる代表的な情報を例示する。
（１）部品（ＵＩオブジェクト）の種別情報：当該ＵＩオブジェクトがユーザ操作を受け付けるボタンやキーの機能を持つものか、情報表示のテキストボックス機能を持つものか、表示部２４に画像を表示するだけの機能かなど、種別を特定する情報
（２）ＵＩオブジェクトに使用するリソース情報：表示部２４に表示するＵＩを構成する要素であるキーまたはボタンなどのＵＩオブジェクトを描画するための画像およびテキストを定義する情報
（３）ＵＩオブジェクトを配置する位置情報：当該ＵＩオブジェクトを所定のＵＩ表示領域のどの位置に表示するかを特定する情報
（４）ＵＩオブジェクトの表示サイズ情報：当該ＵＩオブジェクトをＵＩ表示領域に表示する際のサイズを特定する情報
（５）ＵＩオブジェクトの動作条件情報（アクション情報）：当該ＵＩオブジェクトに入力がされた際の（実際にはＵＩオブジェクトに対応する入力部２２の部位に入力がされた際の）、アプリケーションに対する動作を定義する情報（例えば、テレビリモコンＵＩの「電源」のＵＩオブジェクトに対する入力のイベントが発生した場合、テレビリモコンアプリケーションに対して、外部機器のテレビの電源をＯＮまたはＯＦＦにする赤外線信号を発信する指示を出すよう定義する情報）
（６）ＵＩオブジェクトを有効または無効にする情報：当該ＵＩオブジェクトをＵＩ表示領域に表示するか否か、またはＵＩオブジェクトをアクティブ状態にするか否かを特定する情報
（７）ＵＩオブジェクトの優先度情報：当該ＵＩオブジェクトと他のＵＩオブジェクトとの関係に基づいて、複数のＵＩを合成する際に、当該ＵＩオブジェクトの優先度を示す情報
（８）当該ＵＩオブジェクトと他のＵＩオブジェクトとの関連性情報：当該ＵＩオブジェクトが他のＵＩオブジェクトと所定の関連性を有する場合に当該関連性を特定する情報
【００５７】  上記（５）のＵＩオブジェクトの動作条件情報（アクション情報）は、仕様に応じて種々のものが想定できるが、本実施の形態では、アクション情報の種別として、上述したものを含めて主に以下の３種類を規定する。
１．ＵＩオブジェクトのプロパティ（属性情報）を変更するアクション
２．アプリケーションの機能を実行するアクション
３．単体ＵＩを起動するアクション
【００５８】  また、本実施の形態による携帯電話１は、ユーザの選択操作に基づいて、複数のＵＩから複数のＵＩオブジェクトを選択して採用し、当該複数のＵＩオブジェクトを、合成ＵＩとして１つのＵＩ表示領域内に表示することができる。この場合、各ＵＩには、対応するＵＩ定義ファイルがそれぞれ存在するが、ユーザが任意に選択したＵＩオブジェクトにより構成される合成ＵＩには、対応するＵＩ定義ファイルが元々は存在しない。そのため、ユーザの選択によるＵＩオブジェクトにより構成される合成ＵＩを生成した際には、ＵＩ合成処理部６０は、当該合成ＵＩに基づく合成ＵＩ定義ファイルを生成して保存する。以下、この合成ＵＩ定義ファイルの生成の動作について、さらに説明する。
【００５９】  図３は、合成ＵＩ定義ファイルの構成を説明する概念図である。合成ＵＩ定義ファイルは、複数のＵＩ定義ファイルに含まれるＵＩオブジェクト定義情報を部分的に抜き出し、１つのＵＩ定義ファイルにまとめたものである。なお、この合成ＵＩ定義ファイルに含まれるＵＩオブジェクト定義情報は、そのもととなる単体ＵＩから抽出されて合成される際に、必要に応じて様々な加工が施される。例えば、合成ＵＩを定義するものであることを識別する情報や、関連アプリケーション情報を特定するための情報が付加されたりする。図３に示す例においては、３つのＵＩ定義ファイル（２），（４），（５）から、それぞれいくつかのＵＩオブジェクト定義情報を抽出したものをまとめて、新たに合成ＵＩ定義ファイル（１）を生成した様子を概念的に表している。このように、それぞれのＵＩオブジェクト定義ファイルからいくつかのＵＩオブジェクト定義情報を抽出して合成ＵＩ定義ファイルにまとめる際に、ＵＩ合成処理部６０は、必要に応じて加工を施してから合成する。
【００６０】  複数のＵＩの合成に際しては、ＵＩ合成処理部６０において、ＵＩオブジェクト選択処理部６２が、各ＵＩ定義ファイルに基づいてＵＩオブジェクト選択画面を生成し、ユーザが選択したＵＩオブジェクトのＵＩオブジェクト定義情報を抽出する。ＵＩ合成処理部６０は、このようにして抽出したＵＩオブジェクト定義情報をまとめる。この際、合成ＵＩ定義ファイル生成部６３が、こうしてまとめられたＵＩオブジェクト定義情報から、１つの合成ＵＩ定義ファイルを生成する。これは、ユーザの視点から見ると、複数のＵＩからＵＩオブジェクトをいくつか選択して採用し、１つの合成ＵＩを生成したことになる。なお、上述したように、ＵＩ合成処理部６０は、合成ＵＩ定義ファイル生成部６３が合成ＵＩ定義ファイルを生成する際に、必要に応じてＵＩオブジェクト定義情報を加工する。それから、ＵＩ合成処理部６０は、合成ＵＩ定義ファイル生成部６３が生成した合成ＵＩ定義ファイルを、合成ＵＩ定義ファイル記憶領域５６に保存する。
【００６１】  以下、ＵＩ定義ファイルに基づいて生成されるＵＩを、具体的な例を用いて説明する。図４（Ａ）および（Ｂ）は、図２および図３に示したような、各ＵＩ定義ファイルに基づいて生成される単体ＵＩ（単体用ユーザインタフェースオブジェクト群）の例として、リモコンアプリケーション用ＵＩを表示した例を示す図である。図４（Ａ）はテレビ受像機のリモコンアプリケーション用ＵＩ（ユーザインタフェースオブジェクト群）を表示した例であり、図４（Ｂ）はエアコンディショナーのリモコンアプリケーション用ＵＩ（ユーザインタフェースオブジェクト群）を表示した例である。ＵＩ定義ファイルがＸＭＬをベースにしたＵＩＭＬのファイル形式で記述されている場合には、これらの各ＵＩＭＬのファイルを解析してＵＩを生成すると、表示部２４の所定のＵＩ表示領域内に適切に収まるような一画面用のＵＩが表示される。それぞれのＵＩのＵＩ定義ファイルでは、各ＵＩを構成するＵＩオブジェクトについて、それぞれ、ＵＩオブジェクト定義情報により各種の属性が定義されている。
【００６２】  ＵＩオブジェクト選択処理部６２は、図４（Ａ）および（Ｂ）に示したような単体ＵＩ（単体用ユーザインタフェースオブジェクト群）から、所定の基準に基づいていくつかのＵＩオブジェクトを選択し、ＵＩ合成処理部６０は、これらのＵＩオブジェクトについて上述した合成ＵＩを生成する処理を行う。これにより、合成ＵＩ定義ファイル生成部６３は、複数のＵＩオブジェクトを選択して採用することにより１つの合成ＵＩを構成する合成ＵＩ定義ファイルを生成できる。
【００６３】  本実施の形態においては、複数のＵＩを合成して合成ＵＩを生成する際に、各ＵＩオブジェクトのうち主要なものが自動選択されるようにすることもできる。この場合、ＵＩオブジェクト選択処理部６２がＵＩオブジェクトを自動選択する際には、上述した（７）ＵＩオブジェクトの優先度情報を利用する。
【００６４】  図５は、本実施の形態に係るＵＩオブジェクトの優先度情報を説明する図である。
【００６５】  図５（Ａ）は、携帯電話１において、テレビリモコンアプリケーションのみを起動し、テレビリモコンＵＩ定義ファイルに基づいて、単体ＵＩであるテレビリモコンＵＩをタッチパネル２０に表示した様子を示している。図中では、タッチパネル２０上のＵＩ表示領域を、各ＵＩオブジェクトの属性情報に対応する小領域に概念的に分割した様子を一点鎖線によって示す。また、複数のＵＩオブジェクトをまとめて１つのＵＩ（ユーザインタフェースオブジェクト群）として扱うことの定義（ＵＩ識別情報）をｉｎｔｅｒｆａｃｅのタグを付して示し、“ＴＶ１＿ｉｎｔｅｒｆａｃｅ”という値から、これがＴＶ１のリモコンのＵＩであることが特定できる。図５（Ａ）に示す各小領域（１）〜（７）に対応する各ＵＩオブジェクト属性情報の一例を以下に列記する。
Ｉｎｔｅｒｆａｃｅ  ｉｄ＝”ＴＶ１＿ｉｎｔｅｒｆａｃｅ”
（１）  ＩＤ＝”ｓｗｉｔｃｈ１”  ｐｒｉｏｒｉｔｙ＝”０”
（２）  ＩＤ＝”ｃｈ＿ｓｅｌｅｃｔ”  ｐｒｉｏｒｉｔｙ＝”１”
（３）  ＩＤ＝”ｖｏｌｕｍｅ”  ｐｒｉｏｒｉｔｙ＝”１”
（４）  ＩＤ＝”１０ｋｅｙ”  ｐｒｉｏｒｉｔｙ＝”４”
（５）  ＩＤ＝”ｔｉｍｅｒ”  ｐｒｉｏｒｉｔｙ＝”３”
（６）  ＩＤ＝”ｂｉｌｉｎｇｕａｌ”  ｐｒｉｏｒｉｔｙ＝”３”
（７）  ＩＤ＝”ｔｉｔｌｅ”  ｐｒｉｏｒｉｔｙ＝”０”
【００６６】  本実施の形態では、ＵＩオブジェクト属性情報のうち、上述した各小領域（１）〜（７）のＵＩオブジェクトについての優先度を、ｐｒｉｏｒｉｔｙの値として予め定義する。図５の例では、ｐｒｉｏｒｉｔｙの値がゼロのＵＩオブジェクトは必須の（必ず選択される）オブジェクトとし、ｐｒｉｏｒｉｔｙの値が１のＵＩオブジェクトは重要なオブジェクトとし、それ以降はｐｒｉｏｒｉｔｙの値が増大するほど優先度が低いＵＩオブジェクトであることを意味する。すなわち、例えば図５（Ａ）の小領域（１）に示す「電源」のキーは必須のキーであるため、ｐｒｉｏｒｉｔｙの値をゼロとする。また、小領域（２）のチャンネル選局キー、および小領域（３）の音量上下キーは重要なキーであるためｐｒｉｏｒｉｔｙの値は１とする。しかしながら、小領域（４）のテンキーは、小領域（２）および（３）のチャンネル選局キーで代替できるため、ｐｒｉｏｒｉｔｙの値を４とし、優先度を低く設定する。また、小領域（５）および（６）のタイマーおよび音声切替のキーは優先度がそれほど高くないものとし、ｐｒｉｏｒｉｔｙの値は３とする。
【００６７】  なお、小領域（７）の文字列は、ユーザの入力を受け付けるキーではなく、このテレビリモコンＵＩに係る名称を表すＵＩオブジェクトである。このような、ＵＩに係る名称は、単体ＵＩを使用する際に不可欠とまではいえないが、合成ＵＩを生成する際には、視認性を向上させるため、本例においては表示を必須とするＵＩオブジェクトとする。
【００６８】  図５（Ｂ）は、単体ＵＩであるエアコンディショナーリモコンＵＩのみをタッチパネル２０に表示した様子を示す。図５（Ｂ）に示す各小領域（１）〜（７）に対応する各ＵＩオブジェクト属性情報の一例を以下に列記する。なお、これら複数のオブジェクトがまとまった１つのエアコンディショナー１のリモコンのＵＩであることが特定できるよう、ｉｎｔｅｒｆａｃｅのタグの値は“ＡＩＲ１＿ｉｎｔｅｒｆａｃｅ”とする。
Ｉｎｔｅｒｆａｃｅ  ｉｄ＝”ＡＩＲ１＿ｉｎｔｅｒｆａｃｅ”
（１）  ＩＤ＝”ｓｗｉｔｃｈ２”  ｐｒｉｏｒｉｔｙ＝”０”
（２）  ＩＤ＝”ｓｅｔ＿ｗｉｎｄｏｗ”  ｐｒｉｏｒｉｔｙ＝”０”
（３）  ＩＤ＝”ｔｅｍｐ”  ｐｒｉｏｒｉｔｙ＝”１”
（４）  ＩＤ＝”ｗｉｎｄ＿ｖｅｌｏ”  ｐｒｉｏｒｉｔｙ＝”１”
（５）  ＩＤ＝”ｄｉｒｅｃｔｉｏｎ”  ｐｒｉｏｒｉｔｙ＝”２”
（６）  ＩＤ＝”ｍｏｄｅ”  ｐｒｉｏｒｉｔｙ＝”３”
（７）  ＩＤ＝”ｔｉｔｌｅ”  ｐｒｉｏｒｉｔｙ＝”０”
【００６９】  エアコンディショナーリモコンＵＩでは、例えば小領域（１）に示す「電源」のキーは必須のキーであり、小領域（２）に示す「設定温度」の表示も必須であるため、ｐｒｉｏｒｉｔｙの値をゼロとする。また、小領域（３）および（４）の温度の上下調節キーおよび風力調節キーは重要なキーであるためｐｒｉｏｒｉｔｙの値は１とする。これらと比べて優先度の劣る、小領域（５）の風向調節キーのｐｒｉｏｒｉｔｙの値は２とし、小領域（６）のモードキーのｐｒｉｏｒｉｔｙの値は３とする。なお、小領域（７）の文字列は、ユーザの入力を受け付けるキーではなく、このエアコンディショナーリモコンＵＩに係る名称を表すＵＩオブジェクトであり、本例においては表示を必須とするＵＩオブジェクトとする。
【００７０】  このように、本実施の形態では、各ＵＩオブジェクトと他のＵＩオブジェクトとの関係に基づいて定義された優先度情報（ｐｒｉｏｒｉｔｙの値）を、ＵＩオブジェクト属性情報として、各ＵＩ定義ファイルのＵＩオブジェクト定義情報に予め含ませる。この優先度情報は、ＵＩ生成部１３が、ＵＩ合成処理においてＵＩオブジェクトの自動選択処理を行う際に、各ＵＩオブジュクトを合成ＵＩに採用するか否かを判定する情報として用いる。表示部２４におけるＵＩ表示領域には限りがあるため、優先度が低いＵＩオブジェクトは合成ＵＩ生成の際に採用しないようにする。その代わりに、元々は他のＵＩに含まれる優先度の高いＵＩオブジェクトを当該合成ＵＩに採用する。
【００７１】  次に、図６〜８のフローチャートを参照しながら、本実施の形態による、複数のアプリケーションのＵＩを合成する際の動作について説明する。
【００７２】  図６は、本実施の形態において、ＵＩ生成部１３によりＵＩ定義ファイルまたは合成ＵＩ定義ファイルからＵＩを生成して使用可能にする処理全体を説明するフローチャートである。まず、ユーザからの入力部２２への操作入力などに基づいてアプリケーションが起動し、アプリケーション実行部１１が当該アプリケーションに係るＵＩの生成を指示すると、ＵＩを生成して使用可能にする処理が開始する。この処理が開始すると、ＵＩを表示する権限を持つアプリケーションが、ＵＩ定義ファイル（ＸＭＬファイル）を指定する（ステップＳ１１）。ＵＩを表示する権限を持つアプリケーションは、携帯電話１にてバックグラウンドで起動するものではなく、アプリケーションの最上位にて動作するものである。この処理の開始のきっかけとなる動作は、ＵＩを用いるアプリケーションを起動する際のユーザの操作、またはユーザが既にアプリケーションを実行中に、ＵＩを用いる他のアプリケーションをさらに起動する際のユーザの操作などが想定される。
【００７３】  次に、ＵＩ生成部１３は、ステップＳ１１にて指定されたＵＩ定義ファイルの数が１つか複数かを判定する（ステップＳ１２）。指定ファイル数が１つと判定された場合、ＵＩ生成部１３は、指示を出したアプリケーションが複数のＵＩの合成を要求していないと判断してステップＳ１３に移行する。ステップＳ１３において、ＵＩ生成部１３は、指定された１つのＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２または合成ＵＩ定義ファイル記憶領域５６から読み出して、当該ＵＩ定義ファイルが合成ＵＩ定義ファイルか否かを判定する。
【００７４】  ステップＳ１３にて、指定されたファイルが合成ＵＩ定義ファイルでない、つまりＵＩ定義ファイル記憶領域５２から読み出された単体ＵＩのＵＩ定義ファイルと判定された場合は、ステップＳ１４に移行する。
【００７５】  ステップＳ１４において、ＵＩ生成部１３は、指定された単体ＵＩのＵＩ定義ファイルに対してＸＭＬパース処理を行ってから、次にＤＯＭ化処理を行う（ステップＳ１５）。この場合のように、指定されたＵＩ定義ファイルが１つで単体ＵＩのＵＩ定義ファイルの場合、これ以降の処理は、従来式のＵＩを生成する処理と同じになる。すなわち、パース処理およびＤＯＭ化処理を行ったＵＩ定義ファイルに基づいて、ＵＩ生成部１３は、ＵＩを生成する処理を行う（ステップＳ１６）。なお、ステップＳ１６のＵＩ生成処理については後述する。次に、ＵＩ生成処理により生成されたＸＭＬファイルのＵＩに基づいて、ＵＩ生成部１３は、タッチパネル２０の表示部２４のＵＩ表示領域にＵＩを表示する処理を行う（ステップＳ１７）。これにより、携帯電話１において単体ＵＩが使用可能になる。
【００７６】  一方、ステップＳ１２において、ステップＳ１１で指定されたファイル数が複数の場合、ＵＩ生成部１３は、アプリケーションが複数のＵＩの合成を要求していると判断し、複数の各ＸＭＬファイルについて、それぞれＸＭＬパース処理（ステップＳ１８）およびＤＯＭ化処理（ステップＳ１９）を行う。ステップＳ２０にて、ＵＩ生成部１３は、上記パース処理およびＤＯＭ化処理が全てのＵＩ定義ファイルについて完了したか否かを判定し、まだ完了していない場合には、ステップＳ１８に戻り、残りのＵＩ定義ファイルについてパース処理およびＤＯＭ化処理を行う。
【００７７】  ステップＳ２０にて、全てのＵＩ定義ファイルについてパース処理およびＤＯＭ化処理が完了したと判定されたら、ＵＩ合成処理部６０は、パース処理およびＤＯＭ化処理が完了した複数のＵＩを合成する処理を行う（ステップＳ２１）。すなわち、ＵＩ生成部１３は、複数のＵＩの生成（合成）を指示する。なお、ステップＳ２１のＵＩ合成処理についても後述する。
【００７８】  ステップＳ２１にてＵＩ合成処理が行われると、合成ＵＩ定義ファイル生成部６３は、合成したＵＩについての合成ＵＩ定義ファイルを生成する。この後は処理全体が一旦終了になるが、ここで生成された合成ＵＩ定義ファイルを用いて本処理を再び開始すると、ステップＳ１１にて合成ＵＩ定義ファイルが指定される。そのため、ステップＳ１２では１つのファイルが指定され、ステップＳ１３では合成ＵＩ定義ファイルが指定されたと判定される。
【００７９】  このように、ステップＳ１３にて、指定された１つのファイルが合成ＵＩ定義ファイルであると判定された場合、ステップＳ２２に移行する。指定されたファイルが合成ＵＩ定義ファイルである場合は、合成ＵＩ定義ファイルとして生成（準備）した合成ＵＩを起動して実際に使用する際は、各ＵＩオブジェクトを１つの合成ＵＩ（合成ユーザインタフェースオブジェクト群）として表示部２４に表示して使用できる状態にする必要がある。このため、ＵＩ生成部１３は、対象となる合成ＵＩ定義ファイルと関連付けて保存されている関連アプリケーション情報を、記憶部５０の関連アプリケーション情報記憶領域５５から取得する（ステップＳ２２）。次に、取得した関連アプリケーション情報に基づいて、ＵＩ生成部１３は、アプリケーション実行部１１に対して、関連するアプリケーションをバックグラウンドで起動するよう指示する（ステップＳ２３）。
【００８０】  これ以降はステップＳ１４に移行し、単体ＵＩのＵＩ定義ファイル処理の場合と同様の処理になる。すなわち、ＵＩ生成部１３は、指定された合成ＵＩのＵＩ定義ファイルに対してＸＭＬパース処理（ステップＳ１４）およびＤＯＭ化処理（ステップＳ１５）を行う。さらに、指定された合成ＵＩ定義ファイルに基づいて、ＵＩ生成部１３は、合成ＵＩを生成する処理を行う（ステップＳ１６）。それから、ＵＩ生成部１３は、生成された合成ＵＩをタッチパネル２０の表示部２４のＵＩ表示領域に表示する処理を行い（ステップＳ１７）、合成ＵＩ生成の全体的な処理を終了する。
【００８１】  次に、図７のフローチャートを参照しながら、図６におけるステップＳ１６のＵＩ生成処理についてさらに説明する。なお、ステップＳ１６のＵＩ生成処理とは、狭義のＵＩ生成処理、すなわちＵＩ定義ファイルを解析し、その解析結果に基づいてＵＩを表示部２４に表示できる状態にする処理である。
【００８２】  図７におけるＵＩ生成処理の開始時点では、指定されたＵＩ定義ファイルに基づく１つの単体ＵＩまたは１つの合成ＵＩのどちらかが、１つのＤＯＭドキュメント（またはＤＯＭノード）になっている。まず、ＵＩ生成部１３は、ＤＯＭドキュメントに対して表示関連の解析を行う（ステップＳ３１）。これは、ＵＩＭＬ形式で記述されたＵＩ定義ファイルでは、ｓｔｒｕｃｔｕｒｅタグやｓｔｙｌｅタグを付された属性などを解析する。次に、ＵＩ生成部１３は、ＤＯＭドキュメントの動作関連について解析を行う（ステップＳ３２）。これは、ＵＩＭＬ形式で記述されたＵＩ定義ファイルでは、ｂｅｈａｖｉｏｒタグを付された属性などを解析する。
【００８３】  次に、ＵＩ生成部１３は、ＤＯＭドキュメントに含まれる表現を、各端末に依存する表現に変換する処理を行う（ステップＳ３３）。さらに、ＵＩ生成部１３は、ステップＳ３３の変換処理の結果に基づいて、使用するＵＩオブジェクトのリソースを選定して各属性（プロパティ）を設定する（ステップＳ３４）。この際に必要なＵＩオブジェクトのリソースは、個別ＵＩリソースとして個別リソース記憶領域５３に、または共通ＵＩリソースとして共通ＵＩリソース記憶領域５４に記憶されている。この後、ＵＩ生成部１３は、各ＵＩオブジェクトを含むＵＩのプロット処理を行う（ステップＳ３５）。これによりＵＩの生成処理は終了し、この後は図６のステップＳ１７に移行して、ＵＩの表示処理を行う。
【００８４】  このような処理により、携帯電話１は、単体ＵＩを用いるアプリケーションの実行に伴い、単体ＵＩのＵＩ定義ファイルに基づいて単体ＵＩを表示部２４に表示できる。例えば、テレビリモコンのアプリケーション単体によりテレビリモコン用のＵＩ定義ファイルが指定された場合には、前述の図４（Ａ）に示すようなＵＩの表示になる。また、エアコンディショナーリモコンのアプリケーション単体によりエアコンディショナーリモコン用のＵＩ定義ファイルが指定された場合には、図４（Ｂ）に示すようなＵＩの表示になる。また、合成ＵＩを用いるアプリケーションの実行に伴い、合成ＵＩ定義ファイルに基づいて合成ＵＩを表示部２４に表示することもできる。
【００８５】  次に、図８のフローチャートを参照しながら、図６におけるステップＳ２１のＵＩ合成処理、すなわち複数のＵＩの生成が指示された際の処理についてさらに説明する。
【００８６】  図８に示すＵＩ合成処理が開始すると、ＵＩ合成処理部６０は、パース処理およびＤＯＭ化処理が完了した複数のＵＩのＤＯＭノードについて、各ＤＯＭノードを構成するＵＩオブジェクトを全て抽出して、各ＵＩオブジェクトの属性情報を解析する（ステップＳ５１）。各ＵＩオブジェクトの解析すべき属性情報は、図２に示したように、各ＵＩオブジェクトの優先度情報（ｐｒｉｏｒｉｔｙ）を含め種々のものがある。
【００８７】  全ＵＩオブジェクトの属性情報を解析したら、ＵＩ合成処理部６０は、抽出したＵＩオブジェクトの中から合成ＵＩに採用するＵＩオブジェクトを選択（抽出）するに際し、自動選択が指示されているか否かを判定する（ステップＳ５２）。
【００８８】  ステップＳ５２にて自動選択によるＵＩ合成が指示されている場合は、ＵＩオブジェクト選択処理部６２は、ＵＩオブジェクト自動選択処理を行う（ステップＳ５３）。これにより、合成ＵＩを構成するＵＩオブジェクトとして採用されるＵＩオブジェクトが自動で抽出される。ＵＩオブジェクト自動選択処理では、例えば、各ＵＩオブジェクトについて解析した属性情報の優先度情報であるｐｒｉｏｒｉｔｙが０〜２までの値のものを合成ＵＩに採用する等、所定の規則に基づいて、ＵＩオブジェクト選択処理部６２がＵＩオブジェクトを自動選択（抽出）する。
【００８９】  一方、ステップＳ５２にて自動選択によるＵＩ合成が指示されていない場合は、ＵＩオブジェクト選択処理部６２は、ＵＩオブジェクトのユーザによる選択処理を行う（ステップＳ５４）。これにより、ユーザの選択に基づいて、合成ＵＩを構成するＵＩオブジェクトとして採用されるＵＩオブジェクトが抽出される。ＵＩオブジェクトのユーザによる選択処理では、ユーザの操作入力に基づいて、ユーザが選択したＵＩオブジェクトを合成ＵＩに採用する（採用するオブジェクトとして抽出する）。この場合、ＵＩオブジェクト選択処理部１４は、ＵＩオブジェクト選択画面上で、選択されたＵＩオブジェクトの大きさがＵＩ表示領域にて占める合計の占有率を積算して、ＵＩ表示領域に収まらないようなＵＩオブジェクトは選択（抽出）できないようにするのが好適である。
【００９０】  このようにして自動選択またはユーザ選択によるＵＩオブジェクトの選択処理が完了したら、単体ＵＩ起動用ＵＩオブジェクト生成部６６は、合成ＵＩに含めるＵＩオブジェクトとして、単体ＵＩ起動用ＵＩオブジェクトを生成する処理を行う（ステップＳ５５）。
【００９１】  本実施の形態では、ステップＳ５５の単体ＵＩ起動用ＵＩオブジェクト生成処理において、合成ＵＩから単体ＵＩに簡単な操作で切り替えるための新たなＵＩオブジェクトを生成する。
【００９２】  ステップＳ５５にて生成した単体ＵＩ起動用ＵＩオブジェクトを、すでに選択したＵＩオブジェクトに新たに含める際には、単体ＵＩ起動用ＵＩオブジェクト生成部６６は、このＵＩオブジェクトの属性情報の種別を「ボタン」などのユーザ操作を受け付ける種別とする。また、単体ＵＩ起動用ＵＩオブジェクト生成部６６は、このＵＩオブジェクトの属性情報の動作条件に含まれるアクション情報として、起動すべき単体ＵＩのＵＩ定義ファイルを特定する為の情報（例えばその単体ＵＩのＵＩ定義ファイルのファイル名）を記述する。
【００９３】  単体ＵＩ起動用ＵＩオブジェクトを含めた合成ＵＩに採用すべきＵＩオブジェクトが全て選択（抽出）されたら、次に、自動レイアウト処理部６４は、選択（抽出）したＵＩオブジェクトをＵＩ表示領域に仮想的に配置する処理を行う（ステップＳ５６）。この際、ＵＩリソース整形部６５は、選択したＵＩオブジェクトの表示サイズを必要に応じて調節する。また、自動レイアウト処理部６４は、ＵＩオブジェクト同士が接近し過ぎないように、ＵＩオブジェクトの周囲に適当なマージン（余白部分）を必要に応じて設定する。
【００９４】  選択したＵＩオブジェクトの配置処理が完成したら、ＵＩ合成処理部６０は、確定したレイアウトの各ＵＩオブジェクトを１つのＤＯＭノードとして集約する（ステップＳ５７）。次に、合成ＵＩ定義ファイル生成部６３は、選択したＵＩオブジェクトのＵＩオブジェクト定義情報に基づいて、当該選択したＵＩオブジェクトで構成される合成ＵＩを定義する合成ＵＩ定義ファイルを生成する（ステップＳ５８）。こうして生成された合成ＵＩ定義ファイルは、ＸＭＬ形式の１つのファイルとして、記憶部５０の合成ＵＩ定義ファイル記憶領域５６に記憶する。
【００９５】  ステップＳ５８にて合成ＵＩ定義ファイルが生成されたら、ＵＩ合成処理部６０は、合成ＵＩとして選択（抽出）されたＵＩオブジェクトに基づいて関連するアプリケーションの情報を生成する（ステップＳ５９）。ここで生成する関連アプリケーション情報とは、合成ＵＩとして選択（抽出）された各ＵＩオブジェクトに対してユーザの入力があった際に、当該ＵＩオブジェクトに関連するアプリケーションを制御するための情報である。選択されたＵＩオブジェクトに基づく関連アプリケーションの情報が生成されたら、ＵＩ合成処理部６０は、当該関連アプリケーション情報を、合成ＵＩ定義ファイルと関連付けてから、関連アプリケーション情報記憶領域５５に保存する（ステップＳ６０）。この後は、ＵＩ合成処理部６０は、ＵＩ合成処理が完了したことをアプリケーション実行部１１に通知して（ステップＳ６１）、ＵＩ合成処理を終了する。
【００９６】  このような処理により、生成した合成ＵＩ（合成ユーザインタフェースオブジェクト群）を直ちに表示部２４に表示することができる。また、生成した合成ＵＩをすぐには使用せずに、後に、合成ＵＩ定義ファイル記憶領域５６に保存されている合成ＵＩ定義ファイルを読み出して使用することもできる。
【００９７】  以上のＵＩ合成処理を行った後に、図６で説明したＵＩ生成の全体処理を行うことにより、単体ＵＩの中から選択（抽出）されたＵＩオブジェクトによる合成ＵＩを生成することができる。例えば、図４（Ａ）に示したテレビ受像機のリモコンアプリケーション用ＵＩと、図４（Ｂ）に示したエアコンディショナーのリモコンアプリケーション用ＵＩとから選択されたＵＩオブジェクトを用いて、図９に示すような合成ＵＩ（合成ユーザインタフェースオブジェクト群）を生成することができる。
【００９８】  図９の合成ＵＩ（合成ユーザインタフェースオブジェクト群）の例では、図８のステップＳ５３にて、各ＵＩのＵＩオブジェクト属性情報の優先度（ｐｒｉｏｒｉｔｙ）の値が０〜２までの値のものを合成ＵＩに採用するという基準に基づいて、ＵＩオブジェクト選択処理部６２がＵＩオブジェクトを自動選択した合成ＵＩを示す。図９に示す合成ＵＩは、タッチパネル２０のＵＩ表示領域を上下２つの領域に分割して、上半分にテレビリモコンＵＩから選択したＵＩオブジェクトを、また下半分にエアコンディショナーリモコンＵＩから選択したＵＩオブジェクトを配置している。
【００９９】  このように、本実施の形態では、２つのＸＭＬファイルを解析して、優先度の高いＵＩオブジェクトのみを抽出し自動配置して複数のＵＩを合成する。これにより、ユーザは複数のアプリケーションまたは当該アプリケーションに基づくＵＩを切り替えることなく、複数のＵＩを１つの合成ＵＩとして同時に利用することができる。
【０１００】  一方、図９のように、単体ＵＩの中から選択したＵＩオブジェクトによって合成ＵＩを生成すると、選択されないＵＩオブジェクトも存在する。したがって、生成された合成ＵＩの中に、ユーザが使いたい単体ＵＩのＵＩオブジェクトが選択されていないという状況も想定される。このような状況に備えて、図９に示す合成ＵＩの上側のテレビリモコンＵＩ、および下側のエアコンディショナーリモコンＵＩのそれぞれの領域内に、図８のステップＳ５５にて生成した単体ＵＩ起動用ＵＩオブジェクト（単に「単体ＵＩ起動オブジェクト」とも称する）を配置する。
【０１０１】  この単体ＵＩ起動オブジェクトの属性情報には、アクション情報として、起動すべき単体ＵＩのＵＩ定義ファイルを特定する為の情報が含まれている。そのため、これら単体ＵＩ起動オブジェクトへのユーザの入力に応じて、周囲のＵＩオブジェクトが含まれる元の単体ＵＩに簡単に切り替えることができる。例えば、図９に示す合成ＵＩの上側のテレビリモコンＵＩに含まれる単体ＵＩ起動オブジェクトへの入力に基づいて、図４（Ａ）に示すような単体ＵＩのテレビリモコンＵＩに切り替えることができる。また、図９に示す合成ＵＩの下側のエアコンディショナーリモコンＵＩに含まれる単体ＵＩ起動オブジェクトへの入力に基づいて、図４（Ｂ）に示すような単体ＵＩのエアコンディショナーリモコンＵＩに切り替えることができる。
【０１０２】  このような動作を実現するために、本実施の形態では、合成ＵＩを使用している最中は、合成ＵＩに対してユーザの操作入力などのイベントが発生した際の処理の流れの中に、簡単に元の単体ＵＩに切り替えることができる「単体ＵＩ切り替え処理」を含ませる。
【０１０３】  以下、図１０のフローチャートを参照しながら、合成ＵＩ使用中にＵＩにイベントが発生した際の処理（ＵＩイベント処理）の流れについて説明する。
【０１０４】  ＵＩイベント処理は、ユーザによる入力部２２への操作入力などのイベントが発生し、当該イベント発生の情報がＵＩイベント処理部１５に通知された際に開始する。図１０において、ＵＩイベント処理が開始すると、まず、ＵＩイベント処理部１５は、通知されたイベントが、表示部２４に現在表示中のＵＩに対するイベントか否かを判定する（ステップＳ７１）。すなわち、ユーザによる入力部２２への操作入力が、ＵＩの表示されていない部分ではなく、ＵＩの表示されている部分で発生したか否かを判定する。
【０１０５】  通知されたイベントが現在表示中のＵＩに対するイベントである場合、ＵＩイベント処理部１５は、計時部１４の単体ＵＩ維持タイマが起動中であるか否かを判定する（ステップＳ７２）。ここで、単体ＵＩ維持タイマとは、計時部１４が、合成ＵＩから切り替えられた単体ＵＩが起動する時点を起点として単体ＵＩの起動時間を計測する機能である。合成ＵＩに対してイベントが発生した時点から本処理を開始した場合には、単体ＵＩ維持タイマは起動していないため、次のステップＳ７３に移行する。
【０１０６】  ステップＳ７３では、ＵＩイベント処理部１５が、入力部２２上でイベントが発生した位置と、表示部２４に表示中のＵＩオブジェクトの位置とを比較し、どのＵＩオブジェクトに対するイベントが発生したのかを特定する。本実施の形態では、入力部２２はタッチパネル２０を構成しているため、ＵＩイベント処理部１５は、操作入力を受け付けた座標の位置に現在表示中であるＵＩオブジェクトを特定する。この時、ＵＩイベント処理部１５は、特定されたＵＩオブジェクトの種別に従って、当該ＵＩオブジェクトが有する基本動作の処理も行う。すなわち、例えば、入力がなされたＵＩオブジェクトが文字入力を受け付けるキーなどの種別であれば入力された文字を表示し、スクロール操作を受け付ける種別であれば表示をスクロールする、などの動作を行う。
【０１０７】  ステップＳ７３にてイベントが発生したＵＩオブジェクトが特定できたら、ＵＩイベント処理部１５は、特定されたＵＩオブジェクトのＵＩオブジェクト定義情報に、上述した（５）の動作条件情報であるアクション情報が含まれているか否かを判定する（ステップＳ７４）。特定したＵＩオブジェクトのＵＩオブジェクト定義情報にアクション情報がない場合には、当該ＵＩオブジェクトは入力を受け付けるＵＩオブジェクトではないため、ステップＳ７１に戻って次の入力を待つ。
【０１０８】  なお、ＵＩＭＬの仕様では、１つのＵＩオブジェクトについて記述できるアクション情報を複数にすることもできる。例えば、キーを表すＵＩオブジェクトに対してユーザの入力があった場合には、そのキーを一瞬反転表示させるアクションと、そのキーに対する入力に応じてアプリケーションが起動するアクションと、など複数のアクション情報を記述することができる。
【０１０９】  ステップＳ７４にてアクション情報がある場合、ＵＩイベント処理部１５は、発生したイベントが、当該ＵＩオブジェクトのＵＩオブジェクト定義情報に含まれるアクション情報の実行条件に適合するか否か判定する（ステップＳ７５）。発生したイベントが、ＵＩオブジェクト定義情報に含まれるアクション情報の実行条件に適合しない場合、ステップＳ８３に移行して、ＵＩイベント処理部１５は、このＵＩオブジェクトがまだ他のアクション情報を有するか否か判定する。特定したＵＩオブジェクトが複数のアクション情報を持つ場合、ステップＳ７５に戻り、他のアクション情報について、当該ＵＩオブジェクトのＵＩオブジェクト定義情報に含まれるアクション情報の実行条件に適合するか否か判定する。一方、ステップＳ８３にて、特定したＵＩオブジェクトにアクション情報がもうない場合、つまり、当該ＵＩオブジェクトについて全てのアクション情報に応じた処理が終了している場合には、ステップＳ７１に戻って次の入力を待つ。
【０１１０】  ステップＳ７５にて、発生イベントが、ＵＩオブジェクト定義情報に含まれるアクション情報の実行条件に適合する場合、ＵＩイベント処理部１５は、ＵＩオブジェクトの種別に応じて、適合したアクション情報の処理を行う（ステップＳ７６〜ステップＳ８２）。
【０１１１】  ステップＳ７６以降の処理は、具体的には、アクション情報の種別がＵＩオブジェクトのプロパティを変更する種別である場合（ステップＳ７６のＹＥＳ）、ＵＩイベント処理部１５は、当該ＵＩオブジェクトのプロパティ情報を変更する（ステップＳ７７）。すなわち、この場合、例えば指定されたＵＩオブジェクトが使用するリソース（例えばボタン表示に使用する画像など）、ＵＩオブジェクトの配置位置、ＵＩオブジェクトの表示サイズなどのプロパティを変更する。
【０１１２】  また、アクション情報の種別がアプリケーションの機能を実行する種別である場合（ステップＳ７８のＹＥＳ）、ＵＩイベント処理部１５は、アプリケーション実行部１１に該当アプリケーションの機能の実行を指示する（ステップＳ７９）。この場合、ＵＩイベント処理部１５は、アクション情報に従って、アクション情報の中で指定された機能の実行をアプリケーション実行部１１に指示する。
【０１１３】  また、アクション情報の種別が単体ＵＩを起動する種別、すなわち単体ＵＩ起動オブジェクトである場合（ステップＳ８０のＹＥＳ）、ＵＩイベント処理部１５は、該当する単体ＵＩの起動をＵＩ生成部１３に指示する（ステップＳ８１）。この場合、例えば図９に示す合成ＵＩ（合成ユーザインタフェースオブジェクト群）のテレビリモコンＵＩに含まれる単体ＵＩ起動オブジェクトへの入力の場合、図４（Ａ）に示す単体のテレビリモコンＵＩ（単体用ユーザインタフェースオブジェクト群）に切り替えるよう指示する。また、例えば図９に示す合成ＵＩのエアコンディショナーリモコンＵＩに含まれる単体ＵＩ起動オブジェクトへの入力の場合、図４（Ｂ）に示す単体のエアコンディショナーリモコンＵＩ（単体用ユーザインタフェースオブジェクト群）に切り替えるよう指示する。
【０１１４】  ステップＳ８１にて単体ＵＩの起動をＵＩ生成部１３に指示したら、続いて、ＵＩイベント処理部１５は、計時部１４の単体ＵＩ維持タイマを起動させる（ステップＳ８２）。この後、処理はステップＳ７１に戻って処理を続行する。ステップＳ７１にて単体ＵＩが表示された状態で、その単体ＵＩにイベントが発生しない、つまりユーザの入力がない場合、ＵＩイベント処理部１５は、起動中の単体ＵＩ維持タイマのカウントが所定期間を超えて期間が満了したか否かを判定する（ステップＳ８５）。ステップＳ８５にて、単体ＵＩ維持タイマの所定期間が満了していない場合は、ステップＳ７１に戻る。一方、ステップＳ８５にて単体ＵＩ維持タイマの所定期間が満了した場合は、ＵＩイベント処理部１５は、現在の単体ＵＩから、当該単体ＵＩに切り替える前の合成ＵＩに復帰するようＵＩ生成部１３に指示する（ステップＳ８６）。
【０１１５】  このため、例えば、図９に示す合成ＵＩの単体ＵＩ起動オブジェクトに入力があった場合、図４（Ａ）または（Ｂ）に示す単体ＵＩに切り替わるが、この単体ＵＩが表示されてから所定期間何も入力がない場合には、元の図９に示す合成ＵＩに戻る。
【０１１６】  また、ステップＳ７１にて単体ＵＩが表示された状態で、その単体ＵＩにイベントが発生した、つまりユーザの入力があった場合、ＵＩイベント処理部１５は、単体ＵＩ維持タイマが起動中か否かを判定する（ステップＳ７２）。合成ＵＩから切り替えられた単体ＵＩが起動中は単体ＵＩ維持タイマも起動しているため、この場合、ＵＩイベント処理部１５は、その単体ＵＩ維持タイマのカウント満了期間を更新して（ステップＳ８４）から、次のステップＳ７３に移行する。
【０１１７】  したがって、例えば図９に示す合成ＵＩから図４（Ａ）または（Ｂ）に示す単体ＵＩを起動させた場合、入力がないまま一定時間が経過すると元の合成ＵＩに戻るが、単体ＵＩに入力があると、当該単体ＵＩが表示される期間が延長される。
【０１１８】  このように、本実施の形態によれば、合成ＵＩに対する操作入力を行うことで、合成ＵＩの元となった単体ＵＩへ容易に切り替えることができる。また、合成ＵＩから単体ＵＩに切り替えた後は、単体ＵＩが使用される時間に応じて、単体ＵＩのままの状態が維持される。さらに、単体ＵＩのままで所定時間放置することで、元の合成ＵＩに戻すこともできる。
【０１１９】（第２実施の形態）
次に、本発明の第２実施の形態に係る単体ＵＩ切り替え処理について説明する。本実施の形態では、上述した第１実施の形態において、図８のステップＳ５５にて行う単体ＵＩ起動用ＵＩオブジェクト生成処理を変更する。
【０１２０】  上述した第１実施の形態では、合成ＵＩから単体ＵＩに切り替えるための新たなＵＩオブジェクトを生成した。第２実施の形態では、単体ＵＩに含まれる既存のＵＩオブジェクトに対して、合成ＵＩから単体ＵＩに切り替える機能（アクション情報）を付加する。
【０１２１】  このために、ステップＳ５５の単体ＵＩ起動オブジェクト生成処理では、ステップＳ５３またはステップＳ５４で選択（抽出）されたＵＩオブジェクトを加工することにより、それを単体ＵＩ起動オブジェクトとして生成する。
【０１２２】  本実施の形態では、ユーザ操作を受け付けない種別のＵＩオブジェクトを、ボタンなどユーザ操作を受け付ける種別のＵＩオブジェクトに変更することにより、そのＵＩオブジェクトを、単体ＵＩの起動に用いるＵＩオブジェクトとして使用する。例えば、もともと単に表示するだけの「画像」であるＵＩオブジェクトの種別を、ユーザ操作を受け付ける「ボタン」の種別に変更することで、使用リソースは変更せずに同じ画像データを使用しつつ、その画像にボタンの機能を持たせる。すなわち、本実施の形態では、単体ＵＩ起動用ＵＩオブジェクト生成部６６は、既存のＵＩオブジェクトの何れかに対して、単体ＵＩの表示へ切り替えるアクションを、新規のアクションとして関連付ける。特に、この場合、抽出した既存のＵＩオブジェクトのうちアクションの関連付けられていないＵＩオブジェクトに、単体用ＵＩの表示へ切り替えるアクションを、新規のアクションとして関連付ける。また、本実施の形態では、動作条件として含まれるアクション情報には、起動すべき単体ＵＩのＵＩ定義ファイルを特定する為の情報（例えばその単体ＵＩのＵＩ定義ファイルのファイル名）を記述する。このように、既存のＵＩオブジェクトに対して新規のアクションを付加することにより、そのＵＩオブジェクトにユーザの入力が検知された際に、ＵＩイベント処理部１５は、新規のアクションに基づいて単体ＵＩを起動する処理を行うことができる。
【０１２３】  図１１は、本実施の形態による単体ＵＩ起動オブジェクトの生成処理を行ってから、単体ＵＩを合成して合成ＵＩを生成した例を示す図である。図１１に示す合成ＵＩ（合成ユーザインタフェースオブジェクト群）では、単体ＵＩの使用時はアプリケーションの名称を表示するだけのＵＩオブジェクトに、単体ＵＩ起動オブジェクトとしてユーザの操作入力を受け付けるボタンの機能を持たせている。例えば、図１１の「ＴＶ−ＲＤ２２リモコン」と書かれた表示部分にユーザが触れる入力を受け付けると、ＵＩイベント処理部１５は、図４（Ａ）に示す単体のテレビリモコンＵＩ（単体用ユーザインタフェースオブジェクト群）にＵＩを切り替える。また、図１１の「ＡＣ−６２５リモコン」と書かれた表示部分にユーザが触れる入力を受け付けると、ＵＩイベント処理部１５は、図４（Ａ）に示す単体のエアコンディショナーリモコンＵＩ（単体用ユーザインタフェースオブジェクト群）にＵＩを切り替える。
【０１２４】  このように、本実施の形態では、単体ＵＩ使用時にはユーザの操作入力を受け付けないＵＩオブジェクトが、合成ＵＩ使用時にはボタンのＵＩオブジェクトとして機能し、単体ＵＩに切り替えるためのユーザの操作を受け付けることにより、当該ボタンが押下された際のイベントを処理することができる。
【０１２５】  なお、単体ＵＩ起動オブジェクトとして加工するＵＩオブジェクトは、単体ＵＩ使用時のアプリケーションの名称を表示するＵＩオブジェクトに限定されるものではない。例えば、ボタン以外の背景画像など、もともと単体ＵＩ起動オブジェクトとして用意してあるＵＩオブジェクト以外の任意のＵＩオブジェクトを加工することにより、本実施の形態の処理を行うことができる。
【０１２６】（第３実施の形態）
次に、本発明の第３実施の形態に係る単体ＵＩ切り替え処理について説明する。本実施の形態では、上述した第２実施の形態と同様に、図８のステップＳ５５にて行う単体ＵＩ起動用ＵＩオブジェクト生成処理を変更する。
【０１２７】  上述した第２実施の形態では、合成ＵＩで選択された、既存の単体ＵＩに含まれるＵＩオブジェクトに対して、合成ＵＩから単体ＵＩに切り替える機能を付加した。第３実施の形態では、単体ＵＩにおいて入力を受け付ける既存のＵＩオブジェクトに対して、既存の入力態様と異なる態様の入力を受け付けた際に合成ＵＩから単体ＵＩに切り替える機能を付加する。
【０１２８】  このために、第２実施の形態と同様に、ステップＳ５５の単体ＵＩ起動オブジェクト生成処理において、ステップＳ５３またはステップＳ５４で選択（抽出）されたＵＩオブジェクトを加工する。この際、単体ＵＩに含まれる既存のＵＩオブジェクトに対して、既存の入力態様と異なる態様の入力を受け付けた際に合成ＵＩから単体ＵＩに切り替える機能（アクション情報）を付加する。例えば、単体ＵＩ起動オブジェクトに加工するＵＩオブジェクトの種別が「ボタン」の場合、通常入力時は「短押し」の入力態様についてアクション情報が規定されているならば、「長押し」の入力態様に単体ＵＩを起動するアクションの実行条件を関連付けて規定する。すなわち、単体ＵＩ起動用ＵＩオブジェクト生成部６６は、抽出した既存のＵＩオブジェクトの何れかに対して、単体ＵＩの表示へ切り替えるアクションを追加のアクションとして関連付ける。このようにすることで、アクション情報に規定された動作条件に該当するイベントが発生した際に、ＵＩイベント処理部１５は、アクション情報に基づいて当該イベントの処理を行うことができる。なお、「長押し」とは、ユーザにより入力がなされたままの状態が所定時間に達した場合に初めて入力とみなす態様であり、「短押し」とは、ユーザにより入力がなされたままの状態が「長押し」と判定される前に解除された場合の入力の態様である。
【０１２９】  例えば、図１１に示した合成ＵＩ（合成ユーザインタフェースオブジェクト群）の２つの「電源」ボタンにそれぞれ単体ＵＩ起動用のアクションを付加する場合について説明する。この合成ＵＩでは、電源ボタンを「短押し」する入力に対して、それぞれの機器の電源をオン／オフする機能の実行がもともと割り当てられているとする。すなわち、ユーザは、これらの電源ボタンを「短押し」することにより、それぞれの機器の電源をオン／オフするという通常の操作を行うことができる。本実施の形態では、例えばこれらの電源ボタンのＵＩオブジェクトを「長押し」する入力に対して、それぞれの単体ＵＩ起動用のアクションを関連付ける。
【０１３０】  このようにすることで、図１１に示すテレビ・エアコンディショナー合成ＵＩの「電源」ボタンを「短押し」する入力を受け付けると、ＵＩイベント処理部１５は、各機器の電源をオン／オフする機能を実行する。一方、図１１に示す合成ＵＩのテレビリモコン側の電源ボタンを「長押し」する入力を受け付けると、ＵＩイベント処理部１５は、図４（Ａ）に示す単体のテレビリモコンＵＩ（単体用ユーザインタフェースオブジェクト群）に切り替える。また、図１１に示す合成ＵＩのエアコンディショナーリモコン側の電源ボタンを「長押し」する入力を受け付けると、ＵＩイベント処理部１５は、図４（Ｂ）に示す単体のエアコンディショナーリモコンＵＩ（単体用ユーザインタフェースオブジェクト群）に切り替える。
【０１３１】  本実施の形態では、あるＵＩオブジェクトに対して、既存の入力態様と異なる態様の入力によって単体ＵＩを起動する機能を付加する。したがって、単体ＵＩを起動する入力態様に対応するアクション情報が、もともとそのＵＩオブジェクトが有している、通常時の入力態様を規定するアクション情報とは重複しないようにする。例えば、もともと「短押し」または「長押し」の入力態様の区別によって実行する機能を区別しているＵＩオブジェクトに対しては、単体ＵＩ起動用のアクション情報に対応する入力態様を規定する際に、「短押し」と「長押し」以外の入力態様（例えばダブルクリックなど）を規定する。
【０１３２】  なお、本発明は、上述した実施の形態にのみ限定されるものではなく、幾多の変更または変形が可能である。例えば、第１実施の形態において、単体ＵＩ起動オブジェクトは、合成ＵＩの生成に使用した単体ＵＩの数だけ必要となる。しかしながら、合成ＵＩ生成後も元の単体ＵＩを構成するＵＩオブジェクトがほとんど含まれる場合などは、この単体ＵＩに戻る必要性が高くない場合も想定される。このような場合は、当該ＵＩについては単体ＵＩ起動オブジェクトを省略することで、合成ＵＩ生成時に単体ＵＩ起動オブジェクトの生成数を削減できる。
【０１３３】  また、上述した各実施の形態に係る携帯電話１は、赤外線通信部４０により赤外線通信をすることで外部機器を遠隔制御したが、外部機器との通信は赤外線通信に限らず、例えばＢｌｕｅｔｏｏｔｈ（登録商標）や無線ＬＡＮなどの近距離無線通信を採用してもよい。
【０１３４】  上述の各実施の形態では、ＵＩオブジェクト属性情報は、ＵＩオブジェクト定義情報に含まれるものとして説明したが、必ずしもＵＩオブジェクト定義情報に含まれていなくても良い。例えば、記憶部５０のＵＩオブジェクト定義情報が格納されている領域とは別の領域に、ＵＩオブジェクト属性情報を、対応するＵＩオブジェクト定義情報と関連付けて格納しても良い。
【０１３５】  また、ＵＩオブジェクト属性情報は、その内容が固定された状態で定義されていなくても良い。すなわち、例えば、制御部１０が、ＵＩの使用履歴などに基づいて、ＵＩオブジェクト属性情報の内容を動的に変更しても良い。
【０１３６】  さらに、ＵＩオブジェクト属性情報は、予め定義されていなくても良い。すなわち、例えば、制御部１０が、記憶部５０に格納されたＵＩ定義ファイルを解析し、当該ＵＩ定義ファイルに含まれるＵＩオブジェクト定義情報の内容やＵＩオブジェクト定義情報同士の関連性、当該ＵＩの使用履歴などに基づいて、ＵＩオブジェクト属性情報を生成しても良い。
【０１３７】  上記各実施の形態では、ＵＩ生成処理を開始するきっかけとして、ＵＩを用いるアプリケーションを起動するユーザ操作や、すでに何らかのアプリケーションが実行中であるときに、ＵＩを用いる他のアプリケーションを起動するユーザ操作などを例として説明した。しかしながら、ＵＩ生成処理を開始するきっかけとなる動作はこれらに限定されるものではない。
【０１３８】  例えば、上記各実施の形態において、ＵＩ生成装置である携帯電話１は、無線ＬＡＮやＢｌｕｅｔｏｏｔｈなどの近距離無線通信やＲＦタグリーダなどにより、当該ＵＩ生成装置周辺に存在する外部機器に関する情報を取得し、取得した情報に基づいてＵＩを生成するように構成しても良い。つまり、この場合、携帯電話１は、携帯電話１周辺にある外部機器の存在を検知することにより、その外部機器に関連するＵＩ（当該外部機器を操作するリモコンアプリケーション用ＵＩなど）を、ユーザ操作に依存せずに自動で生成する。
【０１３９】  また、上記各実施の形態において、ＵＩ生成装置である携帯電話１は、ＧＰＳなどにより取得した位置情報や時間情報などに基づいて、生成するＵＩを選択するよう構成しても良い。つまり、この場合、携帯電話１は、現在位置の変化や予め設定されたスケジュールなどに基づいて、その時その場所で必要なＵＩを自動で生成する。
【０１４０】  さらに、上述した各実施の形態では、各アプリケーションに対応したＵＩのＵＩ定義ファイルが予めＵＩ定義ファイル記憶領域５２に記憶されている場合について説明したが、必要なＵＩ定義ファイルを適宜外部から取得するようにもできる。すなわち、ＵＩを生成する際に、記憶部５０に必要なＵＩ定義ファイルが記憶されていない場合には、携帯電話１の通信手段を介して必要なＵＩ定義ファイルをダウンロードして得るようにしても良い。
【０１４１】  この場合、図６のステップＳ１１にて、ＵＩを提供するアプリケーションからＵＩ定義ファイルが指定された際、必要なＵＩ定義ファイルがＵＩ定義ファイル記憶領域５２に存在するか否か判定する。必要なＵＩ定義ファイルがＵＩ定義ファイル記憶領域５２に存在しない場合、制御部１０のＵＩ取得部１２は、無線通信部３０を介して、図示しない外部機器または外部サーバなどから、必要なＵＩ定義ファイルを取得する。なお、ＵＩ定義ファイルのみならず、各アプリケーションに関しても、図示しない外部機器または外部サーバなどからダウンロードして取得することができることはもちろんである。
【０１４２】  上述した各実施の形態では、タッチパネルを備える携帯端末でＵＩを合成処理する場合について説明した。しかしながら、本発明のＵＩ合成処理においては、タッチパネルは必須の要素ではない。本発明は、例えば機械式のキーを多数備える入力部や、ポインタなどを移動させてＵＩオブジェクトの選択および決定を行う方向指示デバイスを備える入力部など、ＵＩを合成して使用することが想定される任意の端末に適用できる。
【０１４３】  なお、上述した各実施の形態で用いるＵＩ定義ファイルの一例として、以下にＸＭＬをベースとしたＵＩＭＬ形式のファイルの例を一部抜粋して示す。本例において、ＵＩオブジェクトは〈ｔｅｍｐｌａｔｅ〉タグにより定義されており、したがって〈ｔｅｍｐｌａｔｅ〉〜〈／ｔｅｍｐｌａｔｅ〉の間の記載がＵＩオブジェクト定義情報に相当する。ここでは、ＴＶリモコン用ＵＩを構成するＵＩ定義ファイル（ＴＶ１＿ｉｎｔｅｒｆａｃｅ．ｕｉｍｌ）の中から、「電源」のＵＩオブジェクトおよび「選局＋」のＵＩオブジェクトのＵＩオブジェクト定義情報の例を示す。下線を付した箇所のうち、ｐｒｉｏｒｉｔｙの属性が示すのが優先度の情報（数値がゼロに近いほど高優先度）である。
2010013758.tif 000003
【産業上の利用可能性】
【０１４４】  本発明によれば、複数のＵＩ（合成ＵＩ）を生成する際に、単体ＵＩオブジェクト群の表示へ切り替えるためのＵＩオブジェクトを表示したり、単体ＵＩオブジェクト群の表示へ切り替えるアクションを既存のＵＩオブジェクトの何れかに関連付けることができる。したがって、複数のアプリケーションのＵＩを合成した後でも、極めて簡単な操作で、合成ＵＩのもとになる単体ＵＩに切り替えて入力を行うことができる。
【符号の説明】
【０１４５】１  携帯電話
１０  制御部
１１  アプリケーションプログラム実行部
１２  ユーザインタフェース取得部
１３  ユーザインタフェース生成部
１４  計時部
１５  ユーザインタフェースイベント処理部
２０  タッチパネル
２２  入力部
２４  表示部
３０  無線通信部
４０  赤外線通信部
５０  記憶部
５１  アプリケーションプログラム記憶領域
５２  ユーザインタフェース定義ファイル記憶領域
５３  個別ユーザインタフェースリソース記憶領域
５４  共通ユーザインタフェースリソース記憶領域
５５  関連アプリケーションプログラム情報記憶領域
５６  合成ユーザインタフェース定義ファイル記憶領域
６０  ユーザインタフェース合成処理部
６１  ユーザインタフェースオブジェクト定義情報解析部
６２  ユーザインタフェースオブジェクト選択処理部
６３  合成ユーザインタフェース定義ファイル生成部
６４  自動レイアウト処理部
６５  ユーザインタフェースリソース整形部
６６  単体ＵＩ起動用ユーザインタフェースオブジェクト生成部
【図１】
2010013758.tif 000004
【図２】
2010013758.tif 000005
【図３】
2010013758.tif 000006
【図４】
2010013758.tif 000007
【図５】
2010013758.tif 000008
【図６】
2010013758.tif 000009
【図７】
2010013758.tif 000010
【図８】
2010013758.tif 000011
【図９】
2010013758.tif 000012
【図１０】
2010013758.tif 000013
【図１１】
2010013758.tif 000014
【図１２】
2010013758.tif 000015
【図１３】
2010013758.tif 000016
【図１４】
2010013758.tif 000017
【国際調査報告】
2010013758.tif 000018
2010013758.tif 000019
2010013758.tif 000020
2010013758.tif 000021
2010013758.tif 000022
2010013758.tif 000023