ポップアップ・メニューからの拡張機能の起動

ナビゲータ・ウィンドウおよびコード・エディタ・ウィンドウなど、一部のビューには、ウィンドウ内でユーザーが右クリックすると表示されるポップアップ・メニューがあります。拡張機能は、ポップアップ・メニューに項目を追加できます。

ContextMenuListenerを実装するクラスのオブジェクトにより表されるユーザー・インタフェース要素では、ポップアップ・メニューを持つことができます。ポップアップ・メニューは、JDeveloper内のほとんどすべての場所で使用できます。ユーザー・インタフェースの大部分の要素は、このクラスを実装するか、または実装するコンポーネントのサブコンポーネントのいずれかになります。

ユーザーが右クリックすると、ポップアップ・メニューが再作成されます。選択されたポップアップ・メニューのリスナー(右クリックのサブジェクトに関連付けられたリスナー)がポーリングされ、項目またはサブメニューをポップアップ・メニューに追加できるようになります。たとえば、ドキュメントを表すノードを右クリックすると、そのドキュメント・タイプのビューアとして登録されているエディタおよびデザイナのメニュー項目を、ポップアップ・メニューに追加できます。

ポップアップ・メニュー・リスナーは、次のメソッドによりポーリングされます。

拡張機能をポップアップ・メニューから起動できるようにするには、メニュー・リスナーをビューのポップアップ・メニューに追加します。メニュー・リスナーは、ポップアップ・メニューが表示されるたびに再作成され、このときメニュー項目をインストールできます。

ポップアップ・メニュー項目を定義するには、次のコンポーネントを指定します。

次の例では、ナビゲータ・ウィンドウのポップアップ・メニューにリスナーを追加します。


public void createCtxMenuListeners(ContextInfoController controller) {

  ContextMenu menu;

  // Add a listener to the Explorer's context menu.
  // This form will work for any manager or view that defines getContextMenu.
  menu = EditorManager.getEditorManager().getContextMenu();
  menu.addContextMenuListener(new ContextInfoMenuListener(controller));

  // Add a listener to the Navigator's context menu.
  //$ Should this be removed?
  NavigatorManager.getWorkspaceNavigatorManager().addContextMenuListener(new ContextInfoMenuListener(controller), null);
}
        

ポップアップ・メニュー・リスナーは、アドインのロード時に追加され、このタスクがアドインのinitializeメソッドで実行されます。コントローラおよびアクションの作成は、ポップアップ・メニューが開かれて、初めてリスナーのメソッドをコールするまで、遅らせることができます。

ここに示したコード例は、ContextInfoサンプル・プロジェクトのものです。 この例と他の拡張機能の例は、OTNのExtensions SDKのページで入手できます。


コマンドの開発
Addinインタフェースの実装
メイン・ウィンドウ・メニューからのアドインの起動

oracle.ide.addin.ContextMenuListener

 

Copyright © 1997, 2004, Oracle. All rights reserved.