2005年02月26日

ブラウザプラグインの作成 - 設定画面の追加

今回は設定画面を追加します。設定画面でブラウザのホームページが設定できるようにしましょう。

今回作成したプラグインはこちらからダウンロードできます。→browser_0.0.3.zip
ソースも入っていますのでダウンロードして参考にしながら説明を読んでください。

1.拡張の追加
plugin.xmlのマニフェスト・エディターを開いて、拡張のタブをクリックします。
追加ボタンを押して拡張ポイントの選択ウィザードを表示します。
拡張ポイントでorg.eclipse.ui.preferencePagesを選択して、テンプレートの設定ページを選択して次へをクリックします。
サンプルページの設定を任意に変更して終了ボタンをクリックします。
すると、拡張のツリーにorg.eclipse.ui.preferencePagesが追加され、その子にはpageが追加されます。このpageが設定ページの情報となります。

2.設定ページの作成
拡張のツリーが生成されると同時にサンプルの設定ページのクラスが自動生成されます。
見れは分かると思いますが、簡単に説明します。
public void createFieldEditors()
設定ページを作成するときに呼ばれ、このメソッドで表示したいフィールドを追加します。

public void init(IWorkbench workbench)
初期処理するときに使いますが、今回は使用しません。

サンプルではファイル選択、チェックボックス、ラジオボタン、テキストのフィールドを使用していますが、今回はURLの設定のみなのでテキストだけを使用します。
/* 項目を生成します */
public void createFieldEditors() {
addField(
new StringFieldEditor(
P_STRING, "ホームページURL(&U)",
getFieldEditorParent()));
}
これだけでOKです。
これでPreferenceStoreというものに自動で保存され画面を開いたときには保存された情報が表示されます。

3.初期値の設定
サンプルではPrefertencePageの初期化で初期値を設定していますが、これでは設定ページが開かれるまで初期値が有効になりません。これを解決するためにはPluginのクラスで初期値を設定する必要があります。BrowserPluginクラスでAbstractUIPluginのinitializeDefaultPreferences(IPreferenceStore store)メソッドをオーバーライドします。そこで渡されるstoreに対して初期値を設定します。
/* 初期値の設定 */
protected void initializeDefaultPreferences(
IPreferenceStore store) {
store.setDefault(
PreferencePage.P_STRING,
"http://www.google.com/");
}


4.アクションの追加
まずは前回のアクション追加を参考にして、ホームページを開くためのアクションを作成します。詳細は省略します。
アクションから呼ばれるBrowserCompositクラスにホームページに遷移するためのメソッドを追加します。
そのメソッドではPreferenceStoreに保存された情報を呼び出しそのページを表示するようにします。
/* ホームに遷移します */
public void home() {
IPreferenceStore store =
BrowserPlugin.getDefault().
getPreferenceStore();
String url =
store.getString(PreferencePage.P_STRING);
browser.setUrl(url);
}

これで、設定された値が取得でき、ホームページとして値を渡すことができます。

今回作成したプラグインはこちらからダウンロードできます。→browser_0.0.3.zip
次回は、進捗モニタを使った状態表示をします。
では、また。
posted by 月夜 at 23:21| Comment(0) | TrackBack(1) | プラグイン開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

[Eclipse RCP]PreferenceDialogの使い方
Excerpt: Eclipse RCP、プログラムでは PreferenceManagerのインスタンスを作成すことはないかもしれない。   通常、WorkbenchからPreferenceManagerを取得する..
Weblog: AkのJavaメモやWebの更新情報
Tracked: 2005-03-08 05:21
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。