2016-07-19 4 views
1

プロジェクトに2つのプロパティページを追加するEclipseプラグインを開発しています。Eclipseのプロジェクトプロパティダイアログからノードをプログラムで選択する

第2のプロパティページは、プロパティページ1のサブページです。基本的に、ユーザーがプロパティページ1ノードを展開すると、プロパティページ2が表示されます。 、クリックされた、「詳細設定」というボタンがあり、私はプログラム的に同じことを行うことができますどのように2

をプロパティページ1で

開き、プロパティページにフォーカスを設定する必要がありますか?

enter image description here

enter image description here

+0

あなたが試したことをいくつか使ってみることができますか? –

答えて

1

プロパティページ内から別のプロパティページを選択する指定方法はありません。

唯一の機会は、容器をFilteredPreferenceDialogにキャストすることです。このクラスには、現在表示されているページを変更するパブリックメソッドがあります。例:

IPreferencePageContainer container = getContainer(); 
FilteredPreferenceDialog dialog = (FilteredPreferenceDialog)container; 
dialog.setCurrentPageId("page-id"); 

この回避策の欠点は、FilteredPreferenceDialogが内部クラスであることです。

+0

これは、私の望むやり方ではありますが、その内部クラス、別のやり方は何ですか? – svm

+0

APIを提供するために、[プラットフォーム/ UIでの拡張要求を開く](https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform)以外は恐れています。したがって、あなたは結局内部への参照を取り除くでしょう。あなたがそれを行うことにした場合は、ここにbugzillaエントリーへのリンクを投稿してください。 –

2

使用PreferencesUtil.createPropertyDialogOn方法のように:

PreferencesUtil.createPropertyDialogOn(
Display.getCurrent().getActiveShell(), proj,<page_id>, null, null).open(); 

あなたはcreatePropertyDialogOnhereの他のオーバーロードされたメソッドのJavadocを確認することができます。

+0

これはプリファレンスページでは機能しますが、プロパティーでは機能しません。 –

+0

プロジェクトのプロパティダイアログで機能します。私はCのプロジェクトのプロパティダイアログでそれを試して、自動的にノードを選択することができます。 –

+0

これで上記のスニペットはうまくいきますが、同じシェルに留まらず、新しいシェルを開きます。 – svm

関連する問題