エディタ・クラスの定義

エディタは、ユーザーが変更するオブジェクトを表示するビューです。独自のエディタを作成する場合は、FlatEditorインタフェースを直接実装するのではなく、AbstractFlatEditorを拡張します。エディタ・クラスは、そのエディタに対して登録されているタイプのノードを開いて表示するたびに、インスタンス化されます。

エディタは、次のその他のコンポーネントに関連付けられています。

エディタ・クラスには次の機能が必要です。

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

エディタのインスタンス化

エディタ・マネージャは、ユーザーがナビゲータ内でノードを開くと、エディタ・クラスをインスタンス化します。エディタ・マネージャは、デフォルトのコンストラクタをコールするため、コンテキスト特有のパラメータは使用できません。




public PropFileEditor() { systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); }

エディタの初期化

エディタ・マネージャは、setContextメソッドをコールしてエディタ・インスタンスを初期化します。このメソッドは、編集するドキュメントをコンテキストから抽出し、エディタ・コンポーネントを初期化します。




public synchronized void setContext( Context context ) { if ( context != null ) { Element element = context.getElement(); // A sanity check: if the context is bad the editor pane will be empty. if ( ( element != null ) && ( element instanceof TextDocument ) ) { super.setContext( context ); document = (TextDocument) context.getElement(); initializeGraphics( context ); initializeTimer(); } } }

コントローラへのアクセス

エディタには、ユーザー・イベントを捕捉し解析するコントローラ・インスタンスが関連付けられています。IDEは、コントローラを取得するためにエディタのgetControllerメソッドをコールします。メソッドは最初にコールされた際にコントローラを作成します。




public Controller getController() { if ( editorController == null ) { editorController = new PropFileEditorController( this ); } return editorController; }

ルートGUIコンポーネントの取得

エディタにはルートGUIコンポーネントが関連付けられており、このエディタ・インスタンス用のパネルを返します。




public Component getGUI() { return mainPanel; }

エクスプローラ・イベントへの対応

データ・オブジェクトのエクスプローラ・ビューは、エディタ内のドキュメントにおける移動手段を提供します。ユーザーがエクスプローラで要素を選択すると、エクスプローラはエディタに対し、対応するデータの部分を表示するように指示します。

エディタをエクスプローラと統合する場合、エディタは1つ以上のgotoメソッドを提供する必要があります。(この機能はEditorインタフェースでは不要です。)次の例は、エディタのカーソルをテキスト・ファイルの指定した行に移動させるメソッドです。




public void setCaretPosition( int offset ) { editorComponent.setCaretPosition( offset ); }

エディタ・コンポーネント・イベントへの対応

エディタ・コンポーネントは、JEditorPaneの実装として、データが変更されるとアクション・イベントを生成します。エディタは、KeyListenerなどのインタフェースを実装し、初期化時にエディタ・コンポーネントのaddKeyListenerメソッドをコールして、イベントを受信するために自身を登録します。次のKeyListenerメソッドの例では、keyTypedが、レコグナイザなど、その他のIDEオブジェクトに変更を警告するメソッドを起動します。




public void keyTyped( KeyEvent e ) { timer.restart(); }

更新メッセージの生成

データ・オブジェクトの状態が変わる際、ドキュメントのエクスプローラなど、その他のIDEコンポーネントに通知する必要があります。これは通知メカニズムを介して行われます。エディタはUpdateMessageインスタンスを作成し、これをドキュメントのオブザーバに一斉送信します。




public void keyTyped( KeyEvent e ) { timer.restart(); }

エディタの開発
FlatEditorAddinインタフェースの実装
コントローラの実装
JDeveloperにおけるデータ・オブジェクトについて
通知について

oracle.ide.Addin.Controller
oracle.ide.addin.UpdateMessage
oracle.ide.editor.FlatEditor
oracle.ide.editor.AbstractFlatEditor
oracle.ide.editor.FlatEditorAddin
oracle.ide.explorer.Explorer
oracle.ide.model.Document

 

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