0

我正在尝试通过插件将菜单项添加到 Eclipse 中的运行菜单。

但是,我只希望当我处于“报表设计”透视图(这是用于 BIRT)中时出现此项目。其次,(如果可能)我希望仅在打开文件的扩展名为 .rptdesign 时才启用菜单项。

使用 plugin.xml 中的可见性visibleWhen元素我没有任何运气

任何提示表示赞赏,罗

4

1 回答 1

1

终于明白了,这就是我必须做的......

创建命令

<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>

于 2012-12-04T11:02:02.263 回答