【问题标题】:Hide perspective in eclipse with xml使用 xml 在 Eclipse 中隐藏透视图
【发布时间】:2016-05-19 22:11:57
【问题描述】:

我是整个 Eclipse RCP 和 PDE 的新手,所以欢迎任何帮助!

基本上我已经创建了一个新的透视图,主要是在我的plugin.xml 中使用xml 透视图和perspectiveExtension。它通常工作正常,但我只需要在我们的产品化应用程序中激活它,并在我们导出为插件时“将其关闭”...

这可以通过 xml 实现吗?还是有其他方法可以做到这一点?

我尝试过使用activity/activityPatternBindings,但这似乎不起作用,即:

   <extension point="org.eclipse.ui.activities">
   <activity id="com.x.y.z.disable"
           name="HidePerspective">
      <enabledWhen>
         <with variable="true">
            <equals value="false">
            </equals>
         </with>
      </enabledWhen>
   </activity>
   <activityPatternBinding activityId="com.x.y.z.disable"
                          pattern="com.x.y.z.MyPerspective">
   </activityPatternBinding>
   </extension>

如果上述工作正常 - 通过将 value="false" 更改为 value="true" 来打开/关闭透视图,那么我将在属性测试器中替换 org.eclipse.core.runtime.product。任何人都知道这是否是一种有效的方法或为什么上述方法不起作用?

【问题讨论】:

  • 感谢您的建议。最后,我创建了一个仅适用于产品化应用程序的新功能 - 几乎避免了上述问题......

标签: java eclipse eclipse-rcp eclipse-plugin


【解决方案1】:

如果您已经在 plugin.xml 中定义了您的透视图,那么在不需要时尝试在 Java 代码中将其删除(请参阅此博客文章如何操作http://commercialjavaproducts.blogspot.com/2011/07/remove-unwanted-perspectives-from-your.html)。

另外,您可能想看看 Eclipse Fragments,我认为它可以以更优雅的方式解决您的问题。

或者尝试创建这样的插件层次结构,您不依赖于具有透视图的插件,并且可以只导出您实际需要的那些插件。

【讨论】:

    【解决方案2】:

    您在绑定中的模式是错误的。有两种方法可以使用这些模式:要么是为了匹配多个 ID,要么应该有一些通配符。或者要完全匹配一个 ID,那么它需要是“plugin.id/perspective.id”的形式,并且属性“isEqualityPattern”应该设置为 true。

    看看http://www.vogella.com/blog/2009/07/13/eclipse-activities/中的示例代码

    另一个重点:虽然活动绑定可以隐藏 UI 元素,但如果工作台需要,这些 UI 元素将自动再次显示。因此,如果您的工作区包含 Java 项目,Eclipse 显示 Java UI 元素,即使它们之前通过模式绑定被隐藏。因此,您可能希望在尝试绑定时尝试清理工作区(因为工作区可能处于您的绑定已被忽略的状态)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多