JP5200095B2 - ユーザインタフェース生成装置 - Google Patents

ユーザインタフェース生成装置 Download PDF

Info

Publication number
JP5200095B2
JP5200095B2 JP2010500681A JP2010500681A JP5200095B2 JP 5200095 B2 JP5200095 B2 JP 5200095B2 JP 2010500681 A JP2010500681 A JP 2010500681A JP 2010500681 A JP2010500681 A JP 2010500681A JP 5200095 B2 JP5200095 B2 JP 5200095B2
Authority
JP
Japan
Prior art keywords
user interface
information
interface object
unit
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010500681A
Other languages
English (en)
Other versions
JPWO2009107589A1 (ja
Inventor
健太 木下
和宏 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Corp
Original Assignee
Kyocera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyocera Corp filed Critical Kyocera Corp
Priority to JP2010500681A priority Critical patent/JP5200095B2/ja
Publication of JPWO2009107589A1 publication Critical patent/JPWO2009107589A1/ja
Application granted granted Critical
Publication of JP5200095B2 publication Critical patent/JP5200095B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/247Telephone sets including user guidance or feature selection means facilitating their use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72469User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/22Details of telephonic subscriber devices including a touch pad, a touch sensor or a touch detector

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Description

関連出願の相互参照
本出願は、2008年2月27日に出願された日本国特許出願2008−45726号、および2008年3月28日に出願された日本国特許出願2008−88248号の優先権を主張するものであり、これらの先の出願の開示全体をここに参照のために取り込む。
本発明は、ユーザインタフェース生成装置に関し、特に、携帯端末のユーザインタフェースを生成するユーザインタフェース生成装置に関するものである。
関連技術
携帯電話に代表される携帯端末のユーザインタフェース(以下、適宜「UI」と略記する)は、ユーザが携帯端末を操作する際の操作性を大きく左右する。そのため、携帯端末のUIは、ユーザが携帯端末を購入する際の決め手となる重要な要素の1つになっている。
近年、携帯端末は著しく多機能化し、それに伴いアニメーションや3Dの表現などを利用した表現力豊かなUIを備える携帯端末も多い。また、ユーザの嗜好に合わせてUIをカスタマイズできる携帯端末もあり、このような携帯端末は、ユーザにとっての利便性を著しく向上させている。
従来の携帯端末は、各メーカ間および各機種間でUIのデザインや操作方法が異なるのが一般的であった。すなわち、UIは各端末機器に固有のものであり、端末ごとに機種依存性の高いUIを備えるものがほとんどであった。そのため、端末の開発を行う際に、他の端末のプログラムコードを再利用する場合、そのプログラムコードに対して必要なUI部分の変更は膨大になる。したがって、ある端末のプログラムコードを他の端末に移植するのは困難であった。
そこで、最近では、XML(Extensible Markup Language)をベースにしたUIが導入されつつある。記述方式が共通化されたXMLファイルを用いてUIを表現することによって、プログラムコードの再利用が容易になり、他の機種へのUIの移植も可能になる。したがって、例えば、異なるメーカの異なる端末機種間でも同じUIを使用することができるなど、各端末からUIのみを独立させるように扱うことも可能になる。
このような、XMLをベースにしたUIのうち代表的なものとして、TAT社(http://www.tat.se/)が開発したUI Foundationや、Acrodea社(http://www.acrodea.co.jp/)が開発したVIVID UIや、Qualcomm社(http://www.qualcomm.co.jp/)が開発したUI Oneなどを挙げることができる。
また、近年の携帯端末は、端末本体の多機能化および高性能化に伴い、同時に複数のタスクを並行して実行できるマルチタスク処理に対応したOS(オペレーティングシステム)を実装したものが増えている。さらに、並行して同時に処理する複数のタスクにそれぞれ固有の表示領域(ウィンドウ)を割り当てて、出力画面の表示を多重化するマルチウィンドウ機能に対応した携帯端末も普及しつつある。
ところで、例えば特開2001−36652号公報には、赤外線通信部を備える携帯電話端末を用いて、赤外線通信により複数の外部機器を遠隔操作(制御)できるようにした技術が開示されている。この特開2001−36652号公報に記載の携帯電話端末は、外部機器との通信を行う外部制御部を備えている。この携帯電話端末は、外部の機器を遠隔制御するための外部機器制御情報を、電話回線などを介して取得したり、または外部機器から受信するなどして記憶し、この外部機器制御情報に基づいて外部機器を遠隔制御することができる。すなわち、内蔵のアプリケーションプログラム(以下、単に「アプリケーション」という)を変更することで、通常は携帯電話として使用する端末本体を、複数の外部機器を遠隔操作するリモートコントロール(以下、単に「リモコン」という)端末として用いることができる。
上記特開2001−36652号公報に開示されている携帯電話端末によると、各外部機器に対応するそれぞれの外部機器制御情報に基づいて、1台の携帯電話端末で複数の外部機器を遠隔操作できる。したがって、複数の外部機器のそれぞれについて個別のリモコン端末を複数使い分ける煩雑な操作が必要なく、ユーザにとっての利便性を高めることができる。
このような、遠隔制御する複数の外部機器を切り替えるリモコン機能を、上述したマルチタスク処理が可能な携帯端末にて実現すれば、各リモコンのアプリケーションをいちいち一旦終了させて次のリモコンのアプリケーションを起動させる必要はない。すなわち、複数のアプリケーションを1つの端末で同時に起動させて、その中から、使いたい任意のリモコンのアプリケーションに適時切り替えて使用できる。
しかしながら、複数のアプリケーションを頻繁に切り替えて使用する場合には、その切り替え操作は煩雑なものとなる。
そこで、携帯端末に上述したマルチウィンドウの機能を組み合わせれば、複数のウィンドウに、複数のアプリケーションを操作するUIをそれぞれ再現することも可能になる。このようにすれば、複数のアプリケーションを切り替えて使用するのではなく、1画面上で同時に使用できる。
例えば、図14(A)に示すような、テレビのリモコン端末単独であれば、図14(B)に示すように、例えばタッチパネル200を備える携帯端末100上に、テレビリモコンアプリケーションのUIを、その操作性を維持したまま再現できる。また、図14(C)に示すような、エアコンディショナーのリモコン端末単独の場合も同様に、図14(D)のように、タッチパネル200を備える携帯端末100上に、エアコンディショナーリモコンアプリケーションのUIを、その操作性を維持したまま再現できる。さらに、それぞれのアプリケーションのUIを、XMLをベースとして記述すれば、他メーカの端末などにアプリケーションを移植しても、UIを記述したXMLのファイルを加工するだけでほとんど同じUIを容易に再現できる。
しかしながら、上述の例において、テレビの視聴中にエアコンディショナーの操作を行う場合、テレビもエアコンディショナーも頻繁な操作を要するため、両者のアプリケーションを、マルチタスクおよびマルチウィンドウの機能を用いて、表示部の表示領域を分割して同時に表示したとする。この場合、各アプリケーションは単独で使用することを想定したUIしか備えていないため、各UIをそのまま同時表示すると、図15(A)〜(D)に示すような状態になる。
図15(A)〜(D)は、マルチタスクおよびマルチウィンドウの機能を実装した携帯端末100で2つのアプリケーションのUIを同時表示した様子を示す図である。図に示す例においては、タッチパネル200の表示部の表示を上下に分割した各ウィンドウ内で、それぞれのUIをそのまま再現したため、各UIとも一部しか表示されていない。画面上に表示しきれない部分でも操作ができるように、各ウィンドウの右端にはスクロールバーを備えている。
例えば図15(A)に示す状態で、テレビの音量を調節したい場合には、ユーザは、テレビリモコンUIのウィンドウのスクロールバーを移動して、図15(B)に示すようにテレビリモコンUIの表示範囲を移動させなくてはならない。同様に、例えば図15(C)に示す状態で、エアコンディショナーの温度を調節したい場合、ユーザは、エアコンディショナーリモコンUIのウィンドウのスクロールバーを移動して、図15(D)に示すようにエアコンディショナーリモコンUIの表示範囲を移動させなくてはならない。さらに、マルチウィンドウで複数のアプリケーションを起動する場合、UIを重畳表示する際は、まず入力するウィンドウを選択してアクティブにしてから入力操作を開始しなくてはならない。
特に、携帯端末の場合は、端末本体が非常に小さく設計されるため、タッチパネルで構成するUIの場合も物理的なキーで構成するUIの場合も、UIとして利用できる領域は極めて制限されている。したがって、リモコンなどのアプリケーションのUIを構成する操作部は、もともと最小に近い大きさで設計されるのが一般的である。そのため、複数のアプリケーションのUIを同時表示する際に、各UIをそれぞれ全体的に縮小して同時に表示するのは現実的ではない。
このように一画面用にデザインされたUIをマルチウィンドウで表示した場合、その操作性は悪化してしまう。
したがって、かかる事情に鑑みてなされた本発明の目的は、複数のアプリケーションプログラムのユーザインタフェースを同時に実現し、かつ各ユーザインタフェースの操作性を維持できるユーザインタフェース生成装置を提供することにある。
上記目的を達成する第1の観点に係るユーザインタフェース生成装置の発明は、
アプリケーションプログラムに基づいて各種の機能を実現するアプリケーションプログラム実行部と、
前記アプリケーションプログラムに基づく所定の機能の実行を前記アプリケーションプログラム実行部に指示するためのユーザインタフェースを生成するユーザインタフェース生成部と、
前記ユーザインタフェース生成部により生成されるユーザインタフェースを表示する表示部と、
前記ユーザインタフェースの構成要素であるユーザインタフェースオブジェクトを定義するユーザインタフェースオブジェクト定義情報を含むユーザインタフェース定義ファイルを格納する記憶部と、を備え、
前記ユーザインタフェース生成部は、複数の前記ユーザインタフェースの生成が指示された場合、当該指示された複数のユーザインタフェースの各々に対応して前記記憶部に格納されたユーザインタフェース定義ファイルに含まれるユーザインタフェースオブジェクト定義情報を、前記表示部において当該ユーザインタフェースを表示する所定の表示領域に応じて取捨選択し、選択されたユーザインタフェースオブジェクト定義情報に基づいて合成ユーザインタフェースを生成するユーザインタフェース合成処理を行うことを特徴とするものである。
第2の観点に係る発明は、第1の観点に係るユーザインタフェース生成装置において、
前記ユーザインタフェースオブジェクト定義情報は、該ユーザインタフェースオブジェクトと、該ユーザインタフェースオブジェクトを含むユーザインタフェースに含まれる他のユーザインタフェースオブジェクトとの関係を示すユーザインタフェースオブジェクト属性情報を含み、
前記ユーザインタフェース生成部は、複数の前記ユーザインタフェースの生成が指示された場合、前記表示領域と、前記ユーザインタフェースオブジェクト属性情報とに基づき、前記所定のユーザインタフェースオブジェクト定義情報を取捨選択することを特徴とするものである。
第3の観点に係る発明は、第2の観点に係るユーザインタフェース生成装置において、
前記ユーザインタフェースオブジェクト定義情報は、当該ユーザインタフェースを構成する各ユーザインタフェースオブジェクトが有効か無効かを示すユーザインタフェースオブジェクト属性情報をさらに含み、
前記ユーザインタフェース生成部は、複数の前記ユーザインタフェースの生成が指示された場合、前記表示領域と、前記ユーザインタフェースオブジェクト属性情報とに基づき、前記所定のユーザインタフェースオブジェクト定義情報を取捨選択することを特徴とするものである。
第4の観点に係る発明は、第2または第3の観点に係るユーザインタフェース生成装置において、
前記ユーザインタフェースオブジェクト定義情報は、当該ユーザインタフェースオブジェクトに対するイベント発生時に実行すべき動作内容を示すアクション情報を含み、
該アクション情報は、他のユーザインタフェースオブジェクト定義情報に含まれる前記ユーザインタフェースオブジェクト属性情報の変更に関する情報を含み、
前記ユーザインタフェース生成部は、前記合成ユーザインタフェースにおいて前記イベントが発生し、当該イベントの発生を受け付けたユーザインタフェースオブジェクトのユーザインタフェースオブジェクト定義情報に含まれるアクション情報に基づいて前記ユーザインタフェースオブジェクト属性情報が変更された場合、当該変更されたユーザインタフェースオブジェクト属性情報に基づいてユーザインタフェース合成処理を行い新たな合成ユーザインタフェースを生成することを特徴とするものである。
第5の観点に係る発明は、第1の観点から第の観点のいずれか1つの観点に係るユーザインタフェース生成装置において、
前記ユーザインタフェース定義ファイルは、該ユーザインタフェース定義ファイルに基づいて生成されるユーザインタフェースを識別する識別情報を含み、
前記ユーザインタフェース生成部は、選択されたユーザインタフェースオブジェクト定義情報を前記識別情報に基づいて加工することを特徴とするものである。

第1実施の形態に係るユーザインタフェース生成装置の概略構成を示すブロック図である。 第1実施の形態に係るユーザインタフェースオブジェクト属性情報である優先度を示す情報を説明する図である。 第1実施の形態によるユーザインタフェース生成部の処理全体を説明するフローチャートである。 図3のユーザインタフェース合成処理についてさらに説明するフローチャートである。 図3のユーザインタフェース生成処理についてさらに説明するフローチャートである。 第1実施の形態において2つのユーザインタフェースを合成した例を示す図である。 第2実施の形態に係るユーザインタフェースオブジェクト属性情報であるユーザインタフェース識別情報を利用したユーザインタフェースの合成を説明する図である。 第2実施の形態によるユーザインタフェース合成処理について説明するフローチャートである。 第2実施の形態において2つのユーザインタフェースを合成した例を示す図である。 第3実施の形態に係るユーザインタフェースオブジェクト属性情報であるユーザインタフェースオブジェクトの有効/無効を示す情報を利用したユーザインタフェースの合成を説明する図である。 第3実施の形態によるユーザインタフェース合成処理について説明するフローチャートである。 第3実施の形態においてユーザインタフェースを更新した例を示す図である。 第3実施の形態においてユーザインタフェースを更新する際の属性情報を説明する図である。 従来のリモートコントロール端末を携帯端末のユーザインタフェースで再現した状態を示す図である。 従来の携帯端末にて2つのユーザインタフェースを合成した例を示す図である。
符号の説明
1 ユーザインタフェース生成装置
10 制御部
12 アプリケーションプログラム実行部
14 ユーザインタフェース取得部
16 ユーザインタフェース生成部
18 ユーザインタフェース合成処理部
20 タッチパネル
22 入力部
24 表示部
30 無線通信部
40 赤外線通信部
50 記憶部
52 アプリケーションプログラム記憶領域
54 ユーザインタフェース定義ファイル記憶領域
56 個別ユーザインタフェースリソース記憶領域
58 共通ユーザインタフェースリソース記憶領域
以下、本発明の各実施の形態について、図面を参照して説明する。以下の各実施の形態では、本発明のユーザインタフェース(以下、「UI」と記す)生成装置の一例として、各種外部機器の遠隔制御が可能なリモコン機能を実装した携帯電話を想定して説明する。しかしながら、本発明のUI生成装置は携帯電話に限定されるものではなく、例えばノートパソコンやPDAなどの任意の携帯端末などに適用することが可能である。また、本発明の実装を必要とする装置であれば、携帯端末にも限定されることはない。なお、本発明は、複数のUIを同時に使用できるように合成することを主目的とするものであり、各UIにより指示を受けるアプリケーションはリモコン機能に限定されるものではなく、任意の各種アプリケーションに適用することができる。
(第1実施の形態)
図1は、本発明の第1実施の形態に係るUI生成装置である携帯電話の概略構成を示すブロック図である。
携帯電話1は、全体を制御する制御部10と、ユーザからの入力を受け付けると共に、各アプリケーションに応じて入力結果などの表示を行うタッチパネル20とを備えている。タッチパネル20は、ユーザからの入力を受け付けるマトリクススイッチなどで構成した入力部22を、液晶ディスプレイなどで構成した表示部24の前面に重畳させて構成する。表示部24は、アプリケーションプログラムに関する表示をする他、ユーザの操作入力を受け付けるUIをUI表示領域に描画して表示する。
また、携帯電話1は、図示しない基地局と音声通話および電子メールのデータなど各種情報を送受信する無線通信部30と、図示しない各種外部機器と赤外線により通信を行う赤外線通信部40とを備えている。無線通信部30を用いて、携帯電話1は、インターネットや無線等を介して端末外部と各種データの送受信を行う。
さらに、携帯電話1は、入力された情報および各種アプリケーション等を記憶したり、ワークメモリなどとしても機能する記憶部50を有する。記憶部50は、アプリケーション記憶領域52と、UI定義ファイル記憶領域54と、個別UIリソース記憶領域56と、共通UIリソース記憶領域58とを含む。アプリケーション記憶領域52には、各種のアプリケーションを記憶する。UI定義ファイル記憶領域54には、各UI全体を生成する際の一連の生成ルールを定義するUI定義ファイルを記憶する。また、個別UIリソース記憶領域56は、各アプリケーション固有のUIの生成に使用する画像データや文字列(テキスト)データなどの個別UIリソースを記憶する。共通UIリソース記憶領域58は、各アプリケーション固有の個別UIリソース以外の、端末にて用いられるUIが共有して使用する画像データやフォントのデータなどの共通UIリソースを記憶する。実際にUIを生成する際には、個別UIリソース記憶領域56および共通UIリソース記憶領域58に記憶された画像データおよびテキストデータなどを、タッチパネル20の表示部24に表示する。
なお、制御部10は、アプリケーション実行部12と、UI取得部14と、UI生成部16とを含んでいる。アプリケーション実行部12は、記憶部50のアプリケーション記憶領域52に保存された各種アプリケーションを実行すると共に、当該実行に関する制御を行う。また、アプリケーション実行部12は、アプリケーション記憶領域52に保存された各種アプリケーションに対応するUIへの入力に基づいて、当該入力に対応する各種アプリケーションの機能を実行する。UI取得部14は、無線通信部30を介して端末の外部にあるリソース(画像データ等)およびUI定義ファイル(XMLファイルなど)を取得する。UI生成部16は、UI定義ファイルに対してパース処理(パーシング)およびDOM(Document Object Model)化処理などを行い、実際に使用するUIを生成する。なお、UI生成部16は、XMLの形式で記述されたUIの情報をXMLエンジンによって解釈し、UI定義ファイルに基づいて生成されたUIをタッチパネル20の表示部24に表示する。
さらに、UI生成部16は、UI合成処理部18を含んでいる。UI合成処理部18は、複数のUIを合成するよう指示されると、指定された複数のUI定義ファイルに従ってUIの合成を行う。
次に、本実施の形態にてUI定義ファイル記憶領域54に記憶するUI定義ファイルについて、さらに説明する。
記憶部50のUI定義ファイル記憶領域54には、アプリケーション記憶領域52に記憶された各アプリケーションが実行される際に必要なUIの、当該アプリケーションに対応した各仕様および動作などを定義するUI定義ファイルが記憶される。異なるアプリケーションで同じUIを使う状況も考えられるが、ここでは説明の便宜のため、異なるアプリケーションに対してそれぞれ異なるUIを用いる場合を想定し、各アプリケーションにそれぞれ対応した各UI定義ファイルを保存している場合について説明する。例えば、図示しない外部機器であるテレビ受像機を携帯電話1にて遠隔制御するテレビリモコンアプリケーションに対応して、テレビリモコンUI定義ファイルをUI定義ファイル記憶領域54に記憶する。同様に、図示しない外部機器のエアコンディショナーを携帯電話1にて遠隔制御するエアコンディショナーリモコンアプリケーションに対応して、エアコンディショナーリモコンUI定義ファイルをUI定義ファイル記憶領域54に記憶する。
本実施の形態では、UI定義ファイルを記述する言語の例として、XML言語をベースにしたUIML(User Interface Markup Language)の形式に従って説明する。このUIMLファイル形式で記述される定義に従って、UI生成部16は、携帯電話1のタッチパネル20の表示部24にUIを表示し、アプリケーション実行部12は、ユーザによる入力部22に対する入力に応じた処理を行う。
本実施の形態によるUI定義ファイルには、表示部24に描画するUIオブジェクトを定義するUIオブジェクト定義情報を含ませる。UIオブジェクト定義情報は、表示部24に表示するUIを構成する要素であるキーまたはボタンなどのUIオブジェクトを描画するための画像およびテキストを定義する情報、およびそのUIオブジェクトに入力がされた際の(実際にはUIオブジェクトに対応する入力部22の部位に入力がされた際の)動作を定義する情報である。
本実施の形態では、UIオブジェクトの位置に対応する入力部22に入力がされた際の動作を定義する情報として、UIオブジェクト定義情報に、各UIオブジェクトに対するイベント発生時に各アプリケーション実行部が実行すべき動作内容を示すアクション情報を含める。例えば、テレビリモコンUIの「電源」のUIオブジェクトの位置に対応する入力部22に入力のイベントが発生した場合、テレビリモコンアプリケーションに対して、外部機器のテレビの電源をONまたはOFFにする赤外線信号を発信する指示を出すようアクション情報で定義する。
さらに、UIオブジェクト定義情報には、複数のUIを合成する際に用いる各UIオブジェクトに関する情報であるUIオブジェクト属性情報を含ませる。本実施の形態においては、UIオブジェクト属性情報として、各UIオブジェクトと他のUIオブジェクトとの関係に基づいて、複数のUIを合成する際に各オブジェクトが表示される優先度を予め定義する。
図2は、本実施の形態に係るUIオブジェクト属性情報である優先度を示す情報を説明する図である。
図2(A)は、携帯電話1において、テレビリモコンアプリケーションのみを起動し、テレビリモコンUI定義ファイルに基づいて、テレビリモコンUIをタッチパネル20に表示した様子を示している。図中では、タッチパネル20上のUI表示領域を各UIオブジェクトの属性情報に対応する小領域に概念的に分割した様子を一点鎖線によって表し、各小領域に対応する各UIオブジェクト属性情報を図の右側に列記してある。また、複数のUIオブジェクトをまとめて1つのUIとして扱うことの定義(UI識別情報)をinterfaceのタグを付して示し、“TV1_interface”という値から、これがTV1のリモコンのUIであることが特定できる。なお、図2(A)に示す例では、TV1のリモコンのUIによって、TV1として識別されるテレビ受像機の遠隔操作(制御)を行うことができる。
本実施の形態では、UIオブジェクト属性情報として、上述した各小領域のUIオブジェクトについての優先度を、priorityの値として予め定義する。図2の例では、priorityの値がゼロのUIオブジェクトは必須のオブジェクトとし、priorityの値が1のUIオブジェクトは重要なオブジェクトとし、それ以降はpriorityの値が増大するほど優先度が低いUIオブジェクトであることを意味する。すなわち、例えば図2(A)の小領域(1)に示す「電源」のキーは必須のキーであるため、priorityの値をゼロとする。また、小領域(2)および(3)のチャンネル選局キー、ならびに小領域(4)および(5)の音量上下キーは重要なキーであるためpriorityの値は1とする。しかしながら、小領域(6)のテンキーは、小領域(2)および(3)のチャンネル選局キーで代替できるため、priorityの値を3とし、優先度を低く設定する。
同様に、図2(B)は、エアコンディショナーリモコンUIのみをタッチパネル20に表示した様子を示す。エアコンディショナーリモコンUIでは、例えば小領域(1)に示す「設定温度」の表示は必須であり、小領域(2)に示す「電源」のキーは必須のキーであるため、priorityの値をゼロとする。また、小領域(3)および(4)の温度上下選局キーは重要なキーであるためpriorityの値は1とする。しかしながら、小領域(5)および(6)の風向+−キーは他のキーに比べ重要でないためpriorityの値は5とする。さらに、小領域(7)のモードキーおよび小領域(8)のメニューキーは、使用頻度がさほど多くないためpriorityの値を2に設定する。なお、これら複数のオブジェクトがまとまった1つのエアコンディショナー1のリモコンのUIであることが特定できるよう、interfaceのタグの値は“AIR1_interface”とする。図2(B)に示す例では、このリモコンのUIによって、AIR1として識別されるエアコンディショナーの遠隔操作(制御)を行うことができる。
このように、本実施の形態では、各UIオブジェクトと他のUIオブジェクトとの関係に基づいて定義された優先度情報(priorityの値)を、UIオブジェクト属性情報として、各UI定義ファイルのUIオブジェクト定義情報に予め含ませる。
次に、図3〜5のフローチャートを参照しながら、本実施の形態による複数のアプリケーションのUIを合成する際の動作について説明する。
図3は、本実施の形態による、UI生成部16の処理全体を説明するフローチャートである。まず、ユーザからの入力部22への操作入力などに基づいてUIを生成する処理が開始すると、UIを提供するアプリケーションからUI定義ファイル(XMLファイル)が指定される(ステップS11)。このUI生成の処理のきっかけとなる動作は、UIを用いるアプリケーションを起動する際のユーザの操作、またはユーザが既にアプリケーションを実行中に、UIを用いる他のアプリケーションをさらに起動する際のユーザの操作などが想定される。
次に、UI生成部16は、指定されたUI定義ファイルの数が1つか複数かを判定する(ステップS12)。指定ファイル数が1つと判定された場合、UI生成部16は、アプリケーションが複数のUIの合成を要求していないと判断し、指定された1つのUI定義ファイルに対してXMLパース処理(ステップS13)およびDOM化処理(ステップS14)を行う。
このように、指定されたUI定義ファイルが1つの場合には、それ以降の処理は従来式のUIを生成する処理と同じになる。すなわち、パース処理およびDOM化処理を行ったUI定義ファイルに基づいて、UI生成部16は、UIを生成する処理を行う(ステップS15)。なお、ステップS15のUI生成処理については後述する。次に、UI生成処理により生成されたXMLファイルのUIに基づいて、アプリケーション実行部12は、タッチパネル20の表示部24のUI表示領域にUIを表示する処理を行う(ステップS16)。
以上の処理により、携帯電話1は、単一のアプリケーションの実行に伴い、単一のUIを表示部24に表示できる。例えば、テレビリモコンのアプリケーションの起動によりテレビリモコン用のUI定義ファイルが指定された場合には、前述の図2(A)に示すようなUIの表示になる。また、エアコンディショナーリモコンのアプリケーションの起動によりエアコンディショナーリモコン用のUI定義ファイルが指定された場合には、図2(B)に示すようなUIの表示になる。
一方、ステップS12にて、指定されたファイル数が複数の場合、UI生成部16は、アプリケーションが複数のUIの合成を要求していると判断し、複数の各XMLファイルについてXMLパース処理(ステップS17)およびDOM化処理(ステップS18)を行う。ステップS19にて、UI生成部16は、上記パース処理およびDOM化処理が全てのUI定義ファイルについて完了したか否かを判定し、まだ完了していない場合にはステップS17に戻る。
ステップS19で全てのUI定義ファイルについてパース処理およびDOM化処理が完了したら、UI合成処理部18は、パース処理およびDOM化処理が完了した複数のUIを合成する処理を行う(ステップS20)。なお、ステップS20のUI合成処理についても後述する。
この後、ステップS20にて合成した合成UI定義ファイルに基づいて、UI生成部16は、合成UIを生成する処理を行う(ステップS15)。次に、アプリケーション実行部12は、生成された合成UIをタッチパネル20の表示部24のUI表示領域に表示する処理を行い(ステップS16)、UI生成の全体的な処理を終了する。
次に、図4のフローチャートを参照しながら、図3のステップS20のUI合成処理についてさらに説明する。
UI合成処理が開始されると、UI合成処理部18は、パース処理およびDOM化処理が完了した複数のUIのDOMノードについて、各DOMノードを構成するUIオブジェクトを全て抽出して、各UIオブジェクトの属性情報を解析する(ステップS31)。本実施の形態では、各UIオブジェクトの属性情報として、各UIオブジェクトの優先度情報(priority)を解析する。
次に、UI合成処理部18は、解析した優先度情報の優先度が最上位(priority=”0”)、つまり表示が必須であるUIオブジェクトを全て抽出し(ステップS32)、当該抽出したUIオブジェクトを用いて、仮のレイアウト処理を行う(ステップS33)。この仮のレイアウト処理は、実際には表示部24にUIオブジェクトを表示せずに、UI合成処理部18内の演算処理により、表示が必須のUIオブジェクトを仮レイアウトとして配列する。
仮のレイアウト処理が完了したら、UI合成処理部18は、当該仮レイアウトしたUIオブジェクトを配列したUI全体の表示が、表示部24内でUIを表示するための領域であるUI表示領域に収まるか否か判定する(ステップS34)。この判定の結果、UIの表示がUI表示領域に収まらないと判定された場合、この複数のUIは合成UIとして表示できないため、UI合成処理部18は、当該複数のUIの合成処理が失敗した旨を表示部24に表示し(ステップS35)、UI合成処理を終了する。これは、必須のオブジェクトさえも表示できないほど、同一画面上に多数のUIを合成しようとした場合の措置である。
ステップS34にて、仮レイアウトした必須UIオブジェクトを配列したUI全体の表示が表示部24内のUI表示領域に収まると判定された場合、UI合成処理部18は、これらの優先度が最上位の(表示が必須の)UIオブジェクトを採用することを確定する(ステップS36)。
次に、UI合成処理部18は、解析された優先度の情報に基づいて、優先度が次に高いUIオブジェクトを全て抽出する(ステップS37)。例えば、今まで抽出して処理したのがpriority=”0”のUIオブジェクトであれば、次はpriority=”1”のUIオブジェクトを抽出する。さらに、UI合成処理部18は、抽出したUIオブジェクトと、ステップS36で確定した優先度が最上位のUIオブジェクトとを合わせて仮のレイアウト処理を行う(ステップS38)。この仮レイアウト処理が完了したら、UI合成処理部18は、当該仮レイアウトしたUIオブジェクトの表示が表示部24のUI表示領域に収まるか否か判定する(ステップS39)。
ステップS39の判定の結果、仮レイアウトしたUIオブジェクトの表示が表示部24のUI表示領域に収まると判定された場合、UI合成処理部18は、これらのUIオブジェクトの採用を確定する(ステップS40)。
この後、UI合成処理部18は、まだ優先度情報の解析が終了していないUIオブジェクトの残りがゼロになったか否か判定する(ステップS41)。優先度情報の解析がまだ終了していないUIオブジェクトの残りがゼロでない、つまりまだ未解析のUIオブジェクトが残っている場合には、ステップS37に戻る。このようにして、UI表示領域が許す限り、またUIオブジェクトが存在する限り、優先度の高い順にUIオブジェクトの選出と確定を繰り返す。
ステップS41にて、優先度情報が未解析のUIオブジェクトの残りがゼロになった、つまり未解析のUIオブジェクトがもう残っていない場合は、UI合成処理部18は、その時点での合成UIオブジェクトの仮レイアウトを正式なレイアウトとして確定する(ステップS42)。この後は、確定したレイアウトのUIオブジェクトを1つのDOMノードとして集約し(ステップS43)、UI合成処理を終了する。
なお、ステップ39にて、仮レイアウトしたUIオブジェクトの表示が表示部24のUI表示領域に収まらない場合には、UI合成処理部18は、この時点で抽出されている各UIオブジェクトの中から所定の条件に基づいて取捨選択してから(ステップS44)、ステップS42に移行する。この所定の条件とは、優先度が同等のUIオブジェクトが複数存在し、それら全てがUI表示領域に収まらない場合に備え、各UIオブジェクト同士の関連性、またはUIオブジェクトの表示サイズ等に関連付けて、適宜、取捨選択の条件を予め定義しておく。
次に、図5のフローチャートを参照しながら、図3のステップS15のUI生成処理についてさらに説明する。
図5に示すUI生成処理の開始時点では、指定された1つのUI定義ファイルに基づくUI、または複数のUI定義ファイルに基づく合成UIのどちらかが、1つのDOMドキュメント(またはDOMノード)になっている。まず、UI生成部16は、DOMドキュメントに対して表示関連の解析を行う(ステップS51)。これは、UIML形式で記述されたUI定義ファイルでは、structureタグやstyleタグを付された属性などを解析する。次に、UI生成部16は、DOMドキュメントの動作関連について解析を行う(ステップS52)。これは、UIML形式で記述されたUI定義ファイルでは、behaviorタグを付された属性などを解析する。
次に、UI生成部16は、DOMドキュメントに含まれる表現を、各端末に依存する表現に変換する処理を行う(ステップS53)。さらに、UI生成部16は、ステップS53の変換処理の結果に基づいて、使用するUIオブジェクトのリソースを選定して各属性(プロパティ)を設定する(ステップS54)。この際に必要なUIオブジェクトのリソースは、個別UIリソースとして個別UIリソース記憶領域56に、または共通UIリソースとして共通UIリソース記憶領域58に記憶されている。この後、UI生成部16は、各UIオブジェクトを含むUIのプロット処理を行う(ステップS55)。これによりUIの生成処理は終了し、この後は図3のステップS16に移行して、UIの表示処理を行う。
以上のようにすることで、例えば図2(A)に示すテレビリモコンUIと、図2(B)に示すエアコンディショナーリモコンUIとの2つのUIを合成すると、図6に示すような合成UIが生成される。図6に示す合成UIは、タッチパネル20を上下2つの領域に分割して、上半分にテレビリモコンUIのUIオブジェクトを、また下半分にエアコンディショナーリモコンUIのUIオブジェクトを配置している。ここでは、テレビリモコンUIについてはpriorityが”0”から”1”までのUIオブジェクトを抽出して、エアコンディショナーリモコンUIについてはpriorityが”0”のUIオブジェクトのみを抽出してUIを合成している。このように、本実施の形態では、2つのXMLファイルを解析して、優先度の高いUIオブジェクトのみを自動配置して複数のUIを合成する。これによりユーザは複数のアプリケーションまたは当該アプリケーションに基づくUIを切り替えることなく、複数のUIを同時に利用することができる。
(第2実施の形態)
次に、本発明の第2実施の形態に係るUI生成装置によるUI合成処理について説明する。本実施の形態では、上述した第1実施の形態において、UIオブジェクト定義情報に含まれる、複数のUIを合成する際に用いる各UIオブジェクトに関する情報であるUIオブジェクト属性情報を変更する。
上述した第1実施の形態では、UIオブジェクト属性情報として、各UIオブジェクトと他のUIオブジェクトとの関係に基づいて、複数のUIを合成する際に各オブジェクトが表示される優先度を予め定義した。本実施の形態では、第1実施の形態のUIオブジェクト属性情報と合わせて、UIオブジェクトを構成要素とするUIの識別情報を定義する。
図7は、本実施の形態に係るUI識別情報を利用したUIの合成を説明する図である。本実施の形態では、図7の右側に示すように、図2で説明したUIオブジェクト定義情報の他に、各UIオブジェクトに付すべきテキスト情報(text)をUIオブジェクト属性情報として付加する。また、UI識別情報(Interface id)に、当該UIを示すテキスト情報(particular_name)を付加する。
このUIを示すテキスト情報(particular_name)は、XML形式で記述されたUI定義情報において、必要に応じてUIオブジェクトなどに表示することで当該UIオブジェクトが属するUIを特定することのできる名称などを、テキストやアイコンへのリンクなどで記述した情報である。例えば、図7の右側にてUI識別情報(Interface id)に、破線で囲んで示したparticular_name=”テレビ1”というUIを示すテキスト情報を付加し、(1)〜(6)の一連のUIオブジェクトが「テレビ1」のUIを構成するものであることを示す。同じく、破線で囲んで示したparticular_name=”○製エアコンディショナー”というUIを示すテキスト情報を付加し、(1)〜(8)の一連のUIオブジェクトが「○製エアコンディショナー」のUIを構成することを示す。また、各テキスト情報(text)は、UIオブジェクトを表示部24に表示する際に、必要に応じて当該UIオブジェクトの表示の上または近傍などに付すことのできる名称などをテキストで記述した情報である。
これらのUIを示すテキスト情報を利用することで、複数のUIを合成する際に、合成UIとして表示されたキーやボタンなどが、どのUIに属するものなのかを容易に判別できる。
次に、図8のフローチャートを参照しながら、本実施の形態による、図3におけるステップS20のUI合成処理について説明する。図8に示す本実施の形態によるUI合成処理は、図4で説明した第1実施の形態のステップS42にてUIオブジェクトのレイアウトを確定した後に、UIを示すテキスト情報などによるUI加工処理(ステップS71)を追加したものである。
ステップS71のUIを示すテキスト情報などによるUI加工処理では、例えば、複数のUIを合成するにあたり、各UIオブジェクトの属性情報を解析した際に、複数のUIの間で、同じ文言のテキスト情報(text)を有するUIオブジェクトがあるか否かを判定する。異なるUIの間で同じテキスト情報のUIオブジェクトがある場合、そのままで合成UIを生成すると、ユーザは、同じテキスト情報を有する複数のUIオブジェクトがそれぞれどのUIに属するUIオブジェクトなのか判別し難くなる。したがって、異なるUIの間で同じテキスト情報のUIオブジェクトがある場合、UI合成処理部18は、当該UIオブジェクト上またはその周辺にUI識別情報の各テキストを付す。
例えば、図7に示す例では、テレビリモコンUIとエアコンディショナーリモコンUIとの合成UIを生成したが、2つのUIの各UIオブジェクトについてテキスト情報を解析すると、どちらのUIにおいても”電源”の同じテキスト情報が存在する。その他には、どちらのUIにおいても存在する同じテキスト情報はない。したがって、この”電源”のUIオブジェクトを表示する際には、そのそばに当該UIオブジェクトが属するUIのUI識別情報に付加されているテキスト情報(particular_name)も付す。
このようにすれば、図7左側に示すような合成UIが生成される。図6で説明した合成UIでは、「電源」のUIオブジェクトには、単に「電源」のみが表示されるため、ユーザは、何のUIの電源なのか一見して判別し難い。しかしながら、図7に示す合成UIでは、ユーザは、各電源のUIオブジェクトがそれぞれ何のUIに属するUIオブジェクトなのか一見して判別できる。
本実施の形態の変形例として、同じテキストのUIオブジェクト上またはその付近にUI識別情報に付加されているテキストを付す以外に、種々の態様が考えられる。例えば、図9(A)に示すように、UI表示領域を、各UIのUI識別情報に基づいて、UIごとに区分けの描画または色分けなどにより分割表示し、分割した各表示領域内の邪魔にならない箇所に、UI識別情報に付加されている各テキストを表示してもよい。
また、図9(B)に示すように、各UIオブジェクトのテキスト情報に同じものがあるか否かに関わらず、全てのUIオブジェクト上またはその周辺に、UI識別情報に付加されている各テキストを付してもよい。
さらに、図9(A)の変形例として、図9(C)に示すように、分割した各UI表示領域内に、UI識別情報のテキストの代わりに各UIを示すアイコンなどを表示してもよい。一般的に、UI識別情報は、XML形式で記述された文書内のテキストの記述に対して付すため、表示する文字列が画像のリソースで定義されている場合など、各UIオブジェクトにテキストを付すのが困難な場合、図9(C)に示すような態様が好適である。
(第3実施の形態)
次に、本発明の第3実施の形態に係るUI生成装置によるUI合成処理について説明する。本実施の形態では、上述した第2実施の形態と同様に、UIオブジェクト定義情報に含まれる、複数のUIを合成する際に用いる各UIオブジェクトに関する情報であるUIオブジェクト属性情報を変更する。
本実施の形態では、第2実施の形態にて定義したUIオブジェクト属性情報に代えて、または第2実施の形態のUIオブジェクト属性情報と合わせて、合成UIを構成する各UIオブジェクトを有効または無効にする情報をUIオブジェクト定義情報に含める。
図10は、本実施の形態に係るUIオブジェクト属性情報である各UIオブジェクトを有効または無効にする情報を利用したUIの合成を説明する図である。本実施の形態では、図10の右側に示すように、図7で説明したUIオブジェクト定義情報に、さらに合成UIを構成する各UIオブジェクトの有効/無効の情報(com_effect)をUIオブジェクト属性情報として付加する。
この各UIオブジェクトの有効/無効の情報(com_effect)は、値が”YES”になっている場合、当該UIオブジェクトは「有効」として扱い、また値が”NO”になっている場合、当該UIオブジェクトは「無効」として扱う。この情報が有効になっているUIオブジェクトは、UI合成の際に表示部24のUI表示領域に表示して、当該表示に対応する部位にて入力部22への入力を受け付ける。一方、この情報が無効になっているUIオブジェクトは、UI合成の際に表示部24のUI表示領域に表示せず、入力部22への入力も受け付けない。
例えば、図10(A)に示す例では、テレビ1のリモコンUIを構成する(1)〜(7)のUIオブジェクトのうち、UIオブジェクトの有効/無効の情報(com_effect)が有効(”YES”)なのは、(1)の「電源ON」のUIオブジェクトのみである。したがって、UI表示領域には、テレビリモコンUIを構成する各UIオブジェクトのうち、電源ONのキーのみを表示する。また、エアコンディショナーリモコンUIを構成する(1)〜(9)のUIオブジェクトのうち、UIオブジェクトの有効/無効の情報(com_effect)が有効(”YES”)なのは、(2)の「電源ON」のUIオブジェクトのみである。したがって、UI表示領域には、エアコンディショナーリモコンUIを構成するUIオブジェクトのうち、電源ONのキーのみを表示する。
また、本実施の形態では、第1実施の形態で説明したUIオブジェクト定義情報に含まれるアクション情報に、各UIオブジェクトに対するイベント発生時にアプリケーション実行部12が実行すべき動作として、各UIオブジェクトの有効/無効を変更(更新)する情報を含める。このアクション情報に基づいて、アプリケーション実行部12は、所定のUIオブジェクトに対するイベント発生に応じて、所定のUIオブジェクトの有効/無効の情報(com_effect)を、有効から無効(“YES”から”NO”)へ、または無効から有効(”NO”から“YES”)へと更新できる。
次に、図11のフローチャートを参照しながら、本実施の形態による、図3のステップS20のUI合成処理について説明する。図11に示す本実施の形態によるUI合成処理は、図8で説明した第2実施の形態において、ステップS31でUIオブジェクトを抽出して属性情報を解析した後に、有効と解析されたUIオブジェクトのみを抽出する処理(ステップS91)を追加したものである。
図11のUI合成処理が開始されると、UI合成処理部18は、パース処理およびDOM化処理が完了した複数のUIのDOMノードについて、各DOMノードを構成するUIオブジェクトを全て抽出して、各UIオブジェクトの属性情報を解析する(ステップS31)。本実施の形態では、各UIオブジェクトの属性情報として、第1および第2実施の形態で用いた各UIオブジェクトの優先度情報(priority)を解析する。さらに、各UIオブジェクトの有効/無効の情報(com_effect)を解析し、有効(値が”YES”)と判断されたUIオブジェクトのみを対象UIオブジェクトとして全て抽出する(ステップS91)。
この後は、対象UIオブジェクトとして抽出した有効なUIオブジェクトについて、第1および第2実施の形態で説明したステップS32以降の処理を続行することで、合成UIを生成することができる。
本実施の形態では、生成された合成UIを表示部24のUI表示領域に表示した後、所定のUIオブジェクトに対応する入力部22に対して操作入力のイベントが発生した場合、発生したイベントに応じて合成UIを更新する。すなわち、イベントが発生したら、アプリケーション実行部12は、UIオブジェクト定義情報に含まれるアクション情報に基づいて、所定のUIオブジェクトの有効/無効の情報を更新すると共に、図11に示したUI合成処理を再び行い、合成UIを更新する。
例えば、図10(A)に示す状態で、エアコンディショナーリモコンUIの「電源ON」のUIオブジェクトに対して操作入力のイベントが発生すると、まず、アプリケーション実行部12は、外部機器のエアコンディショナーの電源をONにする赤外線信号を発信するよう指示を出す。さらに、アプリケーション実行部12は、アクション情報に基づいて、図10(A)のエアコンディショナーリモコンUIのUIオブジェクト「電源ON」の属性であるcom_effectの値を“YES”から”NO”に変更すると共に、所定の他のUIオブジェクトのcom_effectの値も変更する。
図10(B)は、イベント発生後にアクション情報に基づいて、UIオブジェクトの属性であるcom_effectの値が変更された後の状態を示す図である。図10(A)と比べて、図10(B)の右側に示すように、エアコンディショナーリモコンUIの属性com_effectの値のうち、一点鎖線で囲んだものの値が、有効から無効または無効から有効に変化している。このように所定のUIオブジェクトの有効/無効の情報を変更すると共に、UI合成処理を再び行うと、図10(B)の左側に示すように、有効なUIオブジェクトを含む合成UIに更新される。
このように処理を行うことで、例えば図10(A)に示すように、各UIとも、電源ONにする前は必要のないUIオブジェクトは表示しないようにできるため、限られたUI表示領域を有効に利用できる。さらに、例えば図10(A)のエアコンディショナーリモコンUIにて電源ONのオブジェクトに入力があると、図10(B)に示すように、電源をONにした後に必要なUIオブジェクトが展開される。このように、ユーザの入力に基づいて、UI表示領域に表示されるUIが動的に変化するため、必要なUIオブジェクトを必要な時だけ表示できる。
また、このようにイベント発生ごとに合成UIを更新する際に、有効なUIオブジェクトについて、第1実施の形態で説明した優先度(priority)の属性に基づく解析も行うため、表示される各UIオブジェクトは、その優先度に応じて順次動的に変化する。
例えば、図12(A)に示す状態で、テレビリモコンUIのUIオブジェクト「電源ON」に入力があった場合について説明する。「電源ON」への入力のイベント発生により、アプリケーション実行部12は、テレビリモコンUIを構成する所定のUIオブジェクトの有効/無効の情報を更新するため、優先度の高いものはUI表示領域に表示されるようになる。しかしながら、図12(A)に示す状態では、UI表示領域にこれ以上のUIオブジェクトを表示する領域がない。そのため、合成UIの更新時には、UI合成処理部18は、各UIオブジェクトの優先度の属性情報に基づいて、優先度の低いUIオブジェクトは採用せずに合成UIを生成する。
このようにUIを更新(合成)することで、図12(B)に示すように、テレビリモコンUIにてテレビの電源をONにすることにより、重要なテレビリモコンUIのUIオブジェクトが表示される。一方、エアコンディショナーリモコンUIにおいては、更新の際に重要度の低いUIオブジェクトが表示されなくなり、UI表示領域を一層有効に活用した合成UIを提供できる。
また、UIオブジェクトの中には、例えば音量を操作するUIオブジェクトのように、「音量+(増加)」または「音量−(減少)」の一方のみでは使い勝手が悪く、両方のUIオブジェクトが揃って初めて意味をなすものがある。したがって、本実施の形態では、上述したように合成UIを更新することでUI表示領域の構成を順次変更する際、対になるべき2つのUIオブジェクトは、採用するか否かを対として決定する。
具体的には、図13に示すように、UIオブジェクト定義情報に、複数のUIオブジェクトが対であることを示す属性(relate_ID)をUIオブジェクト属性情報としてさらに付加し、その属性の値によって対であるUIオブジェクトを定義する。図13に示す例では、テレビリモコンUIにおいては、(2)の「選局+」および(3)の「選局−」のUIオブジェクトが対であることを属性(relate_ID)により示し、その属性の値を”select_1”として定義している。また、(4)「音量+」および(5)「音量−」のUIオブジェクトも対であることを属性(relate_ID)により示し、その属性の値を”volume_1”として定義している。なお、図13に示す属性情報においては、各UIオブジェクトの有効/無効の属性(com_effect)は省略してある。
同様に、エアコンディショナーリモコンUIにおいては、(3)「温度+」および(4)「温度−」のUIオブジェクトが対であることを属性(relate_ID)により示し、その属性の値を”set_1”として定義している。また、(5)「風向+」および(6)「風向−」のUIオブジェクトも対であることを属性(relate_ID)により示し、その属性の値を”wind_1”として定義している。
このようにUIオブジェクト属性情報を設定し、合成UIを更新する場合、優先度(priority)や有効/無効(com_effect)の属性に基づく解析を行う際に、UIオブジェクトを対として扱う属性(relate_ID)も解析する。対として扱う属性(relate_ID)の付加されたUIオブジェクトは、その値に基づいて、採用または不採用を対として決定する。
このように処理することで、例えば同じ優先度(priority)のUIオブジェクトが多数存在する場合でも、対になるべき2つのUIオブジェクトは、常に、対として表示および消去が行われる。図13に示す例では、エアコンディショナーリモコンUIにおいて、優先度の高い(priority=”1”)「温度+」および「温度−」のUIオブジェクトは対として採用され、優先度の低い(priority=”5”)「風向+」および「風向−」のUIオブジェクトは対として不採用になる。したがって、合成UIを更新した際に、例えば、「音量+」のUIオブジェクトのみが表示されて「音量−」は表示されないという不都合は生じない。
なお、本発明は、上述した実施の形態にのみ限定されるものではなく、幾多の変更または変形が可能である。例えば、第3実施の形態においては、UIオブジェクト属性情報(relate_ID)を用いることで、対になるべき2つのUIオブジェクトは、対として採用するか否かを決定したが、このようにグループ化するUIオブジェクトは2つに限定されず、3つ以上にもできる。
また、上述した各実施の形態の携帯電話1は、赤外線通信部40により赤外線通信をすることで外部機器を遠隔制御したが、外部機器との通信は赤外線通信に限らず、例えばBluetooth(登録商標)や無線LANなどの近距離無線通信を採用してもよい。
上述の各実施の形態では、UIオブジェクト属性情報は、UIオブジェクト定義情報に含まれるものとして説明したが、必ずしもUIオブジェクト定義情報に含まれていなくても良い。例えば、記憶部50のUIオブジェクト定義情報が格納されている領域とは別の領域に、UIオブジェクト属性情報を、対応するUIオブジェクト定義情報と関連付けて格納しても良い。
また、UIオブジェクト属性情報は、その内容が固定された状態で定義されていなくても良い。すなわち、例えば、制御部10は、UIの使用履歴などに基づいて、UIオブジェクト属性情報の内容を変更しても良い。
さらに、UIオブジェクト属性情報は、予め定義されていなくても良い。すなわち、例えば、制御部10は、記憶部50に格納されたUI定義ファイルを解析し、当該UI定義ファイルに含まれるUIオブジェクト定義情報の内容やUIオブジェクト定義情報同士の関連性、当該UIの使用履歴などに基づいて、UIオブジェクト属性情報を生成しても良い。
さらに、上記各実施の形態では、UI生成処理を開始するきっかけとして、UIを用いるアプリケーションを起動するユーザ操作や、すでに何らかのアプリケーションが実行中であるときに、UIを用いる他のアプリケーションを起動するユーザ操作などを例として説明したが、UI生成処理を開始するきっかけの動作はこれらに限定されるものではない。
例えば、上記各実施の形態において、UI生成装置である携帯電話1は、無線LAN、Bluetoothなどの近距離無線通信やRFタグリーダなどにより、当該UI生成装置周辺に存在する外部機器に関する情報を取得し、取得した情報に基づいてUIを生成するように構成しても良い。つまり、携帯電話1は、携帯電話1周辺にある外部機器の存在を検知することにより、その外部機器に関連するUI(当該外部機器を操作するリモコンアプリケーション用UIなど)を、ユーザ操作に依存せずに自動で生成する。
また、上記各実施の形態において、UI生成装置である携帯電話1は、GPSなどにより取得した位置情報や時間情報に基づいて、生成するUIを選択するよう構成しても良い。つまり、携帯電話1は、現在位置の変化や予め設定されたスケジュールなどに基づいて、その時その場所で必要なUIを自動で生成する。
さらに、上述した各実施の形態では、各アプリケーションに対応したUIのUI定義ファイルが予めUI定義ファイル記憶領域54に記憶された場合について説明したが、必要なUI定義ファイルを適宜外部から取得するようにもできる。すなわち、UIを生成する際に、記憶部50に必要なUI定義ファイルが記憶されていない場合には、携帯電話1の通信手段を介して必要なUI定義ファイルをダウンロードして得るようにしても良い。
この場合、図3のステップS11にて、UIを提供するアプリケーションからUI定義ファイルが指定された際、必要なUI定義ファイルがUI定義ファイル記憶領域54に存在するか否か判定する。必要なUI定義ファイルがUI定義ファイル記憶領域54に存在しない場合、制御部10のUI取得部14は、無線通信部30を介して、図示しない外部機器または外部サーバなどから、必要なUI定義ファイルを取得する。
上述した各実施の形態では、タッチパネルを備える携帯端末でUIを合成処理する場合について説明した。しかしながら、本発明のUI合成処理においては、タッチパネルは必須の要素ではない。本発明は、例えば機械式のキーを多数備える入力部や、任意のポインティングデバイスなどを有する端末の場合など、UIを合成して使用することが想定される任意の入力部を備える端末に適用できる。
なお、上述した各実施の形態で用いるUI定義ファイルの一例として、以下にXMLをベースとしたUIML形式のファイルの例を示す。本発明による各UIオブジェクト属性情報を付加した箇所には下線を付してある。また、本例において、UIオブジェクトは<template>タグにより定義されており、したがって<template>〜</template>の間の記載がUIオブジェクト定義情報に相当する。
まず、テレビリモコンUIを構成するUI定義ファイルとして、TV1_interface.uimlのファイルの例を示す。
Figure 0005200095
Figure 0005200095
Figure 0005200095
次に、エアコンディショナーリモコンUIを構成するUI定義ファイルとして、AIR1_interface.uimlのファイルの例を示す。
Figure 0005200095
Figure 0005200095
Figure 0005200095
Figure 0005200095
さらに、第3実施の形態において図10で説明した、エアコンディショナーリモコンUIを構成するUIオブジェクトの有効/無効の属性が変更される際のUI定義ファイルとして、AIR2_interface.uimlのファイルの例を一部抜粋して示す。
Figure 0005200095
本発明によれば、複数のUIを合成し、各UIに対応するアプリケーションの操作に際し重要なUIオブジェクトを自動的に選定して所定のUI表示領域に収まる1つの合成UIを生成できる。したがって、複数のUIを切り替えることなく同時に使用することができる。さらに、マルチウィンドウの場合の様に表示領域(ウィンドウ)を選択する操作や、表示領域内にてスクロールバーを移動させる操作が必要ないため、ユーザの操作負荷を大幅に軽減できる。

Claims (5)

  1. アプリケーションプログラムに基づいて各種の機能を実現するアプリケーションプログラム実行部と、
    前記アプリケーションプログラムに基づく所定の機能の実行を前記アプリケーションプログラム実行部に指示するためのユーザインタフェースを生成するユーザインタフェース生成部と、
    前記ユーザインタフェース生成部により生成されるユーザインタフェースを表示する表示部と、
    前記ユーザインタフェースの構成要素であるユーザインタフェースオブジェクトを定義するユーザインタフェースオブジェクト定義情報を含むユーザインタフェース定義ファイルを格納する記憶部と、を備え、
    前記ユーザインタフェース生成部は、複数の前記ユーザインタフェースの生成が指示された場合、当該指示された複数のユーザインタフェースの各々に対応して前記記憶部に格納されたユーザインタフェース定義ファイルに含まれるユーザインタフェースオブジェクト定義情報を、前記表示部において当該ユーザインタフェースを表示する所定の表示領域に応じて取捨選択し、選択されたユーザインタフェースオブジェクト定義情報に基づいて合成ユーザインタフェースを生成するユーザインタフェース合成処理を行うことを特徴とするユーザインタフェース生成装置。
  2. 前記ユーザインタフェースオブジェクト定義情報は、該ユーザインタフェースオブジェクトと、該ユーザインタフェースオブジェクトを含むユーザインタフェースに含まれる他のユーザインタフェースオブジェクトとの関係を示すユーザインタフェースオブジェクト属性情報を含み、
    前記ユーザインタフェース生成部は、複数の前記ユーザインタフェースの生成が指示された場合、前記表示領域と、前記ユーザインタフェースオブジェクト属性情報とに基づき、前記所定のユーザインタフェースオブジェクト定義情報を取捨選択することを特徴とする、請求項1に記載のユーザインタフェース生成装置。
  3. 前記ユーザインタフェースオブジェクト定義情報は、当該ユーザインタフェースを構成する各ユーザインタフェースオブジェクトが有効か無効かを示すユーザインタフェースオブジェクト属性情報をさらに含み、
    前記ユーザインタフェース生成部は、複数の前記ユーザインタフェースの生成が指示された場合、前記表示領域と、前記ユーザインタフェースオブジェクト属性情報とに基づき、前記所定のユーザインタフェースオブジェクト定義情報を取捨選択することを特徴とする、請求項2に記載のユーザインタフェース生成装置。
  4. 前記ユーザインタフェースオブジェクト定義情報は、当該ユーザインタフェースオブジェクトに対するイベント発生時に実行すべき動作内容を示すアクション情報を含み、
    該アクション情報は、他のユーザインタフェースオブジェクト定義情報に含まれる前記ユーザインタフェースオブジェクト属性情報の変更に関する情報を含み、
    前記ユーザインタフェース生成部は、前記合成ユーザインタフェースにおいて前記イベントが発生し、当該イベントの発生を受け付けたユーザインタフェースオブジェクトのユーザインタフェースオブジェクト定義情報に含まれるアクション情報に基づいて前記ユーザインタフェースオブジェクト属性情報が変更された場合、当該変更されたユーザインタフェースオブジェクト属性情報に基づいてユーザインタフェース合成処理を行い新たな合成ユーザインタフェースを生成することを特徴とする、請求項2または3に記載のユーザインタフェース生成装置。
  5. 前記ユーザインタフェース定義ファイルは、該ユーザインタフェース定義ファイルに基づいて生成されるユーザインタフェースを識別する識別情報を含み、
    前記ユーザインタフェース生成部は、選択されたユーザインタフェースオブジェクト定義情報を前記識別情報に基づいて加工することを特徴とする、請求項1〜3のいずれか1項に記載のユーザインタフェース生成装置。
JP2010500681A 2008-02-27 2009-02-23 ユーザインタフェース生成装置 Expired - Fee Related JP5200095B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010500681A JP5200095B2 (ja) 2008-02-27 2009-02-23 ユーザインタフェース生成装置

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2008045726 2008-02-27
JP2008045726 2008-02-27
JP2008088248 2008-03-28
JP2008088248 2008-03-28
PCT/JP2009/053227 WO2009107589A1 (ja) 2008-02-27 2009-02-23 ユーザインタフェース生成装置
JP2010500681A JP5200095B2 (ja) 2008-02-27 2009-02-23 ユーザインタフェース生成装置

Publications (2)

Publication Number Publication Date
JPWO2009107589A1 JPWO2009107589A1 (ja) 2011-06-30
JP5200095B2 true JP5200095B2 (ja) 2013-05-15

Family

ID=41015983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010500681A Expired - Fee Related JP5200095B2 (ja) 2008-02-27 2009-02-23 ユーザインタフェース生成装置

Country Status (4)

Country Link
US (1) US8726175B2 (ja)
JP (1) JP5200095B2 (ja)
KR (1) KR101201856B1 (ja)
WO (1) WO2009107589A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2734348T3 (es) * 2012-11-07 2019-12-05 Rain Bird Corp Sistema de control de riego
JP2015167102A (ja) * 2014-03-04 2015-09-24 株式会社オートネットワーク技術研究所 蓄電モジュール
WO2016085445A1 (en) * 2014-11-24 2016-06-02 Hewlett Packard Enterprise Development Lp Detection of user interface layout changes
CN105068467B (zh) * 2015-07-13 2018-02-02 小米科技有限责任公司 控制智能设备的方法及装置
WO2018029738A1 (ja) * 2016-08-08 2018-02-15 三菱電機株式会社 ユーザーインターフェース制御装置及びユーザーインターフェース制御方法
US10521502B2 (en) * 2016-08-10 2019-12-31 International Business Machines Corporation Generating a user interface template by combining relevant components of the different user interface templates based on the action request by the user and the user context
JP6878934B2 (ja) * 2017-02-10 2021-06-02 オムロン株式会社 情報処理装置、情報処理システム、ユーザインターフェイスの作成方法、およびユーザインターフェイスの作成プログラム
WO2018152111A1 (en) * 2017-02-14 2018-08-23 Sherman Brian Arthur System for creating data-connected applications
JP6915532B2 (ja) * 2017-12-28 2021-08-04 富士通株式会社 情報処理装置、情報共有システムおよび同期制御方法
JP6992557B2 (ja) * 2018-02-02 2022-01-13 コニカミノルタ株式会社 画像形成装置及びプログラム
US11138288B2 (en) * 2019-08-01 2021-10-05 International Business Machines Corporation Priority-based rendering

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001069580A (ja) * 1999-08-31 2001-03-16 Matsushita Electric Ind Co Ltd Av機器コントロール装置
JP2002278666A (ja) * 2001-03-22 2002-09-27 Toyoda Mach Works Ltd 設備制御用操作盤
JP2007116270A (ja) * 2005-10-18 2007-05-10 Hitachi Ltd 端末装置及び機器制御システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1113302C (zh) * 1993-07-30 2003-07-02 佳能株式会社 通过通信线路控制设备的控制器和方法
US5648813A (en) * 1993-10-20 1997-07-15 Matsushita Electric Industrial Co. Ltd. Graphical-interactive-screen display apparatus and peripheral units
US5657221A (en) * 1994-09-16 1997-08-12 Medialink Technologies Corporation Method and apparatus for controlling non-computer system devices by manipulating a graphical representation
JPH11122682A (ja) * 1997-10-16 1999-04-30 Nec Corp リモートコントロール送信装置
US7831930B2 (en) * 2001-11-20 2010-11-09 Universal Electronics Inc. System and method for displaying a user interface for a remote control application
JP2001036652A (ja) 1999-07-23 2001-02-09 Nippon Conlux Co Ltd 携帯電話機およびこれを利用した機器遠隔制御方法
US20050134578A1 (en) * 2001-07-13 2005-06-23 Universal Electronics Inc. System and methods for interacting with a control environment
US20030103075A1 (en) * 2001-12-03 2003-06-05 Rosselot Robert Charles System and method for control of conference facilities and equipment
JP4061274B2 (ja) * 2002-03-08 2008-03-12 レベレイションズ・イン・デザイン・リミテッド・パートナーシップ 電気的デバイス制御装置
JP4158105B2 (ja) 2003-09-25 2008-10-01 ソニー株式会社 車載装置及び車載装置の制御方法
US10721087B2 (en) * 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
JP4455170B2 (ja) * 2004-05-31 2010-04-21 株式会社東芝 ネットワーク家電制御システム
JP3897774B2 (ja) * 2004-06-09 2007-03-28 株式会社ソニー・コンピュータエンタテインメント マルチメディア再生装置およびメニュー画面表示方法
JP2006350819A (ja) 2005-06-17 2006-12-28 Toshiba Corp 家電機器制御システム
JP2007066099A (ja) 2005-08-31 2007-03-15 Canon Inc Gui構成システム、gui構成方法及びプログラム
US9607287B2 (en) * 2008-01-19 2017-03-28 International Business Machines Corporation Integrated view of multi-sourced information objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001069580A (ja) * 1999-08-31 2001-03-16 Matsushita Electric Ind Co Ltd Av機器コントロール装置
JP2002278666A (ja) * 2001-03-22 2002-09-27 Toyoda Mach Works Ltd 設備制御用操作盤
JP2007116270A (ja) * 2005-10-18 2007-05-10 Hitachi Ltd 端末装置及び機器制御システム

Also Published As

Publication number Publication date
US8726175B2 (en) 2014-05-13
KR101201856B1 (ko) 2012-11-15
WO2009107589A1 (ja) 2009-09-03
KR20100103723A (ko) 2010-09-27
US20110022974A1 (en) 2011-01-27
JPWO2009107589A1 (ja) 2011-06-30

Similar Documents

Publication Publication Date Title
JP5200095B2 (ja) ユーザインタフェース生成装置
JP5406176B2 (ja) ユーザインタフェース生成装置
JP5680404B2 (ja) ユーザインタフェース生成装置
JP5351165B2 (ja) ユーザインタフェース生成装置
JP5431321B2 (ja) ユーザインタフェース生成装置
KR101256016B1 (ko) 유저인터페이스 생성장치
KR101256014B1 (ko) 유저인터페이스 생성장치
JP5185745B2 (ja) 情報処理装置及びプログラム
JP5249686B2 (ja) 情報処理装置及びプログラム
JPH1023117A (ja) 携帯電話装置
JP4672717B2 (ja) 情報処理装置及び画面表示方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5200095

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees