この章では、JDeveloperにダウンロードできるOracle JDeveloper Extension SDKと、それを使用した独自の拡張機能の開発方法について説明します。
この章には、次の項があります。
JDeveloper Extension Software Developer Kit (SDK)には、サンプル・コードを含んだプロジェクトのコレクションや、Extension SDK APIについてのjavadoc生成ドキュメントが含まれています。
各サンプル・プロジェクトには、サンプルを適切なディレクトリにワンクリックでデプロイするためのデプロイメント・プロファイルが含まれています。すべてのプロジェクトを一度にデプロイすることもできます。
各種拡張機能を提供するコードをテンプレートとして使用することで、類似する複数の機能を効率よく開発できます。
Extension SDKは「更新の確認」ウィザードを使用してダウンロードおよびインストールできます(ダウンロードはOracle Webサイトからも可能です)。
「更新の確認」を使用してExtension SDKをインストールするには、次のようにします。
Oracle Fusion Middleware Oracle JDeveloperユーザー・ガイドの「更新の確認」を使用した拡張機能のインストール方法にある情報に従って操作し、ソース・ページでOfficial Oracle Extensions and Updates
更新センターを選択します。
更新ページで、利用可能な拡張機能のリストからExtension SDK
を選択し、「次へ」をクリックします。拡張機能のサイズによっては、インターネットの接続状況に応じてダウンロードに数分かかることがあります。
ウィザードが完了すると、JDeveloperが再起動してExtension SDKがインストールされます。再起動の際、この章で説明したサンプル・プロジェクトを含むサンプル・アプリケーションをJDeveloperにインストールするかどうかをたずねられます。「はい」を選択すると、アプリケーション・ナビゲータでextensionsdk
アプリケーションが開き、サンプル・プロジェクトがリストされます。
ファイアウォール内で作業している場合、JDeveloperはプロキシ・サーバーの詳細情報を入力するまで更新センターに接続できません。この操作は、Webブラウザまたは「プリファレンス」ダイアログ・ボックス(「ツール」メニューから選択可能)のプロキシ・ページで行えます。行わない場合は、「更新の確認」ウィザードがタイムアウトし、Webブラウザとプロキシ・ページが表示されます。
ファイルを使用してExtension SDKをインストールするには、次のようにします。
Oracle Fusion Middleware Oracle JDeveloperユーザー・ガイドの拡張機能をOTNから直接インストールする方法にある情報に従って操作し、Official Oracle JDeveloper Extensionsのページに移動します。
Extension SDKをローカルの場所にダウンロードし、「ヘルプ」メニューから「更新の確認」ウィザードを開きます。
ソース・ページで、「ローカル・ファイルからインストール」
を選択し、esdk_bundle.zip
ファイルの場所を入力して、ウィザードを完了します。
JDeveloperが再起動してExtension SDKがインストールされます。再起動の際、この章で説明したサンプル・プロジェクトを含むサンプル・アプリケーションをJDeveloperにインストールするかどうかをたずねられます。「はい」を選択すると、アプリケーション・ナビゲータでextensionsdk
アプリケーションが開き、サンプル・プロジェクトがリストされます。
Extension SDKを正常にインストールすると、オプションによってサンプル・アプリケーションがアプリケーション・ナビゲータ内で開き、JDeveloperの各種機能を説明するサンプル・プロジェクトにアクセスできるようになります。これらのコードを使用することで、独自の拡張機能を効率よく開発できます。
Oracle Fusion Middleware Oracle Extension SDK Java APIリファレンスへは、オンライン・ヘルプ(「ヘルプ」メニューからアクセス)の「目次」リストにある「参照」からアクセスできます。
ファイアウォール内で作業していて、Extension SDKを正常にダウンロードできない場合は、Webブラウザおよび「プリファレンス」ダイアログ・ボックス(「ツール」メニューから選択可能)のプロキシ・ページで、プロキシ・サーバー設定が設定されていることを確認してください。
「更新の確認」ウィザードによって更新センターの場所が特定された際、接続の速度によっては、利用可能な拡張機能のリストが表示されるまでに数分かかることがあります。
ウィザードでExtension SDKを選択すると、ウィザードの起動中にダウンロードが実行されますが、接続の速度によっては、これにも数分かかることがあります。拡張機能のダウンロードが完了したら、それをインストールするためにJDeveloperを再起動する必要があります。その後、結果を示すメッセージが表示されます。
この項では、Extension SDKに含まれているサンプル・プロジェクトの概要について説明します。詳細については、各プロジェクト内のコメントを参照してください。これらのコメントには、機能に関するガイダンスが示されています。
JDeveloperの詳細は、Oracle Fusion Middleware Oracle JDeveloperユーザー・ガイドの関連する項を参照してください。
サンプルの実行に関する詳細は、3.4項「サンプル・プロジェクトの実行方法」を参照してください。
AllSamples.jpr: このサンプルは、すべてのサンプル・プロジェクトを一度に実行するために使用できる、デプロイメント・プロファイルを提供します。
ApplicationOverview.jpr: 「アプリケーション概要」ウィンドウへのプラグイン方法を示します。「アプリケーション」および「プロジェクト」の両方のコンテキスト・メニューに、「概要の表示」メニュー・アイテムを追加します。次に方法を示します。
独自のカスタム・エディタを追加します。
アプリケーションおよびプロジェクトからファイルを取得します。
プロジェクト内の個別ファイルのステータスを取得します。
AuditRefactor.jpr: 監査フレームワークを使用してJavaコード内の問題を検出する方法と、リファクタAPIを使用して問題を自動的に修正するための変換を記述する方法を示します。
IDE監査プロパティ・ページにオプションを追加します。
public final staticメソッド名を管理します。
IDEのリファクタ機能の使用方法を示します。
Balloon.jpr: JDeveloperのステータス・バーにバルーン通知をインストールする方法を示します。
次に方法を示します。
ダイアログまたはバルーン要素にアクション・リスナーを追加します。
IDEのステータス・バーと対話します(アイテムの追加と削除の両方)。
OracleIcons
からアイコンを取得します。
ClassBrowser.jpr: JDeveloper ClassBrowser
の使用方法を示します。
単一ページ・ウィザードの設定方法を示します。
コンテキスト・メニューに、ナビゲータおよびオブザーバUIセクションを追加します。
ClassGenerator.jpr: プロジェクト内にjavaファイルを生成するためのJOT (Java Object Tool)の基本を示します。また、有限ステート・マシン(FSM)ウィザード・ユーティリティを使用してマルチ・ステップのウィザードを作成する方法も示します。
表示メニューにアイテムを追加します。
アプリケーション・ナビゲータで現在選択されている項目に基づいて、メニュー・オプションを有効化または無効化する方法を示します。
マルチページ・ウィザードの設定方法を示します。
ClassSpy.jpr: ナビゲータ内の特定ノードのクラスを識別する最も簡単な方法と、その名前をログ・ウィンドウに書き込む方法を示します。次に方法を示します。
extension.xml
を使用して、ソース・エディタ、エクスプローラおよびアプリケーション・ナビゲータにコンテキスト・メニューを追加します。
コンテキスト・オブジェクトを操作します。
ログ・ウィンドウに情報を表示します。
このサンプル内のコードは、2.4.6.3項「コントローラの実装方法」の説明に使用されています。
ClickableURL.jpr: ログ・ウィンドウ内にクリック可能なURLを生成する方法を示します。
extension.xml
ファイルを使用して、アプリケーション・ナビゲータにコンテキスト・メニューを追加します。
新しいログ・ウィンドウとの対話を示します。
ファイルURLの操作方法を示します。
MessageWindow
を操作して、ログ内にデータを配置します。
IDEからブラウザを起動する方法を示します。
CodeInteraction.jpr: コード・エディタからテキストを取得し、現在選択されているテキストについてのGoogle検索を起動する方法を示します。
ソース・エディタにコンテキスト・メニューを追加します。
ソース・エディタ内の状況に基づいてコンテキスト・メニューを有効化する方法を示します。
ソース・エディタからのデータを使用してブラウザを呼び出す方法を示します。
ConfigPanel.jpr: プリファレンスを格納および取得する方法と、「プリファレンス」ダイアログ内にパネルをインストールする方法を示します。
Addin
クラスを使用して、「ツール」メニューにメニュー・アイテムを追加します。
ログ・ウィンドウとの対話を示します。
リスナーを使用して、IDEのプリファレンス・モデルへの変更をリスニングする方法を示します。
このプロジェクトのコードは、2.4.4.4項「ツール・メニューにウィザードを追加する方法」の説明に使用されています。
CPPageProvider.jpr: palette2 APIを使用してコンポーネント・パレット内にプラグインする方法を示します。
CreateDialog.jpr: ギャラリから呼び出されるシンプルな作成ダイアログの例です。
extension.xml
を使用して新規ギャラリ・アイテムを追加する方法を示します。
モニターでバックグラウンド・タスクを使用する方法を示します。
JEWTDialogおよびPanelを使用してデータを表示します。
テキスト・フィールドで[Enter]キーの押下をリスニングし、イベントに応じて処理を実行する方法を示します。
CreateStructure.jpr: 空の新規アプリケーション(jwsファイル)を作成し、その中に空の新規プロジェクト(jprファイル)を追加する方法を示します。
ファイル・システムIOを操作し、ファイルとディレクトリを作成します
JDeveloper APIではなく、oracle.ide APIを使用して構造を構築します
logs()メソッドを使用してログ・ウィンドウに情報を送信する方法を示します
CustomEditor.jpr: 特定のファイル用に使用する、独自エディタの実装方法を示します。動作中のツールを参照するには、任意のXMLファイルを開き、問合せページに切り替えます。
このサンプル・プロジェクト内のコードは、2.4.6.1項「EditorAddinクラスの実装方法」および2.4.6.2項「エディタ・クラスの定義方法」の説明に使用されています。
CustomExtensionHook.jpr: カスタム拡張機能フックを使用して、他の拡張機能が自分の拡張機能にプラグインできるようにする方法を示します。
extension.xml
で、メニュー・アイテムを(表示メニューに)宣言的に追加する方法を示します。
CustomNavigator.jpr: カスタムのナビゲータ・ウィンドウをインストールする方法を示します。よくアクセスされるファイルを格納するために使用できる、「お気に入り」ウィンドウをインストールします。
独自のナビゲータ・ウィンドウを作成する方法を示します。
システム・ディレクトリにファイルを保存するためのファイルIOメソッドを示します。
ウィンドウにカスタム・アイコンを追加する方法を示します。
選択されたメニュー・アイテムの操作方法を示します。
1つのメニュー領域用に、個別のコントローラを追加します。
DebugObjectPreferences.jpr: デバッガの「データ」ウィンドウに対する、カスタム・オブジェクト・プリファレンス・レンダラのインストール方法を示します。
デバッガの出力ウィンドウの「データ」タブにパラメータを追加します。
extension.xml
内でのdebugger_hook
の操作方法を示します。
DockableWindow.jpr: カスタムのドッキング可能ウィンドウを実装する方法を示します。
DockableFactory
の操作方法を示します。
アドイン初期化を使用して、表示メニューに拡張機能を追加します。
DockableWindow
の操作方法を示します。
ExternalToolCreation.jpr: 外部プログラム用の外部ツール・ショートカットをインストールするアドインの記述方法を示します。この機能は、JDeveloper IDEの一部であり、外部アプリケーションを設定するためのウィザードを使用します。外部ツールの詳細は、Oracle Fusion Middleware Oracle JDeveloperユーザー・ガイドのJDeveloperへの外部ツールの追加に関する項を参照してください。
外部ツールを設定し、それをJDeveloper IDE内に統合する方法を示します(たとえば、現在のエディタ・コンテンツをレビューまたは処理のために外部ツールへ渡すなど)。
ExternalToolImportExport.jpr: 外部ツールのリストに関連付けられたプロパティをインポートおよびエクスポートします。
ExternalTool
プロパティの読取りと書込みを操作します。
ExternalToolMacros.jpr: 外部ツールで使用するためのカスタム・マクロをインストールするアドインの記述方法を示します。
extension.xml
内での<externaltools>
および<macros>
タグの使用方法を示します。
ExternalToolScanner.jpr: ユーザーが「外部ツール」ダイアログ(「ツール」メニューから選択可能)の「ツールの検索」ボタンをクリックしたときに、外部プログラムのショートカットを自動的にインストールできる、外部ツール用スキャナの記述方法を示します。
FirstSample.jpr: JDeveloperの拡張機能の記述に関わる主要な概念を説明するサンプルです。
extension.xml
の<menu-hook>
、<gallery>
、<context-menu-listener>
、<toolbars>
および<actions>
タグの操作方法を示します。
すべてのIDE統合ポイントは、メッセージ・ボックスを表示するWizard
クラスを呼び出します。
このサンプル・プロジェクト内のコードは、2.4.5.2項「コマンドの実装方法」、2.4.5.3項「アクションの定義方法」および2.4.6.3項「コントローラの実装方法」の説明に使用されています。
FlatEditor.jpr: extension.xml
に使用されるものと同様の、フォームベースの概要エディタの実装方法を示します。
extension.xml
内の<ide:editor>
を示します。
エディタ・ウィンドウにカスタム・タブを追加します。
VerticalFlowLayout
の操作方法を示します。
HelloX.jpr: これは、新規ギャラリ・アイテム、アクションおよびメニュー・アイテムなどのコア・コンセプトを説明するサンプルです。
ダイアルアップ・ウィンドウの呼び出し方法を示します。
extension.xml
を使用して新規ギャラリに項目を追加する方法を示します。
このサンプル・プロジェクト内のコードは、2.4.4.1項「ウィザード・プロジェクトの設定方法」および2.4.4.4項「ツール・メニューにウィザードを追加する方法」の説明に使用されています。
LayoutMenuFilter.jpr: レイアウトが変更されたときにIDE内のトップ・レベルのメニューをフィルタリングする方法を示します。
表示するメニュー・アイテムだけを設定できます。
ExtensionRegistry
を使用します。
addIdeListener
を使用してIDEイベントを取得し、それらにアクションを実行します。
MethodCallCounter.jpr: JOT (Java Object Tool)を使用して、特定のコード内での名前付きメソッドの発生件数をカウントします。
ナビゲータとソース・エディタのメニュー内での、ノード・タイプの決定方法を示します。
ナビゲータとソース・エディタにコンテキスト・メニュー・オプションを追加します。
showInputDialog
を使用して、実行時のパラメータ入力を可能にします。
MessageDialog
情報を使用して結果を表示します。
1つのクラス内で2つのメソッド宣言を使用する方法を示します。使用されるメソッドは、それに渡されるパラメータによって決まります。
OpenNodes.jpr: NodeFactory内で開いているノードを示すドッキング可能ウィンドウを実装し、ノードの開閉時を追跡します。
IDE内でドッキング可能ウィンドウを作成および実装する方法を示します。
toString()
をオーバーライドして、特定の文字列の書式設定を設定します。
Jpanel内のJtable
を使用し、設定と構成を示します。
タイマーを使用してテーブル変更時に色変更をフラッシュし、その後通常の状態に戻ります。
このサンプルの実行時には、表示→ESDKSample: オープン・ノードを選択して、オープン・ノード・トラッカ・ウィンドウを開きます。これは、NodeFactory
内で開いているノードを表示し、ノードの開閉時を追跡するものです。
Overlay.jpr: バージョン・コントロール拡張機能によって使用されるものと同様のオーバーレイをナビゲータ内で使用する方法を示します。
extension.xml
内に複数のアクションを設定する方法を示します。
OverlayCache
を操作します。
IdeActions
を操作します。
ProgressBar.jpr: 長いタスクを実行する際の進行状況バーの実装方法を示します。
oracle.ide.progressbar
を使用します。
バックグラウンドで実行中のプロセスを示します。
不確定の進行状況バーを示します。
バックグラウンド・プロセス内でログ・ウィンドウへ書き込みます。
ProjectSettings.jpr: プロジェクト・プロパティの格納および取得方法と、カスタム・プロジェクト設定UIの追加方法を示します。
extension.xml
内での<settings-ui>
タグの使用方法を示します。
ProjectSettingsTraversablePanel
を使用して、プロジェクト設定ページをレイアウトします。
HashStructure
およびPropertyStorage
を使用して、プロジェクト設定データを格納および取得します。
StructurePane.jpr: 構造ウィンドウに独自のコンテンツを表示する方法を示します。
ExplorerManager
を使用して構造ウィンドウを登録する方法を示します。
AbstractTreeExplore
の拡張方法を示します。
このサンプル内のコードは、2.4.7.2項「構造エクスプローラの登録および初期化方法」の説明に使用されています。
UpdateCenter.jpr: カスタム更新センターを拡張機能の一部としてインストールする方法を示します。
extension.xml
内での<update-hook>
および<update-center>
タグの使用方法を示します。
拡張機能によって、「更新の確認」ウィザードの更新センター・ページに独自の更新センター・アイテムを追加する方法を示します。
VersionControlRCS.jpr: これは、バージョン・コントロール・システム(VCS) APIを使用した、サンプルのバージョン・コントロール統合です。
<vcs-hook>
、<vcs-profile>
および<vcs-menu>
などのVCS関連タグの実装を示します。
<automatic-action>や<refresh-action>
などのアクション・タグの実装を示します。