(57)【要約】ドキュメント及びそれに関連する１またはそれ以上のインタラクティブツールを有するコンピュータアプリケーションプログラムのためのユーザインターフェースが提供される。前記ドキュメント及びそれに関連するツールは、標準オブジェクトコンテナに埋め込まれる。標準オブジェクトコンテナは、該標準オブジェクトコンテナのインスタンスを表示することができるコンピュータ表示プログラムに埋め込まれる。前記ツールと前記ドキュメントとの間のインタラクションは、前記コンピュータアプリケーションプログラムによって処理される。前記アプリケーションプログラム及び前記表示プログラムが互いに協働して、ユーザインターフェースイベントを、前記標準オブジェクトコンテナによって決定されたプロトコルに従って処理する。【選択図】図１
2013503383.tif 000002
【特許請求の範囲】
【請求項１】
インタラクティブなユーザインターフェースを提供するためのコンピュータにより実施される方法であって、
ドキュメント及び１またはそれ以上のインタラクティブツールを有するコンピュータアプリケーションプログラムを提供するステップと、
前記ドキュメント及び前記ツールを標準オブジェクトコンテナに埋め込むステップと、
前記標準オブジェクトコンテナを、該標準オブジェクトコンテナのインスタンスを表示することができるコンピュータ表示プログラムに埋め込むステップとを含み、
前記ツールと前記ドキュメントとの間のインタラクションを前記コンピュータアプリケーションプログラムにより処理し、かつ
前記アプリケーションプログラム及び前記表示プログラムが互いに協働して、ユーザインターフェースイベントを、前記標準オブジェクトコンテナによって決定されたプロトコルに従って処理するようにしたことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
前記ドキュメント及び前記ツールがフレームウインドウの子ウィンドウであり、
前記フレームウインドウを前記標準オブジェクトコンテナに埋め込むようにしたことを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
前記ドキュメント及び前記ツールが、前記ツールの表示をドッキングウィンドウとして提供するドッキングフレームの子ウィンドウであり、
前記ドッキングフレームがフレームウインドウの子ウィンドウであり、
前記フレームウインドウを前記標準オブジェクトコンテナに埋め込むようにしたことを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、
前記標準オブジェクトコンテナが、ＯＬＥ（Object Linking and Embedding）コンテナであることを特徴とする方法。
【請求項５】
請求項４に記載の方法であって、
前記標準オブジェクトコンテナを、再利用可能なソフトウェアコンポーネントに埋め込むようにしたことを特徴とする方法。
【請求項６】
請求項１に記載の方法であって、
前記１またはそれ以上のインタラクティブツールが、再利用可能なソフトウェアコンポーネントであることを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、
前記ユーザインターフェースイベントを前記アプリケーションプログラムに直接渡すようにしたことを特徴とする方法。
【請求項８】
請求項１に記載の方法であって、
前記ユーザインターフェースイベントを前記表示プログラムに渡し、前記表示プログラムから前記アプリケーションプログラムに渡すようにしたことを特徴とする方法。
【請求項９】
インタラクティブなユーザインターフェースを提供するためのコンピュータにより実施される方法であって、
２またはそれ以上のドキュメント及び前記各ドキュメントに各々対応するインタラクティブツールのセットを有するコンピュータアプリケーションプログラムを提供するステップと、
前記各ドキュメント及び前記各ドキュメントに対応する前記ツールを、それらに対応する標準オブジェクコンテナに埋め込むステップと、
前記標準オブジェクトコンテナを、該標準オブジェクトコンテナのインスタンスを表示することができるコンピュータ表示プログラムに埋め込むステップとを含み、
前記各ドキュメントと前記各ドキュメントに対応する前記ツールとの間のインタラクションを前記コンピュータアプリケーションプログラムにより処理し、
前記２またはそれ以上のドキュメントのうちの或るドキュメントと別のドキュメントとの間のインタラクションを前記コンピュータアプリケーションプログラムにより処理し、
かつ、
前記アプリケーションプログラム及び前記表示プログラムが互いに協働して、ユーザインターフェースイベントを、前記標準オブジェクトコンテナによって決定されたプロトコルに従って処理するようにしたことを特徴とする方法。
【請求項１０】
請求項９に記載の方法であって、
前記各ドキュメント及び前記各ドキュメントに対応する前記ツールが、それらに対応するフレームウインドウの子ウィンドウであり、
前記フレームウインドウを前記標準オブジェクトコンテナに埋め込むようにしたことを特徴とする方法。
【請求項１１】
請求項９に記載の方法であって、
前記各ドキュメント及び前記各ドキュメントに対応する前記ツールが、それらに対応し前記ツールの表示をドッキングウィンドウとして提供するドッキングフレームの子ウィンドウであり、
前記各ドッキングフレームが、それに対応するフレームウインドウの子ウィンドウであり、
前記フレームウインドウをそれに対応する前記標準オブジェクトコンテナに埋め込むようにしたことを特徴とする方法。
【請求項１２】
請求項９に記載の方法であって、
前記標準オブジェクトコンテナが、ＯＬＥ（Object Linking and Embedding）コンテナであることを特徴とする方法。
【請求項１３】
請求項１２に記載の方法であって、
前記標準オブジェクトコンテナを、再利用可能なソフトウェアコンポーネントに埋め込むようにしたことを特徴とする方法。
【請求項１４】
請求項９に記載の方法であって、
前記インタラクティブツールのセットに含まれているツールが、再利用可能なソフトウェアコンポーネントであることを特徴とする方法。
【請求項１５】
請求項９に記載の方法であって、
前記ユーザインタラクティブイベントを前記アプリケーションプログラムに直接渡すようにしたことを特徴とする方法。
【請求項１６】
請求項９に記載の方法であって、
前記ユーザインターフェースイベントを前記表示プログラムに渡し、前記表示プログラムから前記アプリケーションプログラムに渡すようにしたことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムのためのユーザーインターフェースを提供することに関する。
【背景技術】
【０００２】
ソフトウェアコンポーネントの再利用は開発時間及びコストを減少させることができるという利点があるので、再利用可能なソフトウェアコンポーネントはソフトウェア工学における一般的な関心事である。再利用可能なソフトウェアコンポーネントのための標準化されたフレームワークが登場しており、そのいくつかは幅広く使用されている。例えば、そのようなフレームワークの１つは、ActiveX（マイクロソフト社の登録商標）として知られている。このフレームワークにおける再利用可能なソフトウェアコンポーネントは、ActiveX（登録商標）コントロールとして知られている。前記コントロールは、Microsoft Windows（登録商標）における特定の機能または機能セットを、それらを実施するのに用いられるプログラム言語から独立的な方法で実施する。そのため、ソフトウェアアプリケーションは、その機能を提供するためには、１またはそれ以上のソフトウェアコンポーネントから構成され得る。
【０００３】
ActiveX（登録商標）コントロールは、ソフトウエア開発において大きな利点を提供するが、ソフトウェアコンポーネントの効率的な再利用が難しいという問題があった。そのような問題の１つは、１またはそれ以上のツールがドキュメントに関連するインターフェース下でのインタラクティブに関するものである。多くの場合、ツールは、ドキュメントウィンドウと関連するドッキングウインドウとして表示することが望ましい。また、多くの場合、ドキュメント及びそれに関連するドッキングウィンドウを、いくつかの互いに異なる方法で表示することが望ましい（例えば、インターネットブラウザによって、またはドキュメント編集アプリケーションによって）。しかし、従来の方法では、インターネットブラウザにおいてドッキングウィンドウを表示するためのActiveX（登録商標）コントロールは、ドキュメント編集アプリケーションにおいて同一の機能を提供するためにすぐに再利用することができなかった。言い換えれば、多くの場合、所望するファイルの表示形式に応じたカスタムコード化が必要とされ、そのようなカスタムコード化は面倒で時間のかかるものであった。
【０００４】
したがって、特にユーザインターフェースに関連して、ソフトウェアコンポーネントのより効率的な再利用を提供することは、当分野における進歩となるであろう。
【発明の概要】
【課題を解決するための手段】
【０００５】
ドキュメント及びそれに関連する１またはそれ以上のインタラクティブツールを有するコンピュータアプリケーションプログラムのためのユーザインターフェースが提供される。前記ドキュメント及びそれに関連する前記ツールは、標準オブジェクトコンテナに埋め込まれる。適切な標準オブジェクトコンテナは、当該技術分野において現在広く使用されている。例えば、Microsoft（登録商標）社のＯＬＥ（Object Linking and Embedding）技術が、そのような標準オブジェクトコンテナを提供する。
【０００６】
前記標準オブジェクトコンテナは、該標準オブジェクトコンテナのインスタンスを表示することができるコンピュータ表示プログラムに埋め込まれる。適切なコンピュータ表示プログラムもまた、当該技術分野において現在広く使用されており、そのようなものとしては、例えば、インターネットブラウザ、ドキュメントエディタなどが挙げられる。
【０００７】
前記ツールと前記ドキュメントとの間のインタラクションは、前記コンピュータアプリケーションプログラムによって処理される。前記アプリケーションプログラム及び前記表示プログラムが互いに協働して、ユーザインターフェースイベントを、前記標準オブジェクトコンテナによって決定されたプロトコルに従って処理する。
【０００８】
本発明の方法は、いくつかの大きな利点を提供する。第１に、ツール（ActiveX（登録商標）コントロールであり得る）は、所望するファイルの表示形式のために開発された別バージョンを有する必要がない。その代わりに、標準コンテナにツールを埋め込み、その標準コンテナを表示プログラムに埋め込むことにより、最終表示プログラム（例えば、インターネットブラウザ、ドキュメントエディタなど）の詳細な性質とは独立的なツールを提供することができる。
【０００９】
本発明の方法の第２の利点は、前記ツールと前記ドキュメントとの間（複数のドキュメントが開かれた場合は、或るドキュメントと別のドキュメントとの間）のインタラクションをコンピュータアプリケーションプログラムによって処理できることである。このことは、ツール機能が表示プログラムにより提供される従来の方法と比べて、より大きな柔軟性及び機能を提供する。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に関するアーキテクチャを示す。
【図２】本発明の第２のかつ好ましい実施形態に関するアーキテクチャを示す。
【図３】本発明の一実施形態に関する例示的なスクリーン表示を示す。
【発明を実施するための形態】
【００１１】
図１は、本発明の第１の実施形態に関するアーキテクチャを示す。この例では、コンピュータアプリケーションプログラム１２０は、ドキュメント１０２と、それに関連するツール１０４、１０６、１０８とを有する。この実施例では３つのツールが示されているが、本発明の実施においては任意の数のツールを使用することができる。アプリケーションプログラム１２０は、ドキュメント１０２と、ツール（１０４、１０６、１０８）との間のインタラクションを処理する。好ましい実施形態では、前記ツールは、例えばActiveX（登録商標）コントロールなどの、再利用可能なソフトウェアコンポーネントである。前記ツールは、アプリケーションプログラムの一部として提供することもできるし、あるいは、エンドユーザによってカスタムコード化することもできる。任意のカスタムコード化されたツールが本ユーザインターフェース方法と適合し、ここに説明される埋め込みの要求に応じてユーザ定義ツールが提供されるであろう。
【００１２】
本方法においてはユーザ定義ツールは、ユーザが、基本的なウィンドウ管理機能（例えば、ウンンドウを開く、ウィンドウを閉じる、ウィンドウを移動させる、ウィンドウのサイズを変更する機能）をカスタムコード化する必要がないことに注意することが重要である。その代わりに、この基本機能は、埋め込みインターフェースに依存するライブラリソフトウエアによって提供することができる。このようにしてカスタムツールを容易に作成できることは、本発明の別の大きな利点である。
【００１３】
ドキュメント１０２及びそれに関連するツール（すなわち、１０４、１０６及び１０８）は、フレームウィンドウ１５０内に含まれることが好ましい。より具体的には、フレームウィンドウ１５０は、ドキュメント及びツールの親ウィンドウである。よって、ドキュメント１０２及びツール１０４、１０６及び１０８は、フレームウィンドウ１５０の子ウィンドウである。フレームウィンドウ１５０は、標準オブジェクトコンテナ１１０に埋め込まれる。そして、標準オブジェクトコンテナ１１０は、表示プログラム１３０に埋め込まれる。適切な標準オブジェクトコンテナが、当該技術分野において現在広く使用されている。例えば、マイクロソフト（登録商標）社のＯＬＥ（Object Linking and Embedding）技術が、そのような標準オブジェクトコンテナを提供する。好ましい実施形態では、標準オブジェクトコンテナ１１０は、ＯＬＥ規格のActiveX（登録商標）コントロールである。より一般的には、標準オブジェクトコンテナ１１０は、該コンテナ１１０に対してフレームウィンドウ１５０を埋め込むことができ、かつ該コンテナ１１０を表示プログラム内に埋め込むことができる任意の標準コンテナであり得る。
【００１４】
ここで、「標準オブジェクトコンテナ」は、当該技術分野において広範に用いられている埋め込み能力を有し、かつ当業者に対して明確に定義された意味を有するコンテナインターフェースを意味する（例えば、Object Linking and Embedding, circa 2009）。標準オブジェクトコンテナの使用の主な意図は、そのようなコンテナとインターフェース可能なライブラリソフトウエアがすぐに利用可能となり、それにより、本方法の開発時間を大幅に減少させることができることである。
【００１５】
表示プログラム１３０は、標準オブジェクトコンテナのインスタンスを表示することができる任意のプログラムであり得る（例えば、インターネットブラウザ、ドキュメントビューア／エディタ、スプレッドシート、インタラクティブフォームなど）。
【００１６】
ドキュメント１０２とツール１０４、１０６及び１０８との間のイントラクションは、コンピュータアプリケーションプログラム１２０によって処理される。アプリケーションプログラム１２０及び表示プログラムは互いに協働して、標準オブジェクトコンテナ１１０により決定されたプロトコルに従ってユーザーインターフェースイベントに対処する。ユーザーインターフェースイベントは、アプリケーションプログラム１２０に直接渡されるか、あるいは、表示プログラム１３０に渡され表示プログラム１３０からアプリケーションプログラムへ渡される。
【００１７】
図２は、本発明の第２のかつ好ましい実施形態に関するアーキテクチャを示す。この例では、コンピュータアプリケーションプログラム２２０はドキュメント２０２及び２１２を有しており、各ドキュメントはそれに関連するツールを有している。ツール２０４、２０６、２０８はドキュメント２０２に関連しており、ツール２１４、２１６はドキュメント２１２に関連している。ドキュメント２０２及びそのツール２０４、２０６、２０８は、それらに対応するドッギングフレーム２２０の子ウィンドウである。同様に、ドキュメント２１２及びそのツール２１４、２１６は、それらに対応するドッギングフレーム２３０の子ウィンドウである。ドッギングウィンドウフレーム２２０及び２３０の目的は、前記関連ツールの表示を、大きなドキュメントビューイングウィンドウ内にドッキングウィンドウとして提供することである。ドッギングウィンドウフレーム２２０及び２３０は、市販の開発ソフトウエア（例えば、Stingray（登録商標）Objective Toolkit）を使用して実施することができる。
【００１８】
ドッキングフレーム２２０及び２３０はそれぞれ、フレームウインドウ２２２及び２３２の子ウィンドウである。フレームウインドウ２２２は、標準オブジェクトコンテナ２１０に埋め込まれ、標準オブジェクトコンテナ２１０は、表示プログラム２５０に埋め込まれる。同様に、フレームウインドウ２３２は、標準オブジェクトコンテナ２１８に埋め込まれ、標準オブジェクトコンテナ２１８は、表示プログラム２６０に埋め込まれる。これらの埋め込みの原理は、図１に関連して上述したのと同様である。
【００１９】
図２の例と図１の例との主な違いは、フレームウィンドウ２２２及び２３２の内部でのドッキングフレーム２２０及び２３０の使用である。上述したように、ドッキングフレーム２２０及び２３０は、ツールの表示を、好ましいユーザインターフェース方式である場合が多いドッキングウィンドウとして提供する。原理上は、（１）ドッキングウィンドウ機能の提供及び（２）埋め込みのための適切なインターフェースの提供の２つの機能を提供するための単一レベルのウィンドウイング用としても可能であるが、これらの方法は、そのようなウィンドウを提供するためのカスタムソフトウエア開発の相当な労力を必要とする。対照的に、図２の方法は、すぐに利用可能なソフトウェアコンポーネントを使用することによって、前記機能を効率的に提供する。例えば、ドッキングフレームは、上記したような市販の開発ソフトウエアを使用して実施することができ、フレームウィンドウ２２２及び２３２は、標準ＭＦＣ（Microsoft Foundation Class）の派生物（例えば、MFC InPlace frames）として実施することができる。本発明の方法では、ドッキングフレーム２２０及び２３０がドッキングウィンドウ機能を提供し、フレームウィンドウ２２２及び２３２が埋め込み可能なインターフェースを提供する。図２の例では、ドキュメント及びツールのそれらに対応する標準オブジェクトコンテナへの埋め込みは、示されたウィンドウヒエラルキーを用いることにより容易になる。
【００２０】
図１の例と図２の例との間の別の差異は、図２の例には２つのドキュメントが示されていることである。本発明の実施形態を実施するときは、任意の数のドキュメントを同時に開くことができる。２またはそれ以上のドキュメントを開く場合、ドキュメント間の任意のインタラクションをアプリケーションプログラムによって処理することができる。
【００２１】
図３は、本発明の実施形態に関連する例示的なスクリーン表示３０２を示す。ここで、３１０はドキュメント表示領域であり、３０４、３０６及び３０８はツールドッキングウインドウの位置を示す。上述したように、ユーザーインターフェースイベントは、アプリケーションプログラムと表示プログラムとが互いに協働して処理する。なお、アプリケーションプログラムが、ドキュメントとツールとの間（あるいは、２またはそれ以上のドキュメントを開いた場合はドキュメント間の）のインタラクションを処理することに注意することが重要である。これは、ツールが表示プログラムによって提供される方法と比較すると、非常に大きな柔軟性を提供する。
【００２２】
例えば、アプリケーションプログラムは、工業工程制御用の読み取り専用のビュアーであり得、ＯＬＥサーバーアプリケーションとして実施され得、ドキュメント領域３１０は、工業工程の一部または全体の図（diagram）を示すことができる。この例では、ツールは、領域３１０に表示されたアイテムに関する数値的な詳細（例えばデータ表、統計値、メタデータなど）を提供する機能、プレイバックコントローラを提供する機能、及び要素の表示を提供する機能などを含み得る（例えば、ドキュメントがウェルフィールド（well field）のうちの１つのウェルを示す場合、前記要素表示機能は、前記ウェルフィールドにおける他のウェルのリストを提供することができる）。このリストの前記他のウェルの１つを選択することにより（例えば、ポインタクリックによって）、選択されたウェルが示されるように表示を更新することができる。コンピュータアプリケーションプログラムは、ツールを介したユーザ入力に応じて随時、データを表示及び／または読み出すための任意の必要とされる変更を行う。
【００２３】
ツールを表示プログラムの一部として提供する場合、上記の例のように表示された情報に対してツールをインタラクトさせることは困難または不可能である。したがって、ツールのこの強化された機能は、本発明の方法の別の大きな利点である。
【００２４】
本発明の実施は、ドッキングウィンドウを自動的に隠すかまたは隠さないか、あるいは標準オブジェクトコンテナのウィンドウ内の任意の位置でのドッキングウィンドウの配置を提供するかまたはしないかなどの、様々なユーザーインターフェースの設計オプションに適合する。本発明の実施形態は、Microsoft（登録商標）Visual C++ 2008を使用して実施することができるが、任意の他の言語及び／または開発環境を用いて、本発明を上述した原理に従って実施することもできる。
【図１】
2013503383.tif 000003
【図２】
2013503383.tif 000004
【図３】
2013503383.tif 000005
【国際調査報告】
2013503383.tif 000006
2013503383.tif 000007