(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムを記憶することが可能な記憶部と、
該記憶部に記憶されている前記アプリケーションプログラムに基づいて、
１つのユーザインタフェースの生成が指示されると、該指示されたユーザインタフェースに対応する単体用ユーザインタフェースオブジェクト群を表示し、
複数のユーザインタフェースの生成が指示されると、該指示された複数のユーザインタフェースの各々に対応する前記単体用ユーザインタフェースオブジェクト群から抽出したユーザインタフェースオブジェクトを合成処理して合成ユーザインタフェースオブジェクト群を表示するように制御する制御部と、
前記単体用ユーザインタフェースオブジェクト群、又は前記合成ユーザインタフェースオブジェクト群を表示する表示部と、
該表示部の前面に該表示部と関連付けて配設され、第１の入力手段による第１入力と第２の入力手段による第２入力を受け付ける入力部と、を有し、
該入力部が第１入力を受け付けると、
前記制御部は該第１入力の受け付け位置に対応した前記ユーザインタフェースオブジェクトの持つ機能を実行し、
前記制御部が前記合成ユーザインタフェースオブジェクト群を表示するように制御されている場合に、前記入力部が第２入力を受け付け、
当該第２入力の押下が継続されている間に、前記入力部が、前記合成ユーザインタフェースオブジェクト群の前記ユーザインタフェースオブジェクトを選択する第１入力を受け付けた場合に、
前記制御部は、
前記第１入力により選択された前記ユーザインタフェースオブジェクトを、
他のユーザインタフェースオブジェクトと変更するように再合成処理した合成ユーザインタフェースオブジェクト群を表示するように制御する、
ユーザインタフェース生成装置。
【請求項２】
前記第１入力は、前記合成ユーザインタフェースオブジェクト群の所定の範囲に含まれるユーザインタフェースオブジェクトを選択するものである、
請求項１記載のユーザインタフェース生成装置。
【請求項３】
前記制御部は、前記合成ユーザインタフェースオブジェクト群を表示するように制御するときに、複数の前記単体用ユーザインタフェースオブジェクト群から優先度の高いユーザインタフェースオブジェクトを抽出して合成処理し、
前記第２入力の押下が継続されている間に、前記第１入力により選択された前記ユーザインタフェースオブジェクトを、
複数の前記単体用ユーザインタフェースオブジェクト群に含まれるユーザインタフェースオブジェクトのうち、前記優先度の高いユーザインタフェースオブジェクトとして抽出されなかった優先度の低いユーザインタフェースオブジェクトと置き換えることにより前記再合成処理を行う、
請求項１又は２記載のユーザインタフェース生成装置。
【発明の詳細な説明】
【関連出願へのクロスリファレンス】
【０００１】
本出願は、日本国特許出願２００８−２２０５１１号（２００８年８月２８日出願）の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
【技術分野】
【０００２】
本発明は、ユーザインタフェース生成装置に関し、特に、携帯端末のユーザインタフェースを生成するユーザインタフェース生成装置に関するものである。
【背景技術】
【０００３】
携帯電話に代表される携帯端末のユーザインタフェース（以下、適宜「ＵＩ」と略記する）は、ユーザが携帯端末を操作する際の操作性を大きく左右する。そのため、携帯端末のＵＩは、ユーザが携帯端末を購入する際の決め手となる重要な要素の１つになっている。【０００４】
近年、携帯端末は著しく多機能化し、それに伴いアニメーションや３Ｄの表現などを利用した表現力豊かなＵＩを備える携帯端末も多い。また、ユーザの嗜好に合わせてＵＩをカスタマイズできる携帯端末もあり、このような携帯端末は、ユーザにとっての利便性を著しく向上させている。【０００５】
従来の携帯端末は、各メーカ間および各機種間でＵＩのデザインや操作方法が異なるのが一般的であった。すなわち、ＵＩは各端末機器に固有のものであり、端末ごとに機種依存性の高いＵＩを備えるものがほとんどであった。そのため、端末の開発を行う際に、他の端末のプログラムコードを再利用する場合、そのプログラムコードに対して必要なＵＩ部分の変更は膨大になる。したがって、ある端末のプログラムコードを他の端末に移植するのは困難であった。【０００６】
そこで、最近では、ＸＭＬ（Extensible Markup Language）をベースにしたＵＩが導入されつつある。記述方式が共通化されたＸＭＬファイルを用いてＵＩを表現することによって、プログラムコードの再利用が容易になり、他の機種へのＵＩの移植も可能になる。したがって、例えば、異なるメーカの異なる端末機種間でも同じＵＩを使用することができるなど、各端末からＵＩのみを独立させるように扱うことも可能になる。【０００７】
このような、ＸＭＬをベースにしたＵＩのうち代表的なものとして、ＴＡＴ社（http://www.tat.se/）が開発したＵＩ  Ｆｏｕｎｄａｔｉｏｎや、Ａｃｒｏｄｅａ社（http://www.acrodea.co.jp/）が開発したＶＩＶＩＤ  ＵＩや、Ｑｕａｌｃｏｍｍ社（http://www.qualcomm.co.jp/）が開発したＵＩ  Ｏｎｅなどを挙げることができる。【０００８】
また、近年の携帯端末は、端末本体の多機能化および高性能化に伴い、同時に複数のタスクを並行して実行できるマルチタスク処理に対応したＯＳ（オペレーティングシステム）を実装したものが増えている。さらに、並行して同時に処理する複数のタスクにそれぞれの表示領域（ウィンドウ）を割り当てて、出力画面の表示を多重化するマルチウィンドウ機能に対応した携帯端末も普及しつつある。【０００９】
ところで、従来、例えば赤外線通信部を備える携帯端末を用いて、赤外線通信により複数の外部機器を遠隔操作（制御）できるようにした技術が開示されている（例えば、特許文献１参照）。この特許文献１に記載の携帯電話端末は、外部機器との通信を行う外部制御部を備えている。この携帯電話端末は、外部の機器を遠隔制御するための外部機器制御情報を、電話回線などを介して取得したり、または外部機器から受信するなどして記憶し、この外部機器制御情報に基づいて外部機器を遠隔制御することができる。すなわち、内蔵のアプリケーションプログラム（以下、単に「アプリケーション」という）を変更することで、通常は携帯電話として使用する端末本体を、複数の外部機器を遠隔操作するリモートコントロール（以下、単に「リモコン」という）端末として用いることができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−３６６５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１に開示されている携帯電話端末によれば、各外部機器に対応するそれぞれの外部機器制御情報に基づいて、１台の携帯電話端末で複数の外部機器を遠隔操作できる。したがって、複数の外部機器のそれぞれについて個別のリモコン端末を複数使い分けるという煩雑な操作が必要なく、ユーザにとっての利便性を高めることができる。【００１２】
このような、遠隔制御する複数の外部機器を切り替えることができるリモコンの機能を、上述したマルチタスク処理が可能な携帯端末にて実現すれば、各リモコンのアプリケーションをいちいち一旦終了させて次のリモコンのアプリケーションを起動させる必要はない。すなわち、複数のアプリケーションを１つの端末で同時に起動させて、その中から、使いたい任意のリモコンのアプリケーションに適時切り替えて使用できる。【００１３】
しかしながら、複数のアプリケーションを頻繁に切り替えて使用する場合には、その切り替え操作は煩雑なものとなる。【００１４】
そこで、携帯端末に上述したマルチウィンドウの機能を組み合わせれば、複数のウィンドウに、複数のアプリケーションを操作するＵＩをそれぞれ再現することも可能になる。このようにすれば、複数のアプリケーションを切り替えて使用するのではなく、１画面上で同時に使用できる。【００１５】
すなわち、例えば、図２２（Ａ）に示すようなテレビのリモコン端末単独であれば、図２２（Ｂ）に示すように、例えばタッチパネル２００を備える携帯端末１００上に、テレビリモコンアプリケーションのＵＩを、その操作性を維持したまま再現できる。なお、図２２（Ａ）のリモコン端末において、テンキーなどのキーやボタンは機械式のキーであるが、図２２（Ｂ）の携帯端末１００においては、テンキーなどを描画して再現したオブジェクトをタッチパネル２００に表示している。以下、このように、タッチパネルに表示されたＵＩを構成する各種キーまたはボタンおよび情報表示箇所などを、「ＵＩオブジェクト」と記す。また、図２２（Ｃ）に示すような、エアコンディショナーのリモコン端末単独の場合も同様に、図２２（Ｄ）のように、タッチパネル２００を備える携帯端末１００上に、エアコンディショナーリモコンアプリケーションのＵＩを、その操作性を維持したまま再現できる。さらに、それぞれのアプリケーションのＵＩを、ＸＭＬをベースとして記述すれば、他メーカの端末などにアプリケーションを移植しても、ＵＩを記述したＸＭＬのファイルを加工するだけでほとんど同じＵＩを容易に再現できる。【００１６】
しかしながら、上述の例において、テレビの視聴中にエアコンディショナーの操作を行う場合に、テレビもエアコンディショナーも頻繁な操作を要する状況も想定される。このような場合、両方のリモコンのアプリケーションを、マルチタスクおよびマルチウィンドウの機能を用いて、表示部の表示領域を分割して同時に表示したとする。この場合、各アプリケーションは単独で使用することを想定したＵＩしか備えていないため、各ＵＩをそのまま同時表示すると、図２３（Ａ）〜（Ｄ）に示すような状態になる。【００１７】
図２３（Ａ）〜（Ｄ）は、マルチタスクおよびマルチウィンドウの機能を実装した携帯端末１００を用いて、２つのアプリケーションのＵＩを同時表示した様子を示す図である。図に示す例においては、タッチパネル２００の表示部の表示を上下に分割した各ウィンドウ内で、それぞれのＵＩをそのまま再現したため、各ＵＩとも一部しか表示されていない。画面上に表示しきれない部分の操作を行うために、各ウィンドウの右端にはスクロールバーを備えている。【００１８】
例えば図２３（Ａ）に示す状態で、テレビの音量を調節したい場合、ユーザは、テレビリモコンＵＩのウィンドウのスクロールバーを移動して、図２３（Ｂ）に示すようにテレビリモコンＵＩの表示範囲を移動させなくてはならない。同様に、例えば図２３（Ｃ）に示す状態で、エアコンディショナーの温度を調節したい場合、ユーザは、エアコンディショナーリモコンＵＩのウィンドウのスクロールバーを移動して、図２３（Ｄ）に示すようにエアコンディショナーリモコンＵＩの表示範囲を移動させなくてはならない。さらに、マルチウィンドウで複数のアプリケーションを起動する場合、ＵＩを重畳表示する際は、まず入力するウィンドウを選択してアクティブにしてから入力操作を開始しなくてはならない。【００１９】
特に、携帯端末の場合は、端末本体が非常に小さく設計されるため、タッチパネルで構成するＵＩの場合も物理的なキーで構成するＵＩの場合も、ＵＩとして利用できる領域は極めて制限されている。したがって、リモコンなどのアプリケーションのＵＩを構成する操作部は、もともと最小に近い大きさで設計されるのが一般的である。そのため、複数のアプリケーションのＵＩを同時表示する際に、各ＵＩをそれぞれ全体的に縮小して同時に表示するのは現実的ではない。【００２０】
このように、一画面用にデザインされた、単独で使用することを想定したＵＩ（以下、適宜「単体ＵＩ」と略記する）をマルチウィンドウで表示した場合、その操作性は悪化してしまう。【００２１】
そこで、このような問題に対処するために、各単体ＵＩを構成する要素であるキーまたはボタンなどのＵＩオブジェクトからいくつかを選択し、選択されたＵＩオブジェクトで構成される、合成されたＵＩ（以下、「合成ＵＩ」と略記する）を生成することも考えられる。例えば、図２２（Ｂ）に示したテレビリモコンアプリケーションのＵＩ、および図２２（Ｄ）に示したエアコンディショナーリモコンアプリケーションのＵＩから所定のＵＩオブジェクトを選択し、図２４に示すような合成ＵＩを生成することが考えられる。図２４に示す携帯端末１００は、上述した２つのリモコンアプリケーションのＵＩから所定のＵＩオブジェクトを選択し、それらを１つの合成ＵＩとして、タッチパネル２００に表示した例を示している。【００２２】
このようにＵＩを合成すれば、使用頻度の高いＵＩオブジェクト、またはユーザが使用を所望するＵＩオブジェクトを選択して合成ＵＩを構成することができるため、各ＵＩオブジェクトを、使い勝手の良さ、すなわち操作性を犠牲にして縮小したりする必要はない。【００２３】
また、合成ＵＩでは、複数のアプリケーションを操作できるので便利であるが、単体ＵＩに比べて各アプリケーションに対するＵＩオブジェクト（ボタンなどのソフトキー）が少なくなる。そのため、ユーザが希望する動作に対応したＵＩオブジェクトが表示されない場合があるなど、ユーザの利便性が損なわれる恐れがある。例えば、図２５（ａ）の単体ＵＩと図２５（ｂ）の合成ＵＩを比較すると、テレビリモコンＵＩの数字キーに対応するＵＩオブジェクトが合成ＵＩには含まれていない。そのため、このままではユーザは各放送局を直接選局することができない。また、合成ＵＩのＵＩオブジェクトの変更や、各インタフェースが配置されるエリアのサイズ変更や入れ替えは、ユーザにとっての操作負荷が高い。【００２４】
したがって、かかる事情に鑑みてなされた本発明の目的は、複数のアプリケーションプログラムのユーザインタフェースを合成した後でも、簡単な操作で合成UIの構成を変更することができるユーザインタフェース生成装置を提供することにある。
【課題を解決するための手段】
【００２９】
上述した諸課題を解決すべく、本発明の観点に係るユーザインタフェース生成装置は、
アプリケーションプログラムを記憶することが可能な記憶部と、
該記憶部に記憶されている前記アプリケーションプログラムに基づいて、
１つのユーザインタフェースの生成が指示されると、該指示されたユーザインタフェースに対応する単体用ユーザインタフェースオブジェクト群を表示し、
複数のユーザインタフェースの生成が指示されると、該指示された複数のユーザインタフェースの各々に対応する前記単体用ユーザインタフェースオブジェクト群から抽出したユーザインタフェースオブジェクトを合成処理して合成ユーザインタフェースオブジェクト群を表示するように制御する制御部と、
前記単体用ユーザインタフェースオブジェクト群、又は前記合成ユーザインタフェースオブジェクト群を表示する表示部と、
該表示部の前面に該表示部と関連付けて配設され、第１の入力手段による第１入力と第２の入力手段による第２入力を受け付ける入力部と、を有し、
該入力部が第１入力を受け付けると、
前記制御部は該第１入力の受け付け位置に対応した前記ユーザインタフェースオブジェクトの持つ機能を実行し、
前記制御部が前記合成ユーザインタフェースオブジェクト群を表示するように制御されている場合に、前記入力部が第２入力を受け付け、
当該第２入力の押下が継続されている間に、前記入力部が、前記合成ユーザインタフェースオブジェクト群の前記ユーザインタフェースオブジェクトを選択する第１入力を受け付けた場合に、
前記制御部は、
前記第１入力により選択された前記ユーザインタフェースオブジェクトを、
他のユーザインタフェースオブジェクトと変更するように再合成処理した合成ユーザインタフェースオブジェクト群を表示するように制御することを特徴とする。
【００３０】
また、前記第１入力は、前記合成ユーザインタフェースオブジェクト群の所定の範囲に含まれるユーザインタフェースオブジェクトを選択するものであることが望ましい。
【００３２】
また、前記制御部は、前記合成ユーザインタフェースオブジェクト群を表示するように制御するときに、複数の前記単体用ユーザインタフェースオブジェクト群から優先度の高いユーザインタフェースオブジェクトを抽出して合成処理し、
前記第２入力の押下が継続されている間に、前記第１入力により選択された前記ユーザインタフェースオブジェクトを、
複数の前記単体用ユーザインタフェースオブジェクト群に含まれるユーザインタフェースオブジェクトのうち、前記優先度の高いユーザインタフェースオブジェクトとして抽出されなかった優先度の低いユーザインタフェースオブジェクトと置き換えることにより前記再合成処理を行うことが望ましい。
【発明の効果】
【００３３】
本発明によれば、ユーザは簡単な操作で、合成ユーザインタフェースの構成を変更することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第２実施の形態に係る携帯端末の構成を示す図である。
【図２】本発明の第２実施の形態に係る携帯端末の動作を示すフローチャートである。
【図３】本発明の第２実施の形態に係る携帯端末の入力時制御フローを示すフローチャートである。
【図４】本発明の第２実施の形態に係る携帯端末の処理１を示すフローチャートである。
【図５】本発明の第２実施の形態に係る携帯端末の処理２を示すフローチャートである。
【図６】本発明の第２実施の形態に係る携帯端末のＵＩオブジェクトのサブ動作を示すフローチャートである。
【図７】本発明の第２実施の形態に係る携帯端末のリリース時制御フローを示すフローチャートである。
【図８】本発明の第２実施の形態に係る携帯端末のメイン及びサブ入力時の動作を示すフローチャートである。
【図９】本発明の第２実施の形態に係る携帯端末の合成ＵＩの再合成例を示す図である。
【図１０】本発明の第２実施の形態に係る携帯端末の合成ＵＩの再合成例を示す図である。
【図１１】本発明の第２実施の形態に係る携帯端末の合成ＵＩの再合成例を示す図である。
【図１２】本発明の第２実施の形態に係る携帯端末の合成ＵＩの再合成例を示す図である。
【図１３】本発明の第１実施の形態に係るユーザインタフェース生成装置の概略構成を示すブロック図である。
【図１４】本発明のユーザインタフェース定義ファイルの構成を説明する概念図である。
【図１５】本発明の合成ユーザインタフェース定義ファイルの構成を説明する概念図である。
【図１６】本発明の第１実施の形態に係る単体のユーザインタフェースを示す図である。
【図１７】本発明の第１実施の形態に係るユーザインタフェースオブジェクト属性情報である優先度を示す情報を説明する図である。
【図１８】本発明の第１実施の形態に係るユーザインタフェース生成の全体処理を説明するフローチャートである。
【図１９】本発明の第１実施の形態に係るユーザインタフェース生成処理を説明するフローチャートである。
【図２０】本発明の第１実施の形態に係るユーザインタフェース合成処理を説明するフローチャートである。
【図２１】本発明の第１実施の形態に係るユーザインタフェース合成処理により２つの単体ユーザインタフェースを合成した例を示す図である。
【図２２】従来のリモートコントロール端末を携帯端末のユーザインタフェースで再現した状態を示す図である。
【図２３】従来の携帯端末にて２つのユーザインタフェースを合成した例を示す図である。
【図２４】携帯端末にて２つの単体ユーザインタフェースを合成した例を示す図である。
【図２５】単体UI及び合成UIの一例を示す図である。
【発明を実施するための形態】
【００３５】
以下、本発明の各実施の形態について、図面を参照して説明する。以下の各実施の形態では、本発明のユーザインタフェース（以下、「ＵＩ」と記す）生成装置の一例として、各種外部機器の遠隔制御が可能なリモコン機能を実装した携帯電話を想定して説明する。しかしながら、本発明のＵＩ生成装置は携帯電話に限定されるものではなく、例えばノートパソコンやＰＤＡなどの任意の携帯端末などに適用することができる。また、本発明の実装を必要とする装置であれば、携帯端末にも限定されることはない。なお、本発明は、複数のＵＩを同時に使用できるように合成することを主目的とするものであり、各ＵＩにより指示を受けるアプリケーションはリモコン機能に限定されるものではなく、任意の各種アプリケーションに本発明を適用することができる。
【００３６】
（第１実施の形態）
図１３は、本発明の第１実施の形態に係るＵＩ生成装置である携帯電話の概略構成を示すブロック図である。
【００３７】
携帯電話１は、全体を制御する制御部１０と、ユーザからの入力を受け付けると共に、各アプリケーションに応じて入力結果などの表示を行うタッチパネル２０とを備えている。タッチパネル２０は、ユーザからの入力を受け付けるマトリクススイッチなどで構成した入力部２２を、液晶ディスプレイなどで構成した表示部２４の前面に重畳させて構成する。タッチパネル２０の入力部２２は、ユーザの指先またはスタイラスのようなペン型入力デバイス等が接触するのを検知することにより、当該接触による入力に対応する信号を出力する。表示部２４は、アプリケーションプログラムに関する表示をする他、ユーザの操作入力を受け付ける各種キーやボタンなどのＵＩオブジェクトにより構成されるＵＩを所定のＵＩ表示領域に描画して表示する。なお、ＵＩ表示領域とは、タッチパネル２０の表示部２４において、ＵＩオブジェクトから構成されるＵＩを表示する領域のことをいう。
【００３８】
また、携帯電話１は、図示しない基地局と音声通話および電子メールのデータなど各種情報をインターネットや無線等を使って送受信する無線通信部３０と、図示しない各種外部機器と赤外線により通信を行う赤外線通信部４０とを備えている。無線通信部３０を用いて、携帯電話１は、インターネットや無線回線等を介して端末外部と各種データの送受信を行う。
【００３９】
さらに、携帯電話１は、入力された情報および各種アプリケーション等を記憶したり、ワークメモリなどとしても機能する記憶部５０を有する。記憶部５０は、アプリケーション記憶領域５１と、ＵＩ定義ファイル記憶領域５２と、個別ＵＩリソース記憶領域５３と、共通ＵＩリソース記憶領域５４と、関連アプリケーション情報記憶領域５５と、合成ＵＩ定義ファイル記憶領域５６とを含む。
【００４０】
なお、制御部１０は、アプリケーション実行部１１と、ＵＩ取得部１２と、ＵＩ生成部１３と、計時部１４と、ＵＩイベント処理部１５とを含んでいる。
【００４１】
制御部１０において、アプリケーション実行部１１は、記憶部５０のアプリケーション記憶領域５１に保存された各種アプリケーションを読み出して実行すると共に、当該実行に関する制御を行う。また、アプリケーション実行部１１は、アプリケーション記憶領域５１から読み出して実行している各種アプリケーションに対応するＵＩへの入力に基づいて、当該入力に対応する各種アプリケーションの機能を実行する。
【００４２】
ＵＩ取得部１２は、無線通信部３０などを介して端末の外部にあるリソース（画像データ等）およびＵＩ定義ファイル（ＸＭＬファイルなど）を取得する。ＵＩ生成部１３は、ＵＩ定義ファイルに対してパース処理（パーシング）およびＤＯＭ(Document Object Model)化処理などを行い、実際に使用するＵＩを生成する。なお、ＵＩ生成部１３は、ＸＭＬの形式で記述されたＵＩの情報をＸＭＬエンジンによって解釈し、ＵＩ定義ファイルに基づいて生成されたＵＩをタッチパネル２０の表示部２４に表示する。このＵＩ生成部１３は、合成ＵＩを含む各種ＵＩの生成に関する各種処理を行う。ＵＩ生成部１３の詳細については後述する。
【００４３】
計時部１４は、カウンタにより所定の時間の長さを計測することができる他、現在時刻を出力したり、（予め設定された）所定の時刻の到来を通知する。ＵＩイベント処理部１５は、ＵＩ生成部１３が生成したＵＩに対して、ユーザ操作による入力部２２などへの入力に基づいて発生するイベントなどを処理すると共に、アプリケーション実行部１１に対して、適宜、各種機能の実行を指示する。
【００４４】
上述したＵＩ生成部１３は、その内部に、複数のＵＩ定義ファイルに基づいてＵＩの合成処理を行うＵＩ合成処理部６０を含む。また、ＵＩ合成処理部６０は、ＵＩオブジェクト定義情報解析部６１と、ＵＩオブジェクト選択処理部６２と、合成ＵＩ定義ファイル生成部６３と、自動レイアウト処理部６４と、ＵＩリソース整形部６５とを含む。
【００４５】
ＵＩオブジェクト定義情報解析部６１は、ＵＩ定義ファイルに含まれる、各種のＵＩオブジェクトを定義するＵＩオブジェクト定義情報を解析する。
【００４６】
ＵＩオブジェクト選択処理部６２は、多数のＵＩオブジェクトの中から、必要とするＵＩオブジェクトを、自動的にまたはユーザの入力により選択する処理を行う。ユーザの入力により選択を行う場合、ＵＩオブジェクト選択処理部６２は、表示部２４に描画するＵＩオブジェクトを定義するＵＩオブジェクト定義情報を解析することにより、ユーザによるＵＩオブジェクトの選択入力を受け付ける選択画面を生成する処理および制御を行う。
【００４７】
合成ＵＩ定義ファイル生成部６３は、ＵＩ合成処理部６０によって合成されたＵＩを、合成ＵＩ定義ファイルとして生成して出力する。
【００４８】
自動レイアウト処理部６４は、ＵＩを合成する際のレイアウトに関する各種の制御および処理を行う。例えば、自動レイアウト処理部７０は、各ＵＩオブジェクトの配置設定処理、配置可否判定処理、縮小オブジェクト選択処理、サイズ下限値設定処理、マージン設定処理などを行う。以下、これらの各処理の概略を説明する。
【００４９】
各ＵＩオブジェクトの配置設定処理は、所定のＵＩ表示領域内にて実際にＵＩオブジェクトの配置を行う前に、所定の手順に従って仮想的にＵＩオブジェクトの配置を行う処理である。配置可否判定処理は、配置設定処理により仮想的に配置されたＵＩオブジェクトが所定のＵＩ表示領域内に配置可能か否かを判定する処理である。縮小オブジェクト選択処理は、配置可否判定処理によりＵＩオブジェクトの全てを所定のＵＩ表示領域内に配置することはできないと判定された場合、所定の手順に従って、縮小するＵＩオブジェクトを選択する処理である。サイズ下限値設定処理は、端末依存情報やＵＩオブジェクト定義情報に従って、ＵＩオブジェクトを縮小する際の下限値をＵＩオブジェクト毎に設定する処理である。マージン設定処理は、ＵＩオブジェクトを配置する際に、当該ＵＩオブジェクトが他のＵＩオブジェクトまたはＵＩ表示領域の縁部などに近接し過ぎないように、当該ＵＩオブジェクトの周囲に適度な間隔（マージン）の設定を行う処理である。
【００５０】
ＵＩリソース整形部６５は、各ＵＩオブジェクトの表示サイズに基づいて、選択されたＵＩオブジェクトのプレビュー処理や、ＵＩを合成する際に利用するリソースのデータの拡大または縮小処理などを行う。なお、この場合、個別ＵＩリソース記憶領域５３または共通ＵＩリソース記憶領域５４に記憶されているリソースのデータを読み出して使用する。
【００５１】
記憶部５０において、アプリケーション記憶領域５１には、各種の機能を実現する為の処理手順が記載されたデータで構成される、各種のアプリケーションを記憶する。ＵＩ定義ファイル記憶領域５２には、各ＵＩがそれぞれＵＩ全体を生成する際の一連の生成ルールを定義するＵＩ定義ファイルを記憶する。また、個別ＵＩリソース記憶領域５３は、各アプリケーション固有のＵＩを生成する際に使用する画像データや文字列（テキスト）データなどの個別ＵＩリソースを記憶する。共通ＵＩリソース記憶領域５４は、各アプリケーション固有の個別ＵＩリソース以外の、端末にて用いられる、ＵＩが共有して使用する画像データやフォントのデータなどの共通のＵＩリソースを記憶する。実際にＵＩを生成する際には、個別ＵＩリソース記憶領域５３および共通ＵＩリソース記憶領域５４に記憶された画像データおよびテキストデータなどを、タッチパネル２０の表示部２４に表示する。
【００５２】
また、関連アプリケーション情報記憶領域５５には、合成ＵＩ定義ファイル（後述する）に関連するアプリケーションに対する起動情報などを含む関連アプリケーション情報を記憶する。さらに、合成ＵＩ定義ファイル記憶領域５６は、合成ＵＩ定義ファイル生成部６３が生成した合成ＵＩ定義ファイルを記憶する。
【００５３】
次に、本実施の形態にてＵＩ定義ファイル記憶領域５２に記憶するＵＩ定義ファイルについて説明する。
【００５４】
記憶部５０のＵＩ定義ファイル記憶領域５２には、アプリケーション記憶領域５１に記憶された各アプリケーションが実行される際に必要なＵＩの、当該アプリケーションに対応した各仕様および動作などを定義するＵＩ定義ファイルを記憶する。異なるアプリケーションで同じＵＩを使う状況も考えられるが、ここでは説明の便宜のため、異なるアプリケーションに対してそれぞれ異なるＵＩを用いる場合を想定し、各アプリケーションに対応した各ＵＩ定義ファイルを保存する場合について説明する。
【００５５】
例えば、図示しない外部機器であるテレビ受像機を携帯電話１にて遠隔制御するテレビリモコンアプリケーションに対応して、テレビリモコンＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２に記憶する。同様に、図示しない外部機器のエアコンディショナーを携帯電話１にて遠隔制御するエアコンディショナーリモコンアプリケーションに対応して、エアコンディショナーリモコンＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２に記憶する。
【００５６】
本実施の形態では、ＵＩ定義ファイルを記述する言語の例として、ＸＭＬ言語をベースにしたＵＩＭＬ(User Interface Markup Language)の形式に従って説明する。各ＵＩを起動して使用可能にする際には、ＵＩ生成部１３は、このＵＩＭＬファイル形式で記述される定義に従って、携帯電話１のタッチパネル２０の表示部２４にＵＩを表示し、アプリケーション実行部１１は、ユーザによる入力部２２に対する入力に応じた処理を行う。
【００５７】
図１４は、ＵＩ定義ファイルの構成を説明する概念図である。図１４に示すように、携帯電話１の記憶部５０内のＵＩ定義ファイル記憶領域５２には、各ＵＩがそれぞれＵＩ全体を生成する際の一連の生成ルールを定義するＵＩ定義ファイルを格納する。図１４では、ＵＩ定義ファイル（１）〜（６）まで６つのＵＩ定義ファイルを格納しているが、使用するＵＩに応じて、ＵＩ定義ファイル記憶領域５２には任意の数のＵＩ定義ファイルを格納できる。
【００５８】
また、各ＵＩ定義ファイルは、図１４に示すように、複数のＵＩオブジェクト定義情報を含む。図１４では、ＵＩ定義ファイル（２）は６つのＵＩオブジェクト定義情報（（２）−１〜（２）−６）を含んでいるが、実際には、当該ＵＩ定義ファイル（２）に基づいて構成されるＵＩが含むＵＩオブジェクトの個数に対応する数のＵＩオブジェクト定義情報を含む。
【００５９】
ＵＩ定義ファイルに含まれるそれぞれのＵＩオブジェクト定義情報は、図示のように、当該ＵＩオブジェクト定義情報により定義されるＵＩオブジェクトに関連する各種の属性を表す情報を含む。以下、ＵＩオブジェクト定義情報に含まれる代表的な情報を例示する。
（１）部品（ＵＩオブジェクト）の種別情報：当該ＵＩオブジェクトがユーザ操作を受け付けるボタンやキーの機能を持つものか、情報表示のテキストボックス機能を持つものか、表示部２４に画像を表示するだけの機能かなど、種別を特定する情報
（２）ＵＩオブジェクトに使用するリソース情報：表示部２４に表示するＵＩを構成する要素であるキーまたはボタンなどのＵＩオブジェクトを描画するための画像およびテキストを定義する情報
（３）ＵＩオブジェクトを配置する位置情報：当該ＵＩオブジェクトを所定のＵＩ表示領域のどの位置に表示するかを特定する情報
（４）ＵＩオブジェクトの表示サイズ情報：当該ＵＩオブジェクトをＵＩ表示領域に表示する際のサイズを特定する情報
（５）ＵＩオブジェクトの動作条件情報（アクション情報）：当該ＵＩオブジェクトに入力がされた際の（実際にはＵＩオブジェクトに対応する入力部２２の部位に入力がされた際の）、アプリケーションに対する動作を定義する情報（例えば、テレビリモコンＵＩの「電源」のＵＩオブジェクトに対する入力のイベントが発生した場合、テレビリモコンアプリケーションに対して、外部機器のテレビの電源をＯＮまたはＯＦＦにする赤外線信号を発信する指示を出すよう定義する情報）
（６）ＵＩオブジェクトを有効または無効にする情報：当該ＵＩオブジェクトをＵＩ表示領域に表示するか否か、またはＵＩオブジェクトをアクティブ状態にするか否かを特定する情報
（７）ＵＩオブジェクトの優先度情報：当該ＵＩオブジェクトと他のＵＩオブジェクトとの関係に基づいて、複数のＵＩを合成する際に、当該ＵＩオブジェクトの優先度を示す情報
（８）当該ＵＩオブジェクトと他のＵＩオブジェクトとの関連性情報：当該ＵＩオブジェクトが他のＵＩオブジェクトと所定の関連性を有する場合に当該関連性を特定する情報
【００６０】
上記（５）のＵＩオブジェクトの動作条件情報（アクション情報）は、仕様に応じて種々のものが想定できるが、本実施の形態では、アクション情報の種別として、上述したものを含めて主に以下の３種類を規定する。
１．ＵＩオブジェクトのプロパティ（属性情報）を変更するアクション
２．アプリケーションの機能を実行するアクション
３．単体ＵＩを起動するアクション
【００６１】
また、本実施の形態による携帯電話１は、ユーザの選択操作に基づいて、複数のＵＩから複数のＵＩオブジェクトを選択して採用し、当該複数のＵＩオブジェクトを、合成ＵＩとして１つのＵＩ表示領域内に表示することができる。この場合、各ＵＩには、対応するＵＩ定義ファイルがそれぞれ存在するが、ユーザが任意に選択したＵＩオブジェクトにより構成される合成ＵＩには、対応するＵＩ定義ファイルが元々は存在しない。そのため、ユーザの選択によるＵＩオブジェクトにより構成される合成ＵＩを生成した際には、ＵＩ合成処理部６０は、当該合成ＵＩに基づく合成ＵＩ定義ファイルを生成して保存する。以下、この合成ＵＩ定義ファイルの生成の動作について、さらに説明する。
【００６２】
図１５は、合成ＵＩ定義ファイルの構成を説明する概念図である。合成ＵＩ定義ファイルは、複数のＵＩ定義ファイルに含まれるＵＩオブジェクト定義情報を部分的に抜き出し、１つのＵＩ定義ファイルにまとめたものである。なお、この合成ＵＩ定義ファイルに含まれるＵＩオブジェクト定義情報は、そのもととなる単体ＵＩから抽出されて合成される際に、必要に応じて様々な加工が施される。例えば、合成ＵＩを定義するものであることを識別する情報や、関連アプリケーション情報を特定するための情報が付加されたりする。図１５に示す例においては、３つのＵＩ定義ファイル（２），（４），（５）から、それぞれいくつかのＵＩオブジェクト定義情報を抽出したものをまとめて、新たに合成ＵＩ定義ファイル（１）を生成した様子を概念的に表している。このように、それぞれのＵＩオブジェクト定義ファイルからいくつかのＵＩオブジェクト定義情報を抽出して合成ＵＩ定義ファイルにまとめる際に、ＵＩ合成処理部６０は、必要に応じて加工を施してから合成する。
【００６３】
複数のＵＩの合成に際しては、ＵＩ合成処理部６０において、ＵＩオブジェクト選択処理部６２が、各ＵＩ定義ファイルに基づいてＵＩオブジェクト選択画面を生成し、ユーザが選択したＵＩオブジェクトのＵＩオブジェクト定義情報を抽出する。ＵＩ合成処理部６０は、このようにして抽出したＵＩオブジェクト定義情報をまとめる。この際、合成ＵＩ定義ファイル生成部６３が、こうしてまとめられたＵＩオブジェクト定義情報から、１つの合成ＵＩ定義ファイルを生成する。これは、ユーザの視点から見ると、複数のＵＩからＵＩオブジェクトをいくつか選択して採用し、１つの合成ＵＩを生成したことになる。なお、上述したように、ＵＩ合成処理部６０は、合成ＵＩ定義ファイル生成部６３が合成ＵＩ定義ファイルを生成する際に、必要に応じてＵＩオブジェクト定義情報を加工する。それから、それから、ＵＩ合成処理部６０は、合成ＵＩ定義ファイル生成部６３が生成した合成ＵＩ定義ファイルを、合成ＵＩ定義ファイル記憶領域５６に保存する。
【００６４】
以下、ＵＩ定義ファイルに基づいて生成されるＵＩを、具体的な例を用いて説明する。図１６（Ａ）および（Ｂ）は、図１４および図１５に示したような、各ＵＩ定義ファイルに基づいて生成される単体ＵＩ（単体用ユーザインタフェースオブジェクト群）の例として、リモコンアプリケーション用ＵＩを表示した例を示す図である。図１６（Ａ）はテレビ受像機のリモコンアプリケーション用ＵＩ（ユーザインタフェースオブジェクト群）を表示した例であり、図１６（Ｂ）はエアコンディショナーのリモコンアプリケーション用ＵＩ（ユーザインタフェースオブジェクト群）を表示した例である。ＵＩ定義ファイルがＸＭＬをベースにしたＵＩＭＬのファイル形式で記述されている場合には、これらの各ＵＩＭＬのファイルを解析してＵＩを生成すると、表示部２４の所定のＵＩ表示領域内に適切に収まるような一画面用のＵＩが表示される。それぞれのＵＩのＵＩ定義ファイルでは、各ＵＩを構成するＵＩオブジェクトについて、それぞれ、ＵＩオブジェクト定義情報により各種の属性が定義されている。
【００６５】
ＵＩオブジェクト選択処理部６２は、図１６（Ａ）および（Ｂ）に示したような単体ＵＩ（単体用ユーザインタフェースオブジェクト群）から、所定の基準に基づいていくつかのＵＩオブジェクトを選択し、ＵＩ合成処理部６０は、これらのＵＩオブジェクトについて上述した合成ＵＩを生成する処理を行う。これにより、合成ＵＩ定義ファイル生成部６３は、複数のＵＩオブジェクトを選択して採用することにより１つの合成ＵＩを構成する合成ＵＩ定義ファイルを生成できる。
【００６６】
本実施の形態においては、複数のＵＩを合成して合成ＵＩを生成する際に、各ＵＩオブジェクトのうち主要なものが自動選択されるようにすることもできる。この場合、ＵＩオブジェクト選択処理部６２がＵＩオブジェクトを自動選択する際には、上述した（７）ＵＩオブジェクトの優先度情報を利用する。
【００６７】
図１７は、本実施の形態に係るＵＩオブジェクトの優先度情報を説明する図である。
【００６８】
図１７（Ａ）は、携帯電話１において、テレビリモコンアプリケーションのみを起動し、テレビリモコンＵＩ定義ファイルに基づいて、単体ＵＩであるテレビリモコンＵＩをタッチパネル２０に表示した様子を示している。図中では、タッチパネル２０上のＵＩ表示領域を各ＵＩオブジェクトの属性情報に対応する小領域に概念的に分割した様子を一点鎖線によって示す。また、複数のＵＩオブジェクトをまとめて１つのＵＩ（ユーザインタフェースオブジェクト群）として扱うことの定義（ＵＩ識別情報）をinterfaceのタグを付して示し、“TV1_interface”という値から、これがＴＶ１のリモコンのＵＩであることが特定できる。図１７（Ａ）に示す各小領域（１）〜（７）に対応する各ＵＩオブジェクト属性情報の一例を以下に列記する。
Interface id=”TV1_interface”
(1) ID=”switch1” priority=”0”
(2) ID=”ch_select” priority=”1”
(3) ID=”volume” priority=”1”
(4) ID=”10key” priority=”4”
(5) ID=”timer” priority=”3”
(6) ID=”bilingual” priority=”3”
(7) ID=”title” priority=”0”
【００６９】
本実施の形態では、ＵＩオブジェクト属性情報のうち、上述した各小領域（１）〜（７）のＵＩオブジェクトについての優先度を、priorityの値として予め定義する。図１７の例では、priorityの値がゼロのＵＩオブジェクトは必須の（必ず選択される）オブジェクトとし、priorityの値が１のＵＩオブジェクトは重要なオブジェクトとし、それ以降はpriorityの値が増大するほど優先度が低いＵＩオブジェクトであることを意味する。すなわち、例えば図１７（Ａ）の小領域（１）に示す「電源」のキーは必須のキーであるため、priorityの値をゼロとする。また、小領域（２）のチャンネル選局キー、および小領域（３）の音量上下キーは重要なキーであるためpriorityの値は１とする。しかしながら、小領域（４）のテンキーは、小領域（２）および（３）のチャンネル選局キーで代替できるため、priorityの値を４とし、優先度を低く設定する。また、小領域（５）および（６）のタイマーおよび音声切替のキーは優先度がそれほど高くないものとし、priorityの値は3とする。
【００７０】
なお、小領域（７）の文字列は、ユーザの入力を受け付けるキーではなく、このテレビリモコンＵＩに係る名称を表すＵＩオブジェクトである。このような、ＵＩに係る名称は、単体ＵＩを使用する際に不可欠とまでは言えないが、合成ＵＩを生成する際には、視認性を向上させるため、本例においては表示を必須とするＵＩオブジェクトとする。
【００７１】
図１７（Ｂ）は、単体ＵＩであるエアコンディショナーリモコンＵＩのみをタッチパネル２０に表示した様子を示す。図１７（Ｂ）に示す各小領域（１）〜（７）に対応する各ＵＩオブジェクト属性情報の一例を以下に列記する。なお、これら複数のオブジェクトがまとまった１つのエアコンディショナー１のリモコンのＵＩであることが特定できるよう、interfaceのタグの値は“AIR1_interface”とする。
Interface id=”AIR1_interface”
(1) ID=”switch2” priority=”0”
(2) ID=”set_window” priority=”0”
(3) ID=”temp” priority=”1”
(4) ID=”wind_velo” priority=”1”
(5) ID=”direction” priority=”2”
(6) ID=”mode” priority=”3”
(7) ID=”title” priority=”0”
【００７２】
エアコンディショナーリモコンＵＩでは、例えば小領域（１）に示す「電源」のキーは必須のキーであり、小領域（２）に示す「設定温度」の表示は必須であるため、priorityの値をゼロとする。また、小領域（３）および（４）の温度の上下調節キーおよび風力調節キーは重要なキーであるためpriorityの値は１とする。これらと比べて優先度の劣る、小領域（５）の風向調節キーのpriorityの値は２とし、小領域（６）のモードキーのpriorityの値は３とする。なお、小領域（７）の文字列は、ユーザの入力を受け付けるキーではなく、このエアコンディショナーリモコンＵＩに係る名称を表すＵＩオブジェクトであり、本例においては表示を必須とするＵＩオブジェクトとする。
【００７３】
このように、本実施の形態では、各ＵＩオブジェクトと他のＵＩオブジェクトとの関係に基づいて定義された優先度情報(priorityの値)を、ＵＩオブジェクト属性情報として、各ＵＩ定義ファイルのＵＩオブジェクト定義情報に予め含ませる。この優先度情報は、ＵＩ生成部１３が、ＵＩ合成処理においてＵＩオブジェクトの自動選択処理を行う際に、各ＵＩオブジェクトを合成ＵＩに採用するか否かを判定する情報として用いる。表示部２４におけるＵＩ表示領域には限りがあるため、優先度が低いＵＩオブジェクトは合成ＵＩ生成の際に採用しないようにする。その代わりに、元々は他のＵＩに含まれる優先度の高いＵＩオブジェクトを当該合成ＵＩに採用する。
【００７４】
次に、図１８〜２０のフローチャートを参照しながら、本実施の形態による、複数のアプリケーションのＵＩを合成する際の動作について説明する。
【００７５】
図１８は、本実施の形態において、ＵＩ生成部１３によりＵＩ定義ファイルまたは合成ＵＩ定義ファイルからＵＩを生成して使用可能にする処理全体を説明するフローチャートである。まず、ユーザからの入力部２２への操作入力などに基づいてアプリケーションが起動され、アプリケーション実行部１１が当該アプリケーションに係るＵＩの生成を指示すると、ＵＩを生成して使用可能にする処理が開始する。この処理が開始すると、ＵＩを表示する権限を持つアプリケーションが、ＵＩ定義ファイル（ＸＭＬファイル）を指定する（ステップＳ１１）。ＵＩを表示する権限を持つアプリケーションは、携帯電話１にてバックグラウンドで起動するものではなく、アプリケーションの最上位にて動作するものである。この処理の開始のきっかけとなる動作は、ＵＩを用いるアプリケーションを起動する際のユーザの操作、またはユーザが既にアプリケーションを実行中に、ＵＩを用いる他のアプリケーションをさらに起動する際のユーザの操作などが想定される。
【００７６】
次に、ＵＩ生成部１３は、ステップＳ１１にて指定されたＵＩ定義ファイルの数が１つか複数かを判定する（ステップＳ１２）。指定ファイル数が１つと判定された場合、ＵＩ生成部１３は、指示を出したアプリケーションが複数のＵＩの合成を要求していないと判断してステップＳ１３に移行する。ステップＳ１３において、ＵＩ生成部１３は、指定された１つのＵＩ定義ファイルをＵＩ定義ファイル記憶領域５２または合成ＵＩ定義ファイル記憶領域５６から読み出して、当該ＵＩ定義ファイルが合成ＵＩ定義ファイルか否かを判定する。
【００７７】
ステップＳ１３にて、指定されたファイルが合成ＵＩ定義ファイルでない、つまりＵＩ定義ファイル記憶領域５２から読み出された単体ＵＩのＵＩ定義ファイルと判定された場合は、ステップＳ１４に移行する。
【００７８】
ステップＳ１４において、ＵＩ生成部１３は、指定された単体ＵＩのＵＩ定義ファイルに対してＸＭＬパース処理を行ってから、次にＤＯＭ化処理（ステップＳ１５）を行う。この場合のように、指定されたＵＩ定義ファイルが１つで単体ＵＩのＵＩ定義ファイルの場合、これ以降の処理は、従来式のＵＩを生成する処理と同じになる。すなわち、パース処理およびＤＯＭ化処理を行ったＵＩ定義ファイルに基づいて、ＵＩ生成部１３は、ＵＩを生成する処理を行う（ステップＳ１６）。なお、ステップＳ１６のＵＩ生成処理については後述する。次に、ＵＩ生成処理により生成されたＸＭＬファイルのＵＩに基づいて、ＵＩ生成部１３は、タッチパネル２０の表示部２４のＵＩ表示領域にＵＩを表示する処理を行う（ステップＳ１７）。これにより、携帯電話１において単体ＵＩが使用可能になる。
【００７９】
一方、ステップＳ１２において、ステップＳ１１で指定されたファイル数が複数の場合、ＵＩ生成部１３は、アプリケーションが複数のＵＩの合成を要求していると判断し、複数の各ＸＭＬファイルについて、それぞれＸＭＬパース処理（ステップＳ１８）およびとＤＯＭ化処理（ステップＳ１９）を行う。ステップＳ２０にて、ＵＩ生成部１３は、上記パース処理およびＤＯＭ化処理が全てのＵＩ定義ファイルについて完了したか否かを判定し、まだ完了していない場合には、ステップＳ１８に戻り、残りのＵＩ定義ファイルについてパース処理およびＤＯＭ化処理を行う。
【００８０】
ステップＳ２０にて、全てのＵＩ定義ファイルについてパース処理およびＤＯＭ化処理が完了したと判定されたら、ＵＩ合成処理部６０は、パース処理およびＤＯＭ化処理が完了した複数のＵＩを合成する処理を行う（ステップＳ２１）。すなわち、ＵＩ生成部１３は、複数のＵＩの生成（合成）を指示する。なお、ステップＳ２１のＵＩ合成処理についても後述する。
【００８１】
ステップＳ２１にてＵＩ合成処理が行われると、合成ＵＩ定義ファイル生成部６３は、合成したＵＩについての合成ＵＩ定義ファイルを生成する。この後は処理全体が一旦終了になるが、ここで生成された合成ＵＩ定義ファイルを用いて本処理を再び開始すると、ステップＳ１１にて合成ＵＩ定義ファイルが指定される。そのため、ステップＳ１２では１つのファイルが指定され、ステップＳ１３では合成ＵＩ定義ファイルが指定されたと判定される。
【００８２】
このように、ステップＳ１３にて、指定された１つのファイルが合成ＵＩ定義ファイルであると判定された場合、ステップＳ２２に移行する。指定されたファイルが合成ＵＩ定義ファイルである場合は、合成ＵＩ定義ファイルとして生成（準備）した合成ＵＩを起動して実際に使用する際は、各ＵＩオブジェクトを１つの合成ＵＩ（合成ユーザインタフェースオブジェクト群）として表示部２４に表示して使用できる状態にする必要がある。このため、ＵＩ生成部１３は、対象となる合成ＵＩ定義ファイルと関連付けて保存されている関連アプリケーション情報を、記憶部５０の関連アプリケーション情報記憶領域５５から取得する（ステップＳ２２）。次に、取得した関連アプリケーション情報に基づいて、ＵＩ生成部１３は、アプリケーション実行部１１に対して、関連するアプリケーションをバックグラウンドで起動するよう指示する（ステップＳ２３）。
【００８３】
これ以降はステップＳ１４に移行し、単体ＵＩのＵＩ定義ファイル処理の場合と同様の処理になる。すなわち、ＵＩ生成部１３は、指定された合成ＵＩのＵＩ定義ファイルに対してＸＭＬパース処理（ステップＳ１４）およびＤＯＭ化処理（ステップＳ１５）を行う。さらに、指定された合成ＵＩ定義ファイルに基づいて、ＵＩ生成部１３は、合成ＵＩを生成する処理を行う（ステップＳ１６）。それから、ＵＩ生成部１３は、生成された合成ＵＩをタッチパネル２０の表示部２４のＵＩ表示領域に表示する処理を行い（ステップＳ１７）、合成ＵＩ生成の全体的な処理を終了する。
【００８４】
次に、図１９のフローチャートを参照しながら、図１８におけるステップＳ１６のＵＩ生成処理についてさらに説明する。なお、ステップＳ１６のＵＩ生成処理とは、狭義のＵＩ生成処理、すなわちＵＩ定義ファイルを解析し、その解析結果に基づいてＵＩを表示部２４に表示できる状態にする処理である。
【００８５】
図１９におけるＵＩ生成処理の開始時点では、指定されたＵＩ定義ファイルに基づく１つの単体ＵＩまたは１つの合成ＵＩのどちらかが、１つのＤＯＭドキュメント（またはＤＯＭノード）になっている。まず、ＵＩ生成部１３は、ＤＯＭドキュメントに対して表示関連の解析を行う（ステップＳ３１）。これは、ＵＩＭＬ形式で記述されたＵＩ定義ファイルでは、structureタグやstyleタグを付された属性などを解析する。次に、ＵＩ生成部１３は、ＤＯＭドキュメントの動作関連について解析を行う（ステップＳ３２）。これは、ＵＩＭＬ形式で記述されたＵＩ定義ファイルでは、behaviorタグを付された属性などを解析する。
【００８６】
次に、ＵＩ生成部１３は、ＤＯＭドキュメントに含まれる表現を、各端末に依存する表現に変換する処理を行う（ステップＳ３３）。さらに、ＵＩ生成部１３は、ステップＳ３３の変換処理の結果に基づいて、使用するＵＩオブジェクトのリソースを選定して各属性（プロパティ）を設定する（ステップＳ３４）。この際に必要なＵＩオブジェクトのリソースは、個別ＵＩリソースとして個別リソース記憶領域５６に、または共通ＵＩリソースとして共通ＵＩリソース記憶領域５８に記憶されている。この後、ＵＩ生成部１３は、各ＵＩオブジェクトを含むＵＩのプロット処理を行う（ステップＳ３５）。これによりＵＩの生成処理は終了し、この後は図１８のステップＳ１７に移行して、ＵＩの表示処理を行う。
【００８７】
このような処理により、携帯電話１は、単体ＵＩを用いるアプリケーションの実行に伴い、単体ＵＩのＵＩ定義ファイルに基づいて単体ＵＩを表示部２４に表示できる。例えば、テレビリモコンのアプリケーション単体によりテレビリモコン用のＵＩ定義ファイルが指定された場合には、前述の図１６（Ａ）に示すようなＵＩの表示になる。また、エアコンディショナーリモコンのアプリケーション単体によりエアコンディショナーリモコン用のＵＩ定義ファイルが指定された場合には、図１６（Ｂ）に示すようなＵＩの表示になる。また、合成ＵＩを用いるアプリケーションの実行に伴い、合成ＵＩ定義ファイルに基づいて合成ＵＩを表示部２４に表示することもできる。
【００８８】
次に、図２０のフローチャートを参照しながら、図１８におけるステップＳ２１のＵＩ合成処理、すなわち複数のＵＩの生成が指示された際の処理についてさらに説明する。
【００８９】
図２０に示すＵＩ合成処理が開始すると、ＵＩ合成処理部６０は、パース処理およびＤＯＭ化処理が完了した複数のＵＩのＤＯＭノードについて、各ＤＯＭノードを構成するＵＩオブジェクトを全て抽出して、各ＵＩオブジェクトの属性情報を解析する（ステップＳ５１）。各ＵＩオブジェクトの解析すべき属性情報は、図１４に示したように、各ＵＩオブジェクトの優先度情報（priority）を含め種々のものがある。
【００９０】
全ＵＩオブジェクトの属性情報を解析したら、ＵＩ合成処理部６０は、抽出したＵＩオブジェクトの中から合成ＵＩに採用するＵＩオブジェクトを選択（抽出）するに際し、自動選択が指示されているか否かを判定する（ステップＳ５２）。
【００９１】
ステップＳ５２にて自動選択によるＵＩ合成が指示されている場合は、ＵＩオブジェクト選択処理部６２は、ＵＩオブジェクト自動選択処理を行う（ステップＳ５３）。これにより、合成ＵＩを構成するＵＩオブジェクトとして採用されるＵＩオブジェクトが自動で抽出される。ＵＩオブジェクト自動選択処理では、例えば、各ＵＩオブジェクトについて解析した属性情報の優先度情報であるpriorityが0〜2までの値のものを合成ＵＩに採用する等、所定の規則に基づいて、ＵＩオブジェクト選択処理部６２がＵＩオブジェクトを自動選択（抽出）する。
【００９２】
一方、ステップＳ５２にて自動選択によるＵＩ合成が指示されていない場合は、ＵＩオブジェクト選択処理部６２は、ＵＩオブジェクトのユーザによる選択処理を行う（ステップＳ５４）。これにより、ユーザの選択に基づいて、合成ＵＩを構成するＵＩオブジェクトとして採用されるＵＩオブジェクトが抽出される。ＵＩオブジェクトのユーザによる選択処理では、ユーザの操作入力に基づいて、ユーザが選択したＵＩオブジェクトを合成ＵＩに採用する（採用するオブジェクトとして抽出する）。この場合、ＵＩオブジェクト選択処理部１４は、ＵＩオブジェクト選択画面上で、選択されたＵＩオブジェクトの大きさがＵＩ表示領域にて占める合計の占有率を積算して、ＵＩ表示領域に収まらないようなＵＩオブジェクトは選択（抽出）できないようにするのが好適である。
【００９３】
合成ＵＩに採用すべきＵＩオブジェクトが全て選択（抽出）されたら、次に、自動レイアウト処理部６４は、選択（抽出）したＵＩオブジェクトをＵＩ表示領域に仮想的に配置する処理を行う（ステップＳ５６）。この際、ＵＩリソース整形部６５は、選択したＵＩオブジェクトの表示サイズを必要に応じて調節する。また、自動レイアウト処理部６４は、ＵＩオブジェクト同士が接近し過ぎないように、ＵＩオブジェクトの周囲に適当なマージン（余白部分）を必要に応じて設定する。
【００９４】
選択したＵＩオブジェクトの配置処理が完成したら、ＵＩ合成処理部６０は、確定したレイアウトの各ＵＩオブジェクトを１つのＤＯＭノードとして集約する（ステップＳ５７）。次に、合成ＵＩ定義ファイル生成部６３は、選択したＵＩオブジェクトのＵＩオブジェクト定義情報に基づいて、当該選択したＵＩオブジェクトで構成される合成ＵＩを定義する合成ＵＩ定義ファイルを生成する（ステップＳ５８）。こうして生成された合成ＵＩ定義ファイルは、ＸＭＬ形式の１つのファイルとして、記憶部５０の合成ＵＩ定義ファイル記憶領域５６に記憶する。
【００９５】
ステップＳ５８にて合成ＵＩ定義ファイルが生成されたら、ＵＩ合成処理部６０は、合成ＵＩとして選択（抽出）されたＵＩオブジェクトに基づいて関連するアプリケーションの情報を生成する（ステップＳ５９）。ここで生成する関連アプリケーション情報とは、合成ＵＩとして選択（抽出）された各ＵＩオブジェクトに対してユーザの入力があった際に、当該ＵＩオブジェクトに関連するアプリケーションを制御するための情報である。選択されたＵＩオブジェクトに基づく関連アプリケーションの情報が生成されたら、ＵＩ合成処理部６０は、合成ＵＩ定義ファイル生成部６３は、当該関連アプリケーション情報を、合成ＵＩ定義ファイルと関連付けてから、関連アプリケーション情報記憶領域５５に保存する（ステップＳ６０）。この後は、ＵＩ合成処理部６０は、ＵＩ合成処理が完了したことをアプリケーション実行部１１に通知して（ステップＳ６１）、ＵＩ合成処理を終了する。
【００９６】
このような処理により、生成した合成ＵＩ（合成ユーザインタフェースオブジェクト群）を直ちに表示部２４に表示することができる。また、生成した合成ＵＩをすぐには使用せずに、後に、合成ＵＩ定義ファイル記憶領域５６に保存されている合成ＵＩ定義ファイルを読み出して使用することもできる。
【００９７】
以上のＵＩ合成処理を行った後に、図１８で説明したＵＩ生成の全体処理を行うことにより、単体ＵＩの中から選択（抽出）されたＵＩオブジェクトによる合成ＵＩを生成することができる。例えば、図１６（Ａ）に示したテレビ受像機のリモコンアプリケーション用ＵＩと、図１６（Ｂ）に示したエアコンディショナーのリモコンアプリケーション用ＵＩオブジェクトとから選択されたＵＩを用いて、図２１に示すような合成ＵＩ（合成ユーザインタフェースオブジェクト群）を生成することができる。
【００９８】
図２１の合成ＵＩ（合成ユーザインタフェースオブジェクト群）の例では、図２０のステップＳ５３にて、各ＵＩのＵＩオブジェクト属性情報の優先度（priority）の値が0〜2までの値のものを合成ＵＩに採用するという基準に基づいて、ＵＩオブジェクト選択処理部６２がＵＩオブジェクトを自動選択した合成ＵＩを示す。図２１に示す合成ＵＩは、タッチパネル２０のＵＩ表示領域を上下２つの領域に分割して、上半分にテレビリモコンＵＩから選択したＵＩオブジェクトを、また下半分にエアコンディショナーリモコンＵＩから選択したＵＩオブジェクトを配置している。
【００９９】
このように、本実施の形態では、２つのＸＭＬファイルを解析して、優先度の高いＵＩオブジェクトのみを抽出し自動配置して複数のＵＩを合成する。これによりユーザは複数のアプリケーションまたは当該アプリケーションに基づくＵＩを切り替えることなく、複数のＵＩを１つの合成ＵＩとして同時に利用することができる。
【０１００】
（第２実施の形態）
図１は、本発明の第２実施の形態に係るＵＩ生成装置である携帯端末の概略構成を示すブロック図である。
【０１０１】
図１に示す携帯端末２は、例えばＰＤＡ（パーソナルデジタルアシスタンス）等の携帯通信端末であり、タッチパネル２１、制御部８０及び記憶部５０を具えるものである。タッチパネル２１は、ボタンなどのソフトキー（ＵＩオブジェクト）を含んだＵＩを表示させる表示部２３としての機能と、指やペンなどによるソフトキー（ＵＩオブジェクト）への入力を感知する入力部２５としての機能を有する。タッチパネル２１は、例えば、表面弾性方式のタッチパネル、液晶ディスプレイにイメージセンサの機能を付加して一体的に構成したイメージセンサパネル、又は他の任意の好適なタッチパネルから構成されるものである。制御部８０は、記憶部５０に保存されているプログラムに従ってタッチパネル２１と連動した動作を行う部分で、入力手段判定部７１とＵＩ制御部９０とを備えている。制御部８０は、例えば、ＣＰＵ（中央処理装置）等の任意の好適なプロセッサ構成されるものであり、制御部８０の各機能は、当該プロセッサ上で実行されるソフトウェアや、又は各機能の処理に特化した専用のプロセッサ（例えばＤＳＰ（デジタルシグナルプロセッサ））によって構成することができる。入力手段判定部７１は、入力装置の種別を判定する入力装置判定部７２と入力位置の判定を行う入力位置判定部７３とを備えている。ＵＩ制御部９０はＵＩ生成部１３とオブジェクト制御部９１とからなり、ＵＩ生成部１３は図１３における構成と同様に、ＵＩ合成処理部６０を含む。ＵＩ生成部１３及びＵＩ合成処理部６０の機能については、図１３における構成と同様であるため、詳細な説明は省略する。オブジェクト制御部９１は入力を受けたソフトキー（ＵＩオブジェクト）に関連付けられる動作情報（アプリケーション）を記憶部５０から取得し、当該アプリケーションプログラムに従ってＵＩオブジェクトの機能（動作）を実行する。記憶部５０は、図１３における構成と同様に、アプリケーション記憶領域５１とＵＩ定義ファイル記憶領域５２と、個別ＵＩリソース記憶領域（図示しない）と、共通ＵＩリソース記憶領域（図示しない）と、関連アプリケーション情報記憶領域（図示しない）と、合成ＵＩ定義ファイル記憶領域（図示しない）とを備えるものであり、例えば、揮発性メモリ（ＳＲＡＭ等）、不揮発性メモリ（ＥＥＰＲＯＭ等）、又は他の好適な記憶媒体から構成される。記憶部５０の各記憶領域の記憶内容ついては、図１３における構成と同様であるため、詳細な説明は省略する。
【０１０２】
タッチパネル２１には、ＵＩ制御部９０によって単体ＵＩ又は合成ＵＩいずれかのユーザインタフェースが表示される。ＵＩ制御部９０のＵＩ生成部１３は、記憶部５０のＵＩ定義ファイル記憶部５２を参照し、ＵＩ生成に必要なＵＩ定義ファイルを取得する。ＵＩ生成部１３は、ＸＭＬ形式で記述されたＵＩ定義ファイルに対してパース処理（パーシング）およびＤＯＭ(Document Object Model)化処理などを行ってＵＩを生成し、生成したＵＩをＵＩ制御部９０がタッチパネル２１に表示する。タッチパネル２１に合成ＵＩを表示する場合には、ＵＩ制御部９０のＵＩ合成処理部６０は、ＵＩ定義ファイルに含まれる各種のＵＩオブジェクトを定義するＵＩオブジェクト定義情報を解析する。次いで、ＵＩ合成処理部６０は、多数のＵＩオブジェクトの中から、必要とするＵＩオブジェクトを自動的にまたはユーザの入力により選択する処理を行って（例えば各ＵＩオブジェクトのレイアウト情報（ＵＩオブジェクトの表示位置や表示サイズ等の情報等）や優先度等を考慮して）合成ＵＩを生成する。
【０１０３】
タッチパネル２１に表示されたＵＩオブジェクトにユーザが入力操作を行うと、入力手段判定部７１は、入力装置判定部７２及び入力位置判定部７３によってユーザ入力の装置情報（ペン、指などの入力手段）と位置情報（タッチパネル上での座標）とを取得する。
【０１０４】
入力装置判定部７２は、タッチパネル２１への入力を検知し、その接触面積を算出して入力装置（手段）を判別することができる。例えばタッチパネル２１として表面弾性方式のものを用いた場合には、入力により表面弾性波が吸収を受けた分だけ信号値に変化が生じるため、入力装置判定部７２は変化が生じた時間を積分することによって接触面積を算出することができる。例えば、入力装置判定部７２は、タッチパネル２１への接触面積が所定の値未満である場合には、ペンによる入力と判別し、タッチパネル２１への接触面積が所定の値以上である場合には、指による入力と判別できる。
【０１０５】
また、入力装置判定部７２としてイメージセンサを用いることもできる。例えば、タッチパネル２１として液晶ディスプレイにイメージセンサの機能を付加して一体的に構成したイメージパネルを用いた場合には、指或いはペンの入力デバイス（入力手段）がその表面に触れると、画素毎に受光した量が電荷に変換されるため、全エリアの画素を読み込むことで対象イメージを再現することができる。従って、入力装置判定部７２は、対象イメージの特徴部に基づいて入力装置を判定することができる。また、タッチパネル２１に入力操作を行う入力装置の判定を、イメージセンサに代えてカメラを用いて行っても良い。
【０１０６】
入力位置判定部７３は、タッチパネル２１への入力が検知されると、その入力位置を判定する。入力位置判定部７３は、例えばタッチパネル２１として表面弾性方式のものを用いた場合には、振動を与えてから反射した振動が戻ってくるまでの時間を計測することによって、入力位置を判定することができる。また、入力位置判定部７３は、例えば、タッチパネル２１として液晶ディスプレイにイメージセンサの機能を付加して一体的に構成したイメージパネルを用いた場合には、対象イメージの特徴部の表示位置によって、入力位置を判定することができる。
【０１０７】
なお、タッチパネル２１上の複数箇所に同時に入力があった場合には、それぞれの入力に対し、入力装置判定部７２は入力装置を判定し、入力位置判定部７３は入力位置を判定する。
【０１０８】
オブジェクト制御部９１は、入力位置判定部７３により判定される入力位置に応じて、タッチパネル２１の当該入力位置に表示されているＵＩオブジェクトに関連付けられる機能を実行する。例えば、オブジェクト制御部９１は、「電源キー」への入力に対して電源のＯＮとＯＦＦを切り替えたり、「数字キー」への入力に対して所定の番組を選局する動作を行う。また、オブジェクト制御部９１は、入力装置判定部７２により判定される入力装置に応じて、ＵＩオブジェクトの機能を切り替えることができる。例えば、タッチパネル２１への入力が検知され、当該入力が入力装置判定部７２により第１の入力手段によるメイン入力（例えばペン入力）であると判定された場合には、オブジェクト制御部９１は、当該入力位置に対応するＵＩオブジェクトの通常の機能を実行する。また、オブジェクト制御部９１は、入力装置判定部７２によりタッチパネル２１への入力が第２の入力手段であるサブ入力（例えば指による入力）であると判定された場合には、通常の機能とは異なる他の機能を実行することができる。また、オブジェクト制御部９１は、入力の数に応じてＵＩオブジェクトの機能を切り替えることができる。例えば、タッチパネル２１への入力数が１つの場合には、当該入力位置に対応するＵＩオブジェクトの通常の機能を実行し、タッチパネル２１への入力数が２つ以上の場合には、通常の機能とは異なる他の機能を実行することができる。
【０１０９】
図２は、本発明の第２実施の形態に係る携帯端末の動作を示すフローチャートである。なお、本実施の形態においては、メイン入力である第１の入力手段（入力装置）をペンによる入力、サブ入力である第２の入力手段（入力装置）を指による入力として説明を行うが、当該第１の入力及び第２の入力は、他の任意の好適な入力手段を取ることができるものである。
【０１１０】
電源投入等により携帯端末２が起動すると、制御部８０は、タッチパネル２１における入力手段の数をカウントする入力数ｎと、経過時間を表すパラメータである経過時間ｔを初期化（ｎ＝０、ｔ＝０）する（ステップＳ００１）。タッチパネル２１への入力（接触）があると（例えばタッチパネルにペン又は指が触れると）、入力手段判定部７１は、その時点より前の入力情報（例えば、タッチパネル２１にどの入力装置が接触しているか）などから、その入力がすでに接触済みの入力であるかどうか判定する（ステップＳ００３）。入力が新たな入力である場合、制御部８０はタッチパネル２１に接触している入力数ｎを１増加させる（ｎ＝ｎ＋１）（ステップＳ００４）。次いで、入力位置判定部７３が、入力の接触座標（Ｘｎ，Ｙｎ）を取得／保持し（ステップＳ００５）、入力装置判定部７２が入力の接触面積Ｚｎを取得／保存すると（ステップＳ００６）、処理は入力時制御フローに移る（ステップＳ００７）。
【０１１１】
一方、ステップＳ００２において、タッチパネル２１への受け付けられていない又は入力が解除されると（例えばタッチパネルからペン又は指が離れると）、制御部８０は、入力数ｎが０より大きいか判定する（ステップＳ００９）。入力数ｎが０より大きい場合には、１つの入力が非接触（リリース）状態となるため、制御部８０は入力数ｎをデクリメントする（ステップＳ０１０）。入力装置判定部７２は、タッチパネル２１からリリースされた入力手段が指であるか判定する（ステップＳ０１１）。入力装置判定部７２がリリースされた入力手段が指であると判定した場合には、処理はリリース時制御フローに移る（ステップＳ０１２）。
【０１１２】
ステップＳ００２〜Ｓ０１２の処理は、携帯端末２が動作している間ループして行われ、制御部８０は、ループの回数に合わせ経過時間tを増加（ｔ＋＋）させる（ステップＳ００８）。
【０１１３】
図３は、入力時制御フローの詳細を示すフローチャートである。入力装置判定部７２は、入力の接触面積Ｚｉ（１≦ｉ≦ｎ）が指の面積閾値Ａより大きいか否かを判定する（ステップＳ１０１）。入力装置判定部７２は、接触面積Ｚｉが面積閾値Ａより大きい場合には（ステップＳ１０１でＹｅｓ）、入力手段が指であると判定し（Ｔｉ＝ＹＵＢＩ）（ステップＳ１０２）、接触面積Ｚｉが面積閾値Ａ以下である場合には（ステップＳ２０１でＮｏ）、入力手段がペンであると判定する（Ｔｉ＝ＰＥＮ）（ステップＳ１０３）。ステップＳ１０１〜Ｓ１０３は、入力数ｎだけループして行われる。次に、入力数ｎが１である場合には（ステップＳ１０４でＹｅｓ）、処理１が行われ（ステップＳ１０６）、入力数ｎが１ではなく、かつ、入力手段がペンである場合には（ステップＳ１０５でＹＥＳ）、処理２が行われる（ステップＳ１０７）。
【０１１４】
図４は、図３のステップＳ１０６に示す処理１（入力数ｎが１の場合の処理）の詳細を示すフローチャートである。オブジェクト制御部９１は接触座標（Ｘ１，Ｙ１）の位置にあるＵＩオブジェクトＳ１のオブジェクト定義情報をＵＩ定義ファイル５２から取得する（ステップＳ２０１）。入力手段が第１の入力手段であるペン（メイン入力）の場合には（ステップＳ２０２でＴ１＝ＰＥＮ）、ＵＩ制御部９０は入力イベントに対して、ＵＩオブジェクトＳ１へのメイン入力に対する動作（メイン動作）を実行する（ステップＳ２０３）。入力手段が第２の入力手段である指（サブ入力）の場合には（ステップＳ２０２でＴ１＝ＹＵＢＩ）、ＵＩ制御部９０は入力イベントに対して、ＵＩオブジェクトＳ１へのサブ入力に対する動作（サブ動作）を実行する（ステップＳ２０４）。
【０１１５】
図６は、図４のステップＳ２０４に示すＵＩオブジェクトへのサブ入力に対する動作（サブ動作）の詳細を示すフローチャートである。制御部８０は、指による入力（サブ入力）の入力座標（Ｘｎ，Ｙｎ）を基に、指入力が行われたＵＩエリアの判定を行う（ステップＳ４０１）。制御部８０は、指入力の入力範囲（指入力の接触範囲（面積）や、当該指入力を内部に含む所定の領域（例えば指入力周囲の四角形、円形形状などの領域）など）が合成ＵＩに含まれる各インターフェース間の境界である場合には、指入力時（押下時）のエリア情報であるＵＩエリアＡｔに「ＵＩエリア境界」フラグを設定する（ステップＳ４０２）。制御部８０は、指入力が所定のＵＩエリアに対するものである場合には、当該ＵＩエリアの情報をＵＩエリアＡｔに設定する（ステップＳ４０３）。制御部８０は設定したＵＩエリアＡｔを記憶部５０に記憶させる。なお、ＵＩエリアＡｔとは、例えば、図２５（ｂ）に示す合成ＵＩのａ１〜ａ３、図２５（ａ）に示す単体ＵＩのｂ１に示す、それぞれのエリアのことをいうものである。ＵＩエリアＡｔにＵＩエリア境界フラグが設定されている場合には（ステップＳ４０４でＹｅｓ）、ＵＩ合成処理部６０は、ＵＩエリア境界を移動させ、合成ＵＩの各ＵＩエリアの大きさを変更するために合成ＵＩの自動レイアウト処理を開始する（ステップＳ４０５）。自動レイアウト処理においては、ＵＩエリア境界が、指入力の受け付けを終了した位置まで移動させるように、合成ＵＩの再合成処理が行われる。ＵＩ合成処理部６０は、指入力の座標変化に合わせ、各ＵＩエリアの面積を計算し、当該面積に応じて表示するＵＩオブジェクトを選択し、合成ＵＩを再構成する。当該自動レイアウト処理は、指がタッチパネル２１からリリースされるまで継続して行われる。ＵＩエリアＡｔがエリア境界でない場合には、自動レイアウト処理は行われずサブ動作は終了する（ステップＳ４０４のＮｏ）。
【０１１６】
図５は、図３のステップＳ１０７に示す処理２（入力数ｎが１ではなく、ペン入力である場合の処理）の詳細を示すフローチャートである。オブジェクト制御部９１は、入力ｉ（１＜ｉ≦ｎ）に対する接触座標（Ｘｉ，Ｙｉ）の位置にあるＵＩオブジェクトＳｉのオブジェクト定義情報をＵＩ定義ファイル５２から取得する（ステップＳ３０１）。次いで、オブジェクト制御部９１は、ペン入力と指入力による複数の入力に応じたＵＩオブジェクトの処理を実行する（ステップＳ３０２）。なお、図３のステップＳ１０４において入力数ｎが１より大きいことが判定され、ステップＳ１０５において新たな入力がペンであるかどうかの判定が行われている通り、処理２が行われる場合とは、例えば、指（第２の入力手段）でタッチパネル２１を触りながら、ペン（第１の入力手段）で所定のソフトキー（ＵＩオブジェクト）を選択する場合などである。
【０１１７】
図８は、図５のステップＳ３０２に示すペン入力と指入力による複数の入力に応じたＵＩオブジェクトの処理の詳細を示すフローチャートである。オブジェクト制御部９１は、入力ｉ（１＜ｉ≦ｎ）に対する接触座標（Ｘｉ，Ｙｉ）の位置にあるＵＩオブジェクトＳｉのオブジェクト定義情報をＵＩ定義ファイル５２から取得する（ステップＳ６０１）。当該オブジェクト定義ファイルの取得後の処理は、第1の入力手段であるペン入力の入力態様によって大別される。ペン入力がタッチパネル２１上の個々のＵＩオブジェクトを指す場合など、ＵＩオブジェクトを個別に指定する場合には、オブジェクト制御部９１は、個別指定されたＵＩオブジェクトをリスト化し、再合成用リストＧとして記憶部５０に保存する（ステップＳ６０３）。ペン入力がタッチパネル２１上で例えば円を描くように、合成ＵＩの所定の範囲に含まれるＵＩオブジェクトを選択するものである場合には、オブジェクト制御部９１は、当該所定の範囲内のＵＩオブジェクトをリスト化し、再合成用リストＧとして記憶部５０に保存する（ステップＳ６０２）。例えば、当該再合成用リストＧは、合成ＵＩに表示されるＵＩオブジェクトのうち、ユーザが他のＵＩオブジェクトとの入れ替えを希望するものをリスト化したものとすることができる。次に、ＵＩ生成部１３のＵＩ合成処理部６０は、記憶部５０を参照して再合成リストＧがあるかどうかを確認する（ステップＳ６０４）。再合成リストＧがある場合には、ＵＩ合成処理部６０は、再合成リストＧに含まれるＵＩオブジェクトと他のＵＩオブジェクトとを入れ替えたＵＩがタッチパネル２１に表示されるように、合成ＵＩのデータを再合成処理する。次いで、ＵＩ制御部９０は再合成処理された合成ＵＩをタッチパネル２１に表示する（ステップＳ６０５）。当該再合成処理は、例えば、再合成リストＧに含まれるＵＩオブジェクト（第1の入力手段により選択されたＵＩオブジェクト）と、他のＵＩオブジェクトとを変更するように行うことができる。また、当該再合成処理は、例えば、再合成リストＧに含まれるＵＩオブジェクト（第1の入力手段により選択されたＵＩオブジェクト）と、他のＵＩオブジェクトとを変更するように行うことができる。また、特に、当該再合成処理は、再合成リストＧに含まれるＵＩオブジェクトと、他のＵＩオブジェクトのうち、優先度の高いＵＩオブジェクトとを置換するように行うことができる。
【０１１８】
図７は、図２のステップＳ０１２に示すリリース時制御フローの詳細を示すフローチャートである。制御部８０は、入力位置判定部７３から取得した指入力座標（Ｘｎ，Ｙｎ）を基に、指入力がリリースされた（第２入力の受け付けが終了した）ＵＩエリアの判定を行う（ステップＳ５０１）。制御部８０は、指入力がリリースされた際に、指入力の入力範囲がタッチパネル２１の表示領域境界（例えば、タッチパネル２１の表示部２１の最も外側の領域、又は最も外側の領域より所定距離だけ内側の領域など。）を含む場合には、リリース時のエリア情報であるＵＩエリアＢｔに「表示領域境界」フラグを設定する（ステップＳ５０２）。制御部８０は、指入力が所定のＵＩエリアに対するものである場合には、当該ＵＩエリアの情報をＵＩエリアＢｔに設定する（ステップＳ５０３）。制御部８０は、設定したＵＩエリアＢｔを記憶部５０に記憶させる。なお、制御部８０は、タッチパネル２１の表示領域境界と指入力座標とが所定の距離より短い場合にも、当該指入力の入力範囲が表示領域境界を含むものと判定することができる。次に、制御部８０は、記憶部５０に記憶された入力時のエリア情報であるＵＩエリアＡｔを参照し、ＵＩエリアＡｔにＵＩエリア境界フラグが設定されている場合には、自動レイアウト処理が行われているものと判断する（ステップＳ５０４）。自動レイアウト処理が行われていない場合には、制御部８０は、リリース時のＵＩエリアＢｔの判定を行う（ステップＳ５０５）。リリース時のＵＩエリアＢｔが、入力時のＵＩエリアＡｔと異なる場合、ＵＩ合成処理部６０はＵＩ交換処理を行う（ステップＳ５０６）。当該ＵＩ交換処理では、ＵＩ合成処理部６０は、リリース時のＵＩエリアＢｔに存在するインタフェースと、入力時のＵＩエリアＡｔに存在するインタフェースとを交換するように合成ＵＩを再合成し、ＵＩ制御部９０は、当該合成ＵＩをタッチパネル２１に表示する。リリース時のＵＩエリアＢｔが表示領域境界である場合、ＵＩ合成処理部６０はＵＩ合成パターン変更処理を行う（ステップＳ５０７）。当該ＵＩ合成パターン変更処理では、ＵＩ合成処理部６０は、入力時のＵＩエリア構成とは異なるＵＩエリア構成により合成ＵＩを再合成し、ＵＩ制御部９０は当該合成ＵＩをタッチパネル２１に表示する。例えば、ＵＩ合成パターン変更処理においては、ＵＩ合成処理部６０は、縦方向に並べてレイアウトされていた合成ＵＩの各インタフェースの一部を横方向に並べてレイアウトすることにより、合成ＵＩを再合成することができる。自動レイアウト処理が行われている場合には、制御部８０は自動レイアウト処理を解除する（ステップＳ５０８）。なお、当該自動レイアウト処理の解除によって、指入力（第２入力）が終了した位置が確定し、ＵＩ合成処理部６０は、合成ＵＩの各インタフェースの表示領域間の境界を、指入力の開始位置から指入力の終了位置まで移動させるよう再合成処理を行う。
【０１１９】
（第２実施の形態におけるＵＩ交換処理）
図９は、本発明の第２実施の形態に係る携帯端末のＵＩ交換処理（ステップＳ５０６）の様子を示す図である。図９（ａ）の携帯端末２のタッチパネル２１には合成ＵＩが表示されており、当該合成ＵＩはメールアプリケーションのＵＩ（ａ１）、テレビアプリケーションのＵＩ（ａ２）及びＷｅｂブラウザアプリケーションのＵＩ（ａ３）の合成ＵＩである。図９（ａ）の携帯端末２に対して、第２の入力手段である指による入力（サブ入力）が開始位置Ｔ１で開始され、終了位置Ｔ２でリリースされると、携帯端末２のタッチパネル２１の合成ＵＩでは、開始位置Ｔ１のＵＩエリアＡｔに対応するテレビアプリケーションのＵＩ（ａ２）と、終了位置Ｔ２のＵＩエリアＢｔに対応するメールアプリケーションのＵＩ（ａ１）との位置が交換された表示（図９（ｂ））に切り替わる。
【０１２０】
本実施の形態においては、まず、図９（ａ）に示すように指入力が開始位置Ｔ１にあった際に、図２に示すステップＳ００２〜Ｓ００７まで処理が進み、指入力に対する入力時制御フローが行われる。図３に示す入力時制御フローにおいては、入力数ｎは１であるため、ステップＳ１０６の処理１が行われる。図４に示す処理１においては、指入力（サブ入力）に対応した、サブ動作が行われ（ステップＳ２０４）、図６に示すサブ動作では、指入力が示すＵＩエリアＡｔ（本実施の形態ではａ１）が記憶部５０に記憶される（ステップＳ４０３）。
【０１２１】
次いで、図９（ａ）に示すように指入力が終了位置Ｔ２でリリースされると、図２に示すステップＳ００２において処理がステップＳ００９〜Ｓ０１２に分岐し、指入力に対するリリース時制御フローが行われる（ステップＳ０１２）。図７に示すリリース時制御フローにおいては、リリース時のＵＩエリアＢｔ（本実施の形態ではａ１）と入力時のＵＩエリアＡｔ（本実施の形態ではａ２）とが異なるため、ＢｔとＡｔとの交換処理が行われる（ステップＳ５０６）。
【０１２２】
このように、本実施の形態によれば、ユーザは、第２の入力手段である指による入力（サブ入力）を所定のＵＩエリアで開始し、他のＵＩエリアでリリースすることによって、極めて簡単な操作で合成ＵＩのＵＩエリアを交換することが可能になる。
【０１２３】
（第２実施の形態におけるＵＩ合成パターン変更処理）
図１０は、本発明の第２実施の形態に係る携帯端末のＵＩ合成パターン変更処理（ステップＳ５０７）の様子を示す図である。図１０（ａ）の携帯端末２のタッチパネル２１には合成ＵＩが表示されており、当該合成ＵＩはメールアプリケーションのＵＩ（ａ１）、テレビアプリケーションのＵＩ（ａ２）及びＷｅｂブラウザアプリケーションのＵＩ（ａ３）が縦方向に３段に表示された合成ＵＩである。図１０（ａ）の携帯端末２に対して、第２の入力手段である指による入力（サブ入力）が開始位置Ｔ１で開始され、指入力の入力範囲がタッチパネル２１の表示領域境界を含む位置である終了位置Ｔ２で指がリリースされると、携帯端末２のタッチパネル２１の合成ＵＩでは、開始位置Ｔ１のＵＩエリアに対応するテレビアプリケーションのＵＩ（ａ２）と、終了位置Ｔ２のＵＩエリアに対応するＷｅｂブラウザアプリケーションのＵＩ（ａ３）との配置が、横方向の配置に変化した表示（図９（ｂ））に切り替わる。
【０１２４】
本実施の形態においては、まず、図１０（ａ）に示すように指入力が開始位置Ｔ１にあった際に、図２に示すステップＳ００２〜Ｓ００７まで処理が進み、指入力に対する入力時制御フローが行われる。図３に示す入力時制御フローにおいては、入力数ｎは１であるため、ステップＳ１０６の処理１が行われる。図４に示す処理１においては、指入力（サブ入力）に対応した、サブ動作が行われ（ステップＳ２０４）、図６に示すサブ動作では、指入力が示すＵＩエリアＡｔ（本実施の形態ではａ１）が記憶部５０に記憶される（ステップＳ４０３）。
【０１２５】
次いで、図１０（ａ）に示すように指入力が終了位置Ｔ２でリリースされると、図２に示すステップＳ００２において処理がステップＳ００９〜Ｓ０１２に分岐し、指入力に対するリリース時制御フローが行われる（ステップＳ０１２）。図７に示すリリース時制御フローにおいては、リリース時のＵＩエリアＢｔがタッチパネル２１の表示領域境界であるため、リリース時のＵＩエリアＢｔと入力時のＵＩエリアＡｔとの配置を変化させる処理が行われる（ステップＳ５０７）。なお、第２の入力手段である指入力の入力範囲が表示領域境界を含む場合とは、終了位置Ｔ２の範囲がタッチパネル２１の表示領域の最も外側の領域を含む場合とすることができる。また、第２の入力手段である指入力の入力範囲が表示領域境界を含む場合とは、指入力の移動中に、第２の入力手段である指入力の周囲に入力範囲判定ウィンドウＷ１を表示させ、当該入力範囲判定ウィンドウＷ１がタッチパネル２１の表示領域の最も外側の領域を含む場合とすることができる。
【０１２６】
このように、本実施の形態によれば、ユーザは、第２の入力手段である指による入力（サブ入力）を所定のＵＩエリアで開始し、表示領域の境界で当該指示をリリースすることによって、極めて簡単な操作で合成ＵＩのＵＩエリアの配置変更をすることが可能になる。
【０１２７】
（第２実施の形態における自動レイアウト）
図１１は、本発明の第２実施の形態に係る携帯端末の自動レイアウト（ステップＳ４０５）の様子を示す図である。図１１（ａ）の携帯端末２のタッチパネル２１には合成ＵＩが表示されており、当該合成ＵＩはテレビリモコンアプリケーションのＵＩ（ａ４）、エアコンディショナーリモコンアプリケーションのＵＩ（ａ５）及びビデオリモコンアプリケーションのＵＩ（ａ６）の合成ＵＩである。図９（ａ）の携帯端末２に対して、第２の入力手段である指による入力（サブ入力）が開始位置Ｔ１で開始され、終了位置Ｔ２でリリースされると、携帯端末２のタッチパネル２１では、各ＵＩエリア間の境界（点）の位置が移動し、各ＵＩエリアの大きさ及び表示されるＵＩオブジェクトが変化した表示（図１１（ｂ））に切り替わる。
【０１２８】
本実施の形態においては、まず、図１１（ａ）に示すように指入力が開始位置Ｔ１にあった際に、図２に示すステップＳ００２〜Ｓ００７まで処理が進み、指入力に対する入力時制御フローが行われる。図３に示す入力時制御フローにおいては、入力数ｎは１であるため、ステップＳ１０６の処理１が行われる。図４に示す処理１においては、指入力（サブ入力）に対応した、サブ動作が行われ（ステップＳ２０４）、図６に示すサブ動作では、ＵＩエリアＡｔに「ＵＩエリア境界」フラグが設定され（ステップＳ４０２）、自動レイアウト処理が開始される（ステップＳ４０５）。
【０１２９】
次いで、図１１（ａ）に示すように指入力が終了位置Ｔ２でリリースされると、図２に示すステップＳ００２において処理がステップＳ００９〜Ｓ０１２に分岐し、指入力に対するリリース時制御フローが行われる（ステップＳ０１２）。図７に示すリリース時制御フローにおいては、合成ＵＩの自動レイアウト中であるため、自動レイアウトの解除が行われ、合成ＵＩの各インタフェースの表示領域間の境界を、指入力の開始位置から指入力の終了位置まで移動させるよう再合成処理が行われる（ステップＳ５０８）。
【０１３０】
このように、本実施の形態によれば、ユーザは、第２の入力手段である指による入力（サブ入力）を合成ＵＩ中の各インタフェース間の境界（点）で開始し、他の位置でリリースすることによって、極めて簡単な操作で合成ＵＩの構成を変更することが可能になる。
【０１３１】
（第２実施の形態に係るＵＩ切換）
図１２は、本発明の第２実施の形態に係る携帯端末のＵＩ切換の様子を示す図である。図１２（ａ）の携帯端末２のタッチパネル２１には合成ＵＩが表示されており、当該合成ＵＩはテレビリモコンアプリケーションのＵＩ（ａ４）、エアコンディショナーリモコンアプリケーションのＵＩ（ａ５）及びビデオリモコンアプリケーションのＵＩ（ａ６）の合成ＵＩである。図１２（ａ）合成ＵＩには、ｍｅｎｕキーＢ１及び切換キーＢ２が含まれる。図１２（ａ）の携帯端末２に対して、第２の入力手段である指による入力（サブ入力）Ｔ３があり、タッチパネル２１を指（Ｔ３）で触れた状態で、ペンによる入力Ｔ４がｍｅｎｕキーＢ１及び切換キーＢ２の周囲を囲むように行われると、携帯端末２のタッチパネル２１の合成ＵＩでは、図１２（ａ）で指示されたｍｅｎｕキーＢ１及び切換キーＢ２が、音声キーＢ３及びＢ４が入れ替わった表示（図１２（ｂ））に切り替わる。
【０１３２】
本実施の形態においては、図１２（ａ）に示すように指入力Ｔ３があった際に、図２に示すステップＳ００２〜Ｓ００７まで処理が進み、指入力に対する入力時制御フローが行われる。図３に示す入力時制御フローにおいては、入力数ｎは１であるため、ステップＳ１０６の処理１が行われる。図４に示す処理１においては、指入力（サブ入力）に対応した、サブ動作が行われ（ステップＳ２０４）、図６に示すサブ動作では、指入力が示すＵＩエリアＡｔが記憶部５０に記憶される（ステップＳ４０１）。
【０１３３】
図１２（ａ）では、指入力Ｔ３が接触している状態で、ペン入力（メイン入力）Ｔ４がタッチパネル２１に行われる。すると、図２に示すステップＳ００２〜Ｓ００７まで処理が進み、指入力に対する入力時制御フローが行われる。図３に示す入力時制御フローにおいては、入力数ｎは２であり、入力はペンであるため、ステップＳ１０７の処理２が行われる。図５に示す処理２においては、ペン入力と指入力による複数の入力に応じたＵＩオブジェクトの処理が行われる（ステップＳ３０２）。図８に示すとおり、タッチパネル２１では、第１の入力手段であるペンによってＵＩオブジェクトが範囲指定されているため、ペン入力による指示範囲内のＵＩオブジェクト（本実施例ではｍｅｎｕキーＢ１、切換キーＢ２）が再合成リストＧに保存される（ステップＳ６０２）。なお、第１の入力手段であるペンによって、例えばｍｅｎｕキーＢ１が個別に指定された場合には、当該ペン入力が指示したＵＩオブジェクト（ｍｅｎｕキーＢ１）が再合成リストＧに保存される。再合成リストＧがある場合には、再合成リストＧに含まれるＵＩオブジェクトと他のＵＩオブジェクトとを入れ替えたＵＩがタッチパネル２１に表示されるように合成ＵＩの再合成が行われる（ステップＳ６０５）。なお、指入力Ｔ２がある状態でのペン入力Ｔ３のリリース動作は、図２に示すステップＳ０１１の分岐によって、合成ＵＩの再合成を生じさせることはない。
【０１３４】
このように、本実施の形態によれば、ユーザは、第２の入力手段である指入力（サブ入力）がタッチパネル上にある状態で、第１の入力手段であるペン入力（メイン入力）によって合成ＵＩ上のＵＩオブジェクトを選択（個別選択又は範囲選択）することにより、極めて簡単な操作で、ユーザが希望するＵＩオブジェクトを合成ＵＩ上で置き換えて表示させることが可能になる。なお、再合成においては、ペン入力によって選択されたＵＩオブジェクトを合成ＵＩに追加表示するようにしてもよいし、合成ＵＩに表示されているＵＩオブジェクトのうち優先度の低いものと置換表示するようにしてもよい。又、ＵＩオブジェクトの追加や置換タイミングは、ペン入力によって選択された際でもよい。
【０１３５】
本発明は、上記各実施例に限定されるものではなく、幾多の変更及び変形が可能である。例えば、実施例においては、タッチセンサとして表面弾性方式のものを用いて説明したが、センサ方式のタッチセンサを用いても本発明は実現可能である。また、実施例では、ＰＤＡを挙げて説明してあるが、携帯電話のような携帯無線端末、携帯ゲーム機、携帯オーディオプレイヤー、携帯ビデオプレイヤー、携帯電子辞書、携帯電子書籍ビューワー等の携帯端末に幅広く本発明を適用することが可能である。さらに、メイン入力をペンとするとともにサブ入力を指とした場合について説明したが、メイン入力を指とするとともにサブ入力をペンとした場合についても本発明を適用することができ、入力数が３以上の場合にも本発明を適用することができる。
【符号の説明】
【０１３６】
１  携帯電話
２  携帯端末
２０、２１  タッチパネル
２４、２３  表示部
２２、２５  入力部
１０、８０  制御部
１１  アプリケーションプログラム実行部
１２  ユーザインタフェース取得部
１３  ユーザインタフェース生成部
１４  計時部
１５  ユーザインタフェースイベント処理部
３０  無線通信部
４０  赤外線通信部
５０  記憶部
７１  入力手段判定部
７２  入力装置判定部
７３  入力位置判定部
９０  ユーザインタフェース制御部
９１  オブジェクト制御部
５０  記憶部
５１  アプリケーション記憶領域
５２  ユーザインタフェース定義ファイル記憶領域
５３  個別ユーザインタフェースリソース記憶領域
５４  共通ユーザインタフェースリソース記憶領域
５５  関連アプリケーションプログラム情報記憶領域
５６  合成ユーザインタフェース定義ファイル記憶領域
６０  ユーザインタフェース合成処理部
６１  ユーザインタフェースオブジェクト定義情報解析部
６２  ユーザインタフェースオブジェクト選択処理部
６３  合成ユーザインタフェース定義ファイル生成部
６４  自動レイアウト処理部
６５  ユーザインタフェースリソース整形部
【図１】
0005518716.tif 000002
【図２】
0005518716.tif 000003
【図３】
0005518716.tif 000004
【図４】
0005518716.tif 000005
【図５】
0005518716.tif 000006
【図６】
0005518716.tif 000007
【図７】
0005518716.tif 000008
【図８】
0005518716.tif 000009
【図９】
0005518716.tif 000010
【図１０】
0005518716.tif 000011
【図１１】
0005518716.tif 000012
【図１２】
0005518716.tif 000013
【図１３】
0005518716.tif 000014
【図１４】
0005518716.tif 000015
【図１５】
0005518716.tif 000016
【図１６】
0005518716.tif 000017
【図１７】
0005518716.tif 000018
【図１８】
0005518716.tif 000019
【図１９】
0005518716.tif 000020
【図２０】
0005518716.tif 000021
【図２１】
0005518716.tif 000022
【図２２】
0005518716.tif 000023
【図２３】
0005518716.tif 000024
【図２４】
0005518716.tif 000025
【図２５】
0005518716.tif 000026