エディタ拡張機能は、EditorAddinインタフェースを実装します。このインタフェースは拡張機能をエディタ・マネージャに統合し、JDeveloperの起動時に拡張機能をインストールします。
EditorAddinインタフェースを実装するには、次のようにします。
ここに示したコード例は、PropFileサンプル・プロジェクトのものです。この例と他の拡張機能の例は、Oracle Technology Network(OTN)のWebサイト(http://otn.oracle.com/products/jdev/htdocs/partners/addins/exchange/docsamples/content.html)で入手できます。
このメソッドは、アドイン・クラスが拡張機能の記述ファイル(jdev-ext.xml)に登録されている場合、JDeveloper起動時にアドイン・マネージャによりコールされます。
初期化のタスクをinitializeメソッドに委任します。
このメソッドは、インスタンスの作成後にアドイン・マネージャによりコールされます。ここでエディタをエディタ・マネージャに登録します。
エディタはIDEのEditorManagerに登録する必要があります。登録されると、エディタは1つ以上のノード・クラスに関連付けられます。ユーザーが、ポップアップ・メニューまたは「表示」->「表示ツール」メニューのいずれかで、あるノードのエディタを開こうとすると、そのノードのクラスに対して登録されたエディタのみが使用可能になります。
public void initialize() { Class[] types = new Class[] { PropFileSourceNode.class }; Ide.getEditorManager().register( this, types ); }
このメソッドは、編集可能なビューとして機能するクラス、Editorの実装を指定します。
public Class getEditorClass() { return PropFileEditor.class; }
ノード・クラスはデフォルト・エディタを持つことができ、ユーザーがノードをダブルクリックすると、このノードはデフォルト・エディタ内で開かれます。エディタを登録されたノード・タイプのデフォルトとして宣言するには、次のメソッドがtrueを返すよう実装します。
public boolean isDefault() { return true; }
複数のエディタを特定のノード・タイプのデフォルトとして宣言した場合、最後にロードされたアドインがその他のものをオーバーライドします。ユーザー・アドインはJDeveloperアドイン(bin/addins.xmlに指定されたもの)の後にロードされ、各ファイル内ではアドインが番号順(昇順)にロードされます。
エディタ・マネージャは、次の2つのメニューに、エディタ・アドインのメニューの仕様を追加します。
メニューの仕様は、エディタ・メニュー項目の外観を説明します。次に例を示します。
public synchronized MenuSpec getMenuSpecification() { if ( menuSpec == null ) { ImageIcon icon = new ImageIcon( this.getClass().getResource( "PropFileEditor.gif" ) ); menuSpec = new MenuSpec( "Properties File Editor", new Integer( 'P' ), null, icon); } return menuSpec; }
エディタ・クラスの定義
コントローラの実装
エディタ・マネージャについて
関連クラスおよびインタフェース
oracle.ide.editor.Editor
oracle.ide.editor.EditorAddin
oracle.ide.editor.EditorManager