#topicpath ---- //ここにコンテンツを記述します。 #contents JavaWorldの2004年3月号に特集されていたので、Eclipseのプラグイン開発ツールを触ってみました。 Eclipseはこのプラグインの固まりで、すべての機能はプラグインで作成されているみたいです。ようするにEclipseを機能拡張したい場合はこのプラグインという作法に則って作成するわけですね。 まだ全然やり方がわかりません。とりあえずView(パースペクティブ内の一つのタイルのこと)を拡張して、選択しているファイルのファイル名を表示するプラグインを作成しています。 ***とりあえずやってみる 一番簡単なやり方は - プラグイン開発 >> プラグイン・プロジェクト >> プロジェクト名~ (プロジェクト名はたとえばnu.mine.kino.sampleとか) -プラグイン・コード生成プログラム >> デフォルト・プラグイン構造~ (何も追加しない単純なテンプレート) 後はすべてデフォルトでOKでよいです。ウィザードが完了すると、単純なプラグイン・プロジェクトの作成完了です。 基本的な構成はできたので、次はプラグインファイル(plugin.xml)の記述です。手順は -プラグインエディタの拡張タブ >> 追加 >> 汎用ウィザード >> スキーマベースの拡張 -拡張ポイントを org.eclipse.ui.views を選択 -プラグインエディタの拡張タブより、org.eclipse.ui.viewsを右クリック >> 新規 >> Category を追加(Viewを属させるグループの作成) -さらに拡張タブより、org.eclipse.ui.viewsを右クリック >> 新規 >> View を追加(実際のViewの作成) とするとViewを追加できます。後はプロパティViewより必要事項を入力します。 ただのビューを表示するだけなら <extension point="org.eclipse.ui.views"> <category name="サンプルMyView" <- viewが属するカテゴリ名 id="com.samples.myview"> <- カテゴリのID </category> <view name="シンプルView" <- viewのバーのタイトル category="com.samples.myview" <- viewが属するカテゴリID class="com.samples.myview.SimpleView" <- viewを実装するクラス名 id="com.samples.myview.simpleview"> <- viewのID </view> </extension> で十分です。プロパティViewよりclassを選択すると対応するクラス(ここではcom.samples.myview.SimpleView)のスケルトンもウィザードが作ってくれます。 ***メニューやツールバーに機能を追加したい メニューバーや、ツールバーにプラグインを表示させたいときは org.eclipse.ui.actionSets という拡張ポイントを使用します。 ウィザードでHello,Worldプラグインを選択すると、以下のようなplugin.xmlが出力されます。 <extension point="org.eclipse.ui.actionSets"> <actionSet label="サンプル・アクション・セット" visible="true" id="nu.mine.kino.example.actionSet"> <menu label="サンプル・メニュー(&M)" id="sampleMenu"> <separator name="sampleGroup"></separator> </menu> <action label="サンプル・アクション(&S)" icon="icons/sample.gif" class="nu.mine.kino.example.actions.SampleAction" tooltip="Hello, Eclipse world" menubarPath="sampleMenu/sampleGroup" toolbarPath="sampleGroup" id="nu.mine.kino.example.actions.SampleAction"> </action> </actionSet> </extension> #ref(01.png) <menu label="サンプル・メニュー(&M)" #ref(02.png) <action label="サンプル・アクション(&S)" #ref(03.png) #ref(04.png) <actionSet label="サンプル・アクション・セット" ***外部のライブラリを使用する プラグインディレクトリにlibディレクトリなどを作成しておいて、plugin.xmlで <runtime> <library name="hoge.jar"/> <library name="lib/fuga.jar"/> <-外部ライブラリ </runtime> とすればOKです。 ***プラグインのディレクトリを取得する Log4jの初期化のためにlog4j.xmlを読み込むなど、プラグインディレクトリのパスを取得する場面は結構ありますが、その方法です。 String pluginDirectory = Platform .resolve(getDefault().getDescriptor().getInstallURL()).getPath(); で取得できます。 ちなみにLog4jの初期化などはAbstractUIPluginのサブクラス(勝手に作られるヤツ)で public void startup() throws CoreException { super.startup(); String pluginDirectory = null; try { pluginDirectory = Platform .resolve(getDefault().getDescriptor().getInstallURL()) .getPath(); } catch (IOException e) { e.printStackTrace(); } DOMConfigurator.configure(new File(pluginDirectory, "lib/log4j.xml").toString()); } などとstartup()をOverrideすればよいでしょうか。 ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}