1

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

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

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

我试过使用活动/活动模式绑定,但这似乎不起作用,即:

   <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。任何人都知道这是否是一种有效的方法或为什么上述方法不起作用?

4

2 回答 2

0

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

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

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

于 2013-02-21T13:46:28.923 回答
0

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

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

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

于 2013-02-23T06:50:09.160 回答