【问题标题】:Hi, is it possible to disable / not show a wizard under eclipse嗨,是否可以在 Eclipse 下禁用/不显示向导
【发布时间】:2021-01-15 01:58:38
【问题描述】:

是否可以在 Eclipse 下禁用/不显示向导

例如:文件 -> 新建 -> 向导名称
同样的方法:文件->新建->其他->选择一个向导->向导类别名称->向导名称

我可以通过 propertyTesters 使向导不在 Project Explorer 视图中显示。

但我想禁用 File -> New -> WizardName 下的向导 ...

我们怎样才能做到这一点?

【问题讨论】:

  • 我想通过一个变量使其可见,该变量可以通过 isWizardEnabled() 等字符串键值更改;

标签: eclipse eclipse-plugin eclipse-rcp eclipse-cdt


【解决方案1】:

我确实认为您可以使用活动框架隐藏您的向导。 org.eclipse.ui.activities 扩展点允许您定义一组可以共同显示或隐藏的 UI 贡献。也可以为单个 UI 贡献创建扩展,例如您的向导。

您只需使用扩展名定义一个activity 元素,并为其指定一个id 和一个name。您还可以将enabledWhen 元素附加到活动,允许您使用任何核心表达式控制其可见性,包括允许您合并属性测试器的test 元素。

<activity
    id="your.plugin.id.activities.controlwizardvisiblity"
    name="Control My Wizard Visibility">
    <enabledWhen>
        <test
              property="your.property.tester.info">
        </test>
     </enabledWhen>
</activity>

定义活动后,您可以使用 activityPatternBinding 元素将 UI 贡献附加到它。绑定引用上面创建的活动 id,然后指定 pattern 属性,格式为:

your.plugin.id/your.contribution.id

pattern 可以是匹配多个 UI 贡献的正则表达式,或者如果您设置了isEqualityPattern="false"pattern 可以直接指定单个插件 ID/贡献 ID 组合。在你的情况下,这可能就是你想要做的,它看起来像这样。

<activityPatternBinding
    activityId="your.plugin.id.activities.controlwizardvisiblity"
    isEqualityPattern="false"
    pattern="your.plugin.id/your.wizard.id">
</activityPatternBinding>

【讨论】:

  • blog.vogella.com/2009/07/13/eclipse-activities 这个链接和你的帖子解决了这个问题。
  • 在获得 vogella'Ds 链接中描述的活动管理器后:IActivityManager activityManager = activitySupport.getActivityManager();而不是生成一个空的 Set enabledActivities = new HashSet();使用 activityManager.getEnabledActivityIds() 方法获取活动集列表并添加/删除 id = "de.vogella.rcp.activities.view"; activitySupport.setEnabledActivityIds(enabledActivities);
  • 如果您生成并添加到一个新集合中,那么其他启用的活动将像终端和其他一些 cdt 活动一样消失。请检查 vogella 关于日食活动的块。链接在第一条评论中。并使用上面的评论添加和删除现有活动。
猜你喜欢
  • 2014-07-22
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
相关资源
最近更新 更多