繁体   English   中英

Eclipse RCP应用程序中项目特定的首选项页面

[英]Project specific preference page in Eclipse RCP application

我想为我们的产品启用基于项目的首选项对话框。 我偶然发现2个不同的问题:

我如何存储与项目有关的信息。 作为有根据的猜测,我会尝试以下方法:

  • IPreferenceStore store = new ScopedPreferenceStore(new ProjectScope(project.getIProject()), Activator.PLUGIN_ID) ;
  • 之后,根据需要设置“项目存储”(例如在首选项页面中作为存储)

如何仅为项目启用首选项页? 我知道我可以使用PreferenceUtils.createPreferenceDialogOn(…)来调用带有某些预选页面的PreferenceUtils.createPreferenceDialogOn(…)选项对话框。 不幸的是,首选项页面的ID必须在org.eclipse.ui.preferencePages扩展点中定义。 但是,如果它们在此扩展点内,则这些页面也位于产品的全局“首选项”中。 如果未在EP中指定它们,则不会显示页面。

有什么暗示吗? 提前致谢 :)

编辑:我真正想要的是属性对话框,而不是首选项对话框。 如果您正在使用属性页,则PreferenceUtils根本不起作用。 如果您通过org.eclipse.ui.propertyPages提供属性页,则该页面对标准Eclipse导航器效果很好-但是如何在自定义导航器(Common Navigator Framework)中处理该页面?

您将需要对PropertiesPage进行子类化,然后像这样将其引用放入您的plugin.xml中。 这使用两个不同的属性页,一个在选择项目时显示,另一个用于文件。 而且它们都只存在于具有指定项目性质的项目中。

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM