我正在尝试通过插件将菜单项添加到 Eclipse 中的运行菜单。
但是,我只希望当我处于“报表设计”透视图(这是用于 BIRT)中时出现此项目。其次,(如果可能)我希望仅在打开文件的扩展名为 .rptdesign 时才启用菜单项。
使用 plugin.xml 中的可见性或visibleWhen元素我没有任何运气
任何提示表示赞赏,罗
我正在尝试通过插件将菜单项添加到 Eclipse 中的运行菜单。
但是,我只希望当我处于“报表设计”透视图(这是用于 BIRT)中时出现此项目。其次,(如果可能)我希望仅在打开文件的扩展名为 .rptdesign 时才启用菜单项。
使用 plugin.xml 中的可见性或visibleWhen元素我没有任何运气
任何提示表示赞赏,罗
终于明白了,这就是我必须做的......
创建命令
<extension
point="org.eclipse.ui.commands">
<command
name="Deploy"
icon="icons/deploy.gif"
style="push"
id="com.test.deployCommand">
</command>
为命令创建处理程序
<extension
point="org.eclipse.ui.handlers">
<handler
commandId="com.test.deployCommand"
class="com.test.DeployHandler">
</handler>
添加 BIRT 中可用的现有属性测试器(以测试文件类型) - 如果我更改命名空间参数将不起作用
<extension
point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
class="org.eclipse.birt.report.debug.internal.ui.script.ScriptDebuggerPropertyTester"
id="com.test.propertyTester1"
namespace="scriptdebug"
properties="isRptdesign"
type="org.eclipse.core.runtime.IAdaptable">
</propertyTester>
添加了两个定义
<extension point="org.eclipse.core.expressions.definitions">
<definition id="com.test.inRptDesignPerspective">
<with variable="activeWorkbenchWindow.activePerspective">
<equals value="org.eclipse.birt.report.designer.ui.ReportPerspective"/>
</with>
</definition>
<definition id="com.test.inRptDesignFile">
<with variable="selection">
<count value="1" />
<iterate>
<and>
<test property="scriptdebug.isRptdesign" />
</and>
</iterate>
</with>
</definition>
</extension>
On my menu extension, added a setting to the command, marking when its visible
<extension
point="org.eclipse.ui.menus">
<menuContribution locationURI="menu:org.eclipse.ui.main.menu" id="com.test.contribution2">
<menu
id="org.eclipse.ui.run"
label="Run"
path="additions">
<groupMarker
name="preview">
</groupMarker>
<command
commandId="com.test.deployCommand"
icon="icons/deploy.gif"
id="com.test.deployCommand"
menubarPath="org.eclipse.ui.run/preview"
style="push"
class="com.test.DeployHandler">
<visibleWhen>
<and>
<reference definitionId="com.test.inRptDesignPerspective"/>
<reference definitionId="com.test.inRptDesignFile"/>
</and>
</visibleWhen>
</command>
</menu>
</menuContribution>