ナビゲータ・ウィンドウおよびコード・エディタ・ウィンドウなど、一部のビューには、ウィンドウ内でユーザーが右クリックすると表示されるポップアップ・メニューがあります。拡張機能は、ポップアップ・メニューに項目を追加できます。
ContextMenuListener
を実装するクラスのオブジェクトにより表されるユーザー・インタフェース要素では、ポップアップ・メニューを持つことができます。ポップアップ・メニューは、JDeveloper内のほとんどすべての場所で使用できます。ユーザー・インタフェースの大部分の要素は、このクラスを実装するか、または実装するコンポーネントのサブコンポーネントのいずれかになります。
ユーザーが右クリックすると、ポップアップ・メニューが再作成されます。選択されたポップアップ・メニューのリスナー(右クリックのサブジェクトに関連付けられたリスナー)がポーリングされ、項目またはサブメニューをポップアップ・メニューに追加できるようになります。たとえば、ドキュメントを表すノードを右クリックすると、そのドキュメント・タイプのビューアとして登録されているエディタおよびデザイナのメニュー項目を、ポップアップ・メニューに追加できます。
ポップアップ・メニュー・リスナーは、次のメソッドによりポーリングされます。
poppingUp
は、ポップアップ・メニューの作成時にコールされます。この際、リスナーのメニュー項目が追加されます。
poppingDown
は、ポップアップ・メニューを閉じる際にコールされます。
handleDefaultAction
は、ダブルクリックするとコールされます。この場合、ポーリングされたリスナーのうちの1つのみがtrueを返し、メニューに関連付けられたアクションが起動されることを示します。
拡張機能をポップアップ・メニューから起動できるようにするには、メニュー・リスナーをビューのポップアップ・メニューに追加します。メニュー・リスナーは、ポップアップ・メニューが表示されるたびに再作成され、このときメニュー項目をインストールできます。
ポップアップ・メニュー項目を定義するには、次のコンポーネントを指定します。
次の例では、ナビゲータ・ウィンドウのポップアップ・メニューにリスナーを追加します。
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.