我对整个日食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。任何人都知道这是一种有效的方法,还是为什么上述方法不起作用?
答案 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元素,即使它们之前是通过模式绑定隐藏的。因此,您可能希望在尝试绑定时尝试清理工作区(因为工作区可能处于已忽略绑定的状态)。