0

プラグインを介して Eclipse の実行メニューにメニュー項目を追加しようとしています。

ただし、「レポート デザイン」パースペクティブ (これは BIRT 用です) にいる場合にのみ、このアイテムが表示されるようにします。次に、(可能であれば) 開いているファイルの拡張子が .rptdesign の場合にのみメニュー項目を有効にしたいと考えています。

plugin.xml の visibility 要素または visibleWhen 要素いずれを使用してもうまくいきません。

ヒントをいただければ幸いです、Ro

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>

2 つの定義を追加

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

私のメニュー拡張機能で、コマンドに設定を追加し、表示されたときにマークを付けました

<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 に答える