[英]Disable the Cancel button for a custom preference page in a Eclipse RCP application
[英]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.