JP2004158004A - 表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付け - Google Patents

表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付け Download PDF

Info

Publication number
JP2004158004A
JP2004158004A JP2003357514A JP2003357514A JP2004158004A JP 2004158004 A JP2004158004 A JP 2004158004A JP 2003357514 A JP2003357514 A JP 2003357514A JP 2003357514 A JP2003357514 A JP 2003357514A JP 2004158004 A JP2004158004 A JP 2004158004A
Authority
JP
Japan
Prior art keywords
navigation
component
navobject
class
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2003357514A
Other languages
English (en)
Inventor
Richard Hagarty Jr
リチャード・ハガーティ・ジュニア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004158004A publication Critical patent/JP2004158004A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

【課題】 表セル内の複数のオブジェクトをビジュアルコンポーネントへ関連付ける。
【解決手段】 本発明に係る表示システムは、グラフィカルユーザインタフェース(GUI)(10)を使用してデータを表示し、ナビゲーションオブジェクトを使用してデータモデルをGUIの少なくとも1つのビジュアルコンポーネント(500、14)に関連付け、複数の該ナビゲーションオブジェクトを表(234)のセルに格納するように構成されたコンピュータとメモリを備えるデータ表示システムであって、ナビゲーションオブジェクトへのポインタを使用して、ナビゲーションオブジェクトの1つに対するビジュアルコンポーネント(500、14)を表示するように構成されている。
【選択図】図12

Description

本発明は、表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付けに関する。
データネットワークとデータストレージシステムは、どちらも、さまざまな機能をさまざまなユーザに提供する。
そのようなシステムの複雑さが増すと、システム管理者が容易にシステムを保守し拡張できることの重要性も増大する。
システム開発者が必要とされるシステムの機能を迅速にそして容易に提供できることも重要である。
Java Coreフレームワーク(Javaコア)をユーザインタフェース(UI)フレームワークで使用することで、コンポーネントベースのアプリケーションアーキテクチャをシステム開発者が提供できるようにするコンポーネント関連機能用のインフラストラクチャを利用することができる。
動的コンポーネントローディングにより、機能の範囲を実行時に決定可能な拡張可能アプリケーションを実現することができる。
コンポーネントのブローカリングとルックアップにより、コンポーネントは互いのサービスを使用することができる。
コンポーネントの自動更新とダウンロードにより、クライアント/サーバ関係の自己更新だけでなく、ジャストインタイムのコンポーネント配信も可能になる。
Javaコアにより、コンポーネントの集合であるアプリケーションの構築が可能になる。
Javaコアにより、既存のコンポーネントを「混合し、組み合わせること」により構築して所望の機能を提供可能なカスタムアプリケーションの迅速な開発も可能になる。
Javaコアコンポーネントは、Hewlett-Packard Companyによるphluidにより拡張可能である。
Phluid(「Platform for hierarchical data user interface development」)は、グラフィカルユーザインタフェースを持つJavaアプリケーション構築用の統合フレームワークである。
phluidにより拡張されたJavaコアコンポーネントは、ユーザアプリケーション用のグラフィカルユーザインタフェース(GUI)の開発に特に有用である。
そのようなアプリケーションは、一般に、アイコン、ツリー、リストなどのGUIビジュアルコンポーネントを使用してデータとメニューを表示して、ユーザがデータの表示と使用のためにさまざまな状況を切り替えることができるようにする。
そのような機能へのユーザによるアクセスを容易にするために、データモデル内のオブジェクトとユーザが選択可能なビジュアルコンポーネントとの間の関連を表すナビゲーションクラスを定義することができる。
そのようなクラスをインスタンス化してナビゲーションオブジェクトを作成することができる。
ナビゲーションオブジェクトは、ナビゲーションツリーおよび/またはパネル表内に表示可能なデバイスアイコンと名前を持つラベルとしてアプリケーション内で表示することができる。
ナビゲーションオブジェクトは、表セル内に格納して、たとえば関連するデータを並べ替えたりその概要を作成することが可能である。
ナビゲーションオブジェクトがパネル表内にラベルとして表示される場合、ユーザは、オブジェクトラベルをマウスで右クリックして状況依存アクションを実行することができる。
ナビゲーションツリー内にオブジェクトラベルが表示される場合は、ユーザはオブジェクトラベルをマウスでダブルクリックして、選択されたオブジェクトにナビゲーションツリーを切り替え、そのオブジェクトに関連付けられた1つまたは複数のパネルを表示することができる。
状況によっては、2つ以上のナビゲーションオブジェクトが表セルに格納されることもある。
たとえば、ストレージエリアネットワーク管理に使用されるGUIでは、同様なストレージデバイスに関連付けられたナビゲーションオブジェクトのグループを、グループ化されたデバイスに関連付けられたセルに格納することができる。
そのような場合、デバイス名の文字列リストを使用して、セルに格納されたナビゲーションオブジェクトを表すことができる。
文字列リストが表示されると、ユーザはそれを読んでセルに含まれるデバイスを判定することができる。
しかし、その場合、文字列リストが2つ以上のナビゲーションオブジェクトを表している。
そのため、ユーザは、表セルを介すことで各ナビゲーションオブジェクトに直接アクセスすることにより状況依存アクションを表示すること、かつ/または状況依存アクションを行うことができない。
一実施形態における本発明は、表セル内の複数のナビゲーションオブジェクトの中の1つに対して、ユーザがビジュアルコンポーネントを選択できるようにするコンピュータにより実施される方法を対象とする。
本方法は、ナビゲーションオブジェクトへのラベルとポインタを使用してユーザがナビゲーションオブジェクトの中の1つを選択できるようにする。
本発明を適用可能なその他の領域は、以降に記載する詳細な説明から明らかになるであろう。
詳細な説明と具体的な例は、単に説明を目的としたものであり、本発明の範囲を制限することを意図したものではないことを理解されたい。
本発明は、詳細な説明と以下の添付の図面により完全に理解されるであろう。
本発明によれば、表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付けが可能となる。
以下の説明は、実質的に例示に過ぎず、いかなる点においても、本発明、本発明の適用対象または用途を限定することを意図するものでは全くない。
本発明では、Javaコアコンポーネント上のphluid層を参照して説明している実施形態もあるが、本発明はそれに限定されてはいない。
Javaおよび/または他のオブジェクト指向プログラミング言語とシステムを使用かつ/または拡張することで、本実施形態に関連して説明する機能を提供する実施形態について説明する。
さらに、本発明は、ストレージエリアネットワーク(SAN)用のストレージ管理アプリケーションと関連して以下で説明しているが、そうすることで、そのようなアプリケーションの機能が、本発明の実施形態を説明する状況を提供している。
しかしながら、当業者には、本発明はSANと併せての使用に限定されないことは明らかであろう。
また、実施形態は、本明細書中ではユーザインタフェースフレームワークに関連して説明されているが、本発明はそのように限定されないことにも注意すべきである。
当業者には、本発明の実施形態は、GUIが使用される他のシステムおよび/またはネットワークと関連して実施可能なことは明らかであろう。
図1を参照すると、ユーザインタフェース(UI)フレームワークは、ブラウザスタイルのグラフィカルユーザインタフェース(GUI)10を持つJavaアプリケーションを構築するためのプラットフォームを提供する。
UIフレームワークにより、独立したソフトウェアコンポーネントを統合して単一のGUIベースのアプリケーションとすることができる。
ブラウザスタイルGUI 10は、メインウィンドウ16内のナビゲーションツリー14内のオブジェクトの階層を含む。
ツリーリスト14の代替版では、タブ18を使用した選択することもできる。
現在選択されているツリーオブジェクトに関してデータを表示するビューパネル20は、メインウィンドウ16内のツリー14の横に提示される。
ビューパネル20は、タブ22を使用して調整することもできる。
さらに、ブラウザスタイルのナビゲーションが、進む/戻るボタン24により提供されている。
状況依存ボタン26と状況非依存ボタン28も提供されている。
ログパネル30は、たとえばイベントを表示するために「ログ」形式の表示を行う。
タブ32により、ログパネル30に表示される情報を調整することができる。
UIフレームワークは、特定の製品機能を独立したコンポーネントへカプセル化することを促進する拡張可能なソフトウェアプラットフォームを提供する。
したがって、同一のアプリケーションを様々にインストールすることによって機能を変えることができる。
UIフレームワークの機構には、共通のナビゲーションモデル、関連するツールへの1箇所からのアクセス、状況に固有の起動ポイントが含まれる。
UIフレームワークは、多くのアプリケーションの実施の態様に共通のサービスを提供する。
これらのサービスには、メインアプリケーションフレーム、ナビゲーション、ツールバー、メニュー、ログと警告の出力、オプションと環境設定が含まれる。
UIフレームワークは、Java Swingコンポーネント上に構築されたツールの集合を提供することでGUI 10をサポートするJavaクラスライブラリである。
UIフレームワークは複数のアプリケーションの機能を1つのクライアントアプリケーションに統合する。
設計にあたっては、ビジュアルエレメントを適度に緊密に統合することが好ましいが必須ではない(たとえば、さまざまな製品の項目を同一のメニュー、ツリービュー等に追加可能)。
UIフレームワークは、Java Coreフレームワーク(Javaコア)により提供される機能上に構築される。
Javaコアは、分散アプリケーションに「プラグイン」されるアプリケーション機能の開発用の標準フレームワークを提供するJavaクラスライブラリである。
Javaコアコンポーネントは、従来のJavaアプリケーションに似ていて、GUIを作成可能で、コンソール入力と出力を行う。
しかし、Javaコアコンポーネントは、main(メイン)()メソッドを実施しない。
代わりに、Javaコアコンポーネントは、Javaコア基本コンポーネントクラスを拡張するクラスを実施する。
このクラスでは、Javaコアコンポーネントは、initialize(初期化)()という名前のメソッドをオーバーライドする。
このメソッドは、アプリケーションのmain()と同等である。
このメソッドでは、コンポーネントは、コンポーネントのジョブを行うのに必要な場合は、追加オブジェクトを作成するかスレッドを開始することができる。
エントリをコンポーネントデータベース(DB)ファイルに作成することで、コンポーネントが動的にロードされる。
エントリの作成は、正しい情報と名前付け規則を持つファイルを適切なディレクトリに「投入する」ことにより達成することができる。
すると、Component Manager(コンポーネントマネージャ)オブジェクトがコンポーネントに初期化メソッド内で渡される。
コンポーネントは、他のピアコンポーネントやリモートサーバコンポーネントへの参照を取得するのにこのオブジェクトを使用することができる。
コンポーネントには、コマンドラインの引数がアプリケーションの動作を構成するのに使用されるように、コンポーネントの動作を構成するのに使用可能なプロパティツリーも渡される。
図2を参照すると、UIフレームワークのアーキテクチャは、たとえばJavaコアクライアントフレームワーク50を含むストレージ管理クライアントアプリケーション48を含む。
クライアントフレームワーク50は、UIコンポーネント用のデータモデルを提供するストレージ管理サーバ(非図示)に接続される。
フレームワークには、BaseUI(基本UI)コンポーネント52といくつかの追加クライアントUIコンポーネント54が含まれる。
UIフレームワークのBaseUIコンポーネント52は、図1の基本アプリケーションウィンドウ16と共通UIサービスの集合を提供するJavaコアコンポーネントである。
UIサービスは、ナビゲーション、一般構成、ツールバー、メニューバー、ヘルプ、図1に示したようなその他のGUI機能を含む。
BaseUIコンポーネント52は、ストレージ管理に固有の機能を提供する必要はなく、たとえば空のシェルとすることもできる。
クライアントフレームワークの一部である他のJavaコアコンポーネント54は、BaseUIコンポーネント52にプラグインされ、特定の製品機能とビジュアルコンテンツを提供することができる。
複数の製品が、ビューパネル20、ログパネル30などの基本アプリケーションパネルを共有することができるが、その代わりに特定の製品のウィンドウを有する別のツールを起動することもできる。
ストレージノード管理(SNM)コンポーネント54により提供されるUI機能は、BaseUIコンポーネントに統合されるJavaコアコンポーネントの集合により実施可能である。
一実施形態では、SNM機能は、トポロジマップ、イベント表示、デバイス管理の起動を含む。
BaseUIコンポーネント52は、ナビゲーションツリーとビューパネル内に提示されたオブジェクトの基本ナビゲーションを行う。
BaseUIコンポーネント52は、コンポーネントがポップアップメニュー項目をツリーオブジェクトとビューパネルオブジェクトに統合できるようにする。
BaseUIコンポーネント52は、ボタンをツールバーに追加し、メニューをメニューバーに追加できるようにもする。
また、BaseUIコンポーネント52は、コンポーネントが項目をログパネル領域とステータスバー領域(非図示)に表示できるようにする。
BaseUIコンポーネント52が提供する1つのサービスとして、ユーザに選択された項目のナビゲーションがある。
メインアプリケーションフレームのナビゲーションツリー、ナビゲーションコントロール、およびビューパネル領域は、ナビゲーションを処理するビジュアルコンポーネントである。
BaseUIコンポーネント52は、1つまたは複数の階層ナビゲーションオブジェクトを保持する。
具体例としては、データモデル内のオブジェクトとユーザが選択可能なビジュアルコンポーネントとの関連を表現するクラスNavObject(ナビゲーションオブジェクト)が定義されている。
ナビゲーションオブジェクト(NavObject)は、クラスNavObjectのインスタンスである。
ナビゲーションツリービジュアルコンポーネントのノードは、NavObjectを表している。
一実施形態では、BaseUIコンポーネント52は、どのようなNavObjectオブジェクトも直接作成することはなく、アプリケーション内のすべてのNavObjectは、他のJavaコアクライアントコンポーネント54によりBaseUIコンポーネント52に渡される。
NavObjectの下位のモデルは、任意のオブジェクトとすることができる。
たとえば、下位のモデルは、ホストやストレージデバイスなどのストレージ管理データモデル内のオブジェクトとすることができる。
NavObjectのモデルは、他のNavObject項目のリストとすることが可能で、たとえば、ストレージドメイン内のすべてのホストの集合を表すリストとすることができ、それによりツリー内に複数のホストを表すノード(a hosts node)があるようにすることができる。
アプリケーションフレームのビューパネル領域には、現在選択されているNavObjectに対応したビジュアルコンポーネントが含まれる。
NavObjectの実施は、1つまたは複数のパネルを提供するファクトリメソッドを有する。
パネルが1つだけの場合、パネルはビューパネル領域に直接表示される。
パネルが1つ以上ある場合、それらのパネルはタブ付きのパネルとして表示される。
さらに、他のコンポーネントがパネルをViewPanelContirbutor(ビューパネルコントリビュータ)として登録することで、パネルをNavObject表示に追加することができる。
図1に示すように、NavObjectオブジェクトは、階層構造に編成して、ナビゲーションツリー14に表示することができる。
各々が独立した状況を表す複数のNavObjectツリーがアプリケーションに存在することもある。
状況は、同様のNavObjectの階層の観点を区別するのに使用することができる。
たとえば、ストレージエリアネットワークコンポーネントをトポロジの状況で提示することが可能で、その場合、ツリー14の各ノードは、トポロジ内のコンポーネントを表す。
別の状況では、同一のデバイスが「在庫」階層で提示され、その場合、フォルダはホスト、スイッチ等の同様オブジェクトのグループを表す。
状況は、ユーザがナビゲーションツリーパネル14内のナビゲーション状況タブ18を使用して選択可能である。
以下で更に説明するように、NavObjectが選択されると、BaseUIコンポーネント52は、オブジェクトのビューパネルを作成する。
BaseUIコンポーネント52は、オブジェクトに対して定義された基本ビューパネルを返すNavObject内のメソッドを呼び出してビューパネルを作成することができる。
BaseUIコンポーネント52は、選択されたNavObjectのインスタンスに対するViewPanelContributorとして登録されている全てのUIコンポーネント内のメソッドを呼び出してビューパネルを作成することもできる。
NavObjectの実施は、基本タブの集合を提供する。
たとえば、一般ストレージデバイスのNavObjectは、使用率のグラフを示すパネルと論理ユニット番号(LUN)のリストを示す別のパネルを提供する。
UIコンポーネントは、ViewPanelContributorとして登録することでタブを特定のNavObjectに追加し、追加のタブを使用可能にする。
たとえば、パフォーマンス監視コンポーネントを登録することで、追加のタブをそのパフォーマンス情報を有するストレージデバイスに提供することができる。
一実施形態のビューパネル20は、Java JPanel(Jパネル)オブジェクトにより表される。
ビューパネルのコンテンツ間を通したハイパーリンクスタイルのナビゲーションに対応するために、BaseUIコンポーネント52は、ビジュアルオブジェクトまたはコンポーネントの集合を提供することでNavObjectを表す。
これらのオブジェクトまたはコンポーネントは、ナビゲーションのために選択され、「右クリック」されると、NavObjectについての状況依存メニューまたは「ポップアップ」メニューを表示する。
NavObjectを表すのに使用可能なコンポーネントの例は、NavObjectLabel(ナビゲーションオブジェクトラベル)クラスである。
このクラスは、NavObjectの名前とアイコンを表示するラベルに関連付けられている。
そのようなラベルがクリックされると、NavObjectLabelクラスはメッセージをBaseUIコンポーネント52に送り、ラベルに関連付けられているNavObjectを選択する。
ビューパネル20を実施する開発者は、NavObjectLabelラベルを使用してパネルの内容をNavObjectにリンクする。
BaseUIコンポーネント52は、特定のナビゲーション機能を扱う。
NavObjectLabelクラス以外に、以下でさらに説明するように、表とリストのコンポーネントもナビゲーション機能を提供する。
NavObjectは、状況依存ポップアップメニューを有する。
省略時のメニュー項目には、「表示」、「新規ウィンドウに表示」などの基本ナビゲーション操作が含まれる。
さらに、UIコンポーネントをNavObjectに対するPopupContributor(ポップアップコントリビュータ)として登録することでカスタムメニュー項目を追加することができる。
たとえば、NavObject用のアイコンがマウスの右ボタンで選択されると、BaseUIコンポーネント52は、省略時項目と登録されたPopupContributorオブジェクトが提供するすべての項目を含むポップアップメニューを作成する。
ログパネル30は、UIコンポーネントをメインウィンドウ上に配置可能なカスタム表示用である。
表示例としては、イベントリストや出力ログがある。
ログパネル30にデータを送るために、UIコンポーネントはBaseUIコンポーネント52内のメソッドを呼び差し、SwingJpanel(Swing Jパネル)をパラメータとして渡す。
UIコンポーネントは、パネル30内のオブジェクト上のすべてのイベントを処理する役割を有する。
複数のコンポーネントがログパネルをBaseUIコンポーネント52に登録している場合、タブ付きペイン32を使用してユーザは所望のログパネルを選択することができる。
UIフレームワークは、カスタマイズと環境設定のための機能を提供する。
これらの機能には、グローバル構成データベースと、コンポーネントの開発者が環境設定パラメータにアクセスできるようにするアプリケーションプログラミングインタフェース(API)が含まれる。
一実施形態では、3つの独立したJava coreクライアントコンポーネントは、トポロジマップ54−1、デバイス管理の起動54−2、およびイベント表示54−3の機能を提供することにより、ストレージノード管理機能をクライアントアプリケーションに統合する。
トポロジマップコンポーネント54−1は、ストレージドメイン内の相互接続された要素のマップを表す。
トポロジマップコンポーネント54−1は、ストレージノード管理アプリケーション内の1つまたは複数のナビゲーションツリーに対応するNavObjectオブジェクトの階層を作成する。
これらのオブジェクトは、BaseUIコンポーネント52の「トポロジ」の状況に追加される。
各オブジェクトのビューパネルは、対応するマップを表すSwingコンポーネントである。
トポロジマップパネル内のアイコンは、ナビゲーションイベントと選択イベントを発生させ、ユーザアクティビティをBaseUIコンポーネント52に通知するSwingコンポーネントである。
BaseUIコンポーネント52は、そのナビゲーション機能によりポップアップによる選択とドリルダウンによる選択を処理する。
図3を参照すると、UIフレームワーク56は、複数のJavaパッケージにより実施される。
各パッケージは、1つまたは複数のインタフェースと1つまたは複数のクラスを含む。
パッケージは、統合つまりphluidパッケージ58、BaseUIつまりphluid.base(phluid.基本)パッケージ60、構成つまりphluid.config(phluid.構成)パッケージ62、ビジュアルエレメントつまりphluid.widget(phluid.ウィジェット)パッケージ64、表つまりphluid.widget.table(phluid.ウィジェット.表)パッケージ66を含む。
パッケージ58〜66は、クラス68−1、68−2、...、68−nおよび/またはインタフェース70−1、70−2、...、および70−nを含む。
当然、使用可能なパッケージを増減することができる。
パッケージ58、60、62、64、66は、Javaコアコンポーネント上の層として機能し、Javaコアコンポーネントを拡張する。
phluidパッケージ
phluidパッケージ58は、統合に使用されるコアクラスを定義するUIフレームワークパッケージである。
phluidパッケージ58内のクラス70−1は、可視のUI要素ではなく、標準オブジェクトの定義と、UIフレームワークの下層のデータ構造へのアクセスに使用されるインタフェースの定義に使用される。
phluidパッケージ−インタフェース
phluidパッケージ58は、以下のインタフェース68−1を含む。
AppController(アプリケーションコントローラ)は、メインアプリケーションの動作を制御するクラス用のインタフェースである。
BaseUIは、アプリケーションプラットフォームを実施するアプリケーション用のインタフェースである。
アプリケーションコンポーネントは、このインタフェースを使用してそれらのGUIコンポーネントをメインアプリケーションに統合する。
Config(構成)は、一般構成情報へのアクセスのためのインタフェースである。
構成パラメータは、階層構造に編成された属性である。
各子レベルは、サブ構成と呼ばれる。
レベルは、名前を表す文字列内ではドットで区切られている。
MenuBarContributor(メニューバーコントリビュータ)は、アプリケーションウィンドウのメニューバーにメニューとメニュー項目を提供するオブジェクトのためのインタフェースである。
MenuContainer(メニューコンテナ)は、メニューの「コンテナ」を定義するインタフェースである。
なお、これは、可視のコンポーネントではなく、java.awt.Containerクラスやjava.awt.MenuContainerクラスには関係していない。
メニューコンテナは、File(ファイル)メニュー、Edit(編集)メニュー、View(表示)メニュー、Tool(ツール)メニュー、およびHelp(ヘルプ)メニューを含んでいる。
NavContainer(ナビゲーションコンテナ)は、ナビゲーションの状況の集合(NavObjectの階層)を含む「コンテナ」を定義するインタフェースである。
なお、これは、可視のコンポーネントではなく、java.awt.Containerクラスには関係していない。
NavObjectFilter(ナビゲーションオブジェクトフィルタ)は、NavObjectのさまざまな型に区別されるクラスのためのインタフェースである。
NavObjectSelectionListener(ナビゲーションオブジェクト選択リスナ)は、ユーザが表示するためにNavObjectを選択したという通知を受け取ることに関連したクラスのインタフェースである。
NavSelector(ナビゲーションセレクタ)は、ナビゲーション用のNavObjectの選択を制御するクラスのインタフェースである。
NavTreeEventListener(ナビゲーションツリーイベントリスナ)は、ツリーのノードの展開/折りたたみなどのNavTree(ナビゲーションツリー)イベントとキーボードイベントを検知することに関連したオブジェクトのインタフェースである。
PopupContributor(ポップアップコントリビュータ)は、NavObject用に項目をポップアップメニューに追加するオブジェクト用のインタフェースである。
ViewPanelContributor(ビューパネルコントリビュータ)は、タブをNavObjectビューパネルに追加するオブジェクト用のインタフェースである。
phluidパッケージ−クラス
phluidパッケージ58は、以下のクラス70−1を含む。
CachedViewPanelTab(キャッシュされたビューパネルタブ)は、そのビューパネルのインスタンスを作成時にキャッシュして、あるNavObjectから別のNavObjectに切り替えるときに時間を節約する機能を提供する抽象化されたビューパネルの派生物である。
EventMap(イベントマップ)は、コンポーネントブートストラップシーケンス用のフレームワークにより使用されるイベントを定義する。
StandardUIComponent(標準UIコンポーネント)クラスを拡張するコンポーネントは、EventMapを直接使用する必要はない。
NavContext(ナビゲーション状況)は、NavObjectのグループの状況を定義するクラスである。
状況は、階層状態であり、複数のルートを含むことができる。
NavObjectは、第1または第2にフラグを設定することができる状況である。
第2オブジェクトは、階層中に存在するが、このクラスが実施するTreeModel(ツリーモデル)インタフェースメソッドの対象とは見なされない。
したがって、第2オブジェクトは、JTree(Jツリー)中には現れない。
前述のように、NavObjectは、ユーザアクションによりナビゲートされ得るオブジェクトのクラスである。
ただし、NavObjectは可視コンポーネントではない。
このクラスは、データモデルとその可視UIコンポーネントとの間の関連付けを作成する。
このクラスはComparable(比較可能)を実施するため、NavObjectの表現を表などに容易に並べ替えることができる。
NavObjectSelectionEvent(NavObject選択イベント)は、NavObjectが選択されたことを示すイベントである。
NavObjectTreeNode(NavObjectツリーノード)は、NavContextのツリー階層内の親−子のリンクを保持する。
リソースは、UIリソースの管理に使用される。
このクラスは、標準のJava ResourceBundle(リソースバンドル)とほぼ同一であるが、リソースバンドル中でイメージの位置を指定可能な追加のメソッドを提供することが異なる。
StandardUIComponentは、UI要素を有するJavaコアクライアントコンポーネント用の基本クラスである。
このクラスは、開発者の便宜のために提供されている。
このクラスは、UIコンポーネントブートストラップシーケンスの詳細を処理する。
アプリケーションクライアントコンポーネントは、このクラスを拡張することができる。
ToolGroup(ツールグループ)は、ツールバー形式で、JComponent(Jコンポーネント)のグループを表示するパネルである。
このクラスには、「ツールバー」の代わりに「グループ」という名前が付けられるため、Java SwingのJtoolBarと混同することはない。
ViewPanelTab(ビューパネルタブ)は、NavObject用にビューパネルに表示されるタブを定義するクラスである。
パッケージ phluid.base
phluid.baseパッケージ60は、BaseUIインタフェースおよびサポートするクラスの実施を行う。
パッケージphluid.base−インタフェース
phluid.baseパッケージ60は、以下のインタフェース68−2を含む。
ConnectionStatusListener(接続ステータスリスナ)は、クライアントアプリケーションとサーバアプリケーションとの間の接続性の現在の状態について通知を受け取ることに関連したクラスのインタフェースである。
NavWindow(ナビゲーションウィンドウ)は、自身のナビゲーション状態を有する任意のウィンドウ用のインタフェースである。
パッケージphluid.base−クラス
phluid.baseパッケージ60は、以下のクラス70−2を含む。
AboutDialog(バージョン情報ダイアログ)は、全てのJavaコアClientComponent(クライアントコンポーネント)のバージョン情報を表示するJDialog(Jダイアログ)である。
AppWindowは、メインアプリケーションウィンドウとして使用するのに適した基本ウィンドウである。
BaseUIコンポーネント52は、BaseUIインタフェースを提供するJavaコアクライアントコンポーネントである。
StandardBaseUI(標準基本UI)は、BaseUIインタフェースを実施するクラスである。
BaseWindow(基本ウィンドウ)は、アプリケーションの基本ウィンドウである。
ChildWindoow(子ウィンドウ)は、アプリケーションのBaseWindowのNavObjectを個別に表示するウィンドウである。
ContentPanel(コンテンツパネル)は、現在選択されているNavObjectのビューパネル(複数可)を表示する。
NavButtons(ナビゲーションボタン)は、戻る、進む、上へのナビゲーションボタンを表示するToolGroup(ツールグループ)である。
NavPanel(ナビゲーションパネル)は、NavTreeを含むJPanel(Jパネル)である。
SelectionPoster(選択ポスタ)は、Swingスレッドから選択イベントを発生させるのに使用される。
StandardNavSelector(標準ナビゲーションセレクタ)は、選択の全ての履歴を保持して、選択された状況と選択されたNavObjectがいかなる状況でも常に存在することを保証するNavSelectorインタフェースの標準実施である。
ToolPanel(ツールパネル)は、すべてのツールバー項目を含むJPanelである。
ViewMenu(表示メニュー)は、進む、戻る、上へなどのナビゲーション機能を取り扱うメニューである。また、履歴ログも保持する。
パッケージphluid.config
phluid.configパッケージ62は、phluid.configインタフェース68−3の実施を定義する。
クラス70−3、LocalPropertyDBConfig(ローカルプロパティDB構成)、は、JavaコアPropertyDB(プロパティDB)を取り扱うことができるphluid.Configインタフェースを実施する。
パッケージphluid.widget
phluid.widgetパッケージ64は、ビジュアルエレメント用のルートパッケージであり、UIコンテンツの開発に使用可能なクラスをサポートする。
パッケージphluid.widget−インタフェース
phluid.widgetパッケージ64は、以下のインタフェース68−4を含む。
ProcessBusyIndicator(プロセスビジーインジケータ)は、現在ビジー状態にある可能性のある任意のプロセスについてのコントリビュータ情報を(ステータスバーなどに)表示することが必要なクラス用のインタフェースである。
TableHeaderResizedListener(表ヘッダサイズ変更リスナ)は、表の列ヘッダのサイズが変更されたときに通知を受けるリスナである。
ToggleBoxSelectionListener(トグルボックス選択リスナ)は、ToggleBox(トグルボックス)の状態が変化したときに通知を受けるリスナである。
パッケージphluid.widget−クラス
phluid.widgetパッケージ64は、以下のインタフェース70−4を含む。
BaseDialog(基本ダイアログ)は、標準ダイアログの作成を簡略化するメソッドおよび/または制御を提供するjavaxswing.JDialog(Javaxswing.Jダイアログ)の拡張である。
BrowserLauncher(ブラウザランチャー)は、所与のURLに対する省略時Webブラウザの開始をカプセル化するクラスである。
CheckBoxBox(チェックボックスボックス)は、複数のJCheckBox(Jチェックボックス)コンポーネントをグループ化するSwingコンポーネントである。
CheckListPanel(チェックリストパネル)は、JScrollPane(Jスクロールペイン)内にチェックボックスを有するJList(Jリスト)を実施するヘルパークラスである。
ChooserPanel(チューザーパネル)は、標準の「チューザー」ダイアログボックスを実施するヘルパークラスである。
標準の「チューザー」ダイアログボックスには、選択可能な可能な項目のリストと、選択された項目のリストとの2つの項目のリストが表示される。
リスト内の項目は、2つのリストの間で相互に移動可能である。
ControlButton(コントロールボタン)は標準のコントロールボタンを定義する。
カーソルは、NavObject上にマウスを移動したときに使用されるカーソルなどの標準のカーソルを定義する。
FormCancel(フォームキャンセル)は、ESCキーの押し下げをダイアログボックスのキャンセルアクションとして認識するJavaキーアダプタである。
FormColumn(フォーム列)は、フォームとダイアログボックスの構築に有用なJPanelコンビニエンスラッパである。
FormFieldは、文字フィールドをフォーム内に配置するのに有用なウィジェットである。
FormLabel(フォームラベル)は、フォーム内に大きさの指定されたラベルを配置するのに有用なコンビニエンスJLabelラッパである。
FormRow(フォーム行)は、フォームとダイアログボックスの構築に有用なJPanelのコンビニエンスラッパである。
I18nOptionPane(I18nオプションペイン)は、JOptionPane.showMessageDialog()(Jオプションペイン.メッセージダイアログ表示)とJOptionPane.showConfirmDialog()(Jオプションペイン.確認ダイアログ表示)用の国際化対応ラッパである。
NavObjectImageMap(NavObject画像マップ)は、画像の各部をNavObjectに関連付ける「画像マップ」である。
指定された部分でのマウスイベントにより、適切なアクション(たとえば、選択、ポップアップメニュー)が起動される。
クラスNavObjectLabel(NavObjectラベル)は、マウスの対象上への移動によるカーソルの変更、選択、ポップアップメニューを処理するNavObjectを表示するための基本コンポーネントである。
NavObjectTable(NavObjectの表)は、セルのデータを表示するためにさまざまなカスタマイズが可能な並べ替え可能な表である。
これには、NavObjectを含む列、TableCellMap(表セルマップ)を有する列、FilteredTableModel(フィルタ処理済み表モデル)によりフィルタリングされたデータのサポートが含まれる。
NavTree(ナビゲーションツリー)は、NavContextの表示に使用可能なJTreeの拡張である。
ツリーのノードは、NavObjectTreeNodes(NavObjectツリーノード)のインスタンスである。
PropertyTable(プロパティ表)は、名前/値の対の表示に有用な基本的な2列の表である。
なお、このクラスはJTable(J表)の拡張ではない。
RadioButtonBox(ラジオボタンボックス)は、複数のJRadioButton(Jラジオボタン)コンポーネントをグループ化して1度に1つだけ選択可能にするSwingコンポーネントである。
ResizableLabel(サイズ変更可能ラベル)は、サイズが変更可能なJLabel(Jラベル)を作成する。
RolloverButton(ロールオーバーボタン)は、マウスがその上にあるときに強調表示されるボタンである。
RolloverToggleButton(ロールオーバートグルボタン)は、マウスがその上にあるときに強調表示されるトグルボタンである。
ShiftedIcon(シフトアイコン)は、カスタマイズされた配置用のオフセット値を含むIconである。
SmartPopupMenu(スマートポップアップメニュー)は、自動的にその配置をシフトしてすべての内容が(表示境界内に)表示されるようにするJpopupMenu(Jポップアップメニュー)である。
Splash(スプラッシュ)はアプリケーションの「スプラッシュ」ウィンドウを作成するためのUtility(ユーティリティ)クラスである。
StandardTable(標準表)はヘッダサイズ変更イベントを発生させるJTableである。
SubtleBevelBorder(狭い額縁風境界)は、ボタンを強調表示するのに有用な境界である。
SummaryPanel(概要パネル)は、表と共に大きさが変化するJPanelの表と概要の行を表示するクラスである。
SwingWorker(Swingワーカ)は、専用スレッド内でGUI関連の作業を実施するためにサブクラス化可能な抽象クラスである。
SynchronizedTableHeaderPanel(同期表ヘッダパネル)は、指定された表の列サイズに同期した大きさのコンテナを有するパネルである。
このクラスのインスタンスと指定された表との間には、収容関係は存在しない。
TableHeaderResizedEvent(表ヘッダサイズ変更イベント)は、ユーザが表の列ヘッダのサイズを変更したときに発生するイベントである。
ToggleBox(トグルボックス)は、水平の行または垂直の列内で複数のJToggleButton(Jトグルボタン)コンポーネントを編成するSwingコンポーネントである。
ボタンの状態を制御し問い合わせるためにメソッドが提供されている。
属性は、複数の選択を許可するかどうかを制御する。
ToggleBoxSelectionEvent(トグルボックス選択イベント)は、ToggleBoxの状態変化を表示するのに使用されるイベントである。
ToolBarButton(ツールバーボタン)は、ToolGroups(ツールグループ)で使用するために基本ボタンである。
UpDownButton(上下ボタン)は、上/下ボタンをシミュレートし、数値を表示する文字フィールドに通常関連付けられているJPanelである。
上/下ボタンを押すと、それに応じて文字フィールドが変化する。
URLLinkedLabel(URLリンクラベル)は、マウスでクリックされたときに特定のURLでブラウザを起動するJLabelの拡張である。
WholeNumberField(整数フィールド)は、整数値を入力可能なJTextField(J文字フィールド)である。
パッケージ phluid.widget.table
phluid.widget.tableパッケージ66は、表に具体的に関連するウィジェットを含む。
パッケージphluid.widget.table−インタフェース
phluid.widget.tableパッケージ66は、表のセルをUIコンポーネントにマッピングするインタフェース68−5、TableCellMapを含む。
パッケージphluid.widget.table−クラス
phluid.widget.tableパッケージ66は、以下のクラス70−5を含む。
BooleanFilterOperation(ブールフィルタ演算)は、行を表に追加すべきかどうかを判断するのに使用される。
ChainedTableModelFilter(チェーン結合表モデルフィルタ)は、行を表に追加すべきかどうかを判断するのに使用される。
ColumnValueFilterExpression(列値フィルタ式)は、行を表に追加すべきかどうかを判断するのに使用される。
DefaultSummarizer(省略時サマライザ)は、Javaプリミティブデータ型ラッパの倍精度値を返すクラスである。
DefaultSummaryTableModel(省略時概要表モデル)は、JTableに関連する省略時の表モデルである。
このクラスは、抽象SummaryTableModel(概要表モデル)の完全な実施を提供する。
DefaultTableCellMap(省略時の表のセルマップ)は、表のセルを値にマッピングする。
FilteredTableModel(フィルタ処理済み表モデル)は、行を表に追加すべきかどうかを判断するのに使用される。
MultiFilteredTableModel(複数のフィルタ処理済み表モデル)は、行を表に追加すべきかどうかを判断するのに使用される。
NavObjectTableCell(NavObject表セル)は、NavObject用の表セルである。
NavObjectTableCellは、Comparableインタフェースを実施し、NavObject.getName()(NavObject.名前取得)から返されるString(文字列)に基づいてNavObjectを並べ替える。
SortableTableModelは、行を並べ替える方法を提供する表モデルである。
各行は、内部クラスTableRow(表の行)のインスタンスである。
表の各要素は、並べ替え用にComparableインタフェースを実施可能である。
SummaryTableModel(概要表モデル)は、並べ替え可能で、概要を作成可能な表モデルである。
概要作成機能は、合計、平均等を含む。
TableModelFilter(表モデルフィルタ)は、フィルタ機構を提供して何を表に表示するかを制限する。
TableModelFilterParseException(表モデルフィルタパース例外)は、TableModelFilterにより発生する例外である。
図4を参照すると、UIフレームワーク上に構築されたメインアプリケーションは、手順74で開始されるメソッド72を実施する。
手順76でAppController(アプリケーションコントローラ)インタフェースが実施される。
手順78で、JavaコアClientFramework(クライアントフレームワーク)が作成される。
手順80で、JavaコアClientComponent(クライアントコンポーネント)がロードされる。
手順82で、BaseUIコンポーネント52が開始される。
BaseUIコンポーネント52が開始されると、BaseUIコンポーネントは、手順86でBaseWindow(基本ウィンドウ)を作成して表示し、手順88で対象のリスナにウィンドウが作成されたことを通知する。
一実施形態では、すべての寄与コンポーネントが、StandardUIComponentを拡張するUIクラスを提供する。
このクラスは、コンポーネントをJavaコアClientComponent(クライアントコンポーネント)として自動的に登録する。
StandardUIComponentとして、寄与コンポーネントはいくつかのインタフェースを実施する。
Initialize(初期化)(...)は、コンポーネントがロードされたときにJavaコアに呼び出される。
RegisterNavContainerListeners(ナビゲーションコンテナリスナ登録)(...)は、BaseUIコンポーネント52に呼び出され、コンポーネントがNavContainerListener(ナビゲーションコンテナリスナ)として登録できるようにする。
RegisterUI(UI登録)(...)は、BaseUIコンポーネント52により呼び出され、コンポーネントが任意のUIコントリビュータ(たとえば、ツールバー、メニューバーなど)を登録できるようにする。
寄与コンポーネントは、特定のNavObjectのファクトリクリエータとしても登録可能である。
これは、NavObject型が要求され、まだ存在していない場合は、このコンポーネントがそれを作成する責任があるということである。
ポップアップメニューをNavObjectに追加するためのコンポーネントの実施は、いくつかのタスクを実行可能である。
コンポーネントは、NavContainerListenerインタフェースを実施し、PopupContributorインタフェースを実施する。
NavObjectが作成されたことが(NavContainerListenerインタフェースを介して)通知されると、コンポーネントはNavObjectにPopupContributorとして登録される。
登録されたPopupContributorとして、コンポーネントは、マウスの右クリックでNavObjectが選択されたときに通知を受ける。
この時点で、コントリビュータは、任意の追加ポップアップメニュー項目を追加して、関連するアクションリスナを登録することができる。
ポップアップメニュー項目が選択されると、登録されたアクションリスナが通知を受ける。
すべてのNavTreeオブジェクトは、NavObjectである。
NavObjectは、ツリーの任意のレベルに追加可能で、それらの関連するアイコン(NavObject.getIcon(NavObject.アイコン取得)())と名前(NavObject.getName(NavObject.名前取得)())で表現される。
NavObjectは、Comparableインタフェースを実施して、正常に並べ替えられることを保証している。
各NavObjectは、NavObjectのラベルがNavTreeで選択されるときに表示されるビューパネルの集合にも関連付けられている。
寄与コンポーネントは、図5に示すように、選択されたNavObjectに有用なコンテンツを提供することができる。
NavObjectクラスでは、getViewPanelTabs(...)100という名前のメソッドが、選択されたNavObjectに対してすべての定義されたビューパネルを収集する。
これらのビューパネルには、NavObjectにより直接作成されたパネルと他のコンポーネントにより提供された任意のパネルが含まれる。
コンポーネントがNavObjectのビューパネルを作成するには、少なくとも2つの方法がある。
第1の方法では、NavObjectのクラスを拡張することができる。
NavObjectクラスが拡張されると、102に示されるメソッドgetBaseViewPanelTabs(基本ビューパネルタブの取得)(...)が実施される。
このようにして、コンポーネントはビューパネルを作成して返すことができる。
第2の方法では、コンポーネントを特定のNavObjectのビューパネルコントリビュータとして登録することができる。
通常、この登録は、104に示すようにNavContainerListnenerとして登録することにより実現される。
特定のNavObjectが作成(追加)されると、106に示すようにコントリビュータは、NavObjectのメソッドaddViewPanelContributor(ビューパネルコントリビュータの追加)(...)を介して自身をViewPanelContributorとして追加する。
ビューパネルの作成時に、CachedViewPanelTab(キャッシュされたビューパネルタブ)クラスが拡張される。
このクラスは、ビューパネルインスタンスを作成時にキャッシュして、NavObjectの切り替え時に時間を節約する機能を提供する。
図6は、ストレージエリア管理アプリケーションで動作するように構成されたGUI 10の実施形態200を示す。
図1に示したGUI 10のそれと類似または同一のGUI 200のビジュアルコンポーネントおよび/または他の要素は、図1と同じ符号を付している。
現在選択されているツリーオブジェクト238に関連するデータの表234は、ビューパネル20に表示されている。
表234は、表セルに関連付けられた表オブジェクトの行242を1つ有する(他の実施形態では、もちろん2つ以上の行を有する表を含むことがある)。
オブジェクト242aはホスト、オブジェクト242bは複数の組織、オブジェクト242cはオペレーティングシステムを表している。
表オブジェクト242cは、文字による説明の表示244である。
前述のように、NavObjectは、データモデルとビジュアルコンポーネント間の関連を表し、アイコンと名前を有するラベルとしてアプリケーション内で表現することができる。
そのようなラベルは、たとえばナビゲーションツリー14および/またはパネル表234内に表示可能である。
本実施形態では、表オブジェクト242aは、アイコン248と名前250を有するラベル246としてのNavObjectを表示している。
ラベル246は、ツリー14内にも表示される。
ユーザは、マウスによりラベル246をアクティブにして、たとえば、ラベル246により表されるホストを記述するデータモデルの状況依存情報を表示することができる。
図6に例示するように、ツリー14は、2つの組織に対するラベル252と254も含む。
ラベル246、252、254は、ツリー14内でたとえばNavObjectLabelクラスにより表現される。
ラベル252は、アイコン260と名前262を含む。
ラベル254は、アイコン266と名前268を含む。
本実施形態では、ストレージデバイスに関連付けられたツリーオブジェクトに対しては、デバイス名がラベル名として使用される。
表オブジェクト242bは、以降で説明する本発明の一実施形態によるセルクラス270を表す。
一実施形態のクラス270は、phluidパッケージ58、60、62、64、66を拡張する。
別の実施形態では、クラス270は、Java Swingコンポーネントおよび/または他のJavaコンポーネントを拡張する。
2つ以上のNavObjectが表セル内に格納されている場合、セルクラス270によりユーザは、格納された各NavObjectに対してビジュアルコンポーネントを選択することができる。
具体例として、たとえば、一方は「R10」という名前の組織に関連付けられ、他方は「R25」という名前の組織に関連付けられた2つのナビゲーションオブジェクトがオブジェクト242bに関連付けられた表セルに格納されているとする。
2つのナビゲーションオブジェクトは、セルクラス270により表234内のラベル274として表される。
ラベル274は、NavObjectに関連付けられた名前262と268を含む文字列リスト278を含む。
名前は、文字列リスト278内でカンマで区切られている。
ラベル274は、アイコン260も含む。
一実施形態のアイコン260は、文字列リスト内の第1のNavObjectに関連付けられている。
文字列リスト内の第1のナビゲーションオブジェクトのアイコンを使用して、その文字列リスト内のすべてのナビゲーションオブジェクトを表すのが便利であるが、別の実施形態では、その文字列リスト内の別のナビゲーションオブジェクトのアイコンを使用することもできる。
ラベル274をマウスによりアクティブにすると、ユーザは、ラベル274に関連付けられたナビゲーションオブジェクトのビジュアルコンポーネントを選択することができる。
セルクラス270をインスタンス化して、たとえば、アイコン、文字列、および/またはヒント(tooltip)の表示をサポートするJLabelオブジェクトを作成することができる。
図7の参照番号502により全体を示すメソッドにより複数のナビゲーションオブジェクトが表セル内に格納されている。
1つのナビゲーションオブジェクトが表セル内に格納されていると判断504されると、前述のようにNavObjectTableCellを使用してセルが表示(populate)される。
表セル内に2つ以上のナビゲーションオブジェクトが格納されていると判断504されると、セルクラス270を使用して、表セルにナビゲーションオブジェクトが表示506され、各ナビゲーションオブジェクトに対するポインタが作成される。
アイコンと文字列リストを有するラベルが、表セル内に表示508される。
たとえば、マウスイベントが発生したときに、ユーザが表セル上にマウスを移動したり、表セル上でマウスを右クリックまたは左クリックすると、NavObjectTableがイベントを他よりも先に検出する。
アクティブになったNavObjectTableのマウスイベントハンドラは、表セルが内部に複数のナビゲーションオブジェクトを格納している表セルかどうかを判断する。
表セルが、内部に複数のナビゲーションオブジェクトを格納している表セルの場合、マウスイベントハンドラは、マウスイベントを分析して、作成されたポインタを使用してセル内のナビゲーションオブジェクトのストレージ上で適切なアクションを実行する。
以下でさらに説明するように、具体例としては、たとえば、マウスイベントハンドラは、プルライトメニュー、ダイアログボックス、またはヒントを表示する。
たとえば、図8を参照して、ユーザは、マウスをラベル274上に移動してヒント282を表示することができる。
ヒント282は、文字列リスト278の各名前を表示する。
ヒントは、たとえば、表オブジェクト242b内にすべてを表示するには長すぎる文字列リスト278内のすべての名前の表示に有用である。
ヒントが表示されるときには、ヒントの内容を定義しているJava String(Java文字列)オブジェクトがセルクラス270に提供される。
GUIの縁286を超えて延びることのない表セルのヒントを表示するには、ヒントの内容を標準文字列として定義するJava Stringオブジェクトを使用することができる。
たとえば、以下のコードを使用することができる。
JLabel aLabel=new JLabel(anlcon,"This is a Label");
String shortTooltip="This is a ToolTip";
aLabel.setToolTipText(shortToolTip);
マウスが適切に上部に移動すると、以下のヒントが表示される。
This is a ToolTip(これはヒント)
GUIに2行以上のヒントを表示するには、たとえば、文字列に埋め込まれたHTML(ハイパーテキストマークアップ言語)タグを使用してヒントの内容を定義するJava Stringオブジェクトが使用される。
マークアップ言語のコーディングにより、文字列が複数の行に分割されて表示される。
たとえば、以下のようなコードを使用できる。
JLabel aLabel=new JLabel(anlcon,"This is a Label");
Font font=some font
StringlongToolTip="<HTML><BODY style=¥""+"font―size:
"+font.getSize()+"pt;"+"font―family:"+font.getName()+
"¥"This is really long ToolTip LINE1<p style=¥""+"font―size:"+font.getSize()+"pt;"+"¥">And This is LINE2<¥BODY><¥HTML>";
aLabel.setToolTipText(longToolTip);
マウスが適切に上部に移動すると、以下のヒントが表示される。
This is a really long ToolTip LINE1(これは、実際に長いヒントの行1)
And this is LINE2(そして、これが行2)
したがって、GUIの縁286を超えて延びる名前リスト278は、ヒント282に表示するために2行以上に分割することができる。
ヒントを提供する前述の方法は、セルクラス270および/またはUIフレームワークと関連した用途に限定されず、グラフィカルユーザインタフェース内でヒントが提供されるさまざまな他の環境でも実行可能あることが理解できる。
もちろん、前述の方法を使用して1行のヒントを表示することも可能である。
図9を参照して、表セルに格納されているナビゲーションオブジェクトの状況依存アクションのポップアップメニューを表示する方法514を説明する。
ユーザがラベル274上でマウスを右クリックしたと判断516され、アクティブに設定されたセルに2つ以上のナビゲーションオブジェクトが格納されていると判断518されると、セルクラス270により、図10に示すようにGUI 200が応答する。
表セル内のナビゲーションオブジェクトは、クラス270のポインタを介して使用可能である。
したがって、図9と10を参照すると、プルライトメニュー項目304を含むプルライトメニュー300が表示520され、1つのメニュー項目304は表オブジェクト242bに関連付けられた表セル内に表示された各ナビゲーションオブジェクトに対応する。
ユーザがプルライトメニュー項目304を選択したと判断522されると、選択されたナビゲーションオブジェクトに関連付けられた状況依存ポップアップメニューが表示524される。
図10に示すように、ユーザが、「R10」という名前の組織に関連付けられたナビゲーションオブジェクトに対するメニュー項目304aをマウスで右クリックしているので、それがポップアップメニュー308の表示のきっかけになる。
本実施形態では、メニュー308は、「R10」という名前の組織に関連付けられたナビゲーションオブジェクトに対する前述の状況依存ポップアップメニューである。
したがって、ユーザは、たとえば、「R10」という名前の組織に関連付けられたナビゲーションオブジェクトが単独で表セルに格納されている場合に使用可能な状況依存アクションと同一の状況依存アクションから選択を行うことができる。
図11を参照して、ナビゲーションオブジェクトを介してデータモデルに関連付けられたビジュアルコンポーネントを表示するメソッド530を説明する。
ユーザが表セルをダブルクリックしたかどうかが判断532される。
ダブルクリックしたと判断されると、セル内に2つ以上のナビゲーションオブジェクトが格納されているかどうかが判断534される。
セル内に2つ以上のナビゲーションオブジェクトが格納されている場合は、表セル内のナビゲーションオブジェクトは、クラス270のポインタを介して使用可能である。
各ナビゲーションオブジェクトの名前を含むダイアログボックスが表示536される。
ユーザがダイアログボックスから名前を選択したと判断538されると、選択されたナビゲーションオブジェクトに関連付けられた1つまたは複数のビジュアルコンポーネントが表示540される。
たとえば、ユーザが複数のナビゲーションオブジェクトのラベル274をマウスでダブルクリックすると、図12に示すようにセルクラス270によりGUI 200が応答する。
ナビゲーションオブジェクト選択ダイアログボックス400が表示され、そのダイアログボックス400からユーザはマウスを使用してナビゲーションオブジェクトに関連付けられた名前を選択することができる。
図12に例示するように、ユーザは、名前「R10」を選択済みで、「OK」ボタン404をクリックして選択を確認しようとしている。
図12に示すように、ユーザがナビゲーションオブジェクトに関連付けられた名前を選択している場合、たとえば図13に示すようにセルクラス270によりGUI 200が応答する。
ナビゲーションツリー14は名前「R10」に関連付けられたナビゲーションオブジェクトが選択されたことを示していて、そのためツリー14でラベル252が強調表示されている。
ビューパネル20には、現在選択されている「R10」ナビゲーションオブジェクトに関連付けられたビジュアルコンポーネント500が表示されている。
本実施形態では、ビジュアルコンポーネント500は、組織名「R10」に関連付けられたナビゲーションオブジェクトの前述のパネル表示コンポーネントである。
前述のように、ユーザは、パネルタブ22によりUIが本アプリケーション用に提供する複数のパネルから選択を行うことができる。
したがって、ユーザは、たとえば、「R10」という名前の組織に関連付けられたナビゲーションオブジェクトが単独で表セルに格納されている場合に使用可能なパネル情報と同一のパネル情報を表示することができる。
前述のクラス270は、ユーザが表セル内に格納されている複数のナビゲーションオブジェクトの1つに対するビジュアルコンポーネントを選択できるようにするコンピュータに実施されたメソッドを実現していると見ることができる。
具体的には、ナビゲーションオブジェクトを表す文字列リストは、表セル内のラベルに含まれていて、ユーザはラベルを使用してナビゲーションオブジェクトの1つを選択することができる。
クラス270は、ナビゲーションオブジェクトへのポインタを使用して、ユーザが1つのナビゲーションオブジェクトを選択できるようにしている。
複数のナビゲーションオブジェクトに対してセルクラス270のオブジェクトが表セル内に表示される場合、セルクラス270のオブジェクトは、ユーザが表セルを介して1つのナビゲーションオブジェクトを選択できるようにしている。
ユーザに対して、表セルに単独でナビゲーションオブジェクトが格納され、そこから選択された場合に情報が表示されるのと同一または同様の方法で、選択されたナビゲーションオブジェクトに対するツリーリストとパネル表示含むビジュアルコンポーネントを提供することができるが、ビジュアルコンポーネントはこれらには限定されない。
したがって、ユーザは、表から直接移動して選択されたナビゲーションオブジェクトに関連する情報を表示することができる。
本発明の説明は単なる例示の性格を有するもので、したがって、本発明の本質から逸脱することのない変形は本発明の範囲に含めるものとする。
そのような変形は、本発明の精神と範囲からの逸脱と見なされるものではない。
本発明は、表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付けに利用可能である。
本発明の一実施形態によるグラフィカルユーザインタフェース(GUI)の画面表示である。 一実施形態によるUIフレームワークの機能ブロック図である。 一実施形態によるUIフレームワークを形成するパッケージ、クラス、インタフェースを示した図である。 一実施形態によるBaseUIコンポーネントを起動するときに行われる手順の流れ図である。 一実施形態によるナビゲーションオブジェクトを示した図である。 一実施形態によるグラフィカルユーザインタフェース(GUI)の画面表示である。 一実施形態による表セル内にナビゲーションオブジェクトを格納する方法の流れ図である。 一実施形態によるヒントを表示したグラフィカルユーザインタフェース(GUI)の画面表示である。 一実施形態による表セルに格納されたナビゲーションオブジェクトの状況依存アクションのポップアップメニューの表示方法の流れ図である。 一実施形態によるプルライトメニューとポップアップメニューを表示したグラフィカルユーザインタフェース(GUI)の画面表示である。 一実施形態によるナビゲーションオブジェクトを介してデータモデルに関連付けられたビジュアルコンポーネントの表示方法の流れ図である。 一実施形態によるナビゲーションオブジェクト選択ダイアログボックスを表示したグラフィカルユーザインタフェース(GUI)の画面表示である。 一実施形態によるビジュアルコンポーネントを表示したグラフィカルユ
符号の説明
10・・・グラフィカルユーザインタフェース(GUI)、
14・・・ナビゲーションツリー、
16・・・メインウィンドウ、
18・・・タブ、
20・・・ビューパネル、
22・・・タブ、
24・・・進む/戻るボタン、
26・・・状況依存ボタン、
28・・・状況非依存ボタン、
30・・・ログパネル、
32・・・タブ、
50・・・クライアントフレームワーク、
48・・・ストレージ管理クライアントアプリケーション、
52・・・BaseUI(基本UI)コンポーネント、
54・・・追加クライアントUIコンポーネント、
58〜66・・・パッケージクラス、
68・・・クラス、
70・・・インタフェース、
102〜106・・・メソッド、
200・・・GUI、
238・・・ツリーオブジェクト、
234・・・表、
242・・・表オブジェクトの行、
242a〜242c・・・オブジェクト、
244・・・文字による説明の表示、
248・・・アイコン、
250・・・名前、
246,252,254・・・ラベル、
260,266・・・アイコン、
262,268・・・名前、
270・・・セルクラス、
274・・・ラベル、
278・・・文字列リスト、
282・・・ヒント、
286・・・縁、
300・・・プルライトメニュー、
304・・・プルライトメニュー項目、
308・・・ポップアップメニュー、
400・・・ナビゲーションオブジェクト選択ダイアログボックス、
404・・・「OK」ボタン404、
500・・・ビジュアルコンポーネント、

Claims (10)

  1. グラフィカルユーザインタフェース(GUI)(10)を使用してデータを表示し、ナビゲーションオブジェクトを使用してデータモデルを前記GUIの少なくとも1つのビジュアルコンポーネント(500、14)に関連付け、複数の該ナビゲーションオブジェクトを表(234)のセルに格納するように構成されたコンピュータとメモリを備えるデータ表示システムであって、
    前記ナビゲーションオブジェクトへのポインタを使用して、前記ナビゲーションオブジェクトの1つに対する前記ビジュアルコンポーネント(500、14)を表示するようにさらに構成された表示システム。
  2. 前記ナビゲーションオブジェクトを表す文字列リスト(278)を含むラベル(274)を作成するようにさらに構成された請求項1に記載のシステム。
  3. 前記データモデルはデバイスのモデルを含み、前記ラベル(274)の作成は前記各ナビゲーションオブジェクトのデバイス名(262、268)を前記文字列リスト(278)内に含めることを含む請求項2に記載のシステム。
  4. 前記ラベル(274)の作成は、前記ナビゲーションオブジェクトの1つに関連付けられたアイコン(260)を前記ラベルに含めることをさらに含む請求項2に記載のシステム。
  5. 前記ビジュアルコンポーネント(500、14、282)は、ヒント(282)、ツリー(14)、およびパネル(500)の中の少なくとも1つを含む請求項1に記載のシステム。
  6. 前記ビジュアルコンポーネント(500、14、282)は、マークアップ言語を使用して定義されたテキスト文字列を有するヒント(282)を含む請求項1に記載のシステム。
  7. ビジュアルコンポーネント(500、14、282)の表示は、ラベル(274)を使用してユーザにより選択されたビジュアルコンテキスト(308、282、400)を表示することを含む請求項1に記載のシステム。
  8. ビジュアルコンテキストの表示は、メニュー(308)、ヒント(282)、およびダイアログボックス(400)のグループの中の1つを表示することを含む請求項7に記載のシステム。
  9. コンピュータシステム上でデータの表示に使用するための、グラフィカルユーザインタフェース(GUI)(10)においてヒント(282)を表示するためのコンピュータにより読み取り可能な命令を有するコンピュータにより読み取り可能な媒体を備えるコンピュータプログラム製品であって、前記命令はマークアップ言語を使用してヒントの内容を定義するように構成されているコンピュータプログラム製品。
  10. 内容の定義は、マークアップ言語のタグをテキスト文字列(278)に埋め込むことを含む請求項9に記載のコンピュータプログラム製品。
JP2003357514A 2002-11-01 2003-10-17 表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付け Withdrawn JP2004158004A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/286,666 US20040085367A1 (en) 2002-11-01 2002-11-01 Association of multiple objects in a table cell with visual components

Publications (1)

Publication Number Publication Date
JP2004158004A true JP2004158004A (ja) 2004-06-03

Family

ID=32175526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003357514A Withdrawn JP2004158004A (ja) 2002-11-01 2003-10-17 表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付け

Country Status (2)

Country Link
US (1) US20040085367A1 (ja)
JP (1) JP2004158004A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010515981A (ja) * 2007-01-05 2010-05-13 サンパルス テクノロジーズ インコーポレイテッド ストレージ最適化方法
WO2015129645A1 (ja) * 2014-02-27 2015-09-03 石田 祐介 オブジェクト選択方法、プログラム及び記録媒体

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034860A1 (en) * 2002-08-15 2004-02-19 Microsoft Corporation Dynamically extensible application program framework including message and notification routing
DE10360657A1 (de) * 2003-12-23 2005-07-21 Daimlerchrysler Ag Bediensystem für ein Kraftfahrzeug
US20060048068A1 (en) * 2004-08-31 2006-03-02 Michael Danninger Method and system to facilitate access to a user interface element on a user interface
US9535667B2 (en) 2005-08-23 2017-01-03 Adobe Systems Incorporated Content collapse outside of selection
US9128917B2 (en) 2005-08-23 2015-09-08 Adobe Systems Incorporated Automatic content expansion indicators
US7571387B1 (en) * 2005-09-21 2009-08-04 Emc Corporation Methods and apparatus facilitating management of a SAN
US8826112B2 (en) * 2005-09-22 2014-09-02 International Business Machines Corporation Navigating table data with mouse actions
US7721211B1 (en) * 2005-09-23 2010-05-18 Emc Corporation Methods and apparatus providing filtering in a management application
US8365135B2 (en) * 2005-10-27 2013-01-29 International Business Machines Corporation Computer method and apparatus for connection creation in a software modeling system
US7607088B2 (en) * 2006-04-18 2009-10-20 International Business Machines Corporation Computer program product, apparatus and method for displaying a plurality of entities in a tooltip for a cell of a table
US7908586B1 (en) 2006-08-07 2011-03-15 Adobe Systems Incorporated Collapse on content property
WO2008103823A2 (en) * 2007-02-21 2008-08-28 Red Rover Software Advanced spreadsheet cell navigation
EP1965301A1 (en) * 2007-02-27 2008-09-03 Abb Research Ltd. Method and system for generating a control system user interface
US20080229250A1 (en) * 2007-03-13 2008-09-18 International Business Machines Corporation Method and system for navigation tree node level control
US20090172601A1 (en) * 2007-12-27 2009-07-02 Sap Ag System and method for viewing arbitrary hierarchies in a browser
US8839145B2 (en) * 2009-01-21 2014-09-16 Oracle International Corporation Providing access to contextual actions and information
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US9046993B2 (en) * 2012-04-10 2015-06-02 Torrential Data Solutions, Inc. System and method for content management
US9432344B2 (en) * 2013-03-15 2016-08-30 Low Gravity Innovation, Inc. Secure storage and sharing of user objects
CN107329761B (zh) * 2017-06-30 2021-01-15 联想(北京)有限公司 一种消息的提示处理方法和电子设备
CN107562347B (zh) * 2017-09-07 2021-04-13 北京小米移动软件有限公司 显示对象的方法和装置
US11269600B2 (en) * 2018-08-30 2022-03-08 Cloudblue Llc System and method of analysis and generation of navigation schema

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339767B1 (en) * 1997-06-02 2002-01-15 Aurigin Systems, Inc. Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing
US20020091728A1 (en) * 1998-08-05 2002-07-11 Henrik Kjaer Multidimensional electronic spreadsheet system and method
US6898760B2 (en) * 2001-01-05 2005-05-24 Microsoft Corporation Reporting status of external references in a spreadsheet without updating
US7246326B2 (en) * 2001-06-25 2007-07-17 Siemens Medical Solutions Health Services Corporation System and procedure for providing a user interface display
US20030226105A1 (en) * 2002-05-29 2003-12-04 Mattias Waldau Method in connection with a spreadsheet program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010515981A (ja) * 2007-01-05 2010-05-13 サンパルス テクノロジーズ インコーポレイテッド ストレージ最適化方法
WO2015129645A1 (ja) * 2014-02-27 2015-09-03 石田 祐介 オブジェクト選択方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
US20040085367A1 (en) 2004-05-06

Similar Documents

Publication Publication Date Title
JP2004158004A (ja) 表セル内の複数のオブジェクトのビジュアルコンポーネントへの関連付け
US7865868B2 (en) .NET ribbon model for a ribbon user interface
US5793368A (en) Method for dynamically switching between visual styles
US8875032B2 (en) System and method for dynamic configuration of components of web interfaces
US5613058A (en) Method and system for in-place interaction with contained objects
US5596702A (en) Method and system for dynamically sharing user interface displays among a plurality of application program
US8689121B2 (en) System and method for management of controls in a graphical user interface
JP3348853B2 (ja) インターフェース記述用対話型ツール
US7913234B2 (en) Execution of textually-defined instructions at a wireless communication device
US20080126958A1 (en) Adding graphical user interface to display
US20060168536A1 (en) Method and terminal for generating uniform device-independent graphical user interfaces
US7890853B2 (en) Apparatus and machine-readable medium for generating markup language representing a derived entity which extends or overrides attributes of a base entity
US8504930B1 (en) User interface substitution
EP0587394A1 (en) Graphical resource editor
US20040017392A1 (en) Web service control for use in a graphical programming environment
US20030184584A1 (en) User interface framework for integrating user interface elements of independent software components
US8046679B2 (en) Apparatus, method and machine-readable medium for facilitating generation of a markup language document containing identical sets of markup language elements
JPH1091413A (ja) コンピュータ・システムにおける操作の選択装置及び方法
EP0622729A2 (en) A user interface builder for a user interface server
US20030081007A1 (en) Object oriented explorer type environment
US20200394055A1 (en) System and method for providing a configurable user interface using a self-describing data system
EP0603095A2 (en) Method and apparatus for managing a windowing environment in an object oriented programming system
US11392284B1 (en) System and method for implementing a dynamically stylable open graphics library
US20090307625A1 (en) Method, device, data carrier and computer program product for representing data in a user interface
EP1826669A1 (en) Apparatus and machine-readable medium and method for generating markup language representing a derived entity which extends or overrides attributes of a base entity

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070109