プラグイン(7) プロパティページの骨格

プロパティページを試しに作ってみる。ビューとかどうやって作るんだろ…

プロジェクトを作る

PDEで File > New > Project

  1. Plug-in Project
    1. Project name: org.ashikunep.irenka.studio.properties
    2. Next
  2. Plug-in Content
    1. uncheck: Generate an activator, ...
    2. Next
  3. Templates
    1. Available Templates: Plug-in with a property page
    2. uncheck: Create a plug-in using one of the templates
    3. Finish

プロパティページ作るテンプレートがすでに用意されてるよorz
今後のために、今回はテンプレートつかわね。

拡張ポイントを使ってみる

META-INF/MANIFEST.MF > Extensions

Add > Extension Wizards に Property Page なるものがあるがとりあえず無視。困ったら使うよ。

Add > Extension Point (Tab)

  1. Extension Point Selection
    1. uncheck: Show only extension points from the required plug-ins
    2. Extension Point filter: propertyPages
    3. select: org.eclipse.ui.propertyPages
    4. Finish
  2. (popup) New plug-in dependency
    1. Yes

マニフェストエディタに戻るので、次のように設定。

  • Extension Element Details
    • id: org.ashikunep.irenka.studio.properties.samplePropertyPage
    • name: Sample property page
    • class: org.ashikunep.irenka.studio.properties.SamplePropertyPage

Ctrl+Sでセーブ

振る舞いを書く

マニフェストエディタからクラスを作れる。
"class*:"をクリック

  1. Java Class
    1. Finish

org.eclipse.ui.IWorkbenchPropertyPage インターフェースを実装した org.ashikunep.irenka.studio.properties.SamplePropertyPage クラスができる。が、コンパイルできない。どうやらプラグインの依存関係をしっかり解決していないようだ。

META-INF/MANIFEST.MF > Dependencies

これはたまたま知ってたけど、型名からプラグインを逆算するのってどうやるんだろ。

ともあれ、こんな感じのクラスになる。

public class SamplePropertyPage extends PropertyPage implements
        IWorkbenchPropertyPage {
    
    @Override
    protected Control createContents(Composite parent) {
        return null;
    }
}

試す

  1. Run As > Eclipse Application
  2. 新しい Eclipse でプロパティページを見る
  3. Sample property page という空のページができた

次はコンポーネントの貼り方を。