« ビルダー登録の担当者は? | トップページ | CoreExceptionとIStatus »

2004.03.24

プロパティ・ページの作成方法

Package ExplorerビューやNavigatorビューのコンテキストメニューの一番下に必ず表示されている「Properties」メニュー項目。Eclipseでは,IResourceオブジェクトであれば何でもプロパティを持つことができる。そのプロパティ値の編集を行う画面の呼び出しに使うのが「Properties」メニューである。ここでは,「Properties」メニューにより表示されるプロパティ・ページの作成方法を紹介する。

新規にプロパティ・ページを定義するには,org.eclipse.ui.propertyPages拡張ポイントを使用してプラグイン・マニフェストに記述を行う

  <extension point="org.eclipse.ui.propertyPages">
    <page
      id="yoichiro.myPlugin.myPropertyPage"
      name="My property page"
      objectClass="org.eclipse.jdt.core.IJavaProject"
      class="yoichiro.MyPropertyPage">
    </page>
  </extension>

org.eclipse.ui.propertyPages拡張ポイントでは,page要素を使って新規に作成したいプロパティ・ページの定義を行うid属性にプロパティ・ページを識別するためのID文字列を,name属性にプロパティ・ページの名前を記述する。プロパティ・ページの名前は,画面上のプロパティ・ページのタイトル部に表示される

objectClass属性は,このプロパティ・ページを適用するオブジェクトの種類を指定する。上記ではIJavaProjectクラス,つまりJavaプロジェクトに対してのみ適用されるプロパティ・ページということになる。そしてclass属性にプロパティ・ページの実装クラスを指定する。

プロパティ・ページのクラスは,IWorkbenchPropertyPageインタフェースを実装して作成するのだが,通常はプラットフォームが用意してくれているPropertyPageクラスを継承して作成する

  public class MyPropertyPage extends PropertyPage {
    public MyProperty() {
      super();
    }
    protected Control createContents(Composite parent) {
      // プロパティ・ページのGUI作成処理
    }
  }

基本的にはこれだけ。createContentsメソッドでプロパティ・ページの画面をSWTを使ってせっせと構築する。実は,「return null;」だけでも,下図のような空の画面が表示されるようになる。

property-page.gif

プロパティ・ページでは,自動的に[OK]ボタンと[Cancel]ボタンが提供される。これらのボタンが押されたときには,下記のメソッドがプラットフォームから呼び出されるので,その中にそれぞれの処理を記述する。

  ・[OK]ボタンが押されたとき - public boolean performOk() { ... }
  ・[Cancel]ボタンが押されたとき - public boolean performCancel() { ... }

上記のメソッドの結果として false を返却したときは,プロパティを確定しちゃいけない状況とプラットフォームは判断し,プロパティ・ページのダイアログは閉じずにそのままとなる。

プロパティ・ページでは,プロパティ・ページのダイアログを閉じずに「プロパティ値を初期値に戻す」「プロパティ値を確定させる」動作を行うことができる。それぞれ[Restore Defaults]ボタン,[Apply]ボタンがそれである。これらが押されたときには,下記のメソッドが呼び出されるので,その中で所定の処理を記述する。

  ・[Restore Defaults]ボタンが押されたとき - protected void performDefaults() { ... }
  ・[Apply]ボタンが押されたとき - protected void performApply() { ... }

なお,noDefaultAndApplyButtonメソッドをcreateContentsメソッド内で呼び出してあげると,[Restore Defaults]ボタンと[Apply]ボタンが表示されなくなるので,必要ないときは消してしまうことが可能である。

|

« ビルダー登録の担当者は? | トップページ | CoreExceptionとIStatus »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/12631/345769

この記事へのトラックバック一覧です: プロパティ・ページの作成方法:

« ビルダー登録の担当者は? | トップページ | CoreExceptionとIStatus »