我有一些使用Eclipse RCP的Activities来隐藏插件UI组件的经验,但是这个让我难倒了。我使用Eclipse Plug-in Selection Spy尝试查看是哪个插件提供了默认Preferences页面底部的导入/导出按钮,它似乎指向org.eclipse.ui.workbench
。至少,这是当我点击Preferences对话框时出现的。例如,当我执行Alt + Shift + F1
并尝试单击Export按钮时,光标变回常规指针,当我单击时,插件间谍窗口显示为空。
提供默认Preferences页面的类为org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog
。这个类扩展了org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog
,它有一个方法,可以在调用open()
时将导入/导出按钮添加到对话框中。
所以,我看了看org.eclipse.ui.workbench
插件,试图找到一些东西放在我的activityPatternBinding
,将隐藏这些按钮。我试着用
<activityPatternBinding
activityId="my_hidden_activity"
isEqualityPattern="true"
pattern="org.eclipse.ui.workbench/org.eclipse.ui.internal.wizards.preferences.PreferencesImportWizard">
</activityPatternBinding>
来阻止导入类的显示,这可能会阻止按钮的显示,但这不起作用。
有谁知道如何摆脱这些图标不完全重写默认的首选项对话框?
你只能隐藏项目,如果创建它们的代码调用活动管理器来检查它们是否被过滤-通常通过调用WorkbenchActivityHelper.filterItem
。
FilteredPreferenceDialog
中的导入/导出代码不会进行此调用,因此它不能与活动一起删除。我看不出有什么办法可以压制这些按钮。