説明

ウィジェットの動作制御方法

【課題】 ウィジェットの連係動作と単独動作とを動的に切り替える操作が簡単かつ直感的なウィジェットの動作制御方法を提供すること、さらに連係動作しているウィジェット間で、データを共有するだけでなく、互いの関数を呼び出すことの可能なウィジェットの動作制御方法を提供することを目的とする。
【解決手段】 単独処理を行っている第1または第2のウィジェットの一方が描画する領域を移動させる指示を入力装置から受け付け、指示に応じて第1または第2のウィジェットが描画する領域を移動させることによって第1および第2のウィジェットが描画する領域が所定間隔よりも接近するかを判断し、接近する場合には第1および第2のウィジェットを連係動作させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウィジェットの動作制御方法に関するものである。
【背景技術】
【0002】
コンピュータのユーザインタフェースは、文字表示によるCUI(Character User Interface)からグラフィックス表現を利用するGUI(Graphical User Interface)へ進化してきた。このようなGUIは、複数のプログラムを同時並行的に実行するマルチタスク技術がコンピュータに導入されることに伴い、実行しているアプリケーションの画面をそれぞれ独立したウィンドウ内に表示するマルチウィンドウシステムへと発展している。
【0003】
前述したマルチウィンドウシステムにおいては、コンピュータの表示装置に複数のウィンドウが同時に表示されるが、各ウィンドウの形態は統一されたものとなっており、また、各ウィンドウで実行されるアプリケーションはC言語を使用して開発されたネィティブアプリケーションであることが通常である。また、各アプリケーションは、それぞれ1以上のプロセスまたはタスクの上で動作するようになっている。
【0004】
このようなマルチタスク環境上に構築されたマルチウィンドウシステムで、表示装置上にそれぞれ別のアプリケーションが画面を描いたウィンドウを複数同時に表示することで、現在のコンピュータシステムでは極めて高度なGUIが実現可能である。また、各ウィンドウを動かしたり重ねたりできるようにシステムを構成することも一般的である。
【0005】
さらに、昨今のコンピュータシステムでは、Java(登録商標)Script、PHP、Perl、Ruby、Python等のスクリプト言語を利用して、比較的小型のプログラムを走らせることが広く行われている。C言語のようなプログラミング言語ではソースコードで開発したプログラムを機械語に変換(コンパイル)する過程が必須となるが、スクリプト言語はスクリプトエンジン上で実行されるためコンパイルの必要が無く、機能の追加や修正が容易であるという特徴を有している。
【0006】
このようなスクリプト言語を利用したプログラムの一種に、ウィジェットと呼ばれる形態がある。広く用いられているウィジェットの種類としては、米国Yahoo社がエンジン提供および仕様公開している「Yahoo! Widget」、米国Apple社が自社製OSにエンジンを載せて仕様公開している「Dashboard Widget」、インターネットブラウザを提供しているOpera社がエンジン提供および仕様公開している「Opera Widget」を挙げることができる。これらは、いずれもグラフィックス要素のレイアウトをXMLまたはHTMLで記述するとともに処理の内容をスクリプト言語で記述し、スクリプトの実行結果をブラウザまたはXMLパーサによりレイアウトしたグラフィックス要素とともに画面表示する簡易アプリケーションである。このようなウィジェットは、マークアップ言語の文法を利用しているため画面構成の記述が容易であるとともに、スクリプト言語を利用しているため機能の追加や修正が容易であるという利点を有しており、広く用いられるようになってきている。なお、ウィジェットの形態としては、画面レイアウトの記述にXMLまたはHTMLを利用せず、JavaScriptに描画APIを追加することにより画面描画を行う構成とすることも可能である。
【0007】
上述したウィジェットに関して、米国特許公開2007/0130541には、Dashboard Widgetを互いに連携させる技術について開示されている。
【特許文献1】米国特許公開公報2007/0130541「Synchronization of widgets and dashboards 」
【発明の開示】
【発明が解決しようとする課題】
【0008】
前述した米国特許公開公報2007/0130541に記載されているように、複数のウィジェットをリンクして互いに連係動作させることで、ウィジェットを単独で動作させている場合よりも複雑で高度なユーザインタフェースを実現することが可能となる。しかし、この公報に記載の技術は各ウィジェットをそれぞれ独立したプロセスまたはタスク上で実行されることを前提としており、メモリ量やCPU演算能力の制限された携帯電話のような組み込み機器に適用することは難しい。また、ウィジェット間のリンクを動的に切り替えるには、所定の手順を繰り返さなければならず、煩雑であるという欠点があった。さらに、ウィジェット間のリンクは特定のデータを共有することに止まっており、リンク先ウィジェットの関数を呼び出すような機能は想定されていない。
【0009】
このような状況を鑑みて、本発明は一つのプロセス/タスク上で複数のウィジェットを並行動作させる構成を前提として、複数のウィジェットを連携して動作させることが可能でありながら、ウィジェットの連係動作と単独動作とを動的に切り替える操作が簡単かつ直感的なウィジェットの動作制御方法を提供することを目的とする。さらに本発明は、連係動作しているウィジェット間で、データを共有するだけでなく、互いの関数を呼び出すことの可能なウィジェットの動作制御方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明は、プロセスに割り当てられたリソースを共有し、それぞれ表示装置の所定領域に描画を行うとともに所定の処理を行う第1および第2のウィジェットを起動し、当該第1および第2のウィジェットを連携させることなく並行動作させるステップと、
前記第1または第2のウィジェットが描画する領域を移動させる指示を入力装置から受け付けるステップと、
前記指示に応じて前記第1または第2のウィジェットが描画する領域を移動させることにより、前記第1および第2のウィジェットが描画する領域が所定間隔よりも接近するか否かを判断するステップと、
前記第1および第2のウィジェットが描画する領域が所定間隔よりも接近すると判断された場合に、前記第1および第2のウィジェットを互いに連携させつつ並行動作させるステップと、
前記指示に応じて移動させた前記第1または第2のウィジェットの描画領域に再描画を行うステップと、を含むことを特徴とするウィジェットの動作制御方法を提供する。
【0011】
本発明は、さらに、
前記第1および第2のウィジェットを互いに連携させつつ並行動作させている状態で、第1または第2のウィジェットが描画する領域を移動させる第2の指示を入力装置から受け付けるステップと、
前記第2の指示に応じて第1または第2のウィジェットが描画する領域を移動させることにより、第1および第2のウィジェットが描画する領域が所定間隔よりも離れるか否かを判断するステップと、
前記第1および第2のウィジェットが描画する領域が所定間隔よりも離れると判断された場合に、前記第1および第2のウィジェットを連携させることなく並行動作させるステップと、
前記第2の指示に応じて移動させた前記第1または第2のウィジェットの描画領域に再描画を行うステップと、を含む構成とすることができる。
【0012】
また、本発明においては、前記第1および第2のウィジェットは関数および変数を有し、当該関数および変数を互いに共有することによりウィジェット間の連携を実現することができる。
【発明の効果】
【0013】
本発明は、第1または第2のウィジェットが描画する領域を移動させる指示を入力装置から受け付けて、前記指示に応じて第1または第2のウィジェットが描画する領域を移動させると第1および第2のウィジェットが描画する領域が所定間隔よりも接近するかを判断し、接近する場合には第1および第2のウィジェットに通知し、前記通知を受けた第1および第2のウィジェットを互いに連携させつつ並行動作させる。したがって、あるウィジェットが描画している領域を、連携させたいウィジェットが描画している領域に移動させるという簡単かつ直感的な操作によって、二つのウィジェットを連携させることができる。
【0014】
また、さらに、第1および第2のウィジェットを互いに連携させつつ並行動作させている状態で、第1または第2のウィジェットが描画する領域を移動させる指示を入力装置から受け付けて、前記指示に応じて第1または第2のウィジェットが描画する領域を移動させると第1および第2のウィジェットが描画する領域が所定間隔よりも離れるかを判断し、離れる場合には第1および第2のウィジェットに通知し、前記通知を受けた第1および第2のウィジェットを互いに連携させることなく動作させる構成とすれば、逆にウィジェットの連係動作を簡単かつ直感的な操作によって解除することができる。
【0015】
そして、ウィジェットが有する関数および変数を、連係動作されているウィジェット間で共有させるようにすれば、単にウィジェット間でデータを共有することにより動作を同期させるだけでなく、関数として実装されているウィジェットの機能そのものを共有することが可能となる。
【発明を実施するための最良の形態】
【0016】
以下、本発明を実施するための最良の形態について説明する。図1は、本発明にかかるウィジェットの動作制御方法を実施する組み込みシステム100のソフトウェアおよびハードウェアの概略的な構成を示すブロック図である。図1に示すように組み込みシステム100は、CPU101、I/Oインタフェース102、表示装置103および入力装置104からなるハードウェア構成と、主として、OS105、ウィジェットプレーヤ107、第1のウィジェット113および第2のウィジェット114からなるソフトウェア構成とを有している。
【0017】
まず、ハードウェア要素について説明する。
【0018】
CPU101は後述するソフトウェアを実行することにより、組み込みシステム100で所定の処理および制御を実現する制御・演算装置である。なお、図1にはCPU101を1個のみ図示しているが、組み込みシステム100はCPUを複数使用した構成としてもよいし、CPU101を補助するDPUのような補助的な装置を併用しても構わない。I/Oインタフェース102は、CPU101と接続して設けられ、各種周辺機器との接続に介在してデータのやり取りを行うためのインタフェースである。図1に示すように、I/Oインタフェース102には、CPU101からの出力を表示する表示装置103と、ユーザからの入力を受け付けるための入力装置104とが接続されている。本実施形態においては、表示装置103として液晶表示装置または有機EL表示装置のようなグラフィックス表示の可能なものを使用する。また、入力装置104としては小型キーボード、キーパッド、所定のポインティングデバイス、ボタンスイッチまたはこれらの組み合わせを使用する。
【0019】
次に、ソフトウェア要素について説明する。これらのソフトウェア要素は、それぞれ不図示のメモリに格納された所定のプログラムを実体とし、当該プログラムをCPU101で実行することにより所定の機能を実現するものである。
【0020】
OS105は、組み込みシステム100における入出力機能、メモリ管理等の基本的な機能を抽象化したAPIを提供するとともに、システム全体のリソースを管理する機能を提供する。また、OS105は複数のプロセス(タスク)を切り替えながらCPU101で実行することによって、複数の処理を同時並行的に実行するマルチタスク機能に対応している。本実施形態で使用するOS105に特に制限はなく、組み込みシステム100に要求される特性および機能に応じた所望のOSを使用することができる。そして、以下に説明するウィジェットプレーヤ107と、第1および第2のウィジェット113および114とは、いずれもOS105の一つのウィジェットプロセス106上で実行される。
【0021】
ウィジェットプレーヤ107は、OS105上に実装されて、後述する第1および第2のウィジェット113および114を実行する機能を実現する。本実施形態におけるウィジェットはJavaScriptで記述された小型のアプーションであり、このようなウィジェットを実行するウィジェットプレーヤ107は、スクリプト実行エンジン108と、拡張API109と、ウィジェットマネージャ110とを含んでいる。本実施形態におけるスクリプト実行エンジン108は、JavaScriptの命令を逐次的に解釈実行するインタープリタである。スクリプト実行エンジン108は、ウィジェット開始時にJavaScript実行コンテキストをメモリ上に生成し、JavaScript実行コンテキスト中にウィジェットのインスタンスであるグローバルオブジェクトを生成して、その内容を実行する。拡張API109は、JavaScriptの標準APIには含まれていない描画処理、通信処理、フォント処理、文字コード処理等の機能をウィジェットに提供するためのAPIを実装したものである。また、スクリプト実行エンジン108は、複数のJavaScript実行コンテキストを切り替えることにより複数のウィジェットを同時並行的に実行する機能を有している。
【0022】
ウィジェットマネージャ110は、描画制御部111と連携制御部112を含んでいる。このうち描画制御部111は各ウィジェットが表示装置103に描画を行う領域の原点位置およびサイズを把握している。実行しているウィジェットからの描画命令は、拡張API109の描画処理APIによって受け付けられ、描画制御部111が原点位置を鑑みて表示装置103上の座標に対する描画命令に変換され、OS105の描画APIを呼び出すことにより実行される。また、描画制御部111は、ウィジェット同士が重なり合っている場合の処理を行う機能、入力装置104から入力された指示信号に応じてウィジェットが描画を行う領域の原点位置を移動させる機能、実行しているウィジェットの描画する領域同士が所定間隔よりも接近しているか否かを判断する機能を有している。
【0023】
連携制御部112は、描画制御部111が実行しているウィジェットの描画する領域同士が所定間隔よりも接近していると判断した場合に、互いに描画領域が接近している双方のウィジェットに対して、接近してきた相手のウィジェットと連携動作するように通知を行うとともに、それぞれのウィジェットに相手のグローバルオブジェクトを引き渡す。これにより、双方のウィジェットは相手のウィジェットが持っている変数および関数を直接実行することが可能となる。
【0024】
第1および第2のウィジェット113および114は、前述した通り、JavaScriptにより拡張APIを利用しつつ記述された小型のアプーションであって、ウィジェットプレーヤ109で同時に実行することで、それぞれ表示装置103上の所定位置に共存してGUIの一部をなすものである。また、第1および第2のウィジェット113および114には、他方のウィジェットが有する関数または変数を呼び出して利用する連携処理と、他方のウィジェットが有する関数および変数利用しない単独処理との双方が実装されており、初期状態では単独処理を行うが、ウィジェットプレーヤ107の連携制御部112から連係動作を行うように通知を受けると連係処理を開始するように構成されている。
【0025】
以下、以上のような組み込みシステム100で、本発明にかかるウィジェットの動作制御方法を実施する動作について、図2のフローチャートを参照しながら説明する。図2のSTはステップを表している。ここでは、第1および第2のウィジェット113および114がそれぞれ他方のウィジェットと連係して動作を行う機能を有しており、双方のウィジェットを起動した後、第1のウィジェット113の描画領域を第2のウィジェット114に接近させ、両者を連係させる動作について説明する。
【0026】
まず、ユーザが入力装置104をマニュアル操作すること等の所定のイベントに応じて、第1のウィジェット113が起動される(ST101)。すなわち、ウィジェットプレーヤ107のスクリプト実行エンジン108が、第1のウィジェット113のJavaScript実行コンテキストをメモリ上に生成し、第1のウィジェット113のインスタンスであるグローバルオブジェクトを生成する。続いてウィジェットプレーヤ107は第1のウィジェット113の実行を開始し、第1のウィジェット113は連携制御部112からの通知を受けていないので単独処理を実行開始する(ST102)。この第1のウィジェット113には、表示装置103の所定位置に描画してGUIをなすための描画命令が含まれている。ウィジェットプレーヤ107はこのような描画命令を実行するために拡張API109を呼び出し、描画制御部111に第1のウィジェット113の描画領域を算出させ、OS105または不図示の描画ミドルウェアの描画機能を呼び出して描画を行う(ST103)。なお、描画制御部111は第1および第2のウィジェット113および114を描画する初期位置の座標が設定されており、ここでは初期位置の座標に従って描画領域の算出を行う。
【0027】
次に、第1のウィジェット113と同様に、所定のイベントに応じて第2のウィジェット114が起動され(ST104)、ウィジェットプレーヤ107が実行を開始した第2のウィジェット114が単独処理を開始し(ST105)、ウィジェットプレーヤ107が第2のウィジェット114の描画命令を実行するために描画制御部111で第2のウィジェット114の描画領域を算出し、描画を行う(ST106)。ここまでのステップで、第1および第2のウィジェット113および114がウィジェットプレーヤ107によって並列実行される状態が実現する。
【0028】
その状態で、ユーザが入力装置103を操作することによりなされた第1のウィジェット113を移動させる入力を受け付けると(ST107)、描画制御部111は第1のウィジェット113の描画領域を算出する原点位置を入力に応じてシフトさせ、第1のウィジェット113の描画領域を再算出する(ST108)。次いで描画制御部111は、ST108で再算出された第1のウィジェット113の描画領域と、第2のウィジェット114の描画領域とが所定間隔よりも接近しているか否かを判断する(ST109)。
【0029】
描画制御部111は、上記2つの領域が所定間隔よりも接近しているか否かの判断結果を連携制御部112に通知する。ST109で所定間隔よりも接近していると判断されなかった場合、連携制御部112は、第1および第2のウィジェット113および114に通知せずにそのまま単独処理を継続させる(ST110)。これに対してST109で所定間隔よりも接近していると判断された場合、連携制御部112は第1および第2のウィジェット113および114に連係動作を行うように通知を行う。この通知を受けた第1および第2のウィジェット113および114は単独処理を中止し(ST111)、連携処理を開始する(ST112)。ST110、ST112に続いて、ST108で再算出した第1のウィジェット113の描画領域に再描画を行う(ST113)。以上で一連の動作は終了する。
【0030】
このような動作によれば、一つのプロセス/タスク上で複数のウィジェットを並行動作させる構成で、入力装置103を操作して第1のウィジェット113の描画領域を第2のウィジェット114の描画領域と接近させるという簡単かつ直感的な操作によって、第1および第2のウィジェットを連携して動作させることができる。また、本実施形態では、前述の通り第1および第2のウィジェット113および114が相手のグローバルオブジェクトを共有するので、互いの変数および関数の双方を呼び出して連係動作に利用することができる。
【0031】
以上説明した本実施形態の組み込みシステム100を、携帯電話、PDA、デジタルテレビ、セットトップボックス、ハードディスクレコーダ、光ディスクレコーダ等の情報家電やデジタル家電に適用することにより、複雑な機能を簡単かつ直感的な操作で実行することの可能なユーザインタフェースを実現することができる。
【0032】
以上、本発明の実施の形態について説明したが、本発明はこれに限定されることなく、その趣旨を逸脱しない範囲で種々の改良・変更が可能であることは勿論である。
【0033】
例えば、上記実施形態においては、ウィジェットの全体をJavaScriptで記述した場合を説明したが、ウィジェットの画面レイアウトはHTMLやXMLで記述する構成としてもよく、スクリプト言語もJavaScriptに限定されるものではない。
【0034】
また、上記ではそれぞれ単独で動作しているウィジェットを連携させる場合について示したが、さらに連係動作しているウィジェットの描画領域同士が所定間隔以上に離隔したことを描画制御部111で検出し、離隔した場合には連携制御部112からウィジェットに単独処理を行うように通知させ、通知を受けたウィジェットに連携処理を中止させて単独処理を開始させるようにしてもよい。
【0035】
さらに、移動させた第1のウィジェット113の描画領域が、第2のウィジェット114に対して上下左右どの方向に位置するかを描画制御部111によって検出し、連携制御部112から第1および第2のウィジェット113および114に当該方向を通知して、ウィジェットが当該方向に応じた連係動作を行うようにすることも可能である。さらにまた、上記では二つのウィジェットを連携させる場合について示したが、連携させるウィジェットは三つ以上であっても構わない。
【図面の簡単な説明】
【0036】
【図1】本実施形態における携帯電話100の機能ブロック図。
【図2】本実施形態の動作を示すフローチャート。
【符号の説明】
【0037】
100 組み込みシステム
101 CPU
102 I/Oインタフェース
103 表示装置
104 入力装置
105 OS
106 ウィジェット実行プロセス
107 ウィジェットプレーヤ
113 第1のウィジェット
114 第2のウィジェット

【特許請求の範囲】
【請求項1】
プロセスに割り当てられたリソースを共有し、それぞれ表示装置の所定領域に描画を行うとともに所定の処理を行う第1および第2のウィジェットを起動し、当該第1および第2のウィジェットを連携させることなく並行動作させるステップと、
前記第1または第2のウィジェットが描画する領域を移動させる指示を入力装置から受け付けるステップと、
前記指示に応じて前記第1または第2のウィジェットが描画する領域を移動させることにより、前記第1および第2のウィジェットが描画する領域が所定間隔よりも接近するか否かを判断するステップと、
前記第1および第2のウィジェットが描画する領域が所定間隔よりも接近すると判断された場合に、前記第1および第2のウィジェットを互いに連携させつつ並行動作させるステップと、
前記指示に応じて移動させた前記第1または第2のウィジェットの描画領域に再描画を行うステップと、を含むことを特徴とするウィジェットの動作制御方法。
【請求項2】
さらに、
前記第1および第2のウィジェットを互いに連携させつつ並行動作させている状態で、第1または第2のウィジェットが描画する領域を移動させる第2の指示を入力装置から受け付けるステップと、
前記第2の指示に応じて第1または第2のウィジェットが描画する領域を移動させることにより、第1および第2のウィジェットが描画する領域が所定間隔よりも離れるか否かを判断するステップと、
前記第1および第2のウィジェットが描画する領域が所定間隔よりも離れると判断された場合に、前記第1および第2のウィジェットを連携させることなく並行動作させるステップと、
前記第2の指示に応じて移動させた前記第1または第2のウィジェットの描画領域に再描画を行うステップと、を含むことを特徴とする請求項1に記載のウィジェットの動作制御方法。
【請求項3】
前記第1および第2のウィジェットは関数および変数を有し、連係動作されているウィジェット間で当該関数および変数を互いに共有することを特徴とする請求項1または請求項2に記載のウィジェットの動作制御方法。

【図1】
image rotate

【図2】
image rotate