用xml隐藏eclipse中的透视图

时间:2013-02-20 13:56:45

标签: java eclipse eclipse-rcp eclipse-plugin

我对整个日食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>

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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元素,即使它们之前是通过模式绑定隐藏的。因此,您可能希望在尝试绑定时尝试清理工作区(因为工作区可能处于已忽略绑定的状态)。