(57)【要約】  携帯電話１は、アプリケーションプログラムに基づく所定の機能の実行を実行部１１に指示するためのユーザインタフェースを生成する生成部１３と、ユーザインタフェースのオブジェクトを定義する情報を含む定義ファイルを格納する記憶部５０と、オブジェクトの選択を受け付ける画面を生成する選択画面生成部１４と、を備え、選択画面生成部１４は、指示された複数のユーザインタフェースのオブジェクト定義情報に基づき選択画面を生成し、生成部１３は、選択されたオブジェクトの定義情報を含む定義ファイルを生成し、これに基づく合成ユーザインタフェースを生成することを特徴とする。
2009123028.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムに基づいて各種の機能を実現するアプリケーションプログラム実行部と、
前記アプリケーションプログラムに基づく所定の機能の実行を前記アプリケーションプログラム実行部に指示するためのユーザインタフェースを生成するユーザインタフェース生成部と、
前記ユーザインタフェースの構成要素であるユーザインタフェースオブジェクトを定義するユーザインタフェースオブジェクト定義情報を含むユーザインタフェース定義ファイルを格納する記憶部と、
前記ユーザインタフェースオブジェクト定義情報に基づき、前記ユーザインタフェースオブジェクトの選択を受け付ける選択画面を生成する選択画面生成部と、を備え、
前記選択画面生成部は、複数のユーザインタフェースの合成が指示された場合、当該指示された複数のユーザインタフェースの各々に対応して前記記憶部に格納されるユーザインタフェース定義ファイルに含まれるユーザインタフェースオブジェクト定義情報に基づき前記選択画面を生成し、
前記ユーザインタフェース生成部は、前記選択画面において選択されたユーザインタフェースオブジェクトのユーザインタフェースオブジェクト定義情報を含む合成ユーザインタフェース定義ファイルを生成し、当該合成ユーザインタフェース定義ファイルに基づく合成ユーザインタフェースを生成することを特徴とするユーザインタフェース生成装置。
【請求項２】
前記ユーザインタフェースオブジェクト定義情報は、当該ユーザインタフェースオブジェクトと、当該ユーザインタフェースオブジェクトを構成要素とするユーザインタフェースを構成する他のユーザインタフェースオブジェクトとの関係を示す情報からなるユーザインタフェースオブジェクト属性情報を含み、
前記ユーザインタフェース生成部は、複数のユーザインタフェースの合成が指示された場合、前記選択画面において選択されたユーザインタフェースオブジェクトのユーザインタフェースオブジェクト属性情報、および当該ユーザインタフェースオブジェクトが所属するユーザインタフェースの識別情報に基づき、前記合成ユーザインタフェースにおける前記ユーザインタフェースオブジェクトの配置を決定することを特徴とする、請求項１に記載のユーザインタフェース生成装置。
【請求項３】
前記選択画面において選択されるユーザインタフェースオブジェクトの前記合成ユーザインタフェースにおける占有率を、前記ユーザインタフェースオブジェクト属性情報に基づいて積算する占有率積算部をさらに備え、
前記選択画面生成部は、前記占有率積算部により積算された合成ユーザインタフェースにおける占有率が所定値を超えた場合、当該所定値を超えた際に前記選択画面において選択されたユーザインタフェースオブジェクトの選択を解除すると共に、当該ユーザインタフェースオブジェクトの選択は困難である旨を報知することを特徴とする、請求項２に記載のユーザインタフェース生成装置。
【請求項４】
前記記憶部は、前記選択画面において選択されたユーザインタフェースオブジェクトに基づいて生成された合成ユーザインタフェース定義ファイルを前記記憶部に格納し、
前記アプリケーションプログラム実行部は、前記記憶部に格納された合成ユーザインタフェース定義ファイルに基づいて合成ユーザインタフェースを起動する際に、当該合成ユーザインタフェースを構成する各ユーザインタフェースオブジェクトに対応するアプリケーションプログラムを特定する関連アプリケーションプログラム情報に基づいて、対応するアプリケーションプログラムをバックグラウンドで起動することを特徴とする、請求項１〜３のいずれか１項に記載のユーザインタフェース生成装置。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、２００８年４月１日に出願された日本国特許出願２００８−９５５５８号の優先権を主張するものであり、この先の出願の開示全体をここに参照のために取り込む。
【技術分野】
【０００２】
本発明は、ユーザインタフェース生成装置に関し、特に、携帯端末のユーザインタフェースを生成するユーザインタフェース生成装置に関するものである。
【背景技術】
【０００３】
携帯電話に代表される携帯端末のユーザインタフェース（以下、適宜「ＵＩ」と略記する）は、ユーザが携帯端末を操作する際の操作性を大きく左右する。そのため、携帯端末のＵＩは、ユーザが携帯端末を購入する際の決め手となる重要な要素の１つになっている。【０００４】
近年、携帯端末は著しく多機能化し、それに伴いアニメーションや３Ｄの表現などを利用した表現力豊かなＵＩを備える携帯端末も多い。また、ユーザの嗜好に合わせてＵＩをカスタマイズできる携帯端末もあり、このような携帯端末は、ユーザにとっての利便性を著しく向上させている。【０００５】
従来の携帯端末は、各メーカ間および各機種間でＵＩのデザインや操作方法が異なるのが一般的であった。すなわち、ＵＩは各端末機器に固有のものであり、端末ごとに機種依存性の高いＵＩを備えるものがほとんどであった。そのため、端末の開発を行う際に、他の端末のプログラムコードを再利用する場合、そのプログラムコードに対して必要なＵＩ部分の変更は膨大になる。したがって、ある端末のプログラムコードを他の端末に移植するのは困難であった。【０００６】
そこで、最近では、ＸＭＬ（Extensible Markup Language）をベースにしたＵＩが導入されつつある。記述方式が共通化されたＸＭＬファイルを用いてＵＩを表現することによって、プログラムコードの再利用が容易になり、他の機種へのＵＩの移植も可能になる。したがって、例えば、異なるメーカの異なる端末機種間でも同じＵＩを使用することができるなど、各端末からＵＩのみを独立させるように扱うことも可能になる。【０００７】
このような、ＸＭＬをベースにしたＵＩのうち代表的なものとして、ＴＡＴ社（http://www.tat.se/）が開発したＵＩ  Ｆｏｕｎｄａｔｉｏｎや、Ａｃｒｏｄｅａ社（http://www.acrodea.co.jp/）が開発したＶＩＶＩＤ  ＵＩや、Ｑｕａｌｃｏｍｍ社（http://www.qualcomm.co.jp/）が開発したＵＩ  Ｏｎｅなどを挙げることができる。【０００８】
また、近年の携帯端末は、端末本体の多機能化および高性能化に伴い、同時に複数のタスクを並行して実行できるマルチタスク処理に対応したＯＳ（オペレーティングシステム）を実装したものが増えている。さらに、並行して同時に処理する複数のタスクにそれぞれの表示領域（ウィンドウ）を割り当てて、出力画面の表示を多重化するマルチウィンドウ機能に対応した携帯端末も普及しつつある。【０００９】
ところで、例えば特開２００１−３６６５２号公報には、赤外線通信部を備える携帯電話端末を用いて、赤外線通信により複数の外部機器を遠隔操作（制御）できるようにした技術が開示されている。この特開２００１−３６６５２号公報に記載の携帯電話端末は、外部機器との通信を行う外部制御部を備えている。この携帯電話端末は、外部の機器を遠隔制御するための外部機器制御情報を、電話回線などを介して取得したり、または外部機器から受信するなどして記憶し、この外部機器制御情報に基づいて外部機器を遠隔制御することができる。すなわち、内蔵のアプリケーションプログラム（以下、単に「アプリケーション」という）を変更することで、通常は携帯電話として使用する端末本体を、複数の外部機器を遠隔操作するリモートコントロール（以下、単に「リモコン」という）端末として用いることができる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記特開２００１−３６６５２号公報に開示されている携帯電話端末によれば、各外部機器に対応するそれぞれの外部機器制御情報に基づいて、１台の携帯電話端末で複数の外部機器を遠隔操作できる。したがって、複数の外部機器のそれぞれについて個別のリモコン端末を複数使い分ける煩雑な操作が必要なく、ユーザにとっての利便性を高めることができる。【００１１】
このような、遠隔制御する複数の外部機器を切り替えるリモコン機能を、上述したマルチタスク処理が可能な携帯端末にて実現すれば、各リモコンのアプリケーションをいちいち一旦終了させて次のリモコンのアプリケーションを起動させる必要はない。すなわち、複数のアプリケーションを１つの端末で同時に起動させて、その中から、使いたい任意のリモコンのアプリケーションに適時切り替えて使用できる。【００１２】
しかしながら、複数のアプリケーションを頻繁に切り替えて使用する場合には、その切り替え操作は煩雑なものとなる。【００１３】
そこで、携帯端末に上述したマルチウィンドウの機能を組み合わせれば、複数のウィンドウに、複数のアプリケーションを操作するＵＩをそれぞれ再現することも可能になる。このようにすれば、複数のアプリケーションを切り替えて使用するのではなく、１画面上で同時に使用できる。【００１４】
例えば、図１９（Ａ）に示すような、テレビのリモコン端末単独であれば、図１９（Ｂ）に示すように、例えばタッチパネル２００を備える携帯端末１００上に、テレビリモコンアプリケーションのＵＩを、その操作性を維持したまま再現できる。なお、図１９（Ａ）のリモコン端末において、テンキーなどのキーやボタンは機械式のキーであるが、図１９（Ｂ）の携帯端末１００においては、テンキーなどを描画して再現したオブジェクトをタッチパネル２００に表示している。また、図１９（Ｃ）に示すような、エアコンディショナーのリモコン端末単独の場合も同様に、図１９（Ｄ）のように、タッチパネル２００を備える携帯端末１００上に、エアコンディショナーリモコンアプリケーションのＵＩを、その操作性を維持したまま再現できる。さらに、それぞれのアプリケーションのＵＩを、ＸＭＬをベースとして記述すれば、他メーカの端末などにアプリケーションを移植しても、ＵＩを記述したＸＭＬのファイルを加工するだけでほとんど同じＵＩを容易に再現できる。【００１５】
しかしながら、上述の例において、テレビの視聴中にエアコンディショナーの操作を行う場合に、テレビもエアコンディショナーも頻繁な操作を要する状況も想定される。このような場合、両方のリモコンのアプリケーションを、マルチタスクおよびマルチウィンドウの機能を用いて、表示部の表示領域を分割して同時に表示したとする。この場合、各アプリケーションは単独で使用することを想定したＵＩしか備えていないため、各ＵＩをそのまま同時表示すると、図２０（Ａ）〜（Ｄ）に示すような状態になる。【００１６】
図２０（Ａ）〜（Ｄ）は、マルチタスクおよびマルチウィンドウの機能を実装した携帯端末１００で２つのアプリケーションのＵＩを同時表示した様子を示す図である。図に示す例においては、タッチパネル２００の表示部の表示を上下に分割した各ウィンドウ内で、それぞれのＵＩをそのまま再現したため、各ＵＩとも一部しか表示されていない。画面上に表示しきれない部分の操作を行うために、各ウィンドウの右端にはスクロールバーを備えている。【００１７】
例えば図２０（Ａ）に示す状態で、テレビの音量を調節したい場合には、ユーザは、テレビリモコンＵＩのウィンドウのスクロールバーを移動して、図２０（Ｂ）に示すようにテレビリモコンＵＩの表示範囲を移動させなくてはならない。同様に、例えば図２０（Ｃ）に示す状態で、エアコンディショナーの温度を調節したい場合、ユーザは、エアコンディショナーリモコンＵＩのウィンドウのスクロールバーを移動して、図２０（Ｄ）に示すようにエアコンディショナーリモコンＵＩの表示範囲を移動させなくてはならない。このように、ＵＩを構成する各種キーまたはボタンおよび情報表示箇所など（以下、「ＵＩオブジェクト」という）のうち、ユーザが所望するものがＵＩの表示範囲に表示されていない場合には、絶えずその表示範囲を移動させる操作が必要になる。さらに、マルチウィンドウで複数のアプリケーションを起動する場合、ＵＩを重畳表示する際は、まず入力するウィンドウを選択してアクティブにしてから入力操作を開始しなくてはならない。【００１８】
特に、携帯端末の場合は、端末本体が非常に小さく設計されるため、タッチパネルで構成するＵＩの場合も物理的なキーで構成するＵＩの場合も、ＵＩとして利用できる領域は極めて制限されている。したがって、リモコンなどのアプリケーションのＵＩを構成する操作部は、もともと最小に近い大きさで設計されるのが一般的である。そのため、複数のアプリケーションのＵＩを同時表示する際に、各ＵＩをそれぞれ全体的に縮小して同時に表示すると、各ＵＩオブジェクトが小さくなり過ぎて、各ＵＩの操作性が著しく低下する恐れもある。このように一画面用にデザインされたＵＩをマルチウィンドウで表示した場合、その操作性は悪化してしまう。【００１９】
また、端末を使用しているユーザにとっては、このように一画面用にデザインされたＵＩを構成するＵＩオブジェクトの全てが必要とは限らない。ユーザにとって必要のないＵＩオブジェクトがＵＩに含まれていると、そのＵＩオブジェクトは操作の妨げになり、ＵＩ全体としての操作性を低下させる恐れもある。【００２０】
したがって、かかる事情に鑑みてなされた本発明の目的は、複数のアプリケーションプログラムのユーザインタフェースを同時に実現するに際し、選択されたＵＩオブジェクトのみによってＵＩを合成し、かつ各ユーザインタフェースの操作性を維持できるユーザインタフェース生成装置を提供することにある。
【課題を解決するための手段】
【００２１】
上記目的を達成する第１の観点に係るユーザインタフェース生成装置の発明は、
アプリケーションプログラムに基づいて各種の機能を実現するアプリケーションプログラム実行部と、
前記アプリケーションプログラムに基づく所定の機能の実行を前記アプリケーションプログラム実行部に指示するためのユーザインタフェースを生成するユーザインタフェース生成部と、
前記ユーザインタフェースの構成要素であるユーザインタフェースオブジェクトを定義するユーザインタフェースオブジェクト定義情報を含むユーザインタフェース定義ファイルを格納する記憶部と、
前記ユーザインタフェースオブジェクト定義情報に基づき、前記ユーザインタフェースオブジェクトの選択を受け付ける選択画面を生成する選択画面生成部と、を備え、
前記選択画面生成部は、複数のユーザインタフェースの合成が指示された場合、当該指示された複数のユーザインタフェースの各々に対応して前記記憶部に格納されるユーザインタフェース定義ファイルに含まれるユーザインタフェースオブジェクト定義情報に基づき前記選択画面を生成し、
前記ユーザインタフェース生成部は、前記選択画面において選択されたユーザインタフェースオブジェクトのユーザインタフェースオブジェクト定義情報を含む合成ユーザインタフェース定義ファイルを生成し、当該合成ユーザインタフェース定義ファイルに基づく合成ユーザインタフェースを生成することを特徴とするものである。【００２２】
第２の観点に係る発明は、第１の観点に係るユーザインタフェース生成装置において、
前記ユーザインタフェースオブジェクト定義情報は、当該ユーザインタフェースオブジェクトと、当該ユーザインタフェースオブジェクトを構成要素とするユーザインタフェースを構成する他のユーザインタフェースオブジェクトとの関係を示す情報からなるユーザインタフェースオブジェクト属性情報を含み、
前記ユーザインタフェース生成部は、複数のユーザインタフェースの合成が指示された場合、前記選択画面において選択されたユーザインタフェースオブジェクトのユーザインタフェースオブジェクト属性情報、および当該ユーザインタフェースオブジェクトが所属するユーザインタフェースの識別情報に基づき、前記合成ユーザインタフェースにおける前記ユーザインタフェースオブジェクトの配置を決定することを特徴とするものである。【００２３】
第３の観点に係る発明は、第２の観点に係るユーザインタフェース生成装置において、
前記選択画面において選択されるユーザインタフェースオブジェクトの前記合成ユーザインタフェースにおける占有率を、前記ユーザインタフェースオブジェクト属性情報に基づいて積算する占有率積算部をさらに備え、
前記選択画面生成部は、前記占有率積算部により積算された合成ユーザインタフェースにおける占有率が所定値を超えた場合、当該所定値を超えた際に前記選択画面において選択されたユーザインタフェースオブジェクトの選択を解除すると共に、当該ユーザインタフェースオブジェクトの選択は困難である旨を報知することを特徴とするものである。【００２４】
さらに、第４の観点に係る発明は、第１〜第３のいずれか１つの観点に係るユーザインタフェース生成装置において、
前記記憶部は、前記選択画面において選択されたユーザインタフェースオブジェクトに基づいて生成された合成ユーザインタフェース定義ファイルを前記記憶部に格納し、
前記アプリケーションプログラム実行部は、前記記憶部に格納された合成ユーザインタフェース定義ファイルに基づいて合成ユーザインタフェースを起動する際に、当該合成ユーザインタフェースを構成する各ユーザインタフェースオブジェクトに対応するアプリケーションプログラムを特定する関連アプリケーションプログラム情報に基づいて、対応するアプリケーションプログラムをバックグラウンドで起動することを特徴とするものである。
【図面の簡単な説明】
【００２５】
【図１】本発明のユーザインタフェース生成装置の概略構成を示すブロック図である。
【図２】本発明の関連アプリケーションプログラム情報の例を示す図である。
【図３】本発明の合成ユーザインタフェースを生成する処理全体を説明するフローチャートである。
【図４】本発明のユーザインタフェース合成の際にユーザインタフェースを選択する条件を説明する図である。
【図５】本発明のユーザインタフェース合成の際にユーザインタフェースを選択する条件を説明する図である。
【図６】本発明のユーザインタフェース合成の際に表示するユーザインタフェースオブジェクト選択画面の例を示す図である。
【図７】本発明のユーザインタフェースオブジェクト選択画面の動作を説明する図である。
【図８】本発明のユーザインタフェースオブジェクト選択画面の動作を説明する図である。
【図９】本発明のユーザインタフェースオブジェクト選択画面の動作を説明する図である。
【図１０】本発明のユーザインタフェースオブジェクト選択画面の動作を説明する図である。
【図１１】本発明のユーザインタフェースオブジェクト選択画面の動作を説明する図である。
【図１２】本発明のユーザインタフェースオブジェクト選択画面の動作を説明する図である。
【図１３】本発明のユーザインタフェース定義ファイルの例を示す図である。
【図１４】本発明のアプリケーションプログラム別ユーザインタフェース管理テーブルの例を説明する図である。
【図１５】本発明のユーザインタフェース生成装置のユーザインタフェース生成部が行う処理を説明するフローチャートである。
【図１６】本発明のユーザインタフェース生成装置のユーザインタフェース生成部が行うユーザインタフェース生成処理をさらに説明するフローチャートである。
【図１７】本発明のユーザインタフェース生成装置にてアプリケーションプログラムを単体で実行する場合の処理全体を説明するフローチャートである。
【図１８】本発明の合成ユーザインタフェースによりアプリケーションプログラムを実行する際の処理全体を説明するフローチャートである。
【図１９】従来のリモートコントロール端末を携帯端末のユーザインタフェースで再現した状態を示す図である。
【図２０】従来の携帯端末にて２つのユーザインタフェースを合成した例を示す図である。
【符号の説明】
【００２６】
１  携帯電話
１０  制御部
１１  アプリケーションプログラム実行部
１２  ユーザインタフェース取得部
１３  ユーザインタフェース生成部
１４  ユーザインタフェースオブジェクト選択処理部
１５  ユーザインタフェースリソース整形部
１６  合成ユーザインタフェース定義ファイル生成部
２０  タッチパネル
２２  入力部
２４  表示部
３０  無線通信部
４０  赤外線通信部
５０  記憶部
５１  アプリケーションプログラム記憶領域
５２  ユーザインタフェース定義ファイル記憶領域
５３  個別ユーザインタフェースリソース記憶領域
５４  共通ユーザインタフェースリソース記憶領域
５５  関連アプリケーションプログラム情報記憶領域
５６  合成ユーザインタフェース定義ファイル記憶領域
【発明を実施するための最良の形態】
【００２７】
以下、本発明の各実施の形態について、図面を参照して説明する。以下の各実施の形態では、本発明のユーザインタフェース（以下、「ＵＩ」と記す）生成装置の一例として、各種外部機器の遠隔制御が可能なリモコン機能を実装した携帯電話を想定して説明する。しかしながら、本発明のＵＩ生成装置は携帯電話に限定されるものではなく、例えばノートパソコンやＰＤＡなどの任意の携帯端末などに適用することができる。また、本発明の実装を必要とする装置であれば、携帯端末にも限定されることはない。なお、本発明は、複数のＵＩを同時に使用できるように合成することを主目的とするものであり、各ＵＩにより指示を受けるアプリケーションはリモコン機能に限定されるものではなく、任意の各種アプリケーションに適用することができる。【００２８】
図１は、本発明の実施の形態に係るＵＩ生成装置である携帯電話の概略構成を示すブロック図である。【００２９】
携帯電話１は、全体を制御する制御部１０と、ユーザからの入力を受け付けると共に、各アプリケーションに応じて入力結果などの表示を行うタッチパネル２０とを備えている。タッチパネル２０は、ユーザからの入力を受け付けるマトリクススイッチなどで構成した入力部２２を、液晶ディスプレイなどで構成した表示部２４の前面に重畳させて構成する。表示部２４は、アプリケーションプログラムに関する表示をする他、ユーザの操作入力を受け付ける各種キーやボタンなどのＵＩを所定のＵＩ表示領域に描画して表示する。【００３０】
また、携帯電話１は、図示しない基地局と音声通話および電子メールのデータなど各種情報を送受信する無線通信部３０と、図示しない各種外部機器と赤外線により通信を行う赤外線通信部４０とを備えている。無線通信部３０を用いて、携帯電話１は、インターネットや無線等を介して端末外部と各種データの送受信を行う。【００３１】
さらに、携帯電話１は、入力された情報および各種アプリケーション等を記憶したり、ワークメモリなどとしても機能する記憶部５０を有する。記憶部５０は、アプリケーション記憶領域５１と、ＵＩ定義ファイル記憶領域５２と、個別ＵＩリソース記憶領域５３と、共通ＵＩリソース記憶領域５４と、関連アプリケーション情報記憶領域５５と、合成ＵＩ定義ファイル記憶領域５６とを含む。【００３２】
なお、制御部１０は、アプリケーション実行部１１と、ＵＩ取得部１２と、ＵＩ生成部１３と、ＵＩオブジェクト選択処理部１４と、ＵＩリソース整形部１５と、合成ＵＩ定義ファイル生成部１６とを含んでいる。【００３３】
制御部１０において、アプリケーション実行部１１は、記憶部５０のアプリケーション記憶領域５１に保存された各種アプリケーションを読み出して実行すると共に、当該実行に関する制御を行う。また、アプリケーション実行部１１は、アプリケーション記憶領域５１に保存された各種アプリケーションに対応するＵＩへの入力に基づいて、当該入力に対応する各種アプリケーションの機能を実行する。【００３４】
ＵＩ取得部１２は、無線通信部３０を介して端末の外部にあるリソース（画像データ等）およびＵＩ定義ファイル（ＸＭＬファイルなど）を取得する。ＵＩ生成部１３は、ＵＩ定義ファイルに対してパース処理（パーシング）およびＤＯＭ(Document Object Model)化処理などを行い、実際に使用するＵＩを生成する。なお、ＵＩ生成部１３は、ＸＭＬの形式で記述されたＵＩの情報をＸＭＬエンジンによって解釈し、ＵＩ定義ファイルに基づいて生成されたＵＩをタッチパネル２０の表示部２４に表示する。【００３５】
ＵＩオブジェクト選択処理部１４は、表示部２４に描画するＵＩオブジェクトを定義するＵＩオブジェクト定義情報を解析することにより、ユーザによるＵＩオブジェクトの選択を受け付ける選択画面を生成する処理および制御を行う。以下、ＵＩオブジェクトの情報を表示部２４に表示して、ユーザによる選択を受け付ける画面を、「ＵＩオブジェクト選択画面」または単に「選択画面」と記す。したがって、本実施の形態では、ＵＩオブジェクト選択処理部１４は選択画面生成部を構成する。さらに、ＵＩオブジェクト選択処理部１４は、表示部２４の所定の表示領域に複数のＵＩを合成するよう指示されると、指定された複数のＵＩ定義ファイルに基づいてＵＩの合成を行う。【００３６】
なお、ＵＩオブジェクト選択処理部１４は、ＵＩオブジェクト選択画面上で、選択されたＵＩオブジェクトが占める占有率を積算する占有率積算部（図示せず）を含む。この占有率積算部は、各ＵＩオブジェクトのＵＩオブジェクト定義情報に含まれるＵＩオブジェクト属性情報に基づいて、ＵＩオブジェクトの占有率を積算する。【００３７】
ＵＩリソース整形部１５は、選択されたＵＩオブジェクトのプレビュー処理や、ＵＩを合成する際に利用するリソースのデータの拡大または縮小処理などを行う。なお、この場合、個別ＵＩリソース記憶領域５３または共通ＵＩリソース記憶領域５４に記憶されているリソースのデータを読み出して使用する。合成ＵＩ定義ファイル生成部１６は、ＵＩオブジェクト選択処理部１４によって合成されたＵＩを合成ＵＩ定義ファイルとして生成して出力する。【００３８】
記憶部５０において、アプリケーション記憶領域５１には、各種のアプリケーションを記憶する。ＵＩ定義ファイル記憶領域５２には、各ＵＩ全体を生成する際の一連の生成ルールを定義するＵＩ定義ファイルを記憶する。また、個別ＵＩリソース記憶領域５３は、各アプリケーション固有のＵＩの生成に使用する画像データや文字列（テキスト）データなどの個別ＵＩリソースを記憶する。共通ＵＩリソース記憶領域５４は、各アプリケーション固有の個別ＵＩリソース以外の、端末にて用いられるＵＩが共有して使用する画像データやフォントのデータなどの共通ＵＩリソースを記憶する。実際にＵＩを生成する際には、個別ＵＩリソース記憶領域５３および共通ＵＩリソース記憶領域５４に記憶された画像データおよびテキストデータなどを、タッチパネル２０の表示部２４に表示する。【００３９】
さらに、合成ＵＩ定義ファイル記憶領域５６は、合成ＵＩ定義ファイル生成部１６が生成したＵＩ定義ファイルを記憶する。また、関連アプリケーション情報記憶領域５５には、各合成ＵＩ定義ファイルに関連するアプリケーションに対する起動情報などを含む関連アプリケーション情報を記憶する。なお、図２に、関連アプリケーション情報の一例を示す。図２において、表の左側に示した合成ＵＩ定義ファイルに対応する関連アプリケーションを、それぞれ表の右側に示してある。【００４０】
次に、本実施の形態にてＵＩ定義ファイル記憶領域５２に記憶するＵＩ定義ファイルについて説明する。【００４１】
記憶部５０のＵＩ定義ファイル記憶領域５２には、アプリケーション記憶領域５１に記憶された各アプリケーションが実行される際に必要なＵＩの、当該アプリケーションに対応した各仕様および動作などを定義するＵＩ定義ファイルが記憶される。異なるアプリケーションで同じＵＩを使う状況も考えられるが、ここでは説明の便宜のため、異なるアプリケーションに対してそれぞれ異なるＵＩを用いる場合を想定し、各アプリケーションにそれぞれ対応した各ＵＩ定義ファイルを保存している場合について説明する。例えば、図示しない外部機器であるテレビ受像機を携帯電話１にて遠隔制御するテレビリモコンアプリケーションに対応して、テレビリモコンＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２に記憶する。同様に、図示しない外部機器のエアコンディショナーを携帯電話１にて遠隔制御するエアコンディショナーリモコンアプリケーションに対応して、エアコンディショナーリモコンＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２に記憶する。【００４２】
本実施の形態では、ＵＩ定義ファイルを記述する言語の例として、ＸＭＬ言語をベースにしたＵＩＭＬ(User Interface Markup Language)の形式に従って説明する。このＵＩＭＬファイル形式で記述される定義に従って、ＵＩ生成部１３は、携帯電話１のタッチパネル２０の表示部２４にＵＩを表示し、アプリケーション実行部１１は、ユーザによる入力部２２に対する入力に応じた処理を行う。【００４３】
本実施の形態によるＵＩ定義ファイルには、表示部２４に描画するＵＩオブジェクトを定義するＵＩオブジェクト定義情報を含ませる。ＵＩオブジェクト定義情報は、表示部２４に表示するＵＩを構成する要素であるキーまたはボタンなどのＵＩオブジェクトを描画するための画像およびテキストを定義する情報、および、そのＵＩオブジェクトに入力がされた際の（実際にはＵＩオブジェクトに対応する入力部２２の部位に入力がされた際の）動作を定義する情報などで構成される。【００４４】
また、本実施の形態では、ＵＩオブジェクトの位置に対応する入力部２２に入力がされた際の動作を定義する情報として、ＵＩオブジェクト定義情報に、各ＵＩオブジェクトに対するイベント発生時に各アプリケーション実行部が実行すべき動作内容を示すアクション情報を含める。例えば、テレビリモコンＵＩの「電源」のＵＩオブジェクトの位置に対応する入力部２２に対する入力のイベントが発生した場合、テレビリモコンアプリケーションに対して、外部機器のテレビの電源をＯＮまたはＯＦＦにする赤外線信号を発信する指示を出すようアクション情報で定義する。【００４５】
上述したように、ＵＩオブジェクト定義情報は、複数のＵＩを合成する際に用いる各ＵＩオブジェクトに関する情報であるＵＩオブジェクト属性情報を含む。このＵＩオブジェクト属性情報は、例えば、ＵＩを構成する他のＵＩオブジェクトとの関係を示す情報、および、複数のＵＩを合成する際に各ＵＩオブジェクトと他のＵＩオブジェクトとの関係に基づいて各オブジェクトが表示される優先度の情報など、各種の情報を付加できる。また、ＵＩ定義ファイルは、当該ＵＩ定義ファイルに対応するＵＩの識別情報を含む。ＵＩの識別情報は、例えば当該ＵＩの名称をテキスト情報として付加できる。【００４６】
次に、図３〜図７を参照しながら、本実施の形態に係る携帯電話１による合成ＵＩ生成の一連の動作について説明する。【００４７】
本実施の形態では、複数のアプリケーションを使い分けて同時に使用することが必要になることをユーザが予め想定して、複数のＵＩからユーザによって選択されたＵＩオブジェクトのみを採用して、ユーザが所望するＵＩオブジェクトのみで構成される合成ＵＩを生成する。このため、記憶部５０には、アプリケーション記憶領域５１に記憶されている各種のアプリケーションに対応する各ＵＩのＵＩ定義ファイルを、ＵＩ定義ファイル記憶領域５２に予め記憶する。【００４８】
図３は、本実施の形態に係る携帯電話１による合成ＵＩ生成の一連の動作全体について説明するフローチャートである。【００４９】
まず、ユーザからの入力部２２への操作入力などに基づいて、アプリケーション実行部１１は、合成ＵＩを生成する処理を行うためのアプリケーション（合成ＵＩ生成アプリケーション）を、アプリケーション記憶領域５１から読み出して起動する（ステップＳ１１）。この合成ＵＩ生成アプリケーションは、複数のＵＩから所望のＵＩオブジェクトだけを選択して合成ＵＩを生成する処理が行えるように構成されたアプリケーションである。【００５０】
合成ＵＩ生成アプリケーションが起動されると、複数のＵＩからＵＩオブジェクトを選択するＵＩをユーザに指定させるために、ＵＩオブジェクト選択処理部１４は、選択対象となるＵＩ定義ファイルを絞り込む条件を表示部２４に表示して、ユーザによる条件指定を入力部２２にて受け付ける（ステップＳ１２）。【００５１】
すなわち、合成ＵＩ生成アプリケーションが起動されると、ＵＩオブジェクト選択処理部１４は、例えば図４（Ａ）に示すような画面を表示部２４に表示して、合成ＵＩを生成するためのＵＩを選択する条件の、ユーザによる指定を受け付ける。図４（Ａ）に示すように、入力部２２にて例えば「取得時間順」がユーザにより選択されると、ＵＩオブジェクト選択処理部１４は、図４（Ｂ）に示すように、携帯電話１が取得したＵＩ定義ファイルのＵＩ名称を、画面上側から新しい順に表示する。ユーザは、列挙されたＵＩ名称の中から採用したいＵＩオブジェクトが含まれるＵＩを選択することができる。ＵＩオブジェクト選択処理部１４が表示部２４に表示するＵＩ名称を列挙する際は、各ＵＩ定義ファイルが最初にＵＩ定義ファイル記憶領域５２に記憶される際に付加（または更新）される日時情報を参照することで、新しく取得した順に並べて表示することができる。【００５２】
また、図５（Ａ）に示すように、入力部２２にて例えば「機能別」がユーザにより選択されると、ＵＩオブジェクト選択処理部１４は、図５（Ｂ）に示すように、各ＵＩ定義ファイルのＵＩ名称を、ＵＩの機能別すなわちアプリケーション別（この例ではリモコンアプリケーションに対応する機器別）に分類して画面上に表示する。【００５３】
上述したものの他、合成ＵＩを生成するＵＩを選択する条件としては、各ＵＩ（またはＵＩに対応するアプリケーション）を提供するメーカにより分類する「メーカ別」や、ＵＩ取得部１２を介する等して携帯端末１がＵＩ定義ファイルを取得した場所（例えば「自分の部屋」や「リビング」など）により分類する「取得場所」など、種々の条件が考えられる。以下の説明においては、図５（Ｂ）に示すようにＵＩの「機能別」の分類においてユーザがＵＩオブジェクトを選択する場合について説明する。【００５４】
なお、図５（Ａ）に示すように、与えられた条件からユーザによる選択がされて、図５（Ｂ）のように選択された条件に基づいてＵＩ定義ファイルのＵＩ名称を表示する際、ＵＩオブジェクト選択処理部１４は、この選択によって絞り込まれた複数のＵＩ定義ファイルの内容を解析し、その中に含まれるＵＩオブジェクト定義情報を抽出する（ステップＳ１３）。このように、採用される可能性のあるＵＩオブジェクトのＵＩオブジェクト定義情報を抽出したら、これに基づいて、ＵＩオブジェクト選択処理部１４は、各ＵＩが選択された際に、当該ＵＩを構成する各ＵＩオブジェクトの情報を表示する（ステップＳ１４）。【００５５】
すなわち、図５（Ｂ）にてＵＩ名称が示された各ＵＩ（例えば「エアコンディショナー」や「ＴＶ」など）が選択されると、各ＵＩに対応するＵＩ定義ファイルにおいて各ＵＩオブジェクトの名称がテキスト情報として与えられている場合には、例えば図６（Ａ）に示すように、当該ＵＩを構成するＵＩオブジェクトのテキスト情報（各キーの名称）を表示する。この場合、ＵＩオブジェクト選択処理部１４は、ＵＩオブジェクトの名称を表示するに際し、各ＵＩオブジェクト定義情報に含まれるＵＩオブジェクトに関連するテキストデータを抽出して表示する。図６（Ａ）は、図５（Ｂ）に示したＵＩのうち「エアコンディショナー」および「ＴＶ」を（チェックボックスを押下して入力する等して）選択し、エアコンディショナーリモコンアプリケーションおよびテレビリモコンアプリケーションのＵＩを構成する各ＵＩオブジェクトの表示を展開した例を示す。【００５６】
選択されたＵＩの各ＵＩオブジェクトの情報を表示したら、ＵＩオブジェクト選択処理部１４は、採用するＵＩオブジェクトのユーザによる選択を受け付ける。したがって、本実施の形態では、このように、ＵＩオブジェクトの情報を表示部２４に表示して、ユーザによる選択を受け付ける画面が、ＵＩオブジェクト選択画面を構成する。【００５７】
図６（Ａ）に示すように各ＵＩを構成するＵＩオブジェクトの情報を表示する際、例えばエアコンディショナーリモコンアプリケーションのＵＩにおいて、「温度上」（温度上昇）のキーのみをユーザが選択することはなく、通常は「温度下」（温度下降）のキーと対にして採用するものと想定される。このように、リモコンアプリケーションのような用途に用いるＵＩには、対として用いるＵＩオブジェクトが多い。そのため、このような対として意味を成す複数のＵＩオブジェクトは、対として採用または不採用を決定できるようにするのが好適である。 【００５８】
このためには、ＵＩ定義ファイルに含まれるＵＩオブジェクト定義情報に、複数のＵＩオブジェクトが対（または同じグループ）であることを示す関連性情報をＵＩオブジェクト属性情報として付加し、その関連性情報（属性）の値によって、対であるＵＩオブジェクトを定義する。本明細書の末尾に示すＸＭＬ形式によるＵＩ定義ファイルの例の中では、このＵＩオブジェクト関連性情報を、属性(relate_ID)として示す。この属性(relate_ID)に同じ値を付加することにより、複数のＵＩオブジェクトを同じグループとして扱うことができる。【００５９】
このように、対になるＵＩオブジェクトを関連付けて表示することで、例えば図６（Ｂ）に示すように、関連するＵＩオブジェクトを、対として採用または不採用を決定できる。図６（Ｂ）に示す例では、エアコンディショナーリモコン用ＵＩの「温度」および「風向」のＵＩオブジェクト、ならびにＴＶリモコン用ＵＩの「選局」および「音量」のＵＩオブジェクトの名称を対として表示し、これらを対として採用または不採用が決定できる。これらのＵＩオブジェクトの名称をまとめて表示することで、表示スペースを節約し、選択画面の限られた表示領域を有効に活用できる。【００６０】
また、ＵＩ定義ファイルによっては、各ＵＩを構成するＵＩオブジェクトの名称の全てがテキスト情報として与えられてはいない場合もある。このような場合、すなわち、表示すべきテキストデータが各ＵＩオブジェクト定義情報に含まれていない場合、ＵＩオブジェクト選択処理部１４は、各ＵＩに対応して個別ＵＩリソース記憶領域５３または共通ＵＩリソース記憶領域５４に格納されているリソースデータの中から、ＵＩオブジェクトの画像データを読み出し、これを縮小して表示する。【００６１】
このようにすることで、ＵＩオブジェクトの名称のテキスト情報がない場合でも、例えば図６（Ｃ）に示すように、ＵＩを構成するＵＩオブジェクトをユーザに対して視覚的に表示することができる。図６（Ｃ）では、ＵＩオブジェクト定義情報の中に、「表示ウィンドウ」および「ダイレクト選局キー」のＵＩオブジェクトに対応するテキスト情報がないため、当該ＵＩオブジェクトの縮小画像を表示した例を示す。【００６２】
なお、携帯電話１の初期設定により、またはユーザの好みの設定に応じて、図６（Ｄ）に示すように、全てのＵＩオブジェクトに対して、ＵＩオブジェクトの縮小画像を表示することもできる。各ＵＩオブジェクトは、実際に表示部２４に表示してＵＩとして使用する際には必ず画像を使用するため、当該ＵＩオブジェクトが名称のテキスト情報を含んでいるか否かに関わらず、縮小画像を表示することができる。このようにテキスト情報だけでなく画像も表示することにより、ユーザにとっては一層視覚的にＵＩオブジェクトの選択ができる。図６（Ｄ）に示す例においても、ＵＩオブジェクトの関連性情報を用いて、対として扱うべきＵＩオブジェクトをまとめて表示している。【００６３】
図６（Ａ）〜（Ｄ）のいずれかのようなＵＩオブジェクト選択画面を表示したら、ＵＩオブジェクト選択処理部１４は、ユーザによるＵＩオブジェクトの選択入力を受け付ける（ステップＳ１５）。入力部２２にユーザによる（チェックボックスを押下する入力等の）選択入力がされたら（ステップＳ１５のＹｅｓ）、ＵＩオブジェクト選択処理部１４は、選択されたＵＩオブジェクトが表示部２４の所定のＵＩ表示領域内で占める面積の割合の合計（以下、「積算画面占有率」という）を算出する（ステップＳ１６）。この処理のため、各ＵＩオブジェクトのＵＩオブジェクト定義情報には、ＵＩオブジェクト属性情報として、各ＵＩオブジェクトのＵＩ表示領域における占有率を予め含ませる。【００６４】
この時、例えば図７（Ａ）に示すＵＩオブジェクト選択画面から、図７（Ｂ）に示すようにＵＩオブジェクトが選択される際には、表示部２４の最下端のソフトキー領域を除くＵＩオブジェクト選択画面の下端に、上述した積算画面占有率を棒グラフなどにより表示して示すのが好適である。図７（Ｂ）の例では、エアコンディショナーリモコン用ＵＩから「電源」（占有率１０％）および「表示ウィンドウ」（占有率３０％）のＵＩオブジェクトを選択し、さらにＴＶリモコン用ＵＩから「電源」（占有率１０％）のＵＩオブジェクトを選択している。そのため、選択画面下端の棒グラフは、積算画面占有率が５０％になることを示している。これは、実際にＵＩを合成して表示部２４に表示した際に、ＵＩ表示領域の５０％ぶんを占めるＵＩオブジェクトが現在選択されていることを示す。なお、図７においては、チェックボックスが黒色になっている場合に、そのＵＩオブジェクトが選択されていることを示している。【００６５】
図７（Ｃ）は、ユーザによる入力部２２への更なる入力により、エアコンディショナーリモコン用ＵＩから「温度上／温度下」（占有率１５％）のＵＩオブジェクトが選択され、積算画面占有率が６５％になったことを示している。このように、ＵＩオブジェクトを順次追加するユーザによる入力を受け付けるが、積算画面占有率が所定の閾値（例えば１００％）を超えると、合成したＵＩをＵＩ表示領域に表示することができなくなるため、ＵＩオブジェクト選択処理部１４は、積算画面占有率が所定の閾値を超えたか否かをチェックする（ステップＳ１７）。【００６６】
このようにして、積算画面占有率が所定の閾値を超えないうちは（ステップＳ１７のＮｏ）ＵＩオブジェクトをまだ追加できるため、ステップＳ１５に戻り、ユーザによる入力部２２への更なる入力を受け付ける。しかしながら、ＵＩオブジェクトが選択された際の積算画面占有率が所定の閾値を超える場合（ステップＳ１７のＹｅｓ）、当該ＵＩオブジェクトは配置できないため、ＵＩオブジェクト選択処理部１４は、例えば図７（Ｄ）に示すような警告を表示部２４に表示する（ステップＳ１８）。【００６７】
なお、ステップＳ１８の警告表示の代わりに、またはこの警告表示と合わせて、選択されると積算画面占有率が所定の閾値を超えてしまうＵＩオブジェクトについては、グレイアウト表示などをすることにより、選択できないようにすることもできる。図７（Ｄ）に示した選択画面では、選択すると１００％を超えるＵＩオブジェクトについては、グレイアウト表示をすることにより選択できないことを示し、それでも当該ＵＩオブジェクトを選択するユーザの入力があった場合に警告を表示する様子を示している。【００６８】
積算画面占有率の所定の閾値を超えて選択されたＵＩオブジェクトは、ＵＩを合成する際に配置できないため、ＵＩオブジェクト選択処理部１４は、閾値を超えて選択したＵＩオブジェクトの選択を解除してから（ステップＳ１９）、ステップＳ１５に戻って他の（積算画面占有率が所定の閾値を超えない）ＵＩオブジェクトの選択を受け付ける。【００６９】
このようにして、積算画面占有率の所定の閾値を超えないうちは、ユーザは複数のＵＩから自由に所望のＵＩオブジェクトを選択できる。なお、ＵＩオブジェクトを選択する際、積算画面占有率を棒グラフで表示するだけでは実際の配置の様子を把握し難い場合も想定される。このような場合、例えば図８（Ａ）に示す表示部２４の右下端にあるソフトキーの「プレビュー」に対するユーザの入力に応じて、ＵＩオブジェクト選択処理部１４は、図８（Ｂ）に示すように、ＵＩオブジェクトの現在時点での配置の様子を示すプレビュー表示を行うようにもできる。プレビュー表示ができるようにすれば、ユーザは、ＵＩオブジェクトの実際の配置を確認しながら、ＵＩオブジェクトの採用または不採用を決めることができる。【００７０】
また、ユーザがＵＩオブジェクトの採用または不採用を選択する際、他のＵＩオブジェクトをさらに追加したいなどの理由から、現在すでに選択しているＵＩオブジェクトを若干縮小したい場合も考えられる。このために、本実施の形態では、ＵＩオブジェクト選択画面に例えば図９（Ａ）に示すような表示をして、ＵＩオブジェクトを縮小できるようにする。図９（Ａ）において、例えばエアコンディショナーリモコンＵＩのＵＩオブジェクトである「電源」の占有率について、８［５〜１５］という表示は、現在の占有率は８％であるが、当該ＵＩオブジェクトの占有率は５％から１５％まで調整可能であることを意味する。その他のＵＩオブジェクトも含め、図９（Ａ）では、図８に示した占有率よりも、各ＵＩオブジェクトを全体的に縮小した様子を示している。図９（Ａ）の状態で、上述したプレビュー表示を行うと、図９（Ｂ）に示すように、図８（Ｂ）のＵＩの表示よりも各ＵＩオブジェクトが全体的に縮小されると共に、積算画面占有率を示す棒グラフも減少する。このような縮小は、現在選択されている複数のＵＩオブジェクト全てをまとめて縮小できるようにしてもよく、また各ＵＩオブジェクト個別に縮小できるようにしてもよい。【００７１】
このようなＵＩオブジェクトの拡大および縮小処理は、ＵＩオブジェクト選択処理部１４が個別ＵＩリソース記憶領域５３または共通ＵＩリソース記憶領域５４から各ＵＩオブジェクトを読み出した際に、ＵＩリソース整形部１５が行う。【００７２】
なお、このようにＵＩオブジェクトの縮小を行う場合、各ＵＩオブジェクトの実用的な大きさを考慮して、占有率の上限値および下限値を設定しておくのが好適である。このような上限および下限の値は、ＵＩオブジェクトの種別や使用するリソースに基づいて設定し、ＵＩオブジェクト毎にＵＩオブジェクト定義情報として記憶する。これにより、各ＵＩオブジェクトを縮小し過ぎて、かえって使い難いＵＩが生成されることは防止される。【００７３】
さらに、ＵＩを配置したプレビュー画面とＵＩオブジェクト選択画面とをその都度切り替えて使用するのが煩わしい場合も想定される。このため、本実施の形態では、プレビュー表示の画面のままで、さらにＵＩオブジェクトを追加できるようにする。【００７４】
すなわち、例えば、図１０（Ａ）に示すプレビュー画面の状態で、表示部２４の右下端にある「ＵＩ追加」のソフトキーに対するユーザの入力に応じて、図１０（Ｂ）に示すようなＵＩオブジェクト追加の画面表示を行う。図１０（Ｂ）に示す例では、まだ選択されていないＵＩオブジェクトをＵＩごとに分類して表示し、ユーザによる選択入力を受け付けている。図１０の例では、ＵＩオブジェクトを各アプリケーションに対応するＵＩごとに、タブ表示により分類して示している。なお、図１０（Ｂ）におけるタブの表示において、「Ａ／Ｃ」とは、エアコンディショナーを表している。【００７５】
この場合、ユーザの指によるタッチパネル２０への入力に基づいて各ＵＩオブジェクトをドラッグして移動できるようにし、図１０（Ｃ）から（Ｄ）に連続して示すように、上方にドラッグする入力に基づいて当該ＵＩオブジェクトが選択入力されるようにするのが好適である。このように選択されたＵＩオブジェクトについても、占有率を棒グラフに反映させる。各ＵＩオブジェクトの配置に必要な領域は、ＵＩオブジェクトの周囲を点線で囲むことで分かるようにする。ＵＩオブジェクトの画像の周囲に少し余裕を持たせることで、多数のＵＩオブジェクトを隣接して配置する際にも一定の操作性を確保できる。【００７６】
このＵＩオブジェクト追加画面では、ユーザが各ＵＩオブジェクトをドラッグすることで、ＵＩオブジェクトの配置を自由に設定できる。図１０（Ｄ）から図１０（Ｅ）に示すように、ユーザがＵＩオブジェクトの位置を決めてタッチパネル２０から指を離した時点でＵＩオブジェクトの位置を確定する。【００７７】
また、ＵＩオブジェクトの中には、複数のＵＩオブジェクトの相互関係が対等ではなく、主従関係にあるものもある。例えば、テレビリモコンのＵＩでは、電源をＯＮにすることなく選局や音量を調整する必要性は乏しいなど、大抵のリモコンでは、まず電源をＯＮにしてから他の操作を行うものである。したがって、この場合、電源のオブジェクトを「主」として、電源ＯＮの後で行う操作に係るオブジェクトを「従」と考えることができる。本実施の形態では、ユーザがＵＩオブジェクトを選択する際に、「主」となるＵＩオブジェクトを選択しないうちは、「従」となるＵＩオブジェクトを選択できなくすることもできる。【００７８】
例えば図１１（Ａ）に示すように、各ＵＩにおいて、「電源」のＵＩオブジェクトが選択されないうちは、「電源」のＵＩオブジェクトに従属する関係の他のＵＩオブジェクトは選択できないようにグレイアウト表示にする。主となるＵＩオブジェクトである「電源」が選択されると、図１１（Ｂ）に示すように、当該主となるＵＩオブジェクトに対して従属関係にある他のＵＩオブジェクトを選択できるようにする。【００７９】
このようにＵＩオブジェクトに主従関係を付けるには、ＵＩ定義ファイルに含まれるＵＩオブジェクト定義情報に、複数のＵＩオブジェクトが主従関係にあることを示すＵＩオブジェクト属性情報を付加する。このような処理を行うことで、各ＵＩにおいて、ユーザが必要なＵＩオブジェクトを選択し忘れたり、また不要なＵＩオブジェクトを誤操作により選択してしまう恐れを低減できる。【００８０】
以上のようにしてＵＩオブジェクトの選択を受け付けている際に、ユーザによるＵＩオブジェクトの選択がなされない場合（ステップＳ１５のＮｏ）、ＵＩオブジェクト選択処理部１４は、ＵＩオブジェクトの選択動作が終了したか否かの判定を行う（ステップＳ２０）。例えば図１２（Ａ）に示す選択画面または図１２（Ｂ）に示すプレビュー表示画面にて、ユーザによるソフトキーの「決定」に対する入力があれば、ＵＩオブジェクトの選択動作が終了したと判定できる。ステップＳ２０にてＵＩオブジェクトの選択動作が終了しない場合にはステップＳ１５に戻り、ユーザによる入力部２２への更なる入力を受け付ける。【００８１】
ステップＳ２０においてＵＩオブジェクトの選択動作が終了した場合には、ＵＩオブジェクト選択処理部１４は、選択されたＵＩオブジェクトによる自動レイアウト処理を行う（ステップＳ２１）。ＵＩオブジェクトの配置は、ユーザの指定がない場合は、原則として、選択された順にＵＩ表示領域の許す限り左上から自動的に配置する。例えば、図１２（Ａ）に示すように、複数のＵＩオブジェクトが積算画面占有率１００％まで順次選択入力された場合、図１２（Ｂ）に示すように、原則として選択された順番に従って、各ＵＩオブジェクトを表示部２４のＵＩ表示領域に収まるように配置する。なお、各ＵＩオブジェクトは単純に左詰めで配置するのではなく、ＵＩオブジェクト定義情報などに基づき、関連性のあるＵＩオブジェクトをひとまとまりにして配置するのが好ましい。【００８２】
また、ＵＩオブジェクトが自動的に配置された後も、ＵＩオブジェクト選択処理部１４の制御により、ユーザは、上述したように、プレビュー画面表示により、現在のＵＩオブジェクトの配置を適宜確認できる。この際にも、入力部２２をドラッグするユーザの操作入力に基づいてＵＩオブジェクトの配置を変更できるようにする。【００８３】
選択したＵＩオブジェクトのレイアウトが完成したら、合成ＵＩ定義ファイル生成部１６は、選択したＵＩオブジェクトのＵＩオブジェクト定義情報に基づいて、当該選択したＵＩオブジェクトで構成される複数の合成されたＵＩを定義する合成ＵＩ定義ファイルを生成する（ステップＳ２２）。生成された合成ＵＩ定義ファイルは、ＸＭＬ形式の１つのファイルとして、記憶部５０の合成ＵＩ定義ファイル記憶領域５６に記憶する。そのファイルは、本明細書の末尾に示すＸＭＬ形式によるＵＩ定義ファイルのようになる。【００８４】
合成ＵＩ定義ファイルが生成されたら、合成ＵＩ定義ファイル生成部１６は、合成ＵＩとして選択されたＵＩオブジェクトに基づいて関連するアプリケーションの情報を生成する（ステップＳ２３）。ここで生成する関連アプリケーション情報は、合成ＵＩとして選択された各ＵＩオブジェクトに対して入力があった際に、当該ＵＩオブジェクトに関連するアプリケーションを制御するための情報である。選択されたＵＩオブジェクトに基づく関連アプリケーションの情報が生成されたら、合成ＵＩ定義ファイル生成部１６は、当該関連アプリケーション情報を、合成ＵＩ定義ファイルと関連付けて関連アプリケーション情報記憶領域５５に保存して（ステップＳ２４）、合成ＵＩ生成の全体処理を終了する。【００８５】
この後は、合成ＵＩ定義ファイル記憶領域５６に保存した合成ＵＩ定義ファイルを読み出すことにより、一度生成した合成ＵＩを即座に使用できる。【００８６】
ここで、選択されたＵＩオブジェクトにより構成される合成ＵＩ定義ファイルに対応する関連アプリケーション情報の生成方法について説明する。【００８７】
関連アプリケーション情報の第１の生成方法として、各ＵＩ定義ファイルに含まれるアプリケーションの情報を収集して利用することにより行う方法がある。すなわち、図１３に示すように、ＵＩ定義ファイル内には、当該ＵＩ定義ファイルにより生成されるＵＩを使用するアプリケーションの情報(application_used=“tvremoconapp”)が含まれている。制御部１０は、合成ＵＩの構成要素として選択されたＵＩオブジェクトを構成要素とするＵＩのＵＩ定義ファイルから、当該ＵＩ定義ファイルにより生成されるＵＩを使用するアプリケーションの情報を収集して、図２に示したような、合成ＵＩの関連アプリケーション情報５５ａを生成する。生成された関連アプリケーション情報５５ａは、対応する合成ＵＩ定義ファイルと対応付けてから、関連アプリケーション情報記憶領域５５に記憶する。【００８８】
関連アプリケーション情報の第２の生成方法として、アプリケーション別にＵＩを管理するための予め記憶した一覧（テーブル）から、関連アプリケーションの情報を収集して利用することにより行う方法もある。すなわち、図１４に示すように、各ＵＩ定義ファイルと、当該ＵＩ定義ファイルにより生成されるＵＩを使用するアプリケーションの情報とを対応付けたアプリケーション別ＵＩ管理テーブル５７を、記憶部５０に予め記憶する。制御部１０は、アプリケーション別ＵＩ管理テーブル５７を参照して、合成ＵＩの構成要素として選択されたＵＩオブジェクトを構成要素とするＵＩのＵＩ定義ファイルに対応するアプリケーションの情報を収集し、図２に示したような、合成ＵＩの関連アプリケーション情報５５ａを生成する。この場合も、生成された関連アプリケーション情報５５ａは、対応する合成ＵＩ定義ファイルと対応付けてから、関連アプリケーション情報記憶領域５５に記憶する。【００８９】
なお、１つのアプリケーションが複数のＵＩを備える場合もある。例えば、「電卓アプリケーション」は、四則演算などの基本的な計算を行うために必要最低限のキー（ＵＩオブジェクト）が割り当てられた通常の電卓用ＵＩと、三角関数やべき乗などの科学技術計算用のキー（ＵＩオブジェクト）が割り当てられた関数電卓用ＵＩとを備えている。この２種類のＵＩを切り替え可能にして提供することで、ユーザの目的に応じた電卓アプリケーションの機能を実行可能にしている。例えば、図１４のアプリケーション別ＵＩ管理テーブル５７では、アプリケーションの情報（アプリケーション名）に、アプリケーションが備えるＵＩの種別（UI_code）と当該ＵＩのＵＩ定義ファイル（ＵＩ定義ファイル名）とが対応付けられている。ここで、電卓アプリケーション「calculatorapp」には、それぞれ異なるＵＩ定義ファイル（「Simple_calculator_interface.uiml」および「Function_calculator_interface.uiml」）に基づく通常の電卓用ＵＩである「Simple_Cal_UI」と関数電卓用ＵＩである「Function_Cal_UI」とが対応付けられている。【００９０】
このように、本実施の形態では、複数のＵＩから選択されたＵＩオブジェクトだけを採用して１つの合成ＵＩを生成することができるため、ユーザにとって所望のＵＩオブジェクトのみで構成される合成ＵＩを提供できる。図１２（Ｂ）は、ＵＩ合成のレイアウトが完了した状態の一例を示す図である。この例では、ユーザの選択により、エアコンディショナーリモコン用ＵＩと、テレビリモコン用ＵＩと、照明Ａ用ＵＩとの３種類のＵＩから、ユーザにとって必要なＵＩオブジェクトのみを選択して、１つの合成ＵＩを生成している。【００９１】
以上、合成ＵＩ生成の全体処理について説明したが、このように合成ＵＩ定義ファイルとして生成（準備）した合成ＵＩを起動して実際に使用する際は、各ＵＩオブジェクトを１つの合成ＵＩとして表示部２４に表示して使用できる状態にする必要がある。以下、携帯電話１にて、通常のＵＩまたは本実施の形態による合成ＵＩを表示して使用できる状態にする際の、ＵＩ生成部１３の動作全体について説明する。【００９２】
図１５は、ＵＩ生成部１３により、ＵＩ定義ファイルまたは合成ＵＩ定義ファイルからＵＩを生成して使用可能にする処理全体を説明するフローチャートである。まず、入力部２２に対するユーザの操作入力などに基づいて、ＵＩを表示する権限を持つアプリケーションからＵＩ定義ファイル（ＸＭＬファイル）が指定されると、ＵＩを生成して使用可能にする処理を開始する。なお、ＵＩを表示する権限を持つアプリケーションは、携帯電話１にてバックグラウンド起動するものではなく、アプリケーションの最上位にて動作するものである。【００９３】
次に、ＵＩ生成部１３は、指定されたＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２または合成ＵＩ定義ファイル記憶領域５６から読み出して、当該ＵＩ定義ファイルが合成ＵＩ定義ファイルか否かを判定する（ステップＳ３１）。【００９４】
指定されたファイルが合成ＵＩ定義ファイルであると判定された場合、ＵＩ生成部１３は、対象となる合成ＵＩ定義ファイルと関連付けて保存されている関連アプリケーション情報を、記憶部５０の関連アプリケーション情報記憶領域５５から取得する（ステップＳ３２）。次に、取得した関連アプリケーション情報に基づいて、ＵＩ生成部１３は、アプリケーション実行部１１に対して、関連するアプリケーションをバックグラウンドで起動するよう指示する（ステップＳ３３）。【００９５】
この後、ＵＩ生成部１３は、指定された合成ＵＩ定義ファイルに対してＸＭＬパース処理（ステップＳ３４）およびＤＯＭ化処理（ステップＳ３５）を行う。さらに、ＵＩ生成部１３は、パース処理およびＤＯＭ化処理を行ったＵＩ定義ファイルに基づいて、ＵＩを生成する処理を行う（ステップＳ３６）。なお、ステップＳ３６のＵＩ生成処理については後述する。次に、ＵＩ生成処理により生成されたＸＭＬファイルのＵＩに基づいて、ＵＩ生成部１３は、タッチパネル２０の表示部２４のＵＩ表示領域にＵＩを表示する処理を行い（ステップＳ３７）、これによりＵＩは使用可能になる。したがって、本実施の形態では、ＵＩ生成部１３と合成ＵＩ定義ファイル生成部１６とを含めて、ユーザインタフェース生成部を構成する。【００９６】
なお、ステップＳ３１にて、指定されたファイルが合成ＵＩ定義ファイルでないと判定された場合は、ステップＳ３４に移行し、これ以降は上述した処理と同じになる。この場合、処理されるＵＩ定義ファイルは、合成ＵＩ定義ファイルではなく、ＵＩ定義ファイル記憶領域５２から読み出された単一のＵＩ用のＵＩ定義ファイルになる。【００９７】
次に、図１６のフローチャートを参照しながら、図１５におけるステップＳ３６のＵＩ生成処理についてさらに説明する。【００９８】
図１６に示すＵＩ生成処理の開始時点では、１つのＵＩ定義ファイルに基づくＵＩ、または複数のＵＩ定義ファイルに基づく合成ＵＩのどちらかが、１つのＤＯＭドキュメント（またはＤＯＭノード）になっている。まず、ＵＩ生成部１３は、ＤＯＭドキュメントに対して表示関連の解析を行う（ステップＳ５１）。これは、ＵＩＭＬ形式で記述されたＵＩ定義ファイルでは、structureタグやstyleタグを付された属性などを解析する。次に、ＵＩ生成部１３は、ＤＯＭドキュメントの動作関連について解析を行う（ステップＳ５２）。これは、ＵＩＭＬ形式で記述されたＵＩ定義ファイルでは、behaviorタグを付された属性などを解析する。【００９９】
次に、ＵＩ生成部１３は、ＤＯＭドキュメントに含まれる表現を、各端末に依存する表現に変換処理を行う（ステップＳ５３）。さらに、ＵＩ生成部１３は、ステップＳ５３の変換処理の結果に基づいて、使用するＵＩオブジェクトのリソースを選定して各属性（プロパティ）を設定する（ステップＳ５４）。この際に必要なＵＩオブジェクトのリソースは、個別ＵＩリソースとして個別ＵＩリソース記憶領域５３に、または共通ＵＩリソースとして共通ＵＩリソース記憶領域５４に記憶されている。この後、ＵＩ生成部１３は、各ＵＩオブジェクトを含むＵＩのプロット処理を行う（ステップＳ５５）。これによりＵＩの生成処理は終了し、この後は図１５のステップＳ３７に移行して、ＵＩの表示処理を行う。【０１００】
このようにすることで、ＵＩ生成の際に指定されたＵＩ定義ファイルが、複数のＵＩを合成する合成ＵＩ定義ファイルであっても、また複数のＵＩを合成しない単一ＵＩのＵＩ定義ファイルであっても、それぞれに応じた処理を行うことができる。すなわち、合成ＵＩ定義ファイルを処理する場合は、複数のＵＩを合成するためのアプリケーションの準備と共に合成ＵＩが生成され、また単一ＵＩのＵＩ定義ファイルを処理する場合には、従来式に単一のＵＩが生成される。【０１０１】
以上、ＵＩ生成部１３によりＵＩを生成して使用可能にする処理全体について説明したが、このようにして生成した合成ＵＩを起動して実際に使用する際には、同時に使用するＵＩにそれぞれ対応した各アプリケーションも同時に使用できる状態にしなくてはならない。このため、ＸＭＬファイル形式の合成ＵＩ定義ファイルを合成ＵＩ定義ファイル記憶領域５６から読み出して起動したら、合成されたＵＩに関連する各アプリケーションをバックグラウンドで起動させておく等の処理が必要になる。【０１０２】
以下、このための処理について説明するために、まず、図１７のフローチャートを参照しながら、ＵＩによって指示を受けるアプリケーションが１つであり、指示されたアプリケーションを単体で実行する際の全体処理について説明する。【０１０３】
入力部２２に対するユーザの入力により、メニュー画面などから起動したいアプリケーションが指定されると、アプリケーション実行部１１は、指定されたアプリケーションをアプリケーション記憶領域５１から読み出して起動する（ステップＳ７１）。次に、アプリケーション実行部１１は、起動したアプリケーション（以下、適宜「現アプリケーション」という）が最初に使用するＵＩを定義したＵＩ定義ファイルをＵＩ生成部１３に指定する（ステップＳ７２）。ＵＩ生成部１３は、指定されたＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２から読み出し、当該読み出したＵＩ定義ファイルに基づいて、ＵＩを生成して表示部２４に表示する（ステップＳ７３）。なお、このＵＩを生成して使用可能にする処理は、図１５および図１６で説明した処理に基づいて行う。【０１０４】
その後、アプリケーション実行部１１は、表示したＵＩに対して、入力部２２に対するユーザの操作入力などによるイベントが発生したか否かを判定し、当該イベントが発生した場合（ステップＳ７４のＹｅｓ）、発生したイベントを現在表示中のＵＩにて処理する（ステップＳ７５）。この処理の後、アプリケーション実行部１１は、現在表示中のＵＩのみにて当該イベントの処理が完結したか否かを判定し（ステップＳ７６）、現在表示中のＵＩのみで当該イベントの処理が完結した場合、ステップＳ７４に戻って処理を続行する。しかしながら、現在のＵＩのみで完結しないイベントであった場合（ステップＳ７６のＮｏ）、アプリケーション実行部１１は、アプリケーションの機能を用いてイベント処理を行う（ステップＳ７７）。【０１０５】
ステップＳ７７においてアプリケーションの機能を用いて処理する場合、アプリケーション実行部１１は、別ＵＩへの切り替えが必要か否かを判定し（ステップＳ７８）、別ＵＩへの切り替えが必要でない場合には、別アプリケーションの起動が必要か否かを判定する（ステップＳ７９）。別アプリケーションの起動が必要ない場合には、アプリケーション実行部１１は、現アプリケーションの終了が必要か否かを判定し（ステップＳ８０）、現アプリケーションの終了が必要でない場合、ステップＳ７４に戻って処理を続行する。しかしながら、ステップＳ８０において現アプリケーションの終了が必要と判定された場合、アプリケーション実行部１１は、アプリケーションの終了処理を行う（ステップＳ８１）。このアプリケーションの終了処理は、現在表示中のＵＩを破棄する処理なども含む。【０１０６】
一方、ステップＳ７８にて、別ＵＩへの切り替えが必要と判定された場合には、アプリケーション実行部１１は、現在表示中のＵＩを破棄するとともに、現アプリケーションが次に必要とするＵＩを決定する。こうして必要なＵＩが決定されたら、アプリケーション実行部１１は、当該必要なＵＩを定義するＵＩ定義ファイルを、ＵＩ定義ファイル記憶領域５２から読み出して、ＵＩ生成部１３に対して指定する（ステップＳ８２）。この指定に基づいて、ＵＩ生成部１３は、新たなＵＩを生成して、表示部２４に表示する（ステップＳ８３）。なお、このＵＩ生成も、図１５および図１６で説明した処理に基づいて行い、ＵＩが生成され表示されたら、ステップＳ７４に戻って処理を続行する。【０１０７】
また、ステップＳ７９にて、別アプリケーションの起動が必要と判定された場合、アプリケーション実行部１１は、次に起動すべき別のアプリケーションを決定して実行する（ステップＳ８４）。さらに、アプリケーション実行部１１は、当該別のアプリケーションの実行と共に、現アプリケーションをサスペンド状態に移行させる（ステップＳ８５）。【０１０８】
このようにすることで、ＵＩによって指示を受けるアプリケーションが１つの場合に、他のＵＩまたはアプリケーションにまたがるイベントが発生しても適切に処理を移行し、アプリケーションの動作を続行できる。【０１０９】
次に、図１８のフローチャートを参照しながら、合成ＵＩによって指示を受けるアプリケーションが複数あり、指定された複数のアプリケーションを実行する際の全体処理について説明する。なお、図１８に示す全体処理は、図１７に示す全体処理と似た処理を含むため、同じ説明は適宜省略する。 【０１１０】
まず、アプリケーション実行部１１は、図３で説明した処理により生成された合成ＵＩ定義ファイルに基づくＵＩを実行する為のアプリケーション（合成ＵＩ実行用アプリケーション）を起動する（ステップＳ９１）。次に、アプリケーション実行部１１は、合成ＵＩ実行用アプリケーションが使用する合成ＵＩ定義ファイルをＵＩ生成部１３に指定する（ステップＳ９２）。ＵＩ生成部１３は、指定された合成ＵＩ定義ファイルを合成ＵＩ定義ファイル記憶領域５６から読み出し、当該読み出した合成ＵＩ定義ファイルに基づいて、合成ＵＩを生成して表示部２４に表示する（ステップＳ９３）。この合成ＵＩの表示とともに、アプリケーション実行部１１は、関連アプリケーション情報記憶領域５５から読み出した関連アプリケーション情報に基づいて、合成ＵＩに関連するアプリケーションをバックグラウンドで起動させる（ステップＳ９４）。【０１１１】
その後、アプリケーション実行部１１は、表示した合成ＵＩに対して、入力部２２に対するユーザの操作入力などによるイベントが発生したか否かを判定し、当該イベントが発生した場合（ステップＳ９５のＹｅｓ）、発生したイベントを現在表示中の合成ＵＩにて処理する（ステップＳ９６）。この処理の後、アプリケーション実行部１１は、現在表示中の合成ＵＩのみにて当該イベントの処理が完結したか否かを判定し（ステップＳ９７）、現在表示中の合成ＵＩのみで当該イベントの処理が完結した場合、ステップＳ９５に戻って処理を続行する。しかしながら、現在の合成ＵＩのみで完結しないイベントであった場合（ステップＳ９７のＮｏ）、アプリケーション実行部１１は、イベントにより動作したＵＩオブジェクトに関連する、バックグラウンド起動中のアプリケーションを特定する（ステップＳ９８）。この後、アプリケーション実行部１１は、特定したアプリケーションの機能を用いてイベント処理を行う（ステップＳ９９）。【０１１２】
ステップＳ９９においてアプリケーションの機能を用いて処理する場合、アプリケーション実行部１１は、別ＵＩへの切り替えが必要か否かを判定し（ステップＳ１００）、別ＵＩへの切り替えが必要でない場合には、別アプリケーションの起動が必要か否かを判定する（ステップＳ１０１）。別アプリケーションの起動が必要ない場合には、アプリケーション実行部１１は、現アプリケーションの終了が必要か否かを判定し（ステップＳ１０２）、現アプリケーションの終了が必要でない場合、ステップＳ９５に戻って処理を続行する。しかしながら、ステップＳ１０２において現アプリケーションの終了が必要と判定された場合は、アプリケーション実行部１１は、表示中の合成ＵＩに関連するバックグラウンド起動中のアプリケーションの終了処理を行い（ステップＳ１０３）、その後、現アプリケーションの終了処理を行う（ステップＳ１０４）。このアプリケーションの終了処理も、現在表示中のＵＩを破棄する処理などを含む。その他の処理は、図１７にて説明した処理と同様になる。【０１１３】
このようにすることで、合成ＵＩによって指示を受けるアプリケーションが複数の場合であっても、他のＵＩまたはアプリケーションにまたがるイベントが発生しても適切に処理を移行し、アプリケーションの動作を続行できる。【０１１４】
なお、本発明は、上述した実施の形態にのみ限定されるものではなく、幾多の変更または変形が可能である。例えば、上述した実施の形態では、タッチパネルを備える携帯端末でＵＩを合成する処理を行う場合について説明した。しかしながら、本発明のＵＩ合成処理においては、タッチパネルは必須の要素ではない。本発明は、例えば機械式のキーを多数備える入力部や、他のポインティングデバイスにより入力を行う入力部など、ＵＩを合成して使用することが想定される任意の入力部を備える端末に適用できる。【０１１５】
また、上述した実施の形態の携帯電話１は、赤外線通信部４０により赤外線通信をすることで外部機器を遠隔制御したが、外部機器との通信は赤外線通信に限らず、例えばＢｌｕｅｔｏｏｔｈ（登録商標）や無線ＬＡＮなどの近距離無線通信を採用してもよい。【０１１６】
さらに、上述した実施の形態では、各アプリケーションに対応したＵＩのＵＩ定義ファイルが予めＵＩ定義ファイル記憶領域５２に記憶された場合について説明したが、必要なＵＩ定義ファイルを適宜外部から取得するようにもできる。この場合、ＵＩを用いるアプリケーションからＵＩ定義ファイルが指定された際、必要なＵＩ定義ファイルがＵＩ定義ファイル記憶領域５２または合成ＵＩ定義ファイル記憶領域５６に存在するか否か判定する。必要なＵＩ定義ファイルがＵＩ定義ファイル記憶領域５２または合成ＵＩ定義ファイル記憶領域５６に存在しない場合、制御部１０のＵＩ取得部１２は、無線通信部３０を介して、図示しない外部機器または外部サーバなどから、必要なＵＩ定義ファイルを取得する。【０１１７】
なお、上述した各実施の形態で用いるＵＩ定義ファイルの一例として、以下にＸＭＬをベースとしたＵＩＭＬ形式のファイルの例を示す。本発明による各ＵＩオブジェクト属性情報を付加した箇所には下線を付してある。また、本例において、ＵＩオブジェクトは<template>タグにより定義されており、したがって<template>〜</template>の間の記載がＵＩオブジェクト定義情報に相当する。【０１１８】
まず、テレビリモコンＵＩを構成するＵＩ定義ファイルとして、TV1_interface.uimlのファイルの例を示す。
2009123028.tif 000003
2009123028.tif 000004
2009123028.tif 000005
【０１１９】
次に、エアコンディショナーリモコンＵＩを構成するＵＩ定義ファイルとして、AIR1_interface.uimlのファイルの例を示す。
2009123028.tif 000006
2009123028.tif 000007
2009123028.tif 000008
【０１２０】
次に、照明リモコンＵＩを構成するＵＩ定義ファイルとして、light1_interface.uimlのファイルの例を示す。
2009123028.tif 000009
2009123028.tif 000010
【０１２１】
さらに、図３で説明した、複数のＵＩから選択したＵＩオブジェクトのＵＩオブジェクト定義情報に基づいて生成した、選択したＵＩオブジェクトで構成される合成ＵＩを定義する合成ＵＩ定義ファイルとして、comp1.uimlのファイルの例を一部抜粋して示す。
2009123028.tif 000011
2009123028.tif 000012
【産業上の利用可能性】
【０１２２】
本発明によれば、複数のＵＩを合成するに際し、選択されたＵＩオブジェクトのみを採用して、所定のＵＩ表示領域に収まる１つの合成ＵＩを生成できる。したがって、生成された合成ＵＩは、ユーザが所望するＵＩオブジェクトのみで構成されることになり、不要なＵＩオブジェクトを全て省いたＵＩを生成することができる。このようにして生成された合成ＵＩでは、複数のＵＩを切り替えることなく同時に使用することができる。さらに、マルチウィンドウの場合の様に表示領域（ウィンドウ）を選択する操作や、表示領域内にてスクロールバーを移動させる操作が必要ないため、ユーザの操作負荷を大幅に軽減できる。
【図１】
2009123028.tif 000013
【図２】
2009123028.tif 000014
【図３】
2009123028.tif 000015
【図４】
2009123028.tif 000016
【図５】
2009123028.tif 000017
【図６】
2009123028.tif 000018
【図７】
2009123028.tif 000019
【図８】
2009123028.tif 000020
【図９】
2009123028.tif 000021
【図１０】
2009123028.tif 000022
【図１１】
2009123028.tif 000023
【図１２】
2009123028.tif 000024
【図１３】
2009123028.tif 000025
【図１４】
2009123028.tif 000026
【図１５】
2009123028.tif 000027
【図１６】
2009123028.tif 000028
【図１７】
2009123028.tif 000029
【図１８】
2009123028.tif 000030
【図１９】
2009123028.tif 000031
【図２０】
2009123028.tif 000032
【国際調査報告】
2009123028.tif 000033
2009123028.tif 000034
2009123028.tif 000035
2009123028.tif 000036