我想为我们的产品启用基于项目的首选项对话框。我偶然发现了两个不同的问题:
我如何存储这些项目相关信息。作为一种有根据的猜测,我会尝试这个:
-
IPreferenceStore store = new ScopedPreferenceStore(new ProjectScope(project.getIProject()), Activator.PLUGIN_ID)
;
- 然后根据需要设置“项目商店”(例如在首选项页面内设置为商店)
如何仅为项目启用首选项页面?我知道我可以使用以下命令调用带有一些预选页面的首选项对话框PreferenceUtils.createPreferenceDialogOn(…)
。不幸的是,首选项页面的 ID 必须在org.eclipse.ui.preferencePages
扩展点。但是,如果它们位于此扩展点内,则这些页面也位于产品的全局“首选项”中。如果 EP 内未指定,则不会显示页面。
有什么提示吗?提前致谢 :)
EDIT:我真正想要的是属性对话框,而不是首选项对话框。如果您正在使用属性页,则 PreferenceUtils 根本不起作用。如果您通过以下方式贡献属性页面org.eclipse.ui.propertyPages
它适用于标准 Eclipse 导航器 - 但我如何在自定义导航器(通用导航器框架)中处理这个问题?
你需要子类化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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)