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

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

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 = Ide.getEditorManager().getContextMenu(); menu.addContextMenuListener(new ContextInfoMenuListener(controller)); // Add a listener to the Navigator's context menu. //$ Should this be removed? Ide.getNavigatorManager().addContextMenuListener(new ContextInfoMenuListener(controller), null); }

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

ここに示したコード例は、ContextInfoサンプル・プロジェクトのものです。この例と他の拡張機能の例は、Oracle Technology Network(OTN)のWebサイト(http://otn.oracle.com/products/jdev/htdocs/partners/addins/exchange/docsamples/content.html)で入手できます。


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

oracle.ide.addin.ContextMenuListener