2

製品のプロジェクトベースの設定ダイアログを有効にしたいと考えています。私は2つの異なる問題に出くわしました:

これらのプロジェクト関連情報を保存するにはどうすればよいですか。経験に基づいた推測として、私はこれを試してみます:

  • IPreferenceStore store = new ScopedPreferenceStore(new ProjectScope(project.getIProject()), Activator.PLUGIN_ID);
  • その後、必要に応じて「プロジェクトストア」を設定します(たとえば、設定ページ内をストアとして)

プロジェクトに対してのみ設定ページを有効にするにはどうすればよいですか? PreferenceUtils.createPreferenceDialogOn(…). _ 残念ながら、設定ページの ID はorg.eclipse.ui.preferencePages拡張ポイントで定義する必要があります。ただし、それらがこの拡張ポイント内にある場合、これらのページは製品のグローバルな「設定」にも含まれます。EP 内で指定されていない場合、ページは表示されません。

それに関するヒントはありますか?前もって感謝します :)

編集:私が実際に欲しかったのは、設定ダイアログではなく、プロパティダイアログでした。プロパティ ページを操作している場合、PreferenceUtils はまったく機能しません。経由でプロパティ ページをorg.eclipse.ui.propertyPages提供すると、標準の Eclipse ナビゲーターでうまく機能しますが、カスタム ナビゲーター (Common Navigator Framework) 内でこれを処理するにはどうすればよいですか?

4

1 に答える 1

6

PropertiesPageたとえば、サブクラス化してから、その参照をplugin.xmlに配置する必要があります。これは、2つの異なるプロパティページを使用します。1つはプロジェクトが選択されたときに表示され、もう1つはファイル用です。そして、それらは両方とも、指定されたプロジェクトの性質を持つプロジェクトにのみ存在します。

<extension point="org.eclipse.ui.propertyPages">
    <page
        class="com.oaklandsw.transform.editor.TransformProjectPropertiesPage"
    id="com.oaklandsw.transform.filePropPage"
    name="%appHandle">
    <enabledWhen>
    <and>
            <instanceof
             value="org.eclipse.core.resources.IProject">
        </instanceof>
            <adapt type="org.eclipse.core.resources.IResource" >
                <test
                 property="org.eclipse.core.resources.projectNature"
                value="com.oaklandsw.transform.runtime.nature">
                </test>
            </adapt>   
    </and>
    </enabledWhen>
    </page> 
    <page class="com.oaklandsw.transform.editor.TransformFilePropertiesPage"
        id="com.oaklandsw.transform.projectPropPage" name="%appHandle">
        <enabledWhen>
            <and>
        <instanceof
            value="org.eclipse.core.resources.IFile">
        </instanceof>
            <adapt type="org.eclipse.core.resources.IResource" >
                <test property="org.eclipse.core.resources.projectNature"
                    value="com.oaklandsw.transform.runtime.nature" />
            </adapt>        
            </and>
        </enabledWhen>
    </page>
</extension>
于 2012-05-19T17:05:44.737 に答える