グラフィック・オブジェクト上のツールチップおよびポップアップ・メニュー

Rogue Wave JViews は、Swing アプリケーションのグラフィック・オブジェクトに、ツールチップおよびポップアップ・メニューを指定するための機能を提供します。ツールチップおよびポップアップ・メニューは、 IlvToolTipManager および IlvPopupMenuManager の各中央マネージャーによって処理されます。これらのマネージャーは、ツールチップまたはポップアップ・メニュー表示をトリガーするイベントを制御します。オブジェクト・インタラクターまたはマネージャー・ビュー・インタラクターとしては実装されません。ツールチップおよびポップアップ・メニューは、インタラクターと組み合わせて使用できます。

ツールチップ

グラフィック・オブジェクトに特定のツールチップを指定するには、次のようにツールチップを設定します。
graphic.setToolTipText("Some Tooltip"); 
ツールチップは、ビューがツールチップ・マネージャーに登録されている場合のみ機能します。マネージャー・ビューでツールチップを有効にするには、次のようにビューを登録します。
IlvToolTipManager.registerView(managerView); 
グラフィック・オブジェクトを登録してから、マウスをオブジェクトの上に動かすと、ツールチップが表示されます。マウスをグラフィックから離すと、ツールチップが消えます。
IlvToolTipManager は、Swing ツールチップ・マネージャーに依存します。初期遅延や終了遅延などのパラメーターは、Swing ツールチップ・マネージャーに設定できます。次に例を示します。
IlvToolTipManager.getToolTipManager().setInitialDelay(3000);
詳細については、「 IlvToolTipManager」を参照してください。

ポップアップ・メニュー

特定のポップアップ・メニューをグラフィック・オブジェクトに関連付けるには、次のように JPopupMenu オブジェクトを作成し、グラフィックとリンクします。
graphic.setPopupMenu(popupMenu);
ポップアップ・メニューは、ビューがポップアップ・メニュー・マネージャーに登録されている場合のみ機能します。マネージャー・ビューでポップアップ・メニューを有効にするには、次のようにビューを登録します。
IlvPopupMenuManager.registerView(managerView);
ポップアップ・メニューの登録後、グラフィックを右クリックするとポップアップ・メニューが表示されます。
ポップアップ・メニューは多くのメモリーを使用します。メモリーの浪費を避けるため、複数のグラフィック・オブジェクトでポップアップ・メニューを共有します。共有するには、graphic.setPopupMenu(...) を使用してポップアップ・メニューを個別のグラフィックに登録する代わりに、次を呼び出して、ポップアップ・メニューをポップアップ・メニュー・マネージャーに直接登録します。
IlvPopupMenuManager.registerMenu("name", popupMenu);
そして次の方法で、このポップアップ・メニューをグラフィックに割り当てます。
graphic1.setPopupMenuName("name");
graphic2.setPopupMenuName("name");
単一のグラフィック・オブジェクトに登録されたポップアップ・メニューは、そのオブジェクトに対してのみ有効です。ポップアップ・メニュー・マネージャーに登録されたポップアップ・メニューでは、次を行うことができます。
  • ivl ファイルに保存する。
  • 切り取り・貼り付けで使用する。
ポップアップ・メニューが共有されている場合、どのグラフィック・オブジェクトがイベントをトリガーしているのか把握しておく必要があります。ポップアップ・メニュー項目に関連付けられたアクション・リスナーは、 IlvPopupMenuContext オブジェクトを使用してポップアップ・メニューのコンテキストを取得できます。この機能は次の方法で行います。
public void actionPerformed(ActionEvent e) {
    JMenuItem m = (JMenuItem)e.getSource();
    IlvPopupMenuContext context=IlvPopupMenuManager.getPopupMenuContext(m);
    if (context == null) return;
    IlvGraphic graphic = context.getGraphic();
    IlvManagerView view = context.getManagerView();
    //Do the action on this graphic for this view.
  }
詳しくは、「Java API リファレンス・マニュアル」の IlvPopupMenuContext および IlvPopupMenuManager を参照してください。
IlvSimplePopupMenu は、ポップアップ・メニューを簡単に構成できる JPopupMenu のサブクラスです。詳しくは、「 IlvSimplePopupMenu」を参照してください。
ポップアップ・メニューのさまざまな使用方法を示す例が、デモ・ソフトウェアの一部にあります。詳細については、 <installdir> //jviews-framework89/codefragments/popupmenu/index.html を参照してください。