(57)【要約】【課題】  表セル内の複数のオブジェクトをビジュアルコンポーネントへ関連付ける。【解決手段】  本発明に係る表示システムは、グラフィカルユーザインタフェース（ＧＵＩ）（１０）を使用してデータを表示し、ナビゲーションオブジェクトを使用してデータモデルをＧＵＩの少なくとも１つのビジュアルコンポーネント（５００、１４）に関連付け、複数の該ナビゲーションオブジェクトを表（２３４）のセルに格納するように構成されたコンピュータとメモリを備えるデータ表示システムであって、ナビゲーションオブジェクトへのポインタを使用して、ナビゲーションオブジェクトの１つに対するビジュアルコンポーネント（５００、１４）を表示するように構成されている。【選択図】図１２
2004158004.tif 000002
【特許請求の範囲】
【請求項１】
グラフィカルユーザインタフェース（ＧＵＩ）（１０）を使用してデータを表示し、ナビゲーションオブジェクトを使用してデータモデルを前記ＧＵＩの少なくとも１つのビジュアルコンポーネント（５００、１４）に関連付け、複数の該ナビゲーションオブジェクトを表（２３４）のセルに格納するように構成されたコンピュータとメモリを備えるデータ表示システムであって、
前記ナビゲーションオブジェクトへのポインタを使用して、前記ナビゲーションオブジェクトの１つに対する前記ビジュアルコンポーネント（５００、１４）を表示するようにさらに構成された表示システム。
【請求項２】
前記ナビゲーションオブジェクトを表す文字列リスト（２７８）を含むラベル（２７４）を作成するようにさらに構成された請求項１に記載のシステム。
【請求項３】
前記データモデルはデバイスのモデルを含み、前記ラベル（２７４）の作成は前記各ナビゲーションオブジェクトのデバイス名（２６２、２６８）を前記文字列リスト（２７８）内に含めることを含む請求項２に記載のシステム。
【請求項４】
前記ラベル（２７４）の作成は、前記ナビゲーションオブジェクトの１つに関連付けられたアイコン（２６０）を前記ラベルに含めることをさらに含む請求項２に記載のシステム。
【請求項５】
前記ビジュアルコンポーネント（５００、１４、２８２）は、ヒント（２８２）、ツリー（１４）、およびパネル（５００）の中の少なくとも１つを含む請求項１に記載のシステム。
【請求項６】
前記ビジュアルコンポーネント（５００、１４、２８２）は、マークアップ言語を使用して定義されたテキスト文字列を有するヒント（２８２）を含む請求項１に記載のシステム。
【請求項７】
ビジュアルコンポーネント（５００、１４、２８２）の表示は、ラベル（２７４）を使用してユーザにより選択されたビジュアルコンテキスト（３０８、２８２、４００）を表示することを含む請求項１に記載のシステム。
【請求項８】
ビジュアルコンテキストの表示は、メニュー（３０８）、ヒント（２８２）、およびダイアログボックス（４００）のグループの中の１つを表示することを含む請求項７に記載のシステム。
【請求項９】
コンピュータシステム上でデータの表示に使用するための、グラフィカルユーザインタフェース（ＧＵＩ）（１０）においてヒント（２８２）を表示するためのコンピュータにより読み取り可能な命令を有するコンピュータにより読み取り可能な媒体を備えるコンピュータプログラム製品であって、前記命令はマークアップ言語を使用してヒントの内容を定義するように構成されているコンピュータプログラム製品。
【請求項１０】
内容の定義は、マークアップ言語のタグをテキスト文字列（２７８）に埋め込むことを含む請求項９に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付けに関する。
【背景技術】
【０００２】
データネットワークとデータストレージシステムは、どちらも、さまざまな機能をさまざまなユーザに提供する。
そのようなシステムの複雑さが増すと、システム管理者が容易にシステムを保守し拡張できることの重要性も増大する。
システム開発者が必要とされるシステムの機能を迅速にそして容易に提供できることも重要である。
【０００３】
Ｊａｖａ  Ｃｏｒｅフレームワーク（Ｊａｖａコア）をユーザインタフェース（ＵＩ）フレームワークで使用することで、コンポーネントベースのアプリケーションアーキテクチャをシステム開発者が提供できるようにするコンポーネント関連機能用のインフラストラクチャを利用することができる。
動的コンポーネントローディングにより、機能の範囲を実行時に決定可能な拡張可能アプリケーションを実現することができる。
【０００４】
コンポーネントのブローカリングとルックアップにより、コンポーネントは互いのサービスを使用することができる。
コンポーネントの自動更新とダウンロードにより、クライアント／サーバ関係の自己更新だけでなく、ジャストインタイムのコンポーネント配信も可能になる。
Ｊａｖａコアにより、コンポーネントの集合であるアプリケーションの構築が可能になる。
Ｊａｖａコアにより、既存のコンポーネントを「混合し、組み合わせること」により構築して所望の機能を提供可能なカスタムアプリケーションの迅速な開発も可能になる。
【０００５】
Ｊａｖａコアコンポーネントは、Hewlett-Packard Companyによるｐｈｌｕｉｄにより拡張可能である。
Ｐｈｌｕｉｄ（「Platform for hierarchical data user interface development」）は、グラフィカルユーザインタフェースを持つＪａｖａアプリケーション構築用の統合フレームワークである。
ｐｈｌｕｉｄにより拡張されたＪａｖａコアコンポーネントは、ユーザアプリケーション用のグラフィカルユーザインタフェース（ＧＵＩ）の開発に特に有用である。
【０００６】
そのようなアプリケーションは、一般に、アイコン、ツリー、リストなどのＧＵＩビジュアルコンポーネントを使用してデータとメニューを表示して、ユーザがデータの表示と使用のためにさまざまな状況を切り替えることができるようにする。
そのような機能へのユーザによるアクセスを容易にするために、データモデル内のオブジェクトとユーザが選択可能なビジュアルコンポーネントとの間の関連を表すナビゲーションクラスを定義することができる。
そのようなクラスをインスタンス化してナビゲーションオブジェクトを作成することができる。
【０００７】
ナビゲーションオブジェクトは、ナビゲーションツリーおよび／またはパネル表内に表示可能なデバイスアイコンと名前を持つラベルとしてアプリケーション内で表示することができる。
ナビゲーションオブジェクトは、表セル内に格納して、たとえば関連するデータを並べ替えたりその概要を作成することが可能である。
【０００８】
ナビゲーションオブジェクトがパネル表内にラベルとして表示される場合、ユーザは、オブジェクトラベルをマウスで右クリックして状況依存アクションを実行することができる。
ナビゲーションツリー内にオブジェクトラベルが表示される場合は、ユーザはオブジェクトラベルをマウスでダブルクリックして、選択されたオブジェクトにナビゲーションツリーを切り替え、そのオブジェクトに関連付けられた１つまたは複数のパネルを表示することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
状況によっては、２つ以上のナビゲーションオブジェクトが表セルに格納されることもある。
たとえば、ストレージエリアネットワーク管理に使用されるＧＵＩでは、同様なストレージデバイスに関連付けられたナビゲーションオブジェクトのグループを、グループ化されたデバイスに関連付けられたセルに格納することができる。
そのような場合、デバイス名の文字列リストを使用して、セルに格納されたナビゲーションオブジェクトを表すことができる。
【００１０】
文字列リストが表示されると、ユーザはそれを読んでセルに含まれるデバイスを判定することができる。
しかし、その場合、文字列リストが２つ以上のナビゲーションオブジェクトを表している。
そのため、ユーザは、表セルを介すことで各ナビゲーションオブジェクトに直接アクセスすることにより状況依存アクションを表示すること、かつ／または状況依存アクションを行うことができない。
【課題を解決するための手段】
【００１１】
一実施形態における本発明は、表セル内の複数のナビゲーションオブジェクトの中の１つに対して、ユーザがビジュアルコンポーネントを選択できるようにするコンピュータにより実施される方法を対象とする。
本方法は、ナビゲーションオブジェクトへのラベルとポインタを使用してユーザがナビゲーションオブジェクトの中の１つを選択できるようにする。
【００１２】
本発明を適用可能なその他の領域は、以降に記載する詳細な説明から明らかになるであろう。
詳細な説明と具体的な例は、単に説明を目的としたものであり、本発明の範囲を制限することを意図したものではないことを理解されたい。
【００１３】
本発明は、詳細な説明と以下の添付の図面により完全に理解されるであろう。
【発明の効果】
【００１４】
本発明によれば、表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付けが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下の説明は、実質的に例示に過ぎず、いかなる点においても、本発明、本発明の適用対象または用途を限定することを意図するものでは全くない。
本発明では、Ｊａｖａコアコンポーネント上のｐｈｌｕｉｄ層を参照して説明している実施形態もあるが、本発明はそれに限定されてはいない。
Ｊａｖａおよび／または他のオブジェクト指向プログラミング言語とシステムを使用かつ／または拡張することで、本実施形態に関連して説明する機能を提供する実施形態について説明する。
【００１６】
さらに、本発明は、ストレージエリアネットワーク（ＳＡＮ）用のストレージ管理アプリケーションと関連して以下で説明しているが、そうすることで、そのようなアプリケーションの機能が、本発明の実施形態を説明する状況を提供している。
しかしながら、当業者には、本発明はＳＡＮと併せての使用に限定されないことは明らかであろう。
【００１７】
また、実施形態は、本明細書中ではユーザインタフェースフレームワークに関連して説明されているが、本発明はそのように限定されないことにも注意すべきである。
当業者には、本発明の実施形態は、ＧＵＩが使用される他のシステムおよび／またはネットワークと関連して実施可能なことは明らかであろう。
【００１８】
図１を参照すると、ユーザインタフェース（ＵＩ）フレームワークは、ブラウザスタイルのグラフィカルユーザインタフェース（ＧＵＩ）１０を持つＪａｖａアプリケーションを構築するためのプラットフォームを提供する。
ＵＩフレームワークにより、独立したソフトウェアコンポーネントを統合して単一のＧＵＩベースのアプリケーションとすることができる。
【００１９】
ブラウザスタイルＧＵＩ  １０は、メインウィンドウ１６内のナビゲーションツリー１４内のオブジェクトの階層を含む。
ツリーリスト１４の代替版では、タブ１８を使用した選択することもできる。
現在選択されているツリーオブジェクトに関してデータを表示するビューパネル２０は、メインウィンドウ１６内のツリー１４の横に提示される。
【００２０】
ビューパネル２０は、タブ２２を使用して調整することもできる。
さらに、ブラウザスタイルのナビゲーションが、進む／戻るボタン２４により提供されている。
状況依存ボタン２６と状況非依存ボタン２８も提供されている。
ログパネル３０は、たとえばイベントを表示するために「ログ」形式の表示を行う。
タブ３２により、ログパネル３０に表示される情報を調整することができる。
【００２１】
ＵＩフレームワークは、特定の製品機能を独立したコンポーネントへカプセル化することを促進する拡張可能なソフトウェアプラットフォームを提供する。
したがって、同一のアプリケーションを様々にインストールすることによって機能を変えることができる。
ＵＩフレームワークの機構には、共通のナビゲーションモデル、関連するツールへの１箇所からのアクセス、状況に固有の起動ポイントが含まれる。
【００２２】
ＵＩフレームワークは、多くのアプリケーションの実施の態様に共通のサービスを提供する。
これらのサービスには、メインアプリケーションフレーム、ナビゲーション、ツールバー、メニュー、ログと警告の出力、オプションと環境設定が含まれる。
【００２３】
ＵＩフレームワークは、Ｊａｖａ  Ｓｗｉｎｇコンポーネント上に構築されたツールの集合を提供することでＧＵＩ  １０をサポートするＪａｖａクラスライブラリである。
ＵＩフレームワークは複数のアプリケーションの機能を１つのクライアントアプリケーションに統合する。
【００２４】
設計にあたっては、ビジュアルエレメントを適度に緊密に統合することが好ましいが必須ではない（たとえば、さまざまな製品の項目を同一のメニュー、ツリービュー等に追加可能）。
ＵＩフレームワークは、Ｊａｖａ  Ｃｏｒｅフレームワーク（Ｊａｖａコア）により提供される機能上に構築される。
Ｊａｖａコアは、分散アプリケーションに「プラグイン」されるアプリケーション機能の開発用の標準フレームワークを提供するＪａｖａクラスライブラリである。
【００２５】
Ｊａｖａコアコンポーネントは、従来のＪａｖａアプリケーションに似ていて、ＧＵＩを作成可能で、コンソール入力と出力を行う。
しかし、Ｊａｖａコアコンポーネントは、ｍａｉｎ（メイン）（）メソッドを実施しない。
【００２６】
代わりに、Ｊａｖａコアコンポーネントは、Ｊａｖａコア基本コンポーネントクラスを拡張するクラスを実施する。
このクラスでは、Ｊａｖａコアコンポーネントは、ｉｎｉｔｉａｌｉｚｅ（初期化）（）という名前のメソッドをオーバーライドする。
このメソッドは、アプリケーションのｍａｉｎ（）と同等である。
このメソッドでは、コンポーネントは、コンポーネントのジョブを行うのに必要な場合は、追加オブジェクトを作成するかスレッドを開始することができる。
【００２７】
エントリをコンポーネントデータベース（ＤＢ）ファイルに作成することで、コンポーネントが動的にロードされる。
エントリの作成は、正しい情報と名前付け規則を持つファイルを適切なディレクトリに「投入する」ことにより達成することができる。
【００２８】
すると、Ｃｏｍｐｏｎｅｎｔ  Ｍａｎａｇｅｒ（コンポーネントマネージャ）オブジェクトがコンポーネントに初期化メソッド内で渡される。
コンポーネントは、他のピアコンポーネントやリモートサーバコンポーネントへの参照を取得するのにこのオブジェクトを使用することができる。
コンポーネントには、コマンドラインの引数がアプリケーションの動作を構成するのに使用されるように、コンポーネントの動作を構成するのに使用可能なプロパティツリーも渡される。
【００２９】
図２を参照すると、ＵＩフレームワークのアーキテクチャは、たとえばＪａｖａコアクライアントフレームワーク５０を含むストレージ管理クライアントアプリケーション４８を含む。
クライアントフレームワーク５０は、ＵＩコンポーネント用のデータモデルを提供するストレージ管理サーバ（非図示）に接続される。
【００３０】
フレームワークには、ＢａｓｅＵＩ（基本ＵＩ）コンポーネント５２といくつかの追加クライアントＵＩコンポーネント５４が含まれる。
ＵＩフレームワークのＢａｓｅＵＩコンポーネント５２は、図１の基本アプリケーションウィンドウ１６と共通ＵＩサービスの集合を提供するＪａｖａコアコンポーネントである。
ＵＩサービスは、ナビゲーション、一般構成、ツールバー、メニューバー、ヘルプ、図１に示したようなその他のＧＵＩ機能を含む。
【００３１】
ＢａｓｅＵＩコンポーネント５２は、ストレージ管理に固有の機能を提供する必要はなく、たとえば空のシェルとすることもできる。
クライアントフレームワークの一部である他のＪａｖａコアコンポーネント５４は、ＢａｓｅＵＩコンポーネント５２にプラグインされ、特定の製品機能とビジュアルコンテンツを提供することができる。
【００３２】
複数の製品が、ビューパネル２０、ログパネル３０などの基本アプリケーションパネルを共有することができるが、その代わりに特定の製品のウィンドウを有する別のツールを起動することもできる。
ストレージノード管理（ＳＮＭ）コンポーネント５４により提供されるＵＩ機能は、ＢａｓｅＵＩコンポーネントに統合されるＪａｖａコアコンポーネントの集合により実施可能である。
一実施形態では、ＳＮＭ機能は、トポロジマップ、イベント表示、デバイス管理の起動を含む。
【００３３】
ＢａｓｅＵＩコンポーネント５２は、ナビゲーションツリーとビューパネル内に提示されたオブジェクトの基本ナビゲーションを行う。
ＢａｓｅＵＩコンポーネント５２は、コンポーネントがポップアップメニュー項目をツリーオブジェクトとビューパネルオブジェクトに統合できるようにする。
【００３４】
ＢａｓｅＵＩコンポーネント５２は、ボタンをツールバーに追加し、メニューをメニューバーに追加できるようにもする。
また、ＢａｓｅＵＩコンポーネント５２は、コンポーネントが項目をログパネル領域とステータスバー領域（非図示）に表示できるようにする。
【００３５】
ＢａｓｅＵＩコンポーネント５２が提供する１つのサービスとして、ユーザに選択された項目のナビゲーションがある。
メインアプリケーションフレームのナビゲーションツリー、ナビゲーションコントロール、およびビューパネル領域は、ナビゲーションを処理するビジュアルコンポーネントである。
ＢａｓｅＵＩコンポーネント５２は、１つまたは複数の階層ナビゲーションオブジェクトを保持する。
【００３６】
具体例としては、データモデル内のオブジェクトとユーザが選択可能なビジュアルコンポーネントとの関連を表現するクラスＮａｖＯｂｊｅｃｔ（ナビゲーションオブジェクト）が定義されている。
ナビゲーションオブジェクト（ＮａｖＯｂｊｅｃｔ）は、クラスＮａｖＯｂｊｅｃｔのインスタンスである。
ナビゲーションツリービジュアルコンポーネントのノードは、ＮａｖＯｂｊｅｃｔを表している。
一実施形態では、ＢａｓｅＵＩコンポーネント５２は、どのようなＮａｖＯｂｊｅｃｔオブジェクトも直接作成することはなく、アプリケーション内のすべてのＮａｖＯｂｊｅｃｔは、他のＪａｖａコアクライアントコンポーネント５４によりＢａｓｅＵＩコンポーネント５２に渡される。
【００３７】
ＮａｖＯｂｊｅｃｔの下位のモデルは、任意のオブジェクトとすることができる。
たとえば、下位のモデルは、ホストやストレージデバイスなどのストレージ管理データモデル内のオブジェクトとすることができる。
ＮａｖＯｂｊｅｃｔのモデルは、他のＮａｖＯｂｊｅｃｔ項目のリストとすることが可能で、たとえば、ストレージドメイン内のすべてのホストの集合を表すリストとすることができ、それによりツリー内に複数のホストを表すノード（a hosts node）があるようにすることができる。
アプリケーションフレームのビューパネル領域には、現在選択されているＮａｖＯｂｊｅｃｔに対応したビジュアルコンポーネントが含まれる。
ＮａｖＯｂｊｅｃｔの実施は、１つまたは複数のパネルを提供するファクトリメソッドを有する。
パネルが１つだけの場合、パネルはビューパネル領域に直接表示される。
【００３８】
パネルが１つ以上ある場合、それらのパネルはタブ付きのパネルとして表示される。
さらに、他のコンポーネントがパネルをＶｉｅｗＰａｎｅｌＣｏｎｔｉｒｂｕｔｏｒ（ビューパネルコントリビュータ）として登録することで、パネルをＮａｖＯｂｊｅｃｔ表示に追加することができる。
図１に示すように、ＮａｖＯｂｊｅｃｔオブジェクトは、階層構造に編成して、ナビゲーションツリー１４に表示することができる。
各々が独立した状況を表す複数のＮａｖＯｂｊｅｃｔツリーがアプリケーションに存在することもある。
【００３９】
状況は、同様のＮａｖＯｂｊｅｃｔの階層の観点を区別するのに使用することができる。
たとえば、ストレージエリアネットワークコンポーネントをトポロジの状況で提示することが可能で、その場合、ツリー１４の各ノードは、トポロジ内のコンポーネントを表す。
【００４０】
別の状況では、同一のデバイスが「在庫」階層で提示され、その場合、フォルダはホスト、スイッチ等の同様オブジェクトのグループを表す。
状況は、ユーザがナビゲーションツリーパネル１４内のナビゲーション状況タブ１８を使用して選択可能である。
以下で更に説明するように、ＮａｖＯｂｊｅｃｔが選択されると、ＢａｓｅＵＩコンポーネント５２は、オブジェクトのビューパネルを作成する。
ＢａｓｅＵＩコンポーネント５２は、オブジェクトに対して定義された基本ビューパネルを返すＮａｖＯｂｊｅｃｔ内のメソッドを呼び出してビューパネルを作成することができる。
ＢａｓｅＵＩコンポーネント５２は、選択されたＮａｖＯｂｊｅｃｔのインスタンスに対するＶｉｅｗＰａｎｅｌＣｏｎｔｒｉｂｕｔｏｒとして登録されている全てのＵＩコンポーネント内のメソッドを呼び出してビューパネルを作成することもできる。
【００４１】
ＮａｖＯｂｊｅｃｔの実施は、基本タブの集合を提供する。
たとえば、一般ストレージデバイスのＮａｖＯｂｊｅｃｔは、使用率のグラフを示すパネルと論理ユニット番号（ＬＵＮ）のリストを示す別のパネルを提供する。
ＵＩコンポーネントは、ＶｉｅｗＰａｎｅｌＣｏｎｔｒｉｂｕｔｏｒとして登録することでタブを特定のＮａｖＯｂｊｅｃｔに追加し、追加のタブを使用可能にする。
たとえば、パフォーマンス監視コンポーネントを登録することで、追加のタブをそのパフォーマンス情報を有するストレージデバイスに提供することができる。
【００４２】
一実施形態のビューパネル２０は、Ｊａｖａ  ＪＰａｎｅｌ（Ｊパネル）オブジェクトにより表される。
ビューパネルのコンテンツ間を通したハイパーリンクスタイルのナビゲーションに対応するために、ＢａｓｅＵＩコンポーネント５２は、ビジュアルオブジェクトまたはコンポーネントの集合を提供することでＮａｖＯｂｊｅｃｔを表す。
これらのオブジェクトまたはコンポーネントは、ナビゲーションのために選択され、「右クリック」されると、ＮａｖＯｂｊｅｃｔについての状況依存メニューまたは「ポップアップ」メニューを表示する。
ＮａｖＯｂｊｅｃｔを表すのに使用可能なコンポーネントの例は、ＮａｖＯｂｊｅｃｔＬａｂｅｌ（ナビゲーションオブジェクトラベル）クラスである。
このクラスは、ＮａｖＯｂｊｅｃｔの名前とアイコンを表示するラベルに関連付けられている。
【００４３】
そのようなラベルがクリックされると、ＮａｖＯｂｊｅｃｔＬａｂｅｌクラスはメッセージをＢａｓｅＵＩコンポーネント５２に送り、ラベルに関連付けられているＮａｖＯｂｊｅｃｔを選択する。
【００４４】
ビューパネル２０を実施する開発者は、ＮａｖＯｂｊｅｃｔＬａｂｅｌラベルを使用してパネルの内容をＮａｖＯｂｊｅｃｔにリンクする。
ＢａｓｅＵＩコンポーネント５２は、特定のナビゲーション機能を扱う。
ＮａｖＯｂｊｅｃｔＬａｂｅｌクラス以外に、以下でさらに説明するように、表とリストのコンポーネントもナビゲーション機能を提供する。
ＮａｖＯｂｊｅｃｔは、状況依存ポップアップメニューを有する。
【００４５】
省略時のメニュー項目には、「表示」、「新規ウィンドウに表示」などの基本ナビゲーション操作が含まれる。
さらに、ＵＩコンポーネントをＮａｖＯｂｊｅｃｔに対するＰoｐｕｐＣｏｎｔｒｉｂｕｔｏｒ（ポップアップコントリビュータ）として登録することでカスタムメニュー項目を追加することができる。
たとえば、ＮａｖＯｂｊｅｃｔ用のアイコンがマウスの右ボタンで選択されると、ＢａｓｅＵＩコンポーネント５２は、省略時項目と登録されたＰｏｐｕｐＣｏｎｔｒｉｂｕｔｏｒオブジェクトが提供するすべての項目を含むポップアップメニューを作成する。
【００４６】
ログパネル３０は、ＵＩコンポーネントをメインウィンドウ上に配置可能なカスタム表示用である。
表示例としては、イベントリストや出力ログがある。
ログパネル３０にデータを送るために、ＵＩコンポーネントはＢａｓｅＵＩコンポーネント５２内のメソッドを呼び差し、ＳｗｉｎｇＪｐａｎｅｌ（Ｓｗｉｎｇ  Ｊパネル）をパラメータとして渡す。
ＵＩコンポーネントは、パネル３０内のオブジェクト上のすべてのイベントを処理する役割を有する。
複数のコンポーネントがログパネルをＢａｓｅＵＩコンポーネント５２に登録している場合、タブ付きペイン３２を使用してユーザは所望のログパネルを選択することができる。
【００４７】
ＵＩフレームワークは、カスタマイズと環境設定のための機能を提供する。
これらの機能には、グローバル構成データベースと、コンポーネントの開発者が環境設定パラメータにアクセスできるようにするアプリケーションプログラミングインタフェース（ＡＰＩ）が含まれる。
【００４８】
一実施形態では、３つの独立したＪａｖａ  ｃｏｒｅクライアントコンポーネントは、トポロジマップ５４−１、デバイス管理の起動５４−２、およびイベント表示５４−３の機能を提供することにより、ストレージノード管理機能をクライアントアプリケーションに統合する。
トポロジマップコンポーネント５４−１は、ストレージドメイン内の相互接続された要素のマップを表す。
【００４９】
トポロジマップコンポーネント５４−１は、ストレージノード管理アプリケーション内の１つまたは複数のナビゲーションツリーに対応するＮａｖＯｂｊｅｃｔオブジェクトの階層を作成する。
これらのオブジェクトは、ＢａｓｅＵＩコンポーネント５２の「トポロジ」の状況に追加される。
【００５０】
各オブジェクトのビューパネルは、対応するマップを表すＳｗｉｎｇコンポーネントである。
トポロジマップパネル内のアイコンは、ナビゲーションイベントと選択イベントを発生させ、ユーザアクティビティをＢａｓｅＵＩコンポーネント５２に通知するＳｗｉｎｇコンポーネントである。
ＢａｓｅＵＩコンポーネント５２は、そのナビゲーション機能によりポップアップによる選択とドリルダウンによる選択を処理する。
【００５１】
図３を参照すると、ＵＩフレームワーク５６は、複数のＪａｖａパッケージにより実施される。
各パッケージは、１つまたは複数のインタフェースと１つまたは複数のクラスを含む。
パッケージは、統合つまりｐｈｌｕｉｄパッケージ５８、ＢａｓｅＵＩつまりｐｈｌｕｉｄ．ｂａｓｅ（ｐｈｌｕｉｄ．基本）パッケージ６０、構成つまりｐｈｌｕｉｄ．ｃｏｎｆｉｇ（ｐｈｌｕｉｄ．構成）パッケージ６２、ビジュアルエレメントつまりｐｈｌｕｉｄ．ｗｉｄｇｅｔ（ｐｈｌｕｉｄ．ウィジェット）パッケージ６４、表つまりｐｈｌｕｉｄ．ｗｉｄｇｅｔ．ｔａｂｌｅ（ｐｈｌｕｉｄ．ウィジェット．表）パッケージ６６を含む。
【００５２】
パッケージ５８〜６６は、クラス６８−１、６８−２、．．．、６８−ｎおよび／またはインタフェース７０−１、７０−２、．．．、および７０−ｎを含む。
当然、使用可能なパッケージを増減することができる。
パッケージ５８、６０、６２、６４、６６は、Ｊａｖａコアコンポーネント上の層として機能し、Ｊａｖａコアコンポーネントを拡張する。
【００５３】
ｐｈｌｕｉｄパッケージ
ｐｈｌｕｉｄパッケージ５８は、統合に使用されるコアクラスを定義するＵＩフレームワークパッケージである。
ｐｈｌｕｉｄパッケージ５８内のクラス７０−１は、可視のＵＩ要素ではなく、標準オブジェクトの定義と、ＵＩフレームワークの下層のデータ構造へのアクセスに使用されるインタフェースの定義に使用される。
【００５４】
ｐｈｌｕｉｄパッケージ−インタフェース
ｐｈｌｕｉｄパッケージ５８は、以下のインタフェース６８−１を含む。
ＡｐｐＣｏｎｔｒｏｌｌｅｒ（アプリケーションコントローラ）は、メインアプリケーションの動作を制御するクラス用のインタフェースである。
【００５５】
ＢａｓｅＵＩは、アプリケーションプラットフォームを実施するアプリケーション用のインタフェースである。
アプリケーションコンポーネントは、このインタフェースを使用してそれらのＧＵＩコンポーネントをメインアプリケーションに統合する。
Ｃｏｎｆｉｇ（構成）は、一般構成情報へのアクセスのためのインタフェースである。
【００５６】
構成パラメータは、階層構造に編成された属性である。
各子レベルは、サブ構成と呼ばれる。
レベルは、名前を表す文字列内ではドットで区切られている。
【００５７】
ＭｅｎｕＢａｒＣｏｎｔｒｉｂｕｔｏｒ（メニューバーコントリビュータ）は、アプリケーションウィンドウのメニューバーにメニューとメニュー項目を提供するオブジェクトのためのインタフェースである。
ＭｅｎｕＣｏｎｔａｉｎｅｒ（メニューコンテナ）は、メニューの「コンテナ」を定義するインタフェースである。
【００５８】
なお、これは、可視のコンポーネントではなく、ｊａｖａ．ａｗｔ．Ｃｏｎｔａｉｎｅｒクラスやｊａｖａ．ａｗｔ．ＭｅｎｕＣｏｎｔａｉｎｅｒクラスには関係していない。
メニューコンテナは、Ｆｉｌｅ（ファイル）メニュー、Ｅｄｉｔ（編集）メニュー、Ｖｉｅｗ（表示）メニュー、Ｔｏｏｌ（ツール）メニュー、およびＨｅｌｐ（ヘルプ）メニューを含んでいる。
【００５９】
ＮａｖＣｏｎｔａｉｎｅｒ（ナビゲーションコンテナ）は、ナビゲーションの状況の集合（ＮａｖＯｂｊｅｃｔの階層）を含む「コンテナ」を定義するインタフェースである。
なお、これは、可視のコンポーネントではなく、ｊａｖａ．ａｗｔ．Ｃｏｎｔａｉｎｅｒクラスには関係していない。
【００６０】
ＮａｖＯｂｊｅｃｔＦｉｌｔｅｒ（ナビゲーションオブジェクトフィルタ）は、ＮａｖＯｂｊｅｃｔのさまざまな型に区別されるクラスのためのインタフェースである。
ＮａｖＯｂｊｅｃｔＳｅｌｅｃｔｉｏｎＬｉｓｔｅｎｅｒ（ナビゲーションオブジェクト選択リスナ）は、ユーザが表示するためにＮａｖＯｂｊｅｃｔを選択したという通知を受け取ることに関連したクラスのインタフェースである。
【００６１】
ＮａｖＳｅｌｅｃｔｏｒ（ナビゲーションセレクタ）は、ナビゲーション用のＮａｖＯｂｊｅｃｔの選択を制御するクラスのインタフェースである。
ＮａｖＴｒｅｅＥｖｅｎｔＬｉｓｔｅｎｅｒ（ナビゲーションツリーイベントリスナ）は、ツリーのノードの展開／折りたたみなどのＮａｖＴｒｅｅ（ナビゲーションツリー）イベントとキーボードイベントを検知することに関連したオブジェクトのインタフェースである。
【００６２】
ＰｏｐｕｐＣｏｎｔｒｉｂｕｔｏｒ（ポップアップコントリビュータ）は、ＮａｖＯｂｊｅｃｔ用に項目をポップアップメニューに追加するオブジェクト用のインタフェースである。
ＶｉｅｗＰａｎｅｌＣｏｎｔｒｉｂｕｔｏｒ（ビューパネルコントリビュータ）は、タブをＮａｖＯｂｊｅｃｔビューパネルに追加するオブジェクト用のインタフェースである。
【００６３】
ｐｈｌｕｉｄパッケージ−クラス
ｐｈｌｕｉｄパッケージ５８は、以下のクラス７０−１を含む。
ＣａｃｈｅｄＶｉｅｗＰａｎｅｌＴａｂ（キャッシュされたビューパネルタブ）は、そのビューパネルのインスタンスを作成時にキャッシュして、あるＮａｖＯｂｊｅｃｔから別のＮａｖＯｂｊｅｃｔに切り替えるときに時間を節約する機能を提供する抽象化されたビューパネルの派生物である。
【００６４】
ＥｖｅｎｔＭａｐ（イベントマップ）は、コンポーネントブートストラップシーケンス用のフレームワークにより使用されるイベントを定義する。
ＳｔａｎｄａｒｄＵＩＣｏｍｐｏｎｅｎｔ（標準ＵＩコンポーネント）クラスを拡張するコンポーネントは、ＥｖｅｎｔＭａｐを直接使用する必要はない。
【００６５】
ＮａｖＣｏｎｔｅｘｔ（ナビゲーション状況）は、ＮａｖＯｂｊｅｃｔのグループの状況を定義するクラスである。
状況は、階層状態であり、複数のルートを含むことができる。
ＮａｖＯｂｊｅｃｔは、第１または第２にフラグを設定することができる状況である。
第２オブジェクトは、階層中に存在するが、このクラスが実施するＴｒｅｅＭｏｄｅｌ（ツリーモデル）インタフェースメソッドの対象とは見なされない。
したがって、第２オブジェクトは、ＪＴｒｅｅ（Ｊツリー）中には現れない。
【００６６】
前述のように、ＮａｖＯｂｊｅｃｔは、ユーザアクションによりナビゲートされ得るオブジェクトのクラスである。
ただし、ＮａｖＯｂｊｅｃｔは可視コンポーネントではない。
このクラスは、データモデルとその可視ＵＩコンポーネントとの間の関連付けを作成する。
【００６７】
このクラスはＣｏｍｐａｒａｂｌｅ（比較可能）を実施するため、ＮａｖＯｂｊｅｃｔの表現を表などに容易に並べ替えることができる。
ＮａｖＯｂｊｅｃｔＳｅｌｅｃｔｉｏｎＥｖｅｎｔ（ＮａｖＯｂｊｅｃｔ選択イベント）は、ＮａｖＯｂｊｅｃｔが選択されたことを示すイベントである。
【００６８】
ＮａｖＯｂｊｅｃｔＴｒｅｅＮｏｄｅ（ＮａｖＯｂｊｅｃｔツリーノード）は、ＮａｖＣｏｎｔｅｘｔのツリー階層内の親−子のリンクを保持する。
リソースは、ＵＩリソースの管理に使用される。
このクラスは、標準のＪａｖａ  ＲｅｓｏｕｒｃｅＢｕｎｄｌｅ（リソースバンドル）とほぼ同一であるが、リソースバンドル中でイメージの位置を指定可能な追加のメソッドを提供することが異なる。
【００６９】
ＳｔａｎｄａｒｄＵＩＣｏｍｐｏｎｅｎｔは、ＵＩ要素を有するＪａｖａコアクライアントコンポーネント用の基本クラスである。
このクラスは、開発者の便宜のために提供されている。
このクラスは、ＵＩコンポーネントブートストラップシーケンスの詳細を処理する。
【００７０】
アプリケーションクライアントコンポーネントは、このクラスを拡張することができる。
ＴｏｏｌＧｒｏｕｐ（ツールグループ）は、ツールバー形式で、ＪＣｏｍｐｏｎｅｎｔ（Ｊコンポーネント）のグループを表示するパネルである。
【００７１】
このクラスには、「ツールバー」の代わりに「グループ」という名前が付けられるため、Ｊａｖａ  ＳｗｉｎｇのＪｔｏｏｌＢａｒと混同することはない。
ＶｉｅｗＰａｎｅｌＴａｂ（ビューパネルタブ）は、ＮａｖＯｂｊｅｃｔ用にビューパネルに表示されるタブを定義するクラスである。
【００７２】
パッケージ  ｐｈｌｕｉｄ．ｂａｓｅ
ｐｈｌｕｉｄ．ｂａｓｅパッケージ６０は、ＢａｓｅＵＩインタフェースおよびサポートするクラスの実施を行う。
【００７３】
パッケージｐｈｌｕｉｄ．ｂａｓｅ−インタフェース
ｐｈｌｕｉｄ．ｂａｓｅパッケージ６０は、以下のインタフェース６８−２を含む。
ＣｏｎｎｅｃｔｉｏｎＳｔａｔｕｓＬｉｓｔｅｎｅｒ（接続ステータスリスナ）は、クライアントアプリケーションとサーバアプリケーションとの間の接続性の現在の状態について通知を受け取ることに関連したクラスのインタフェースである。
ＮａｖＷｉｎｄｏｗ（ナビゲーションウィンドウ）は、自身のナビゲーション状態を有する任意のウィンドウ用のインタフェースである。
【００７４】
パッケージｐｈｌｕｉｄ．ｂａｓｅ−クラス
ｐｈｌｕｉｄ．ｂａｓｅパッケージ６０は、以下のクラス７０−２を含む。
ＡｂｏｕｔＤｉａｌｏｇ（バージョン情報ダイアログ）は、全てのＪａｖａコアＣｌｉｅｎｔＣｏｍｐｏｎｅｎｔ（クライアントコンポーネント）のバージョン情報を表示するＪＤｉａｌｏｇ（Ｊダイアログ）である。
ＡｐｐＷｉｎｄｏｗは、メインアプリケーションウィンドウとして使用するのに適した基本ウィンドウである。
【００７５】
ＢａｓｅＵＩコンポーネント５２は、ＢａｓｅＵＩインタフェースを提供するＪａｖａコアクライアントコンポーネントである。
ＳｔａｎｄａｒｄＢａｓｅＵＩ（標準基本ＵＩ）は、ＢａｓｅＵＩインタフェースを実施するクラスである。
ＢａｓｅＷｉｎｄｏｗ（基本ウィンドウ）は、アプリケーションの基本ウィンドウである。
ＣｈｉｌｄＷｉｎｄｏｏｗ（子ウィンドウ）は、アプリケーションのＢａｓｅＷｉｎｄｏｗのＮａｖＯｂｊｅｃｔを個別に表示するウィンドウである。
【００７６】
ＣｏｎｔｅｎｔＰａｎｅｌ（コンテンツパネル）は、現在選択されているＮａｖＯｂｊｅｃｔのビューパネル（複数可）を表示する。
ＮａｖＢｕｔｔｏｎｓ（ナビゲーションボタン）は、戻る、進む、上へのナビゲーションボタンを表示するＴｏｏｌＧｒｏｕｐ（ツールグループ）である。
ＮａｖＰａｎｅｌ（ナビゲーションパネル）は、ＮａｖＴｒｅｅを含むＪＰａｎｅｌ（Ｊパネル）である。
【００７７】
ＳｅｌｅｃｔｉｏｎＰｏｓｔｅｒ（選択ポスタ）は、Ｓｗｉｎｇスレッドから選択イベントを発生させるのに使用される。
ＳｔａｎｄａｒｄＮａｖＳｅｌｅｃｔｏｒ（標準ナビゲーションセレクタ）は、選択の全ての履歴を保持して、選択された状況と選択されたＮａｖＯｂｊｅｃｔがいかなる状況でも常に存在することを保証するＮａｖＳｅｌｅｃｔｏｒインタフェースの標準実施である。
【００７８】
ＴｏｏｌＰａｎｅｌ（ツールパネル）は、すべてのツールバー項目を含むＪＰａｎｅｌである。
ＶｉｅｗＭｅｎｕ（表示メニュー）は、進む、戻る、上へなどのナビゲーション機能を取り扱うメニューである。また、履歴ログも保持する。
【００７９】
パッケージｐｈｌｕｉｄ．ｃｏｎｆｉｇ
ｐｈｌｕｉｄ．ｃｏｎｆｉｇパッケージ６２は、ｐｈｌｕｉｄ．ｃｏｎｆｉｇインタフェース６８−３の実施を定義する。
クラス７０−３、ＬｏｃａｌＰｒｏｐｅｒｔｙＤＢＣｏｎｆｉｇ（ローカルプロパティＤＢ構成）、は、ＪａｖａコアＰｒｏｐｅｒｔｙＤＢ（プロパティＤＢ）を取り扱うことができるｐｈｌｕｉｄ．Ｃｏｎｆｉｇインタフェースを実施する。
【００８０】
パッケージｐｈｌｕｉｄ．ｗｉｄｇｅｔ
ｐｈｌｕｉｄ．ｗｉｄｇｅｔパッケージ６４は、ビジュアルエレメント用のルートパッケージであり、ＵＩコンテンツの開発に使用可能なクラスをサポートする。
【００８１】
パッケージｐｈｌｕｉｄ．ｗｉｄｇｅｔ−インタフェース
ｐｈｌｕｉｄ．ｗｉｄｇｅｔパッケージ６４は、以下のインタフェース６８−４を含む。
ＰｒｏｃｅｓｓＢｕｓｙＩｎｄｉｃａｔｏｒ（プロセスビジーインジケータ）は、現在ビジー状態にある可能性のある任意のプロセスについてのコントリビュータ情報を（ステータスバーなどに）表示することが必要なクラス用のインタフェースである。
【００８２】
ＴａｂｌｅＨｅａｄｅｒＲｅｓｉｚｅｄＬｉｓｔｅｎｅｒ（表ヘッダサイズ変更リスナ）は、表の列ヘッダのサイズが変更されたときに通知を受けるリスナである。
ＴｏｇｇｌｅＢｏｘＳｅｌｅｃｔｉｏｎＬｉｓｔｅｎｅｒ（トグルボックス選択リスナ）は、ＴｏｇｇｌｅＢｏｘ（トグルボックス）の状態が変化したときに通知を受けるリスナである。
【００８３】
パッケージｐｈｌｕｉｄ．ｗｉｄｇｅｔ−クラス
ｐｈｌｕｉｄ．ｗｉｄｇｅｔパッケージ６４は、以下のインタフェース７０−４を含む。
ＢａｓｅＤｉａｌｏｇ（基本ダイアログ）は、標準ダイアログの作成を簡略化するメソッドおよび／または制御を提供するｊａｖａｘｓｗｉｎｇ．ＪＤｉａｌｏｇ（Ｊａｖａｘｓｗｉｎｇ．Ｊダイアログ）の拡張である。
ＢｒｏｗｓｅｒＬａｕｎｃｈｅｒ（ブラウザランチャー）は、所与のＵＲＬに対する省略時Ｗｅｂブラウザの開始をカプセル化するクラスである。
【００８４】
ＣｈｅｃｋＢｏｘＢｏｘ（チェックボックスボックス）は、複数のＪＣｈｅｃｋＢｏｘ（Ｊチェックボックス）コンポーネントをグループ化するＳｗｉｎｇコンポーネントである。
ＣｈｅｃｋＬｉｓｔＰａｎｅｌ（チェックリストパネル）は、ＪＳｃｒｏｌｌＰａｎｅ（Ｊスクロールペイン）内にチェックボックスを有するＪＬｉｓｔ（Ｊリスト）を実施するヘルパークラスである。
【００８５】
ＣｈｏｏｓｅｒＰａｎｅｌ（チューザーパネル）は、標準の「チューザー」ダイアログボックスを実施するヘルパークラスである。
標準の「チューザー」ダイアログボックスには、選択可能な可能な項目のリストと、選択された項目のリストとの２つの項目のリストが表示される。
リスト内の項目は、２つのリストの間で相互に移動可能である。
【００８６】
ＣｏｎｔｒｏｌＢｕｔｔｏｎ（コントロールボタン）は標準のコントロールボタンを定義する。
カーソルは、ＮａｖＯｂｊｅｃｔ上にマウスを移動したときに使用されるカーソルなどの標準のカーソルを定義する。
ＦｏｒｍＣａｎｃｅｌ（フォームキャンセル）は、ＥＳＣキーの押し下げをダイアログボックスのキャンセルアクションとして認識するＪａｖａキーアダプタである。
【００８７】
ＦｏｒｍＣｏｌｕｍｎ（フォーム列）は、フォームとダイアログボックスの構築に有用なＪＰａｎｅｌコンビニエンスラッパである。
ＦｏｒｍＦｉｅｌｄは、文字フィールドをフォーム内に配置するのに有用なウィジェットである。
ＦｏｒｍＬａｂｅｌ（フォームラベル）は、フォーム内に大きさの指定されたラベルを配置するのに有用なコンビニエンスＪＬａｂｅｌラッパである。
ＦｏｒｍＲｏｗ（フォーム行）は、フォームとダイアログボックスの構築に有用なＪＰａｎｅｌのコンビニエンスラッパである。
【００８８】
Ｉ１８ｎＯｐｔｉｏｎＰａｎｅ（Ｉ１８ｎオプションペイン）は、ＪＯｐｔｉｏｎＰａｎｅ．ｓｈｏｗＭｅｓｓａｇｅＤｉａｌｏｇ（）（Ｊオプションペイン．メッセージダイアログ表示）とＪＯｐｔｉｏｎＰａｎｅ．ｓｈｏｗＣｏｎｆｉｒｍＤｉａｌｏｇ（）（Ｊオプションペイン．確認ダイアログ表示）用の国際化対応ラッパである。
ＮａｖＯｂｊｅｃｔＩｍａｇｅＭａｐ（ＮａｖＯｂｊｅｃｔ画像マップ）は、画像の各部をＮａｖＯｂｊｅｃｔに関連付ける「画像マップ」である。
【００８９】
指定された部分でのマウスイベントにより、適切なアクション（たとえば、選択、ポップアップメニュー）が起動される。
クラスＮａｖＯｂｊｅｃｔＬａｂｅｌ（ＮａｖＯｂｊｅｃｔラベル）は、マウスの対象上への移動によるカーソルの変更、選択、ポップアップメニューを処理するＮａｖＯｂｊｅｃｔを表示するための基本コンポーネントである。
【００９０】
ＮａｖＯｂｊｅｃｔＴａｂｌｅ（ＮａｖＯｂｊｅｃｔの表）は、セルのデータを表示するためにさまざまなカスタマイズが可能な並べ替え可能な表である。
これには、ＮａｖＯｂｊｅｃｔを含む列、ＴａｂｌｅＣｅｌｌＭａｐ（表セルマップ）を有する列、ＦｉｌｔｅｒｅｄＴａｂｌｅＭｏｄｅｌ（フィルタ処理済み表モデル）によりフィルタリングされたデータのサポートが含まれる。
ＮａｖＴｒｅｅ（ナビゲーションツリー）は、ＮａｖＣｏｎｔｅｘｔの表示に使用可能なＪＴｒｅｅの拡張である。
ツリーのノードは、ＮａｖＯｂｊｅｃｔＴｒｅｅＮｏｄｅｓ（ＮａｖＯｂｊｅｃｔツリーノード）のインスタンスである。
【００９１】
ＰｒｏｐｅｒｔｙＴａｂｌｅ（プロパティ表）は、名前／値の対の表示に有用な基本的な２列の表である。
なお、このクラスはＪＴａｂｌｅ（Ｊ表）の拡張ではない。
【００９２】
ＲａｄｉｏＢｕｔｔｏｎＢｏｘ（ラジオボタンボックス）は、複数のＪＲａｄｉｏＢｕｔｔｏｎ（Ｊラジオボタン）コンポーネントをグループ化して１度に１つだけ選択可能にするＳｗｉｎｇコンポーネントである。
ＲｅｓｉｚａｂｌｅＬａｂｅｌ（サイズ変更可能ラベル）は、サイズが変更可能なＪＬａｂｅｌ（Ｊラベル）を作成する。
【００９３】
ＲｏｌｌｏｖｅｒＢｕｔｔｏｎ（ロールオーバーボタン）は、マウスがその上にあるときに強調表示されるボタンである。
ＲｏｌｌｏｖｅｒＴｏｇｇｌｅＢｕｔｔｏｎ（ロールオーバートグルボタン）は、マウスがその上にあるときに強調表示されるトグルボタンである。
【００９４】
ＳｈｉｆｔｅｄＩｃｏｎ（シフトアイコン）は、カスタマイズされた配置用のオフセット値を含むＩｃｏｎである。
ＳｍａｒｔＰｏｐｕｐＭｅｎｕ（スマートポップアップメニュー）は、自動的にその配置をシフトしてすべての内容が（表示境界内に）表示されるようにするＪｐｏｐｕｐＭｅｎｕ（Ｊポップアップメニュー）である。
【００９５】
Ｓｐｌａｓｈ（スプラッシュ）はアプリケーションの「スプラッシュ」ウィンドウを作成するためのＵｔｉｌｉｔｙ（ユーティリティ）クラスである。
ＳｔａｎｄａｒｄＴａｂｌｅ（標準表）はヘッダサイズ変更イベントを発生させるＪＴａｂｌｅである。
【００９６】
ＳｕｂｔｌｅＢｅｖｅｌＢｏｒｄｅｒ（狭い額縁風境界）は、ボタンを強調表示するのに有用な境界である。
ＳｕｍｍａｒｙＰａｎｅｌ（概要パネル）は、表と共に大きさが変化するＪＰａｎｅｌの表と概要の行を表示するクラスである。
ＳｗｉｎｇＷｏｒｋｅｒ（Ｓｗｉｎｇワーカ）は、専用スレッド内でＧＵＩ関連の作業を実施するためにサブクラス化可能な抽象クラスである。
【００９７】
ＳｙｎｃｈｒｏｎｉｚｅｄＴａｂｌｅＨｅａｄｅｒＰａｎｅｌ（同期表ヘッダパネル）は、指定された表の列サイズに同期した大きさのコンテナを有するパネルである。
このクラスのインスタンスと指定された表との間には、収容関係は存在しない。
ＴａｂｌｅＨｅａｄｅｒＲｅｓｉｚｅｄＥｖｅｎｔ（表ヘッダサイズ変更イベント）は、ユーザが表の列ヘッダのサイズを変更したときに発生するイベントである。
【００９８】
ＴｏｇｇｌｅＢｏｘ（トグルボックス）は、水平の行または垂直の列内で複数のＪＴｏｇｇｌｅＢｕｔｔｏｎ（Ｊトグルボタン）コンポーネントを編成するＳｗｉｎｇコンポーネントである。
ボタンの状態を制御し問い合わせるためにメソッドが提供されている。
属性は、複数の選択を許可するかどうかを制御する。
【００９９】
ＴｏｇｇｌｅＢｏｘＳｅｌｅｃｔｉｏｎＥｖｅｎｔ（トグルボックス選択イベント）は、ＴｏｇｇｌｅＢｏｘの状態変化を表示するのに使用されるイベントである。
ＴｏｏｌＢａｒＢｕｔｔｏｎ（ツールバーボタン）は、ＴｏｏｌＧｒｏｕｐｓ（ツールグループ）で使用するために基本ボタンである。
【０１００】
ＵｐＤｏｗｎＢｕｔｔｏｎ（上下ボタン）は、上／下ボタンをシミュレートし、数値を表示する文字フィールドに通常関連付けられているＪＰａｎｅｌである。
上／下ボタンを押すと、それに応じて文字フィールドが変化する。
ＵＲＬＬｉｎｋｅｄＬａｂｅｌ（ＵＲＬリンクラベル）は、マウスでクリックされたときに特定のＵＲＬでブラウザを起動するＪＬａｂｅｌの拡張である。
ＷｈｏｌｅＮｕｍｂｅｒＦｉｅｌｄ（整数フィールド）は、整数値を入力可能なＪＴｅｘｔＦｉｅｌｄ（Ｊ文字フィールド）である。
【０１０１】
パッケージ  ｐｈｌｕｉｄ．ｗｉｄｇｅｔ．ｔａｂｌｅ
ｐｈｌｕｉｄ．ｗｉｄｇｅｔ．ｔａｂｌｅパッケージ６６は、表に具体的に関連するウィジェットを含む。
【０１０２】
パッケージｐｈｌｕｉｄ．ｗｉｄｇｅｔ．ｔａｂｌｅ−インタフェース
ｐｈｌｕｉｄ．ｗｉｄｇｅｔ．ｔａｂｌｅパッケージ６６は、表のセルをＵＩコンポーネントにマッピングするインタフェース６８−５、ＴａｂｌｅＣｅｌｌＭａｐを含む。
【０１０３】
パッケージｐｈｌｕｉｄ．ｗｉｄｇｅｔ．ｔａｂｌｅ−クラス
ｐｈｌｕｉｄ．ｗｉｄｇｅｔ．ｔａｂｌｅパッケージ６６は、以下のクラス７０−５を含む。
ＢｏｏｌｅａｎＦｉｌｔｅｒＯｐｅｒａｔｉｏｎ（ブールフィルタ演算）は、行を表に追加すべきかどうかを判断するのに使用される。
【０１０４】
ＣｈａｉｎｅｄＴａｂｌｅＭｏｄｅｌＦｉｌｔｅｒ（チェーン結合表モデルフィルタ）は、行を表に追加すべきかどうかを判断するのに使用される。
ＣｏｌｕｍｎＶａｌｕｅＦｉｌｔｅｒＥｘｐｒｅｓｓｉｏｎ（列値フィルタ式）は、行を表に追加すべきかどうかを判断するのに使用される。
ＤｅｆａｕｌｔＳｕｍｍａｒｉｚｅｒ（省略時サマライザ）は、Ｊａｖａプリミティブデータ型ラッパの倍精度値を返すクラスである。
【０１０５】
ＤｅｆａｕｌｔＳｕｍｍａｒｙＴａｂｌｅＭｏｄｅｌ（省略時概要表モデル）は、ＪＴａｂｌｅに関連する省略時の表モデルである。
このクラスは、抽象ＳｕｍｍａｒｙＴａｂｌｅＭｏｄｅｌ（概要表モデル）の完全な実施を提供する。
【０１０６】
ＤｅｆａｕｌｔＴａｂｌｅＣｅｌｌＭａｐ（省略時の表のセルマップ）は、表のセルを値にマッピングする。
ＦｉｌｔｅｒｅｄＴａｂｌｅＭｏｄｅｌ（フィルタ処理済み表モデル）は、行を表に追加すべきかどうかを判断するのに使用される。
ＭｕｌｔｉＦｉｌｔｅｒｅｄＴａｂｌｅＭｏｄｅｌ（複数のフィルタ処理済み表モデル）は、行を表に追加すべきかどうかを判断するのに使用される。
【０１０７】
ＮａｖＯｂｊｅｃｔＴａｂｌｅＣｅｌｌ（ＮａｖＯｂｊｅｃｔ表セル）は、ＮａｖＯｂｊｅｃｔ用の表セルである。
ＮａｖＯｂｊｅｃｔＴａｂｌｅＣｅｌｌは、Ｃｏｍｐａｒａｂｌｅインタフェースを実施し、ＮａｖＯｂｊｅｃｔ．ｇｅｔＮａｍｅ（）（ＮａｖＯｂｊｅｃｔ．名前取得）から返されるＳｔｒｉｎｇ（文字列）に基づいてＮａｖＯｂｊｅｃｔを並べ替える。
【０１０８】
ＳｏｒｔａｂｌｅＴａｂｌｅＭｏｄｅｌは、行を並べ替える方法を提供する表モデルである。
各行は、内部クラスＴａｂｌｅＲｏｗ（表の行）のインスタンスである。
表の各要素は、並べ替え用にＣｏｍｐａｒａｂｌｅインタフェースを実施可能である。
ＳｕｍｍａｒｙＴａｂｌｅＭｏｄｅｌ（概要表モデル）は、並べ替え可能で、概要を作成可能な表モデルである。
概要作成機能は、合計、平均等を含む。
【０１０９】
ＴａｂｌｅＭｏｄｅｌＦｉｌｔｅｒ（表モデルフィルタ）は、フィルタ機構を提供して何を表に表示するかを制限する。
ＴａｂｌｅＭｏｄｅｌＦｉｌｔｅｒＰａｒｓｅＥｘｃｅｐｔｉｏｎ（表モデルフィルタパース例外）は、ＴａｂｌｅＭｏｄｅｌＦｉｌｔｅｒにより発生する例外である。
【０１１０】
図４を参照すると、ＵＩフレームワーク上に構築されたメインアプリケーションは、手順７４で開始されるメソッド７２を実施する。
手順７６でＡｐｐＣｏｎｔｒｏｌｌｅｒ（アプリケーションコントローラ）インタフェースが実施される。
【０１１１】
手順７８で、ＪａｖａコアＣｌｉｅｎｔＦｒａｍｅｗｏｒｋ（クライアントフレームワーク）が作成される。
手順８０で、ＪａｖａコアＣｌｉｅｎｔＣｏｍｐｏｎｅｎｔ（クライアントコンポーネント）がロードされる。
【０１１２】
手順８２で、ＢａｓｅＵＩコンポーネント５２が開始される。
ＢａｓｅＵＩコンポーネント５２が開始されると、ＢａｓｅＵＩコンポーネントは、手順８６でＢａｓｅＷｉｎｄｏｗ（基本ウィンドウ）を作成して表示し、手順８８で対象のリスナにウィンドウが作成されたことを通知する。
【０１１３】
一実施形態では、すべての寄与コンポーネントが、ＳｔａｎｄａｒｄＵＩＣｏｍｐｏｎｅｎｔを拡張するＵＩクラスを提供する。
このクラスは、コンポーネントをＪａｖａコアＣｌｉｅｎｔＣｏｍｐｏｎｅｎｔ（クライアントコンポーネント）として自動的に登録する。
ＳｔａｎｄａｒｄＵＩＣｏｍｐｏｎｅｎｔとして、寄与コンポーネントはいくつかのインタフェースを実施する。
【０１１４】
Ｉｎｉｔｉａｌｉｚｅ（初期化）（...）は、コンポーネントがロードされたときにＪａｖａコアに呼び出される。
ＲｅｇｉｓｔｅｒＮａｖＣｏｎｔａｉｎｅｒＬｉｓｔｅｎｅｒｓ（ナビゲーションコンテナリスナ登録）（．．．）は、ＢａｓｅＵＩコンポーネント５２に呼び出され、コンポーネントがＮａｖＣｏｎｔａｉｎｅｒＬｉｓｔｅｎｅｒ（ナビゲーションコンテナリスナ）として登録できるようにする。
ＲｅｇｉｓｔｅｒＵＩ（ＵＩ登録）（．．．）は、ＢａｓｅＵＩコンポーネント５２により呼び出され、コンポーネントが任意のＵＩコントリビュータ（たとえば、ツールバー、メニューバーなど）を登録できるようにする。
【０１１５】
寄与コンポーネントは、特定のＮａｖＯｂｊｅｃｔのファクトリクリエータとしても登録可能である。
これは、ＮａｖＯｂｊｅｃｔ型が要求され、まだ存在していない場合は、このコンポーネントがそれを作成する責任があるということである。
【０１１６】
ポップアップメニューをＮａｖＯｂｊｅｃｔに追加するためのコンポーネントの実施は、いくつかのタスクを実行可能である。
コンポーネントは、ＮａｖＣｏｎｔａｉｎｅｒＬｉｓｔｅｎｅｒインタフェースを実施し、ＰｏｐｕｐＣｏｎｔｒｉｂｕｔｏｒインタフェースを実施する。
【０１１７】
ＮａｖＯｂｊｅｃｔが作成されたことが（ＮａｖＣｏｎｔａｉｎｅｒＬｉｓｔｅｎｅｒインタフェースを介して）通知されると、コンポーネントはＮａｖＯｂｊｅｃｔにＰｏｐｕｐＣｏｎｔｒｉｂｕｔｏｒとして登録される。
登録されたＰｏｐｕｐＣｏｎｔｒｉｂｕｔｏｒとして、コンポーネントは、マウスの右クリックでＮａｖＯｂｊｅｃｔが選択されたときに通知を受ける。
【０１１８】
この時点で、コントリビュータは、任意の追加ポップアップメニュー項目を追加して、関連するアクションリスナを登録することができる。
ポップアップメニュー項目が選択されると、登録されたアクションリスナが通知を受ける。
【０１１９】
すべてのＮａｖＴｒｅｅオブジェクトは、ＮａｖＯｂｊｅｃｔである。
ＮａｖＯｂｊｅｃｔは、ツリーの任意のレベルに追加可能で、それらの関連するアイコン（ＮａｖＯｂｊｅｃｔ．ｇｅｔＩｃｏｎ（ＮａｖＯｂｊｅｃｔ．アイコン取得）（））と名前（ＮａｖＯｂｊｅｃｔ．ｇｅｔＮａｍｅ（ＮａｖＯｂｊｅｃｔ．名前取得）（））で表現される。
【０１２０】
ＮａｖＯｂｊｅｃｔは、Ｃｏｍｐａｒａｂｌｅインタフェースを実施して、正常に並べ替えられることを保証している。
各ＮａｖＯｂｊｅｃｔは、ＮａｖＯｂｊｅｃｔのラベルがＮａｖＴｒｅｅで選択されるときに表示されるビューパネルの集合にも関連付けられている。
【０１２１】
寄与コンポーネントは、図５に示すように、選択されたＮａｖＯｂｊｅｃｔに有用なコンテンツを提供することができる。
ＮａｖＯｂｊｅｃｔクラスでは、ｇｅｔＶｉｅｗＰａｎｅｌＴａｂｓ（．．．）１００という名前のメソッドが、選択されたＮａｖＯｂｊｅｃｔに対してすべての定義されたビューパネルを収集する。
【０１２２】
これらのビューパネルには、ＮａｖＯｂｊｅｃｔにより直接作成されたパネルと他のコンポーネントにより提供された任意のパネルが含まれる。
コンポーネントがＮａｖＯｂｊｅｃｔのビューパネルを作成するには、少なくとも２つの方法がある。
【０１２３】
第１の方法では、ＮａｖＯｂｊｅｃｔのクラスを拡張することができる。
ＮａｖＯｂｊｅｃｔクラスが拡張されると、１０２に示されるメソッドｇｅｔＢａｓｅＶｉｅｗＰａｎｅｌＴａｂｓ（基本ビューパネルタブの取得）（．．．）が実施される。
このようにして、コンポーネントはビューパネルを作成して返すことができる。
【０１２４】
第２の方法では、コンポーネントを特定のＮａｖＯｂｊｅｃｔのビューパネルコントリビュータとして登録することができる。
通常、この登録は、１０４に示すようにＮａｖＣｏｎｔａｉｎｅｒＬｉｓｔｎｅｎｅｒとして登録することにより実現される。
特定のＮａｖＯｂｊｅｃｔが作成（追加）されると、１０６に示すようにコントリビュータは、ＮａｖＯｂｊｅｃｔのメソッドａｄｄＶｉｅｗＰａｎｅｌＣｏｎｔｒｉｂｕｔｏｒ（ビューパネルコントリビュータの追加）（．．．）を介して自身をＶｉｅｗＰａｎｅｌＣｏｎｔｒｉｂｕｔｏｒとして追加する。
【０１２５】
ビューパネルの作成時に、ＣａｃｈｅｄＶｉｅｗＰａｎｅｌＴａｂ（キャッシュされたビューパネルタブ）クラスが拡張される。
このクラスは、ビューパネルインスタンスを作成時にキャッシュして、ＮａｖＯｂｊｅｃｔの切り替え時に時間を節約する機能を提供する。
【０１２６】
図６は、ストレージエリア管理アプリケーションで動作するように構成されたＧＵＩ  １０の実施形態２００を示す。
図１に示したＧＵＩ  １０のそれと類似または同一のＧＵＩ  ２００のビジュアルコンポーネントおよび／または他の要素は、図１と同じ符号を付している。
【０１２７】
現在選択されているツリーオブジェクト２３８に関連するデータの表２３４は、ビューパネル２０に表示されている。
表２３４は、表セルに関連付けられた表オブジェクトの行２４２を１つ有する（他の実施形態では、もちろん２つ以上の行を有する表を含むことがある）。
オブジェクト２４２ａはホスト、オブジェクト２４２ｂは複数の組織、オブジェクト２４２ｃはオペレーティングシステムを表している。
表オブジェクト２４２ｃは、文字による説明の表示２４４である。
【０１２８】
前述のように、ＮａｖＯｂｊｅｃｔは、データモデルとビジュアルコンポーネント間の関連を表し、アイコンと名前を有するラベルとしてアプリケーション内で表現することができる。
そのようなラベルは、たとえばナビゲーションツリー１４および／またはパネル表２３４内に表示可能である。
本実施形態では、表オブジェクト２４２ａは、アイコン２４８と名前２５０を有するラベル２４６としてのＮａｖＯｂｊｅｃｔを表示している。
【０１２９】
ラベル２４６は、ツリー１４内にも表示される。
ユーザは、マウスによりラベル２４６をアクティブにして、たとえば、ラベル２４６により表されるホストを記述するデータモデルの状況依存情報を表示することができる。
【０１３０】
図６に例示するように、ツリー１４は、２つの組織に対するラベル２５２と２５４も含む。
ラベル２４６、２５２、２５４は、ツリー１４内でたとえばＮａｖＯｂｊｅｃｔＬａｂｅｌクラスにより表現される。
【０１３１】
ラベル２５２は、アイコン２６０と名前２６２を含む。
ラベル２５４は、アイコン２６６と名前２６８を含む。
本実施形態では、ストレージデバイスに関連付けられたツリーオブジェクトに対しては、デバイス名がラベル名として使用される。
【０１３２】
表オブジェクト２４２ｂは、以降で説明する本発明の一実施形態によるセルクラス２７０を表す。
一実施形態のクラス２７０は、ｐｈｌｕｉｄパッケージ５８、６０、６２、６４、６６を拡張する。
別の実施形態では、クラス２７０は、Ｊａｖａ  Ｓｗｉｎｇコンポーネントおよび／または他のＪａｖａコンポーネントを拡張する。
【０１３３】
２つ以上のＮａｖＯｂｊｅｃｔが表セル内に格納されている場合、セルクラス２７０によりユーザは、格納された各ＮａｖＯｂｊｅｃｔに対してビジュアルコンポーネントを選択することができる。
具体例として、たとえば、一方は「Ｒ１０」という名前の組織に関連付けられ、他方は「Ｒ２５」という名前の組織に関連付けられた２つのナビゲーションオブジェクトがオブジェクト２４２ｂに関連付けられた表セルに格納されているとする。
【０１３４】
２つのナビゲーションオブジェクトは、セルクラス２７０により表２３４内のラベル２７４として表される。
ラベル２７４は、ＮａｖＯｂｊｅｃｔに関連付けられた名前２６２と２６８を含む文字列リスト２７８を含む。
【０１３５】
名前は、文字列リスト２７８内でカンマで区切られている。
ラベル２７４は、アイコン２６０も含む。
一実施形態のアイコン２６０は、文字列リスト内の第１のＮａｖＯｂｊｅｃｔに関連付けられている。
文字列リスト内の第１のナビゲーションオブジェクトのアイコンを使用して、その文字列リスト内のすべてのナビゲーションオブジェクトを表すのが便利であるが、別の実施形態では、その文字列リスト内の別のナビゲーションオブジェクトのアイコンを使用することもできる。
【０１３６】
ラベル２７４をマウスによりアクティブにすると、ユーザは、ラベル２７４に関連付けられたナビゲーションオブジェクトのビジュアルコンポーネントを選択することができる。
セルクラス２７０をインスタンス化して、たとえば、アイコン、文字列、および／またはヒント（tooltip）の表示をサポートするＪＬａｂｅｌオブジェクトを作成することができる。
【０１３７】
図７の参照番号５０２により全体を示すメソッドにより複数のナビゲーションオブジェクトが表セル内に格納されている。
１つのナビゲーションオブジェクトが表セル内に格納されていると判断５０４されると、前述のようにＮａｖＯｂｊｅｃｔＴａｂｌｅＣｅｌｌを使用してセルが表示（populate）される。
【０１３８】
表セル内に２つ以上のナビゲーションオブジェクトが格納されていると判断５０４されると、セルクラス２７０を使用して、表セルにナビゲーションオブジェクトが表示５０６され、各ナビゲーションオブジェクトに対するポインタが作成される。
アイコンと文字列リストを有するラベルが、表セル内に表示５０８される。
【０１３９】
たとえば、マウスイベントが発生したときに、ユーザが表セル上にマウスを移動したり、表セル上でマウスを右クリックまたは左クリックすると、ＮａｖＯｂｊｅｃｔＴａｂｌｅがイベントを他よりも先に検出する。
アクティブになったＮａｖＯｂｊｅｃｔＴａｂｌｅのマウスイベントハンドラは、表セルが内部に複数のナビゲーションオブジェクトを格納している表セルかどうかを判断する。
表セルが、内部に複数のナビゲーションオブジェクトを格納している表セルの場合、マウスイベントハンドラは、マウスイベントを分析して、作成されたポインタを使用してセル内のナビゲーションオブジェクトのストレージ上で適切なアクションを実行する。
以下でさらに説明するように、具体例としては、たとえば、マウスイベントハンドラは、プルライトメニュー、ダイアログボックス、またはヒントを表示する。
【０１４０】
たとえば、図８を参照して、ユーザは、マウスをラベル２７４上に移動してヒント２８２を表示することができる。
ヒント２８２は、文字列リスト２７８の各名前を表示する。
ヒントは、たとえば、表オブジェクト２４２ｂ内にすべてを表示するには長すぎる文字列リスト２７８内のすべての名前の表示に有用である。
【０１４１】
ヒントが表示されるときには、ヒントの内容を定義しているＪａｖａ  Ｓｔｒｉｎｇ（Ｊａｖａ文字列）オブジェクトがセルクラス２７０に提供される。
ＧＵＩの縁２８６を超えて延びることのない表セルのヒントを表示するには、ヒントの内容を標準文字列として定義するＪａｖａ  Ｓｔｒｉｎｇオブジェクトを使用することができる。
【０１４２】
たとえば、以下のコードを使用することができる。
ＪＬａｂｅｌ  ａＬａｂｅｌ＝ｎｅｗ  ＪＬａｂｅｌ（ａｎｌｃｏｎ，"Ｔｈｉｓ  ｉｓ  ａ  Ｌａｂｅｌ"）；
Ｓｔｒｉｎｇ  ｓｈｏｒｔＴｏｏｌｔｉｐ＝"Ｔｈｉｓ  ｉｓ  ａ  ＴｏｏｌＴｉｐ"；
ａＬａｂｅｌ．ｓｅｔＴｏｏｌＴｉｐＴｅｘｔ（ｓｈｏｒｔＴｏｏｌＴｉｐ）；
【０１４３】
マウスが適切に上部に移動すると、以下のヒントが表示される。
Ｔｈｉｓ  ｉｓ  ａ  ＴｏｏｌＴｉｐ（これはヒント）
【０１４４】
ＧＵＩに２行以上のヒントを表示するには、たとえば、文字列に埋め込まれたＨＴＭＬ（ハイパーテキストマークアップ言語）タグを使用してヒントの内容を定義するＪａｖａ  Ｓｔｒｉｎｇオブジェクトが使用される。
マークアップ言語のコーディングにより、文字列が複数の行に分割されて表示される。
たとえば、以下のようなコードを使用できる。
【０１４５】
ＪＬａｂｅｌ  ａＬａｂｅｌ＝ｎｅｗ  ＪＬａｂｅｌ（ａｎｌｃｏｎ，"Ｔｈｉｓ  ｉｓ  ａ  Ｌａｂｅｌ"）；
Ｆｏｎｔ  ｆｏｎｔ＝ｓｏｍｅ  ｆｏｎｔ
ＳｔｒｉｎｇｌｏｎｇＴｏｏｌＴｉｐ＝"＜ＨＴＭＬ＞＜ＢＯＤＹ  ｓｔｙｌｅ＝￥""＋"ｆｏｎｔ―ｓｉｚｅ：
"＋ｆｏｎｔ．ｇｅｔＳｉｚｅ（）＋"ｐｔ；"＋"ｆｏｎｔ―ｆａｍｉｌｙ："＋ｆｏｎｔ．ｇｅｔＮａｍｅ（）＋
"￥"Ｔｈｉｓ  ｉｓ  ｒｅａｌｌｙ  ｌｏｎｇ  ＴｏｏｌＴｉｐ  ＬＩＮＥ１＜ｐ  ｓｔｙｌｅ＝￥""＋"ｆｏｎｔ―ｓｉｚｅ："＋ｆｏｎｔ．ｇｅｔＳｉｚｅ（）＋"ｐｔ；"＋"￥"＞Ａｎｄ  Ｔｈｉｓ  ｉｓ  ＬＩＮＥ２＜￥ＢＯＤＹ＞＜￥ＨＴＭＬ＞"；
ａＬａｂｅｌ．ｓｅｔＴｏｏｌＴｉｐＴｅｘｔ（ｌｏｎｇＴｏｏｌＴｉｐ）；
【０１４６】
マウスが適切に上部に移動すると、以下のヒントが表示される。
Ｔｈｉｓ  ｉｓ  ａ  ｒｅａｌｌｙ  ｌｏｎｇ  ＴｏｏｌＴｉｐ  ＬＩＮＥ１（これは、実際に長いヒントの行１）
Ａｎｄ  ｔｈｉｓ  ｉｓ  ＬＩＮＥ２（そして、これが行２）
【０１４７】
したがって、ＧＵＩの縁２８６を超えて延びる名前リスト２７８は、ヒント２８２に表示するために２行以上に分割することができる。
ヒントを提供する前述の方法は、セルクラス２７０および／またはＵＩフレームワークと関連した用途に限定されず、グラフィカルユーザインタフェース内でヒントが提供されるさまざまな他の環境でも実行可能あることが理解できる。
もちろん、前述の方法を使用して１行のヒントを表示することも可能である。
【０１４８】
図９を参照して、表セルに格納されているナビゲーションオブジェクトの状況依存アクションのポップアップメニューを表示する方法５１４を説明する。
ユーザがラベル２７４上でマウスを右クリックしたと判断５１６され、アクティブに設定されたセルに２つ以上のナビゲーションオブジェクトが格納されていると判断５１８されると、セルクラス２７０により、図１０に示すようにＧＵＩ  ２００が応答する。
【０１４９】
表セル内のナビゲーションオブジェクトは、クラス２７０のポインタを介して使用可能である。
したがって、図９と１０を参照すると、プルライトメニュー項目３０４を含むプルライトメニュー３００が表示５２０され、１つのメニュー項目３０４は表オブジェクト２４２ｂに関連付けられた表セル内に表示された各ナビゲーションオブジェクトに対応する。
ユーザがプルライトメニュー項目３０４を選択したと判断５２２されると、選択されたナビゲーションオブジェクトに関連付けられた状況依存ポップアップメニューが表示５２４される。
【０１５０】
図１０に示すように、ユーザが、「Ｒ１０」という名前の組織に関連付けられたナビゲーションオブジェクトに対するメニュー項目３０４ａをマウスで右クリックしているので、それがポップアップメニュー３０８の表示のきっかけになる。
本実施形態では、メニュー３０８は、「Ｒ１０」という名前の組織に関連付けられたナビゲーションオブジェクトに対する前述の状況依存ポップアップメニューである。
したがって、ユーザは、たとえば、「Ｒ１０」という名前の組織に関連付けられたナビゲーションオブジェクトが単独で表セルに格納されている場合に使用可能な状況依存アクションと同一の状況依存アクションから選択を行うことができる。
【０１５１】
図１１を参照して、ナビゲーションオブジェクトを介してデータモデルに関連付けられたビジュアルコンポーネントを表示するメソッド５３０を説明する。
ユーザが表セルをダブルクリックしたかどうかが判断５３２される。
ダブルクリックしたと判断されると、セル内に２つ以上のナビゲーションオブジェクトが格納されているかどうかが判断５３４される。
【０１５２】
セル内に２つ以上のナビゲーションオブジェクトが格納されている場合は、表セル内のナビゲーションオブジェクトは、クラス２７０のポインタを介して使用可能である。
各ナビゲーションオブジェクトの名前を含むダイアログボックスが表示５３６される。
ユーザがダイアログボックスから名前を選択したと判断５３８されると、選択されたナビゲーションオブジェクトに関連付けられた１つまたは複数のビジュアルコンポーネントが表示５４０される。
【０１５３】
たとえば、ユーザが複数のナビゲーションオブジェクトのラベル２７４をマウスでダブルクリックすると、図１２に示すようにセルクラス２７０によりＧＵＩ  ２００が応答する。
ナビゲーションオブジェクト選択ダイアログボックス４００が表示され、そのダイアログボックス４００からユーザはマウスを使用してナビゲーションオブジェクトに関連付けられた名前を選択することができる。
図１２に例示するように、ユーザは、名前「Ｒ１０」を選択済みで、「ＯＫ」ボタン４０４をクリックして選択を確認しようとしている。
【０１５４】
図１２に示すように、ユーザがナビゲーションオブジェクトに関連付けられた名前を選択している場合、たとえば図１３に示すようにセルクラス２７０によりＧＵＩ  ２００が応答する。
ナビゲーションツリー１４は名前「Ｒ１０」に関連付けられたナビゲーションオブジェクトが選択されたことを示していて、そのためツリー１４でラベル２５２が強調表示されている。
【０１５５】
ビューパネル２０には、現在選択されている「Ｒ１０」ナビゲーションオブジェクトに関連付けられたビジュアルコンポーネント５００が表示されている。
本実施形態では、ビジュアルコンポーネント５００は、組織名「Ｒ１０」に関連付けられたナビゲーションオブジェクトの前述のパネル表示コンポーネントである。
【０１５６】
前述のように、ユーザは、パネルタブ２２によりＵＩが本アプリケーション用に提供する複数のパネルから選択を行うことができる。
したがって、ユーザは、たとえば、「Ｒ１０」という名前の組織に関連付けられたナビゲーションオブジェクトが単独で表セルに格納されている場合に使用可能なパネル情報と同一のパネル情報を表示することができる。
【０１５７】
前述のクラス２７０は、ユーザが表セル内に格納されている複数のナビゲーションオブジェクトの１つに対するビジュアルコンポーネントを選択できるようにするコンピュータに実施されたメソッドを実現していると見ることができる。
具体的には、ナビゲーションオブジェクトを表す文字列リストは、表セル内のラベルに含まれていて、ユーザはラベルを使用してナビゲーションオブジェクトの１つを選択することができる。
クラス２７０は、ナビゲーションオブジェクトへのポインタを使用して、ユーザが１つのナビゲーションオブジェクトを選択できるようにしている。
【０１５８】
複数のナビゲーションオブジェクトに対してセルクラス２７０のオブジェクトが表セル内に表示される場合、セルクラス２７０のオブジェクトは、ユーザが表セルを介して１つのナビゲーションオブジェクトを選択できるようにしている。
ユーザに対して、表セルに単独でナビゲーションオブジェクトが格納され、そこから選択された場合に情報が表示されるのと同一または同様の方法で、選択されたナビゲーションオブジェクトに対するツリーリストとパネル表示含むビジュアルコンポーネントを提供することができるが、ビジュアルコンポーネントはこれらには限定されない。
したがって、ユーザは、表から直接移動して選択されたナビゲーションオブジェクトに関連する情報を表示することができる。
【０１５９】
本発明の説明は単なる例示の性格を有するもので、したがって、本発明の本質から逸脱することのない変形は本発明の範囲に含めるものとする。
そのような変形は、本発明の精神と範囲からの逸脱と見なされるものではない。
【産業上の利用可能性】
【０１６０】
本発明は、表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付けに利用可能である。
【図面の簡単な説明】
【０１６１】
【図１】本発明の一実施形態によるグラフィカルユーザインタフェース（ＧＵＩ）の画面表示である。
【図２】一実施形態によるＵＩフレームワークの機能ブロック図である。
【図３】一実施形態によるＵＩフレームワークを形成するパッケージ、クラス、インタフェースを示した図である。
【図４】一実施形態によるＢａｓｅＵＩコンポーネントを起動するときに行われる手順の流れ図である。
【図５】一実施形態によるナビゲーションオブジェクトを示した図である。
【図６】一実施形態によるグラフィカルユーザインタフェース（ＧＵＩ）の画面表示である。
【図７】一実施形態による表セル内にナビゲーションオブジェクトを格納する方法の流れ図である。
【図８】一実施形態によるヒントを表示したグラフィカルユーザインタフェース（ＧＵＩ）の画面表示である。
【図９】一実施形態による表セルに格納されたナビゲーションオブジェクトの状況依存アクションのポップアップメニューの表示方法の流れ図である。
【図１０】一実施形態によるプルライトメニューとポップアップメニューを表示したグラフィカルユーザインタフェース（ＧＵＩ）の画面表示である。
【図１１】一実施形態によるナビゲーションオブジェクトを介してデータモデルに関連付けられたビジュアルコンポーネントの表示方法の流れ図である。
【図１２】一実施形態によるナビゲーションオブジェクト選択ダイアログボックスを表示したグラフィカルユーザインタフェース（ＧＵＩ）の画面表示である。
【図１３】一実施形態によるビジュアルコンポーネントを表示したグラフィカルユ
【符号の説明】
【０１６２】
１０・・・グラフィカルユーザインタフェース（ＧＵＩ）、
１４・・・ナビゲーションツリー、
１６・・・メインウィンドウ、
１８・・・タブ、
２０・・・ビューパネル、
２２・・・タブ、
２４・・・進む／戻るボタン、
２６・・・状況依存ボタン、
２８・・・状況非依存ボタン、
３０・・・ログパネル、
３２・・・タブ、
５０・・・クライアントフレームワーク、
４８・・・ストレージ管理クライアントアプリケーション、
５２・・・ＢａｓｅＵＩ（基本ＵＩ）コンポーネント、
５４・・・追加クライアントＵＩコンポーネント、
５８〜６６・・・パッケージクラス、
６８・・・クラス、
７０・・・インタフェース、
１０２〜１０６・・・メソッド、
２００・・・ＧＵＩ、
２３８・・・ツリーオブジェクト、
２３４・・・表、
２４２・・・表オブジェクトの行、
２４２ａ〜２４２ｃ・・・オブジェクト、
２４４・・・文字による説明の表示、
２４８・・・アイコン、
２５０・・・名前、
２４６，２５２，２５４・・・ラベル、
２６０，２６６・・・アイコン、
２６２，２６８・・・名前、
２７０・・・セルクラス、
２７４・・・ラベル、
２７８・・・文字列リスト、
２８２・・・ヒント、
２８６・・・縁、
３００・・・プルライトメニュー、
３０４・・・プルライトメニュー項目、
３０８・・・ポップアップメニュー、
４００・・・ナビゲーションオブジェクト選択ダイアログボックス、
４０４・・・「ＯＫ」ボタン４０４、
５００・・・ビジュアルコンポーネント、
【図１】
2004158004.tif 000003
【図２】
2004158004.tif 000004
【図３】
2004158004.tif 000005
【図４】
2004158004.tif 000006
【図５】
2004158004.tif 000007
【図６】
2004158004.tif 000008
【図７】
2004158004.tif 000009
【図８】
2004158004.tif 000010
【図９】
2004158004.tif 000011
【図１０】
2004158004.tif 000012
【図１１】
2004158004.tif 000013
【図１２】
2004158004.tif 000014
【図１３】
2004158004.tif 000015