(57)【特許請求の範囲】
【請求項１】
プロセスに割り当てられたリソースを共有し、それぞれ表示装置の所定領域に描画を行うとともに所定の処理を行う、それぞれ関数および変数を有する第１および第２のウィジェットを起動し、当該第１および第２のウィジェットを連携させることなく並行動作させるステップと、
前記第１または第２のウィジェットが描画する領域を移動させる指示を入力装置から受け付けるステップと、
前記指示に応じて前記第１または第２のウィジェットが描画する領域を移動させることにより、前記第１および第２のウィジェットが描画する領域が所定間隔よりも接近するか否かを判断するステップと、
前記第１および第２のウィジェットが描画する領域が所定間隔よりも接近すると判断された場合に、前記第１および第２のウィジェットが有する関数および変数を互いに共有させることにより連携させつつ並行動作させるステップと、
前記指示に応じて移動させた前記第１または第２のウィジェットの描画領域に再描画を行うステップと、を含むことを特徴とするウィジェットの動作制御方法。
【請求項２】
さらに、
前記第１および第２のウィジェットを互いに連携させつつ並行動作させている状態で、第１または第２のウィジェットが描画する領域を移動させる第２の指示を入力装置から受け付けるステップと、
前記第２の指示に応じて第１または第２のウィジェットが描画する領域を移動させることにより、第１および第２のウィジェットが描画する領域が所定間隔よりも離れるか否かを判断するステップと、
前記第１および第２のウィジェットが描画する領域が所定間隔よりも離れると判断された場合に、前記第１および第２のウィジェットを前記連携させることなく並行動作させるステップと、
前記第２の指示に応じて移動させた前記第１または第２のウィジェットの描画領域に再描画を行うステップと、を含むことを特徴とする請求項１に記載のウィジェットの動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウィジェットの動作制御方法に関するものである。
【背景技術】
【０００２】
コンピュータのユーザインタフェースは、文字表示によるＣＵＩ（Ｃｈａｒａｃｔｅｒ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）からグラフィックス表現を利用するＧＵＩ（Ｇｒａｐｈiｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）へ進化してきた。このようなＧＵＩは、複数のプログラムを同時並行的に実行するマルチタスク技術がコンピュータに導入されることに伴い、実行しているアプリケーションの画面をそれぞれ独立したウィンドウ内に表示するマルチウィンドウシステムへと発展している。
【０００３】
前述したマルチウィンドウシステムにおいては、コンピュータの表示装置に複数のウィンドウが同時に表示されるが、各ウィンドウの形態は統一されたものとなっており、また、各ウィンドウで実行されるアプリケーションはＣ言語を使用して開発されたネィティブアプリケーションであることが通常である。また、各アプリケーションは、それぞれ１以上のプロセスまたはタスクの上で動作するようになっている。
【０００４】
このようなマルチタスク環境上に構築されたマルチウィンドウシステムで、表示装置上にそれぞれ別のアプリケーションが画面を描いたウィンドウを複数同時に表示することで、現在のコンピュータシステムでは極めて高度なＧＵＩが実現可能である。また、各ウィンドウを動かしたり重ねたりできるようにシステムを構成することも一般的である。
【０００５】
さらに、昨今のコンピュータシステムでは、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、ＰＨＰ、Ｐｅｒｌ、Ｒｕｂｙ、Ｐｙｔｈｏｎ等のスクリプト言語を利用して、比較的小型のプログラムを走らせることが広く行われている。Ｃ言語のようなプログラミング言語ではソースコードで開発したプログラムを機械語に変換（コンパイル）する過程が必須となるが、スクリプト言語はスクリプトエンジン上で実行されるためコンパイルの必要が無く、機能の追加や修正が容易であるという特徴を有している。
【０００６】
このようなスクリプト言語を利用したプログラムの一種に、ウィジェットと呼ばれる形態がある。広く用いられているウィジェットの種類としては、米国Ｙａｈｏｏ社がエンジン提供および仕様公開している「Ｙａｈｏｏ！  Ｗｉｄｇｅｔ」、米国Ａｐｐｌｅ社が自社製ＯＳにエンジンを載せて仕様公開している「Ｄａｓｈｂｏａｒｄ  Ｗｉｄｇｅｔ」、インターネットブラウザを提供しているＯｐｅｒａ社がエンジン提供および仕様公開している「Ｏｐｅｒａ  Ｗｉｄｇｅｔ」を挙げることができる。これらは、いずれもグラフィックス要素のレイアウトをＸＭＬまたはＨＴＭＬで記述するとともに処理の内容をスクリプト言語で記述し、スクリプトの実行結果をブラウザまたはＸＭＬパーサによりレイアウトしたグラフィックス要素とともに画面表示する簡易アプリケーションである。このようなウィジェットは、マークアップ言語の文法を利用しているため画面構成の記述が容易であるとともに、スクリプト言語を利用しているため機能の追加や修正が容易であるという利点を有しており、広く用いられるようになってきている。なお、ウィジェットの形態としては、画面レイアウトの記述にＸＭＬまたはＨＴＭＬを利用せず、ＪａｖａＳｃｒｉｐｔに描画ＡＰＩを追加することにより画面描画を行う構成とすることも可能である。
【０００７】
上述したウィジェットに関して、米国特許公開２００７／０１３０５４１には、Ｄａｓｈｂｏａｒｄ  Ｗｉｄｇｅｔを互いに連携させる技術について開示されている。
【特許文献１】米国特許公開公報２００７／０１３０５４１「Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｏｆ  ｗｉｄｇｅｔｓ  ａｎｄ  ｄａｓｈｂｏａｒｄｓ  」
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述した米国特許公開公報２００７／０１３０５４１に記載されているように、複数のウィジェットをリンクして互いに連係動作させることで、ウィジェットを単独で動作させている場合よりも複雑で高度なユーザインタフェースを実現することが可能となる。しかし、この公報に記載の技術は各ウィジェットをそれぞれ独立したプロセスまたはタスク上で実行されることを前提としており、メモリ量やＣＰＵ演算能力の制限された携帯電話のような組み込み機器に適用することは難しい。また、ウィジェット間のリンクを動的に切り替えるには、所定の手順を繰り返さなければならず、煩雑であるという欠点があった。さらに、ウィジェット間のリンクは特定のデータを共有することに止まっており、リンク先ウィジェットの関数を呼び出すような機能は想定されていない。
【０００９】
このような状況を鑑みて、本発明は一つのプロセス／タスク上で複数のウィジェットを並行動作させる構成を前提として、複数のウィジェットを連携して動作させることが可能でありながら、ウィジェットの連係動作と単独動作とを動的に切り替える操作が簡単かつ直感的なウィジェットの動作制御方法を提供することを目的とする。さらに本発明は、連係動作しているウィジェット間で、データを共有するだけでなく、互いの関数を呼び出すことの可能なウィジェットの動作制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明は、プロセスに割り当てられたリソースを共有し、それぞれ表示装置の所定領域に描画を行うとともに所定の処理を行う、それぞれ関数および変数を有する第１および第２のウィジェットを起動し、当該第１および第２のウィジェットを連携させることなく並行動作させるステップと、
前記第１または第２のウィジェットが描画する領域を移動させる指示を入力装置から受け付けるステップと、
前記指示に応じて前記第１または第２のウィジェットが描画する領域を移動させることにより、前記第１および第２のウィジェットが描画する領域が所定間隔よりも接近するか否かを判断するステップと、
前記第１および第２のウィジェットが描画する領域が所定間隔よりも接近すると判断された場合に、前記第１および第２のウィジェットが有する関数および変数を互いに共有させることにより連携させつつ並行動作させるステップと、
前記指示に応じて移動させた前記第１または第２のウィジェットの描画領域に再描画を行うステップと、を含むことを特徴とするウィジェットの動作制御方法を提供する。
【００１１】
本発明は、さらに、
前記第１および第２のウィジェットを互いに連携させつつ並行動作させている状態で、第１または第２のウィジェットが描画する領域を移動させる第２の指示を入力装置から受け付けるステップと、
前記第２の指示に応じて第１または第２のウィジェットが描画する領域を移動させることにより、第１および第２のウィジェットが描画する領域が所定間隔よりも離れるか否かを判断するステップと、
前記第１および第２のウィジェットが描画する領域が所定間隔よりも離れると判断された場合に、前記第１および第２のウィジェットを前記連携させることなく並行動作させるステップと、
前記第２の指示に応じて移動させた前記第１または第２のウィジェットの描画領域に再描画を行うステップと、を含む構成とすることができる。
【発明の効果】
【００１３】
本発明は、第１または第２のウィジェットが描画する領域を移動させる指示を入力装置から受け付けて、前記指示に応じて第１または第２のウィジェットが描画する領域を移動させると第１および第２のウィジェットが描画する領域が所定間隔よりも接近するかを判断し、接近する場合には第１および第２のウィジェットに通知し、前記通知を受けた第１および第２のウィジェットを互いに連携させつつ並行動作させる。したがって、あるウィジェットが描画している領域を、連携させたいウィジェットが描画している領域に移動させるという簡単かつ直感的な操作によって、二つのウィジェットを連携させることができる。
【００１４】
また、さらに、第１および第２のウィジェットを互いに連携させつつ並行動作させている状態で、第１または第２のウィジェットが描画する領域を移動させる指示を入力装置から受け付けて、前記指示に応じて第１または第２のウィジェットが描画する領域を移動させると第１および第２のウィジェットが描画する領域が所定間隔よりも離れるかを判断し、離れる場合には第１および第２のウィジェットに通知し、前記通知を受けた第１および第２のウィジェットを互いに連携させることなく動作させる構成とすれば、逆にウィジェットの連係動作を簡単かつ直感的な操作によって解除することができる。
【００１５】
そして、ウィジェットが有する関数および変数を、連係動作されているウィジェット間で共有させるようにすれば、単にウィジェット間でデータを共有することにより動作を同期させるだけでなく、関数として実装されているウィジェットの機能そのものを共有することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態について説明する。図１は、本発明にかかるウィジェットの動作制御方法を実施する組み込みシステム１００のソフトウェアおよびハードウェアの概略的な構成を示すブロック図である。図１に示すように組み込みシステム１００は、ＣＰＵ１０１、Ｉ／Ｏインタフェース１０２、表示装置１０３および入力装置１０４からなるハードウェア構成と、主として、ＯＳ１０５、ウィジェットプレーヤ１０７、第１のウィジェット１１３および第２のウィジェット１１４からなるソフトウェア構成とを有している。
【００１７】
まず、ハードウェア要素について説明する。
【００１８】
ＣＰＵ１０１は後述するソフトウェアを実行することにより、組み込みシステム１００で所定の処理および制御を実現する制御・演算装置である。なお、図１にはＣＰＵ１０１を１個のみ図示しているが、組み込みシステム１００はＣＰＵを複数使用した構成としてもよいし、ＣＰＵ１０１を補助するＤＰＵのような補助的な装置を併用しても構わない。Ｉ／Ｏインタフェース１０２は、ＣＰＵ１０１と接続して設けられ、各種周辺機器との接続に介在してデータのやり取りを行うためのインタフェースである。図１に示すように、Ｉ／Ｏインタフェース１０２には、ＣＰＵ１０１からの出力を表示する表示装置１０３と、ユーザからの入力を受け付けるための入力装置１０４とが接続されている。本実施形態においては、表示装置１０３として液晶表示装置または有機ＥＬ表示装置のようなグラフィックス表示の可能なものを使用する。また、入力装置１０４としては小型キーボード、キーパッド、所定のポインティングデバイス、ボタンスイッチまたはこれらの組み合わせを使用する。
【００１９】
次に、ソフトウェア要素について説明する。これらのソフトウェア要素は、それぞれ不図示のメモリに格納された所定のプログラムを実体とし、当該プログラムをＣＰＵ１０１で実行することにより所定の機能を実現するものである。
【００２０】
ＯＳ１０５は、組み込みシステム１００における入出力機能、メモリ管理等の基本的な機能を抽象化したＡＰＩを提供するとともに、システム全体のリソースを管理する機能を提供する。また、ＯＳ１０５は複数のプロセス（タスク）を切り替えながらＣＰＵ１０１で実行することによって、複数の処理を同時並行的に実行するマルチタスク機能に対応している。本実施形態で使用するＯＳ１０５に特に制限はなく、組み込みシステム１００に要求される特性および機能に応じた所望のＯＳを使用することができる。そして、以下に説明するウィジェットプレーヤ１０７と、第１および第２のウィジェット１１３および１１４とは、いずれもＯＳ１０５の一つのウィジェットプロセス１０６上で実行される。
【００２１】
ウィジェットプレーヤ１０７は、ＯＳ１０５上に実装されて、後述する第１および第２のウィジェット１１３および１１４を実行する機能を実現する。本実施形態におけるウィジェットはＪａｖａＳｃｒｉｐｔで記述された小型のアプーションであり、このようなウィジェットを実行するウィジェットプレーヤ１０７は、スクリプト実行エンジン１０８と、拡張ＡＰＩ１０９と、ウィジェットマネージャ１１０とを含んでいる。本実施形態におけるスクリプト実行エンジン１０８は、ＪａｖａＳｃｒｉｐｔの命令を逐次的に解釈実行するインタープリタである。スクリプト実行エンジン１０８は、ウィジェット開始時にＪａｖａＳｃｒｉｐｔ実行コンテキストをメモリ上に生成し、ＪａｖａＳｃｒｉｐｔ実行コンテキスト中にウィジェットのインスタンスであるグローバルオブジェクトを生成して、その内容を実行する。拡張ＡＰＩ１０９は、ＪａｖａＳｃｒｉｐｔの標準ＡＰＩには含まれていない描画処理、通信処理、フォント処理、文字コード処理等の機能をウィジェットに提供するためのＡＰＩを実装したものである。また、スクリプト実行エンジン１０８は、複数のＪａｖａＳｃｒｉｐｔ実行コンテキストを切り替えることにより複数のウィジェットを同時並行的に実行する機能を有している。
【００２２】
ウィジェットマネージャ１１０は、描画制御部１１１と連携制御部１１２を含んでいる。このうち描画制御部１１１は各ウィジェットが表示装置１０３に描画を行う領域の原点位置およびサイズを把握している。実行しているウィジェットからの描画命令は、拡張ＡＰＩ１０９の描画処理ＡＰＩによって受け付けられ、描画制御部１１１が原点位置を鑑みて表示装置１０３上の座標に対する描画命令に変換され、ＯＳ１０５の描画ＡＰＩを呼び出すことにより実行される。また、描画制御部１１１は、ウィジェット同士が重なり合っている場合の処理を行う機能、入力装置１０４から入力された指示信号に応じてウィジェットが描画を行う領域の原点位置を移動させる機能、実行しているウィジェットの描画する領域同士が所定間隔よりも接近しているか否かを判断する機能を有している。
【００２３】
連携制御部１１２は、描画制御部１１１が実行しているウィジェットの描画する領域同士が所定間隔よりも接近していると判断した場合に、互いに描画領域が接近している双方のウィジェットに対して、接近してきた相手のウィジェットと連携動作するように通知を行うとともに、それぞれのウィジェットに相手のグローバルオブジェクトを引き渡す。これにより、双方のウィジェットは相手のウィジェットが持っている変数および関数を直接実行することが可能となる。
【００２４】
第１および第２のウィジェット１１３および１１４は、前述した通り、ＪａｖａＳｃｒｉｐｔにより拡張ＡＰＩを利用しつつ記述された小型のアプーションであって、ウィジェットプレーヤ１０９で同時に実行することで、それぞれ表示装置１０３上の所定位置に共存してＧＵＩの一部をなすものである。また、第１および第２のウィジェット１１３および１１４には、他方のウィジェットが有する関数または変数を呼び出して利用する連携処理と、他方のウィジェットが有する関数および変数利用しない単独処理との双方が実装されており、初期状態では単独処理を行うが、ウィジェットプレーヤ１０７の連携制御部１１２から連係動作を行うように通知を受けると連係処理を開始するように構成されている。
【００２５】
以下、以上のような組み込みシステム１００で、本発明にかかるウィジェットの動作制御方法を実施する動作について、図２のフローチャートを参照しながら説明する。図２のＳＴはステップを表している。ここでは、第１および第２のウィジェット１１３および１１４がそれぞれ他方のウィジェットと連係して動作を行う機能を有しており、双方のウィジェットを起動した後、第１のウィジェット１１３の描画領域を第２のウィジェット１１４に接近させ、両者を連係させる動作について説明する。
【００２６】
まず、ユーザが入力装置１０４をマニュアル操作すること等の所定のイベントに応じて、第１のウィジェット１１３が起動される（ＳＴ１０１）。すなわち、ウィジェットプレーヤ１０７のスクリプト実行エンジン１０８が、第１のウィジェット１１３のＪａｖａＳｃｒｉｐｔ実行コンテキストをメモリ上に生成し、第１のウィジェット１１３のインスタンスであるグローバルオブジェクトを生成する。続いてウィジェットプレーヤ１０７は第１のウィジェット１１３の実行を開始し、第１のウィジェット１１３は連携制御部１１２からの通知を受けていないので単独処理を実行開始する（ＳＴ１０２）。この第１のウィジェット１１３には、表示装置１０３の所定位置に描画してＧＵＩをなすための描画命令が含まれている。ウィジェットプレーヤ１０７はこのような描画命令を実行するために拡張ＡＰＩ１０９を呼び出し、描画制御部１１１に第１のウィジェット１１３の描画領域を算出させ、ＯＳ１０５または不図示の描画ミドルウェアの描画機能を呼び出して描画を行う（ＳＴ１０３）。なお、描画制御部１１１は第１および第２のウィジェット１１３および１１４を描画する初期位置の座標が設定されており、ここでは初期位置の座標に従って描画領域の算出を行う。
【００２７】
次に、第１のウィジェット１１３と同様に、所定のイベントに応じて第２のウィジェット１１４が起動され（ＳＴ１０４）、ウィジェットプレーヤ１０７が実行を開始した第２のウィジェット１１４が単独処理を開始し（ＳＴ１０５）、ウィジェットプレーヤ１０７が第２のウィジェット１１４の描画命令を実行するために描画制御部１１１で第２のウィジェット１１４の描画領域を算出し、描画を行う（ＳＴ１０６）。ここまでのステップで、第１および第２のウィジェット１１３および１１４がウィジェットプレーヤ１０７によって並列実行される状態が実現する。
【００２８】
その状態で、ユーザが入力装置１０３を操作することによりなされた第１のウィジェット１１３を移動させる入力を受け付けると（ＳＴ１０７）、描画制御部１１１は第１のウィジェット１１３の描画領域を算出する原点位置を入力に応じてシフトさせ、第１のウィジェット１１３の描画領域を再算出する（ＳＴ１０８）。次いで描画制御部１１１は、ＳＴ１０８で再算出された第１のウィジェット１１３の描画領域と、第２のウィジェット１１４の描画領域とが所定間隔よりも接近しているか否かを判断する（ＳＴ１０９）。
【００２９】
描画制御部１１１は、上記２つの領域が所定間隔よりも接近しているか否かの判断結果を連携制御部１１２に通知する。ＳＴ１０９で所定間隔よりも接近していると判断されなかった場合、連携制御部１１２は、第１および第２のウィジェット１１３および１１４に通知せずにそのまま単独処理を継続させる（ＳＴ１１０）。これに対してＳＴ１０９で所定間隔よりも接近していると判断された場合、連携制御部１１２は第１および第２のウィジェット１１３および１１４に連係動作を行うように通知を行う。この通知を受けた第１および第２のウィジェット１１３および１１４は単独処理を中止し（ＳＴ１１１）、連携処理を開始する（ＳＴ１１２）。ＳＴ１１０、ＳＴ１１２に続いて、ＳＴ１０８で再算出した第１のウィジェット１１３の描画領域に再描画を行う（ＳＴ１１３）。以上で一連の動作は終了する。
【００３０】
このような動作によれば、一つのプロセス／タスク上で複数のウィジェットを並行動作させる構成で、入力装置１０３を操作して第１のウィジェット１１３の描画領域を第２のウィジェット１１４の描画領域と接近させるという簡単かつ直感的な操作によって、第１および第２のウィジェットを連携して動作させることができる。また、本実施形態では、前述の通り第１および第２のウィジェット１１３および１１４が相手のグローバルオブジェクトを共有するので、互いの変数および関数の双方を呼び出して連係動作に利用することができる。
【００３１】
以上説明した本実施形態の組み込みシステム１００を、携帯電話、ＰＤＡ、デジタルテレビ、セットトップボックス、ハードディスクレコーダ、光ディスクレコーダ等の情報家電やデジタル家電に適用することにより、複雑な機能を簡単かつ直感的な操作で実行することの可能なユーザインタフェースを実現することができる。
【００３２】
以上、本発明の実施の形態について説明したが、本発明はこれに限定されることなく、その趣旨を逸脱しない範囲で種々の改良・変更が可能であることは勿論である。
【００３３】
例えば、上記実施形態においては、ウィジェットの全体をＪａｖａＳｃｒｉｐｔで記述した場合を説明したが、ウィジェットの画面レイアウトはＨＴＭＬやＸＭＬで記述する構成としてもよく、スクリプト言語もＪａｖａＳｃｒｉｐｔに限定されるものではない。
【００３４】
また、上記ではそれぞれ単独で動作しているウィジェットを連携させる場合について示したが、さらに連係動作しているウィジェットの描画領域同士が所定間隔以上に離隔したことを描画制御部１１１で検出し、離隔した場合には連携制御部１１２からウィジェットに単独処理を行うように通知させ、通知を受けたウィジェットに連携処理を中止させて単独処理を開始させるようにしてもよい。
【００３５】
さらに、移動させた第１のウィジェット１１３の描画領域が、第２のウィジェット１１４に対して上下左右どの方向に位置するかを描画制御部１１１によって検出し、連携制御部１１２から第１および第２のウィジェット１１３および１１４に当該方向を通知して、ウィジェットが当該方向に応じた連係動作を行うようにすることも可能である。さらにまた、上記では二つのウィジェットを連携させる場合について示したが、連携させるウィジェットは三つ以上であっても構わない。
【図面の簡単な説明】
【００３６】
【図１】本実施形態における携帯電話１００の機能ブロック図。
【図２】本実施形態の動作を示すフローチャート。
【符号の説明】
【００３７】
１００  組み込みシステム
１０１  ＣＰＵ
１０２  Ｉ／Ｏインタフェース
１０３  表示装置
１０４  入力装置
１０５  ＯＳ
１０６  ウィジェット実行プロセス
１０７  ウィジェットプレーヤ
１１３  第１のウィジェット
１１４  第２のウィジェット
【図１】
0005557420.tif 000002
【図２】
0005557420.tif 000003