【问题标题】:Remove view action extension at runtime在运行时删除视图操作扩展
【发布时间】:2012-01-01 00:53:56
【问题描述】:

我确实创建了一个视图,这些视图用于多个产品,我们已经交付。 视图被放置在一个特性中,而这些特性不知道产品规格,特性也不应该知道。

其他插件通过实现扩展点为视图贡献动作,显示在视图工具栏标题中

  • “org.eclipse.ui.viewActions”

取决于系统属性(产品规范将在运行时设置)所有贡献的视图操作是否应该隐藏。

问题: 我找不到用于删除特殊扩展点的删除扩展的类。我知道

  • WorkbenchPlugin.getDefault().getActionSetRegistry()

可以删除 actionSet,但 viewAction 是否存在类似的东西?

我查看了代码并找到了解决方案,但这完全不能接受,因为当我更新我的 eclipse 目标平台时,由于反射调用,它可能/将会中断。

Field privateStringField = ExtensionRegistry.class.getDeclaredField("masterToken"); //$NON-NLS-1$
privateStringField.setAccessible(true);
Object masterToken = privateStringField.get(registry);

// Reads the External Datatype Providers
IExtensionPoint extensionPoint = registry.getExtensionPoint("org.eclipse.ui.viewActions"); //$NON-NLS-1$
IConfigurationElement[] extensionPointArray = extensionPoint.getConfigurationElements();

for (int i = 0; i < extensionPointArray.length; i++) {
    IConfigurationElement element = extensionPointArray[i];
    if (element.getAttribute("targetID").equalsIgnoreCase(pPartId)) { //$NON-NLS-1$
        IConfigurationElement[] childs = element.getChildren();
        for (int j = 0; j < childs.length; j++) {
            registry.removeExtension(element.getDeclaringExtension(), masterToken);
        }
    }
}

【问题讨论】:

标签: eclipse view registry rcp


【解决方案1】:

您可以使用Product Customization 在加载扩展 XML 时对其进行修改。然后需要的产品可以使用产品定制和样式表。例如,抑制一个动作:

  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="actionSet[@id='org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo']">
   </xsl:template>
   <xsl:template match="node()|@*">
       <xsl:copy>
           <xsl:apply-templates select="node()|@*"/>
       </xsl:copy>
   </xsl:template>
 </xsl:stylesheet>

您也可以尝试 Activities/Capabilities 隐藏 viewActions。每个需要的产品都将包含禁用的活动,以使 viewActions 扩展消失。

【讨论】:

    猜你喜欢
    • 2018-12-27
    • 2012-01-09
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多