(57)【特許請求の範囲】
【請求項１】
ＵＩエンティティとのユーザ対話に応答して、前記ＵＩエンティティに関するコンピュータ・システム・ユーザ・インタフェースによるヘルプ情報を表示する方法であって、それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するための複数の選択可能表示コンポーネントを含み、表示情報と関連のインタフェース領域を定義するデータを返すための要求をインタフェースに追加されるＵＩエンティティに出すように構成されている表示マネージャを使用してコンピュータによって実現され、
ユーザが、コンテナとして機能するアプリケーションによってＵＩコンポーネントを前記インタフェースに挿入することにより、前記ＵＩエンティティを前記インタフェースに追加したことに応答して、前記表示情報と前記インタフェース領域を定義するデータとをカプセル化するＵＩエンティティ定義コンポーネントのインスタンスを前記表示マネージャを使用して作成するステップと、
前記表示スタイルの１つに応じて前記ヘルプ情報を表示するために、複数の前記選択可能表示コンポーネントのリストを表示し、ユーザに選択させることにより、作成した前記ＵＩエンティティ定義コンポーネントに関連付ける前記表示コンポーネントを選択するステップと、
ユーザ入力装置ポインタが移動して前記インタフェース領域との事前定義接近関係になったときに、ユーザ対話に対する応答として前記ヘルプ情報を表示するために選択済み前記表示コンポーネントを始動するステップと、
前記ＵＩエンティティ定義コンポーネントのインスタンスのそれぞれが、一度に表示される前記ヘルプ情報の組を識別するためのグループＩＤと事前設定される優先順位値とを有し、複数の前記データにより定義される複数の定義済みインタフェース領域が重なる場合、同じ前記グループＩＤを有する複数の前記ＵＩエンティティ定義コンポーネントのインスタンスを識別し、識別した前記インスタンスの前記優先順位値を比較し、前記優先順位値が最も高いインスタンスに関するヘルプ情報を表示するステップとを含む、
方法。
【請求項２】
前記始動するステップは、前記インタフェース領域との前記ユーザ対話に対する応答として前記ＵＩエンティティ定義コンポーネントが通知を受け取り、前記通知の受け取りに応答して、前記選択済み表示コンポーネントに通知を送ることを含む、請求項１に記載の方法。
【請求項３】
ＵＩエンティティとのユーザ対話に応答して、コンピュータ・システム・ユーザ・インタフェースによる前記ＵＩエンティティに関するヘルプ情報の表示をサポートするためのコンピュータ可読なプログラムが記録された記録媒体であって、該プログラムは、それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するための複数の選択可能表示コンポーネントを含み、表示情報と関連のインタフェース領域を定義するデータを返すための要求をインタフェースに追加されるＵＩエンティティに出すように構成されている表示マネージャを含み、
ユーザが、コンテナとして機能するアプリケーションによってＵＩコンポーネントを前記インタフェースに挿入することにより、前記ＵＩエンティティを前記インタフェースに追加したことに応答して、前記表示情報と前記インタフェース領域を定義するデータとをカプセル化するＵＩエンティティ定義コンポーネントのインスタンスを作成するステップと、
前記表示スタイルの１つに応じて前記ヘルプ情報を表示するために、複数の前記選択可能表示コンポーネントのリストを表示し、ユーザに選択させることにより、作成した前記ＵＩエンティティ定義コンポーネントに関連付ける前記表示コンポーネントを選択するステップと、
ユーザ入力装置ポインタが移動して前記インタフェース領域との事前定義接近関係になったときに、ユーザ対話に対する応答として前記ヘルプ情報を表示するために選択済み前記表示コンポーネントを始動するステップと、
前記ＵＩエンティティ定義コンポーネントのインスタンスのそれぞれが、一度に表示される前記ヘルプ情報の組を識別するためのグループＩＤと事前設定される優先順位値とを有し、複数の前記データにより定義される複数の定義済みインタフェース領域が重なる場合、同じ前記グループＩＤを有する複数の前記ＵＩエンティティ定義コンポーネントのインスタンスを識別し、識別した前記インスタンスの前記優先順位値を比較し、前記優先順位値が最も高いインスタンスに関するヘルプ情報を表示するステップと
を前記コンピュータに実行させる、
記録媒体。
【請求項４】
前記始動するステップは、前記インタフェース領域との前記ユーザ対話に対する応答として前記ＵＩエンティティ定義コンポーネントが通知を受け取り、前記通知の受け取りに応答して、前記選択済み表示コンポーネントに通知を送ることを含む、請求項３に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力装置によるユーザ対話に対する応答としてコンピュータ・システム・ユーザ・インタフェースによる情報の表示に関する。
【０００２】
【従来の技術】
コンピュータ・システム・ユーザ・インタフェース（ＵＩ）の一般的な要件は、ユーザ入力装置制御のポインタ（たとえば、マウス・ポインタ）がインタフェースの一部の上を通過するか、インタフェースの一部に接近するか、またはインタフェースの一部の上で停滞するときに、何らかの情報をユーザに表示する機能である。このような情報は、インタフェースのその部分ならびにユーザがそれと対話した結果に関する追加説明を提供することができ、それが使用する画面領域を低減するためにその情報の一部をインタフェース自体が省略する場合に特に有用になりうる。
【０００３】
たとえば、多くのＵＩでは、それが実行するタスクを表す小さいアイコン・グラフィックを表示するプッシュ・ボタンを取り入れている。このようなボタンはときには「ツール・バー」と呼ばれる行または列に集めることができ、それらが占有する画面領域は、各プッシュ・ボタンにその機能の完全なテキスト説明を付ける場合に必要な領域よりかなり小さくなる。しかし、小さいアイコン・グラフィックは、特にインタフェースの新しいユーザにいつでも明確に理解されるわけではなく、マウスがそのボタンの上に停滞している場合に示される各ボタンのテキスト説明はインタフェースの使いやすさを大幅に高めることができる。
【０００４】
情報は、多種多様な方法で表示することができる。例としては、テキストを含むポップアップ・ボックスまたはバブルがあり、それにより適当なグラフィックを備えた既存のインタフェースの上に重なってそれを周囲から線引きし、おそらくそれが関連するインタフェースの一部を補強する。あるいは、ステータス・バーまたはメッセージ・ウィンドウにテキストを示すことができ、または適当なオーディオ・インタフェースによりテキストを朗読することも可能である。ときには、情報が単純なテキスト表示の形式を取らない場合もあるが、アウトライン・カラーの変更などのインタフェースに加えられた他の変更や、グラフィックのアニメーション、音響効果の開始など、当然のことながら、他にも多くの可能性がある。
【０００５】
適度な複雑さのインタフェースでも、このような情報を適用できる部分は多種多様に存在する可能性があり、このような個々の情報の集合を管理することは、当業者にとっても相当な難題を提示する可能性がある。この問題は、動的に変化するインタフェースの場合、特にインタフェース設計者が直接制御できないプログラム・コードによってインタフェースの各部分が追加され管理される場合に、増大する。たとえば、所与のアプリケーションが、様々なコンポーネント（アプレットまたはＵＩコントロール）を挿入できるコンテナとして機能し、おそらく異なるコンポーネントが異なる人によって異なる時点に作成されることは、当技術分野では既知のことである。システム・エンド・ユーザまたはインタフェース設計者によってこのようなコンポーネントを挿入することによるインタフェースへの追加は、容易にコンテナの開発者の特定の制御下に置くことができない。
【０００６】
Ｊａｖａ（サン・マイクロシステムズ社の商標）などのプラットフォーム非依存コンポーネント・プログラミング環境では、個々のコンポーネント自体がこの表示のメソッドを含まない限り、アプリケーション・コンポーネント用のヘルプ情報は一般にまったく表示されない。というのは、ヘルプ情報を表示するために適用可能な汎用メカニズムが現在、まったくないからである。これは、特定のオペレーティング・システム用に作成されたアプリケーションが「ヘルプ」情報を表示するために標準のオペレーティング・システム機能への呼出しを行うようにしばしばコーディングされるような、あまり動的ではない環境との違いである。このような標準のオペレーティング・システム機能は、通常、インタフェースを動的に変更するためにヘルプ表示を処理するためのメカニズムを提供しない。
【０００７】
それは特定のオペレーティング・システム機能への依存を回避するが、コンポーネントがそのヘルプ情報の表示を完全に担当しなければならないので、コンポーネント開発の労力が大幅に増大する。特に、感知可能画面領域用の状態モデルを定義すること（ヘルプ情報の除去などが必要なときに、どのようなポインタ移動によってヘルプ情報の表示をトリガすべきかを決定すること）は複雑かつ時間を要する作業である。
【０００８】
また、エンド・ユーザの観点から見ると、各コンポーネントがヘルプ情報の表示を担当する場合、インタフェースは、異なるコンポーネントとの同様の対話のために一貫した情報表示を有する場合が多くなる（たとえば、異なるスタイルのヘルプ・バブルが表示される可能性がある）。これは、ユーザを非常に混乱させる可能性がある。さらに、オペレーティング・システムによって提供されるかまたはコンポーネントに組み込まれる情報表示機能は、ユーザが本当に必要とするタイプの情報表示効果を提供できないこともある（たとえば、ユーザがオーディオ・ヘルプ情報を必要としているのに、テキストベースの「ホバー・ヘルプ」だけがサポートされている場合）。
【０００９】
上記のように、情報の表示時にユーザが行う要求によって、さらに問題点が発生する。それを必要とするユーザに対して適切な時期に情報が表示されるが、それを必要としないユーザの活動を妨げないようにするには、単純なインプリメンテーションが達成するものより高度な挙動を用意しなければならない。これが特に当てはまるのは、ある時点では援助を必要としないユーザでも他の時点で、または同じ時点でもインタフェースの不慣れな部分を使用する場合には同じ援助を必要とする場合があるからである。ユーザが必要とし期待する挙動が用意されてない場合、ユーザはいらいらして挫折する可能性があり、インタフェースの使いやすさは増大するのではなく、むしろ低下する可能性がある。
【００１０】
【発明が解決しようとする課題】
本発明の目的は、情報が関連付けられているコンピュータ・システム・ユーザ・インタフェース（ＵＩ）エンティティとのユーザ対話に対する応答としてＵＩによりヘルプ情報を表示するための汎用メカニズムを提供することである。
【００１１】
【課題を解決するための手段】
この汎用表示メカニズムは、ＵＩコンポーネントから、ヘルプ情報の表示を管理する作業の多くを除去し、複数の異なるスタイル（テキスト、オーディオ、グラフィックのアニメーションなど）での情報の表示をサポートする。本発明は、プラットフォーム非依存コンピュータ・プログラミング環境向けのヘルプ情報表示マネージャ・フレームワークで実現されることが好ましい。
【００１２】
このコンテキストでのＵＩ「エンティティ」は、ユーザ・インタフェース内の１つの表現を有するかまたはそれに関連するインタフェースの１つの領域を有するソフトウェア・コンポーネント（以下、ＵＩコンポーネント）であり、ＵＩコンポーネントに関連付けられたユーザ・インタフェースの領域である。したがって、「ＵＩエンティティ」は、アイコンによって表されたアプリケーション・プログラムまたはアプレットなどのＵＩコンポーネント、ボタン、スクロールバー、入力フィールドなどのＵＩコントロール、ツールバーやメニュー・バーなどの項目リスト、ウィンドウ、図およびチャートの一部、イメージ・マップの領域を含む。
【００１３】
このコンテキストでの「ヘルプ」情報は、インタフェースの一部またはそれと対話した結果についてユーザに通知する、テキスト、イメージ、サウンド、その他の媒体の形式の情報である。このような情報はＵＩコンポーネントの本質的な内部機能ではないので、ＵＩコンポーネントの状態モデルから個別に実現することができるかまたは異なる動作状態を有していないＵＩエンティティ（チャートの一部分など）に関連付けることができる。すなわち、ヘルプ情報の表示は、ＵＩコンポーネントの状態も変更する対話イベントによって始動できるが、ヘルプ情報を表示するアクションは、ＵＩコンポーネントの状態遷移エンジンとは無関係にトリガすることができる。
【００１４】
本発明は、「第１のレベルのヘルプ」の表示に特に適している。第１のレベルのヘルプは、ユーザ・インタフェースの定義済み領域に関連するかまたはそこからアクセス可能なヘルプ情報の単一レベル（すなわち、非階層配置）の項目を含む。本発明は、先行技術の第１のレベルのヘルプ機能の能力を相当に上回るものである。
【００１５】
第１の態様では、本発明は、コンピュータ・システム・ユーザ・インタフェースによるＵＩエンティティに関するヘルプ情報の表示をサポートするための表示マネージャ・フレームワークを提供し、この表示マネージャ・フレームワークは、ＵＩエンティティに関するインタフェース領域定義と関連のヘルプ情報をカプセル化するためのＵＩエンティティ定義コンポーネントと、それぞれの表示スタイルに応じて複数の表示コンポーネントによって実現するための１つまたは複数の汎用ヘルプ情報表示メソッドを有するセットを提供する表示インタフェースとを含む。
【００１６】
このフレームワークを実現する表示マネージャは、複数の選択可能表示コンポーネントを含み、それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するために表示インタフェースを実現することが好ましい。また、この表示マネージャは、前記ＵＩエンティティの１つに関する情報を表示するために所望の表示スタイルに応じて前記表示コンポーネントの１つを選択する手段と、前記ＵＩエンティティとのユーザ対話に対する応答として選択済み表示コンポーネントを始動する手段も含むことが好ましい。
【００１７】
第２の態様では、本発明は、コンピュータ・システムＵＩによる複数のＵＩエンティティに関するヘルプ情報の表示を処理するための表示マネージャを提供し、この表示マネージャは、それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するための複数の表示コンポーネントと、前記ＵＩエンティティの１つに関連する情報を表示するために前記表示コンポーネントの１つを選択する手段と、前記ＵＩエンティティとのユーザ対話に対する応答として前記選択済み表示コンポーネントを始動する手段とを含む。
【００１８】
本発明による表示マネージャは、以下に示す複数の「表示スタイル」に関する表示コンポーネントを提供することが好ましく、すなわち、表示スタイルは以下の通りである。
−  ポップアップ・バブル内のテキスト表示（この場合の「情報」はテキストである）
−  メッセージ行またはステータス行でのテキスト表示（「情報」はテキストである）
−  オーディオ・クリップの再生（「情報」がオーディオの場合）
−  グラフィックのアニメーション（「情報」がアニメーションによって達成される結果であり、表示メソッドによって操作されるデータが１組のイメージと各イメージ変化の間の時間などのアニメーション特性を含む場合）。
【００１９】
所定の範囲の各種ヘルプ・バブル・スタイル（明確な吹出しの外観、あまり明確ではない矩形の外観など）など、追加の表示スタイルもサポートすることができる。
【００２０】
第１レベルのヘルプを表示するための先行技術の解決策では、現在、１組の選択可能表示コンポーネントを使用して複数の異なる方法でＵＩエンティティ関連情報を表示するための汎用メカニズムを表示マネージャに提供していない。異なる表示コンポーネントを処理するための汎用メカニズムのこのようなフレキシビリティは、本発明によるヘルプ情報表示の重要な新規態様の１つである。
【００２１】
好ましい実施例による表示マネージャは、それぞれが情報表示のメソッドを実現する１つまたは複数の選択可能表示コンポーネントと、１つまたは複数のＵＩエンティティ定義コンポーネントとを含む。ＵＩエンティティ定義コンポーネントのインスタンスは、ＵＩエンティティ用のインタフェース領域定義と、コンピュータ・システムＵＩにより表示されるその領域に関連する情報とをカプセル化する。この情報は、イメージ、カラー、サウンド、ヘルプ・テキストなどにすることができる。１つまたは複数のＵＩエンティティ定義コンポーネントは、ＵＩの特定の領域へのポインティング・デバイスの移動や、一定の時間のその領域上でのポインタの停滞など、関連ユーザ対話の通知を受け取り、保持する情報を表示すべきかまたは除去すべきかを決定したときに表示コンポーネントに通知を出すように適合されている。
【００２２】
ＵＩエンティティに関するＵＩエンティティ定義コンポーネントが作成されると、表示マネージャは、関連マウス移動情報を表示マネージャに通知すること以外に関連ＵＩコンポーネントからの介入なしに、そのＵＩエンティティに関するヘルプ情報の表示を処理することができる。
【００２３】
各ＵＩエンティティ定義コンポーネントは１つまたは複数の表示コンポーネントに関連付けることができ、そのいずれかを選択して表示を処理することができる。選択済み表示コンポーネントは、情報を表示または除去するときに通知を受け取り、適切なアクションを行う。
【００２４】
本発明による表示コンポーネントの選択は、１組の可能な表示コンポーネントのいずれを使用すべきかというユーザ選択のサポートを含むことが好ましい。これにより、ユーザは、その優先ヘルプ表示スタイルを使用するためにユーザ・インタフェースをカスタマイズすることができ、そのヘルプ情報を表示するためにダウンロードしたＵＩコンポーネントがそれ専用のカスタム作成メソッドを使用した場合に発生する不整合という問題を回避することができる。
【００２５】
第３の態様による本発明は、複数のＵＩエンティティに関するコンピュータ・システム・ユーザ・インタフェースによるヘルプ情報表示の方法を提供し、この方法は、それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するための複数の選択可能表示コンポーネントを含む表示マネージャによって実現され、この方法は、ＵＩに追加されるＵＩエンティティに対する応答として、ヘルプ情報と前記ＵＩエンティティによって提供されるＵＩ領域定義とをカプセル化するＵＩエンティティ定義コンポーネントのインスタンスを作成するステップと、前記表示スタイルの１つに応じて前記ヘルプ情報を表示するために前記表示マネージャの表示コンポーネントを選択するステップと、ユーザ入力装置ポインタが移動して前記ＵＩ領域との事前定義接近関係になったときにユーザ対話に対する応答として前記ヘルプ情報を表示するために前記選択済み表示コンポーネントを始動するステップとを含む。
【００２６】
選択済み表示コンポーネントは以下のように始動されることが好ましい。事前定義ポインタ接近関係が達成されたときに、そのＵＩエンティティに関するＵＩエンティティ定義コンポーネントに第１の通知が送られる。次に、ＵＩエンティティ定義コンポーネントは、選択済み表示コンポーネントを始動するために通知を送る。
【００２７】
第４の態様では、本発明は、コンピュータ・システム・ユーザＵＩによる複数のＵＩエンティティに関するヘルプ情報の表示をサポートするためのプラットフォーム非依存表示マネージャ・フレームワークを提供し、この表示マネージャ・フレームワークは、複数のＵＩエンティティのそれぞれに関するＵＩ領域定義と関連のヘルプ情報をカプセル化するためのＵＩエンティティ定義クラスと、ヘルプ情報を表示するためにＵＩエンティティ定義クラスのインスタンスによって呼び出されるように適合された１つまたは複数の表示クラス内で実現するための１つまたは複数の汎用表示メソッドを提供する表示インタフェースとを含む。
【００２８】
ヘルプ情報を表示するための先行技術の解決策では、Ｊａｖａプログラミング言語で作成されたＵＩコンポーネントに代わるヘルプ情報の表示など、プラットフォーム非依存プログラミング環境向けに適合させたメカニズムを提供していない。
【００２９】
表示インタフェースの汎用表示メソッドは、表示インタフェースを実現する表示クラスを定義する際に多大なフレキシビリティが得られるように、非常に一般化されている。したがって、フレームワークを使用して、テキスト表示またはサウンド・クリップなどの異なるヘルプ情報表示スタイルを実現することができる。
【００３０】
本発明による表示マネージャ・フレームワークおよび方法は、コンピュータ可読記録媒体に格納されたコンピュータ可読プログラム・コードを含むコンピュータプログラム製品内で実現することができる。
【００３１】
【発明の実施の形態】
好ましい実施例による本発明は、そこで表示マネージャ・ソフトウェアが実行されるコンピュータ・システムの動作を制御するための表示マネージャ・ソフトウェアとして実現される。
【００３２】
図１は、本発明が実現可能な典型的なコンピュータ・システムの主要機能要素を示している。コンピュータ・システム１は、中央演算処理装置２と、メモリ３と、システムの一部として組み込まれているかまたは遠隔からアクセスすることができる記憶装置４と、キーボード８、マウス９、またはマイクロフォン１０からのユーザ入力を受け取るための入力手段７と、プロセッサ２から受け取ったデータを接続済み表示装置６に転送するためのディスプレイ・コントローラ５と、プロセッサから１つまたは複数のスピーカ１３にオーディオ信号を渡すためのオーディオ出力コントローラ１４とを含む。
【００３３】
システム・メモリ３は、オペレーティング・システム・ソフトウェア１１と、現在システム上で実行されているアプリケーション・プログラム１２と、本発明による表示マネージャ・ソフトウェア１５とを格納する。表示装置６上に表示されるＧＵＩは、ユーザが作業するためのインタフェース・コントロールを含む所与のウィンドウおよびアイコンの視覚表現をユーザに提示する。オーディオ情報は、スピーカ１３により再生することができる。
【００３４】
ディスプレイ・コントローラ５は、表示装置６にデータを渡すために使用するソフトウェアおよびハードウェア要素を含む。ＩＢＭのＯＳ／２オペレーティング・システムが実行されるコンピュータ・システムでは、オペレーティング・システムの１つの層がデータをディスプレイ・コントローラに渡す。しかし、本発明の好ましい実施例では、このような根元的なオペレーティング・システム表示機能へのマッピングは不要である。
【００３５】
好ましい実施例による表示マネージャのコンピュータ・プログラム・コードはＪａｖａプログラミング言語で作成されている。当技術分野で既知の通り、標準のＪａｖａクラス・ライブラリは、ディスプレイ・コントローラに表示データを渡すために使用する、java.awt.Componentクラス内の表示更新コンポーネントを含む。しかし、この既知の表示更新コンポーネントは、現在、ヘルプ情報を表示するための機能を含んでいない。したがって、Ｊａｖａ環境のＵＩコンポーネントは、通常、ヘルプ情報の表示をサポートせず、ヘルプ情報の表示をサポートしないＵＩコンポーネントは、このサポート自体を完全に実現しなければならない。
【００３６】
本発明の好ましい実施例は、ユーザ入力装置ポインタに対して敏感なユーザ・インタフェース領域の定義を、表示すべきヘルプ情報の詳細に容易に関連付け、１つまたは複数の適当な表示コンポーネントに関連付けることができるＪａｖａ環境向けの汎用表示マネージャ・フレームワークを提供し、適切な時点での第１レベルのヘルプ情報の表示は、ＵＩコンポーネントおよびそれに関連するインタフェース領域に代わって表示マネージャ・フレームワークおよび表示コンポーネントによって自動的に管理される。
【００３７】
本発明によるヘルプ情報表示は「モデル／ビュー分離」として当技術分野で既知の設計原理を応用し、感知可能インタフェース領域に関連するデータと表示すべき情報とを定義し管理する機能は情報の表示を果たす機能とは別に実現される。
【００３８】
ヘルプ情報の表示では、２つの主要表示管理コンポーネントを使用する。そのうちの第１のものは、表示マネージャ・フレームワークの一部を含む汎用ＵＩエンティティ定義コンポーネント２０である。このＵＩエンティティ定義コンポーネントの各インスタンスは特定のＵＩエンティティに固有のものであり、インタフェースの感知可能領域とその領域に関連する情報の詳細をカプセル化する。このＵＩエンティティ定義コンポーネントは、ポインティング・デバイスの動きなど、関連ユーザ対話の通知を受け取り、それが保持する情報を表示、変更、移動、または除去すべきであると決定したときに通知を出す。
【００３９】
このようなコンポーネントの第２のものは、汎用表示メソッドを定義する表示マネージャ・フレームワークのインタフェースを実現するように適合させた表示コンポーネント３０である。この表示コンポーネントは、汎用メソッドを使用する情報表示の特定のメソッドの詳細をカプセル化する。このような表示コンポーネントの１つまたは複数は、以下に説明するように、各ＵＩエンティティ定義コンポーネントに関連付けることができる。選択済み表示コンポーネントは、情報を表示、変更、移動、または除去すべきときに通知を受け取り、適切なアクションを行う。異なる表示コンポーネント・インプリメンテーションは、異なる方法で情報を表示するために異なるアクションを行うことができる。
【００４０】
それぞれの明確な感知可能インタフェース領域と個々の表示情報ごとに、ＵＩエンティティ定義コンポーネントのインスタンスが少なくとも１つずつ存在する。しかし、表示コンポーネントの単一インスタンスはＵＩエンティティ定義コンポーネントの多くのインスタンスを処理することができるので、必要なインスタンスは比較的少なくなる可能性がある。実際には、すべての情報が単一様式（ポップアップ・バブル内に表示されたテキストなど）で表示される場合、すべてのＵＩエンティティ定義コンポーネントについて単一インスタンスで十分であると思われる。
【００４１】
次に、１組のデータ・クラスと、ＵＩエンティティ定義コンポーネント２０を提供するクラスと表示コンポーネント３０によって実現される表示インタフェースとの間の定義済み対話とを含む、表示マネージャ・フレームワークの設計について詳細に説明する。
【００４２】
InfoTrigger
このクラス２０は、画面の感知可能領域とその領域に関連する情報の詳細をカプセル化するためにＵＩエンティティ定義コンポーネントを実現する。このようなデータは、java.awt.ComponentクラスのＵＩコンポーネント４０（このＵＩコンポーネントは、イベントのターゲットとして、ならびにディスプレイに情報を表示するための媒体として、Java Abstract Windowing Toolkitのjava.awt.Componentクラスを実現するボタン、イメージ・マップ、リスト・ボックスなどにすることができる）、そのＵＩコンポーネント上のインタフェース領域、表示すべき情報を含むテキスト・ストリング（またはその他の媒体）への参照として格納される。このフレームワークは、このようなプロパティを設定し照会するためのaccessorメソッドを提供する。
【００４３】
このクラスによって表示されるその他のプロパティとしては、情報表示をトリガするためにマウス・ポインタが停滞（定義済みインタフェース領域内に残留）しなければならないミリ秒単位の間隔と、情報グループ（グループＩＤ）と優先順位値を識別する２つの整数とを含む。このような値は、複数の定義済みインタフェース領域が重なっているときにどの情報が表示されるかを決定するために使用する。各グループ内で表示される情報は多くても１組であり、同じグループＩＤを共用するInfoTriggerの複数のインスタンスがトリガされる場合、最も高い優先順位値を備えたインスタンスの情報だけが表示される。
【００４４】
このクラスは、既知のjava.awt.event.MouseListenerおよびjava.awt.event.MouseMotionListenerインタフェースを実現し、すべての関連マウス対話の通知を受け取るためにそれ自体をＵＩコンポーネントに登録する。また、これは、InfoListenerインタフェース（以下を参照）を実現するクラスをリスナとしてそれに追加することもでき、次にそれらに適切な通知を出す。
【００４５】
InfoTriggerクラスは、トリガされたInfoTriggerインスタンス（以下の参照）の単一静的リストを管理する。このリストは最初は空である。所与の時点では、トリガされたリスト内の正確に１つのInfoTriggerインスタンスが、それに関するInfoTriggerインスタンスがトリガされたリスト内に存在するそれぞれの明確なグループＩＤごとにそのヘルプ情報を表示させるはずである。この所望の状態は、manageDisplay()というInfoTrigger上の静的メソッドによって実施されるが、このメソッドは明確なグループＩＤのリストを作成し、見つかったＩＤごとにmanageDisplayFor()という静的メソッドを呼び出す。メソッドmanageDisplayFor()は、パラメータとしてグループＩＤを取り、その特定のグループについてトリガされたInfoTriggerインスタンスのうちの正確に１つについてヘルプ情報が表示されることを保証する。メソッドmanageDisplayFor()は、トリガされたInfoTriggerインスタンスのリストを走査して、グループＩＤを有するインスタンスを識別し、その優先順位を比較し、優先順位が最も高いものを除くすべてのインスタンスについてkill()メソッド（以下を参照）を呼び出す。優先順位が最も高いものの場合、これはshow()メソッドを呼び出す。InfoTriggerインスタンスがトリガされるかまたはトリガされなくなると、そのインスタンスはこのトリガ済みリストに追加され、リストから除去される。InfoTriggerクラスは、正しい表示を維持するために適切な時期にこのような静的メソッドが呼び出されることを保証する。優先順位が低いインスタンスがリストに追加された場合、リストの走査は、現在表示されているインスタンスの表示を続行しなければならないことを確認するだけに過ぎない。
【００４６】
適切な挙動およびタイミングを実現するため、InfoTriggerクラスはバックグラウンド・タイマ・スレッドと単純状態モデルを使用し、状態遷移は関連マウス対話およびタイマの満了によってトリガされる。InfoTriggerインスタンスの内部状態は、以下の値の１つを取ることができる。
DEAD            情報は表示されない。
READYTOWAIT     できるだけ早くタイマを始動しなければならない。
WAITING         タイマが動作中である。
TRIGGERED       タイマが満了し、このInfoTriggerインスタンスが表示候補になっている。
SHOWING         このInfoTriggerインスタンスが表示中である。
【００４７】
状態変更を引き起こすメソッドは以下の通りである。
startTimer() -- このメソッドは、InfoTriggerインスタンス用の感知可能領域内でマウスの移動が発生するたびに呼び出され、そのタスクはタイマを始動（または再始動）することである。このInfoTriggerインスタンスと同じグループＩＤを備えたInfoTriggerインスタンスがトリガ済みリスト内にまったくない場合、これは、現行状態をREADYTOWAITに設定し、タイマ・スレッドに通知する。しかし、このようなInfoTriggerインスタンスがトリガ済みリスト内にある場合、直ちにtrigger()が呼び出される。
trigger() -- このメソッドは、タイマが満了したときに以下に示すタイマ・スレッドによって呼び出され、同じグループ内の他のInfoTriggerインスタンスがすでにトリガされている場合にstartTimer()によって呼び出すこともでき、そのタスクはこのInfoTriggerインスタンスを表示候補にすることである。これは、現行状態をTRIGGEREDに設定し、このInfoTriggerインスタンスをトリガ済みリストに追加し、manageDisplayFor()を呼び出してこのInfoTriggerインスタンスのグループＩＤをそれに渡す。
kill() -- このメソッドは、InfoTriggerインスタンス用の感知可能領域外でマウスの移動が発生するたび、ならびにマウスがＵＩコンポーネントのインタフェース領域外に完全に移動するたびに呼び出され、そのタスクは情報の表示を終了することである。これは、このInfoTriggerインスタンスをトリガ済みリストから除去し、hide()を呼び出す。
show() -- このメソッドは、状態をSHOWINGに設定し、このInfoTriggerインスタンスのすべての登録リスナ上でshowInfo()（以下を参照）を呼び出す。
hide() -- このメソッドは、優先順位がより高いInfoTriggerインスタンスが優先されたためにこれがSHOWINGから呼び出された場合に状態をTRIGGEREDに設定するか、またはメソッドkill()によって呼び出された場合に状態をDEADに設定する。次にこれは、このInfoTriggerのすべての登録リスナ上でhideInfo()（以下を参照）を呼び出し、manageDisplayFor()を呼び出してこのInfoTriggerのグループＩＤをそれに渡す。
【００４８】
他のメソッドとしては、InfoListenerを実現するクラスのインスタンスを追加し除去するためのメソッドと、プロパティ値を獲得し設定するためのaccessorメソッドを含む。
【００４９】
タイマ・スレッドは、イベントが発生するのを待ち、現行状態に応じてこのようなイベントに応答する。また、必要ではない場合にスレッドを終了することができ、再び必要になったときにスレッドを再始動するメカニズムも存在する。可能なそれぞれの状態ごとに行われるアクションは以下の通りである。
DEAD            タイマ・スレッドは不要である。不定待機に入る（または終了するように手配する）。
READYTOWAIT     タイマを始動すべきである。タイマが始動されると、状態はWAITINGに設定され、このInfoTrigger用に設定されたタイムアウトによって決定される時間間隔の間、待機に入る。
WAITING         この状態からタイマが満了すると、trigger()が呼び出され、タイマ・スレッドが不定待機に入る。
TRIGGERED       タイマは不要である。不定待機に入る。
SHOWING         タイマは不要である。不定待機に入る。
【００５０】
InfoListener
このインタフェースは、特定の変更が行われたときにInfoTriggerインスタンスによって呼び出されるメソッドを定義する。InfoListenerを実現するクラスのインスタンス３０は、InfoTrigger上のaddInfoListener()メソッドに参照を渡すことによってInfoTriggerインスタンスに登録することができ、removeInfoListener()メソッドに参照を渡すことによって登録解除することができる。
【００５１】
このインスタンスによって定義されるメソッドと、それが呼び出される状況をここに示す。各メソッドは、以下に記載するInfoEventのインスタンスをパラメータとして受け取る。
showInfo() -- このメソッドは、その情報を表示することをInfoTriggerインスタンスが決定したときに呼び出される。情報表示は直ちに行わなければならない。
hideInfo() -- このメソッドは、その情報をもはや表示しないことをInfoTriggerインスタンスが決定したときに呼び出される。情報表示は直ちに除去しなければならない。
changeInfo() -- このメソッドは、情報が表示されている間にInfoTriggerインスタンスについてテキスト・ストリングまたは他の媒体ディスクリプタの内容などの表示パラメータが変化した場合に呼び出される。ディスプレイに対する更新を行う必要がある可能性がある。
moveInfo() -- このメソッドは、情報が表示されている間にマウス・ポインタ位置が変化した場合に呼び出される。一部の表示スタイルでは、マウスによって情報表示を移動することを選ぶことができ、その場合、これは、これが行われることを保証する機会になる。
【００５２】
InfoEvent
InfoEvent５０のインスタンスは、InfoTriggerについて特定の変更が行われたときに上記の４つのメソッドに渡される。InfoEventクラスはjava.swt.evnet.Eventを拡張し、イベント・ソースはいつでもそれに関する変更が行われたInfoTriggerインスタンスになる。さらに、このクラスはgetMousePosition()メソッドをサポートし、このメソッドは変更がトリガされたときにマウス・ポインタ位置を返す。
【００５３】
InfoPopup
InfoPopupクラスは、InfoListenerインタフェースの１つの表示コンポーネント・インプリメンテーション例を表している。したがって、InfoPopupは、上記のInfoListenerインタフェースの一部であるshowInfo()、hideInfo()、changeInfo()、moveInfo()に関する抽象メソッド定義を実現する特定のメソッドを含む。
【００５４】
InfoPopup上のshowInfo()メソッドは、InfoPopupクラスに固有であり、現行入力装置ポインタ位置を取り、そのポインタ位置に関連するヘルプ・テキストを表示するウィンドウをオープンするメソッドを呼び出す。この表示クラス固有メソッドに関するプロパティは、InfoPopupによって実現されるヘルプ表示スタイルが薄い黄色の背景に単純な矩形ポップアップ・ウィンドウを表示し、都合の良い割合になるように黒のテキストがワードラップし、その回りに細い黒の境界が付くような、ウィンドウ・サイズと形状、テキスト・フォントとカラーを含む。これは、外観上は、当技術分野で既知のポップアップまたはホバー・ヘルプの多くの一般的なインプリメンテーションと同様である。
【００５５】
このInfoPopupクラスと、追加の事前定義表示クラスは、本発明の表示マネージャ・フレームワークとともにパッケージ化することができる。さらに、InfoPopupクラスは、InfoTriggerのインスタンスに容易に関連付けられるデフォルト表示コンポーネントになるように定義される。事前定義表示コンポーネントと、デフォルト表示コンポーネントにアクセスするための単純なメカニズムをこのように用意することにより、特定のカスタム表示スタイルが必要でない限り、カストマイズした表示コンポーネントを定義する必要なしに、本発明の表示マネージャ・フレームワークを使用することができる。
【００５６】
デフォルト表示コンポーネントは、パラメータとして真を指定してInfoTrigger呼出しenableDefaultDisplay()上でメソッドを呼び出すことによってInfoTriggerの各インスタンスについて使用可能にし、パラメータとして偽を指定してそのメソッドを呼び出すことによって使用禁止にすることができる。このデフォルト・スタイルは、問題のInfoTriggerインスタンスのリスナとして明示的に登録されるInfoListenerのインプリメンテーションのインスタンスに追加して、またこのようなインスタンスとは無関係に適用される。
【００５７】
次に、本発明によりヘルプ情報を表示するための一連の動作について説明する。
【００５８】
初期設定ステップは、ＵＩコンポーネントがユーザ・インタフェースに追加されたときにＵＩコンポーネントに代わって情報表示を処理するように表示マネージャを準備する。本発明の好ましい実施例では、ＵＩコンポーネントはそれぞれ、そのヘルプ・データとそれに関連するインタフェース領域定義を表示マネージャに供給することを担当し、ユーザまたはアプリケーション・アセンブラは特定の表示コンポーネントとの関連付けを定義する。また、各ＵＩコンポーネントは、ＵＩコンポーネントのリスナとしてこの表示コンポーネントを適用するコンテナ・オブジェクトへの参照も含む。
【００５９】
使用中に表示マネージャは、マウス・ポインタまたはその他のユーザ入力装置ポインタが所定の事前設定時間間隔の間、感知可能領域として定義されたインタフェースの領域内に残留するときに、情報を表示させる。各感知可能領域はグループＩＤを有する。マウス・ポインタが感知可能領域を出ると、インタフェースから情報が除去される。しかし、同じグループＩＤを共有する他の領域に入ることにより、マウス・ポインタがある感知可能領域を出る場合、新しい領域の情報が直ちに現れ、先行技術のヘルプ・システムでしばしば見られるような遅延は発生しない。
【００６０】
本発明の好ましい実施例では、アプリケーション・プログラマは、表示マネージャのどの表示コンポーネントを使用すべきかを決定し、その表示コンポーネントが使用するために適切な表示データを供給しなければならない。次に、必要な表示コンポーネントへの参照により、各ＵＩエンティティ定義コンポーネント・インスタンスが作成される。
【００６１】
本発明の代替実施例では、以下のように、ＵＩコンポーネントがインタフェースに追加されたときにビジュアル・ビルダ・ツールを使用する、表示コンポーネントのユーザ選択をサポートする。第１に、アプリケーション開発者は、複数の異なる表示コンポーネント用の適切な表示データを定義して使用しなければならない。ＵＩコンポーネントはその表示データを表示マネージャに供給し、次にビジュアル・ビルダ・ツールは選択可能表示コンポーネントのリストをユーザに提示する。このリストは、それに関して表示情報が定義された１組の表示コンポーネントを含むことが好ましいが、リストを生成する際に他のヒューリスティックを適用することができる（表示コンポーネント・タイプとＵＩエンティティ・タイプとの事前定義関連付けに応じた表示コンポーネントのリスト表示など）。
【００６２】
好ましい表示コンポーネントを選択して所望の表示スタイルを実現するためにアプリケーション・アセンブラまたはエンド・ユーザにこのような機構を提供すると、一貫したインタフェースの作成が可能になり、ユーザが本当に必要とする表示スタイルを実現するためのカストマイズが可能になる。
【００６３】
InfoTriggerクラスの説明で前述したように、感知可能領域が重なり、異なる優先順位を有するようにするためのメカニズムが含まれる。所与のグループＩＤを有する多くても１つの感知可能領域は一度にその情報を表示し、したがって、複数の情報表示が潜在的に混乱するのを回避する。その優先順位は、一連のウィンドウの以前の活動化の順序を識別するｚ値に基づくものではないが、事前設定優先順位値（ＵＩエンティティ・タイプに依存する可能性がある）に基づくものである。
【００６４】
上記の本発明の好ましい実施例では、ＵＩコンポーネントは表示マネージャ・フレームワークにそれ自体を登録するためのアクションを行う。他の代替実施例では、表示マネージャが登録プロセスを開始する。表示マネージャは、ＵＩコンポーネントがユーザ・インタフェースに追加されたときに呼び出され、新しいＵＩコンポーネント用の画面領域の予約や、イベント経路指定用の規則の変更などの操作を実行する。ＵＩコンポーネントが追加されたときに呼び出されると、表示マネージャは、それがその表示情報と関連のユーザ・インタフェース領域定義を定義するデータを返すための要求を新しいＵＩコンポーネントに出すように適合されている。本発明を使用するように適合されたＵＩコンポーネントは、表示情報項目（ヘルプ・テキスト、サウンド・クリップ、イメージのアニメーション・シーケンスなど）と、個々の表示情報に関連するインタフェース領域の定義のリストを表示マネージャに返すメソッドを実現する。次に表示マネージャは、各ＵＩコンポーネントごとに、このような情報項目と領域定義をカプセル化する汎用ＵＩエンティティ定義コンポーネントの新しいインスタンスを作成する。
【００６５】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６６】
（１）コンピュータ・システム・ユーザ・インタフェースによるＵＩエンティティに関するヘルプ情報の表示をサポートするための表示マネージャ・フレームワークであって、
前記ＵＩエンティティに関するインタフェース領域定義と関連のヘルプ情報をカプセル化するためのＵＩエンティティ定義コンポーネントと、
それぞれの表示スタイルに応じて複数の表示コンポーネントによって実現するための１つまたは複数の汎用ヘルプ情報表示メソッドを有するセットを提供する表示インタフェースとを含む、表示マネージャ・フレームワーク。
（２）複数の選択可能表示コンポーネントを含み、それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するために表示インタフェースを実現する、上記（１）に記載のフレームワークを実現する表示マネージャ。
（３）ＵＩエンティティの１つに関する情報を表示するために所望の表示スタイルに応じて前記表示コンポーネントの１つを選択する手段と、
前記ＵＩエンティティとのユーザ対話に対する応答として選択済み前記表示コンポーネントを始動する手段とを含む、上記（２）に記載の表示マネージャ。
（４）前記ＵＩエンティティ定義コンポーネントがオブジェクト・クラスを含み、そのインスタンスのそれぞれが前記ＵＩエンティティに関するインタフェース領域定義と関連のヘルプ情報とを含み、それぞれの定義済みインタフェース領域とのユーザ対話に対する応答として通知を受け取り、それに応答して、前記表示コンポーネントの選択済みの１つに通知を送り、それにより、前記選択済み表示コンポーネントを始動するように適合されている、上記（３）に記載の表示マネージャ。
（５）前記ＵＩエンティティ定義コンポーネントのインスタンスのそれぞれがグループＩＤと優先順位値とを有し、任意の一時点では同じグループＩＤを有する複数の通知済みＵＩエンティティ定義コンポーネント・インスタンスのうちの優先順位が最も高いインスタンスのみに関するヘルプ情報が表示されることを保証する手段を前記フレームワークが含む、上記（４）に記載の表示マネージャ。
（６）コンピュータ・システム・ユーザ・インタフェースによるＵＩエンティティに関するヘルプ情報の表示を処理するための表示マネージャにであって、
それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するための複数の表示コンポーネントと、
前記ＵＩエンティティの１つに関連する情報を表示するために前記表示コンポーネントの１つを選択する手段と、
前記ＵＩエンティティとのユーザ対話に対する応答として選択済み前記表示コンポーネントを始動する手段とを含む、表示マネージャ。
（７）前記ＵＩエンティティ用のインタフェース領域定義と、関連の表示情報とをカプセル化するための１つまたは複数のＵＩエンティティ定義コンポーネントを含み、前記ＵＩエンティティ定義コンポーネントが、ユーザ対話通知を受け取り、選択済み前記表示コンポーネントを始動するように通知を出すことにより前記通知に応答するように適合されている、上記（６）に記載の表示マネージャ。
（８）ＵＩエンティティに関するコンピュータ・システム・ユーザ・インタフェースによるヘルプ情報表示の方法であって、それぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示するための複数の選択可能表示コンポーネントを含む表示マネージャによって実現され、
前記ＵＩエンティティがインタフェースに追加されたことに対する応答として、表示情報と前記ＵＩエンティティによって提供されるインタフェース領域定義とをカプセル化するＵＩエンティティ定義クラスのインスタンスを作成するステップと、
前記表示スタイルの１つに応じて前記情報を表示するために前記表示マネージャの表示コンポーネントを選択するステップと、
ユーザ入力装置ポインタが移動して前記インタフェース領域との事前定義接近関係になったときに、ユーザ対話に対する応答として前記情報を表示するために選択済み前記表示コンポーネントを始動するステップとを含む方法。
（９）コンピュータ・システム・ユーザ・インタフェースによるＵＩエンティティに関するヘルプ情報の表示をサポートするためのプラットフォーム非依存表示マネージャ・フレームワークであって、
ＵＩエンティティに関するＵＩ領域定義と関連のヘルプ情報をカプセル化するためのＵＩエンティティ定義クラスと、
前記ヘルプ情報を表示するために前記ＵＩエンティティ定義クラスのインスタンスによって呼び出されるように適合された１つまたは複数の表示コンポーネント内で実現するための１つまたは複数の汎用表示メソッドを提供する表示インタフェースとを含む、表示マネージャ・フレームワーク。
（１０）複数の選択可能表示コンポーネントを含み、前記ＵＩエンティティ定義クラス・インスタンスによって呼び出されたときにそれぞれが複数の事前定義表示スタイルのそれぞれ異なる１つに応じてヘルプ情報を表示する、上記（９）に記載の表示マネージャ・フレームワーク。
【図面の簡単な説明】
【図１】本発明を実現可能なコンピュータ・システムの概略表現である。
【図２】本発明の一実施例による表示マネージャ・フレームワークのクラス構造を示す図である。
【符号の説明】
１  コンピュータ・システム
２  中央演算処理装置、プロセッサ
３  メモリ
４  記憶装置
５  ディスプレイ・コントローラ
６  表示装置
７  入力手段
８  キーボード
９  マウス
１０  マイクロフォン
１１  オペレーティング・システム・ソフトウェア
１２  アプリケーション・プログラム
１３  スピーカ
１４  オーディオ出力コントローラ
１５  表示マネージャ・ソフトウェア
【図１】
0003964988.tif 000002
【図２】
0003964988.tif 000003