我想为我们的产品启用基于项目的首选项对话框.我偶然发现了两个不同的问题:
如何存储与项目相关的信息.作为一个有根据的猜测我会尝试这个:
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)中处理此问题?
您将需要子类化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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2496 次 |
| 最近记录: |