2

Eclipse 4.2.1 を使用するように RCP アプリケーションをアップグレードしています。私が抱えている問題の 1 つは、カスタム スキームのキー バインディングが Eclipse のキー バインディングをオーバーライドしなくなったことです。

サンプル プラグイン プロジェクトで問題を再現しました。これは、このチュートリアルに従い、その後適応させて作成されました。プロジェクト自体を添付することはできないため、plugin.xml ファイルの内容のみを含めました。

デフォルトのスキームを拡張する独自のスキームがあります。

  <scheme
        id="test.MyScheme"
        name="My Scheme"
        parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
  </scheme>

Ctrlキーバインディング+を持つコマンドがありますN

  <key
        commandId="test.MyCommand"
        contextId="org.eclipse.ui.contexts.window"
        schemeId="test.MyScheme"
        sequence="M1+N">
  </key>

Eclipse 3.7.2 では、Ctrl+を押すNとコマンドが実行されました。

Eclipse 4.2.1 では、コマンドを実行するか「新規」ウィザードを起動するかを選択するように求めるボックスがポップアップ表示されます。元の動作に戻すにはどうすればよいですか?

以下の plugin.xml の全内容。

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

   <extension
         id="application"
         point="org.eclipse.core.runtime.applications">
      <application>
         <run
               class="test.Application">
         </run>
      </application>
   </extension>
   <extension
         point="org.eclipse.ui.perspectives">
      <perspective
            name="RCP Perspective"
            class="test.Perspective"
            id="test.perspective">
      </perspective>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <command
            defaultHandler="test.MyCommandHandler"
            id="test.MyCommand"
            name="My Command">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            allPopups="false"
            locationURI="menu:org.eclipse.ui.main.menu">
         <menu
               id="fileMenu"
               label="File">
            <command
                  commandId="test.MyCommand"
                  label="My Command"
                  style="push">
            </command>
         </menu>
      </menuContribution>
   </extension>
   <extension
         point="org.eclipse.ui.bindings">
      <key
            commandId="test.MyCommand"
            contextId="org.eclipse.ui.contexts.window"
            schemeId="test.MyScheme"
            sequence="M1+N">
      </key>
      <scheme
            id="test.MyScheme"
            name="My Scheme"
            parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
      </scheme>
   </extension>
   <extension
         id="product"
         point="org.eclipse.core.runtime.products">
      <product
            application="test.application"
            name="My Product">
         <property
               name="appName"
               value="My Product">
         </property>
         <property
               name="preferenceCustomization"
               value="plugin_customization.ini">
         </property>
      </product>
   </extension>

</plugin>
4

2 に答える 2

0

古いメカニズムは機能していないように見えますが、別の方法があります。

  1. 拡張機能 org.eclipse.e4.workbench.model を追加します
  2. プロセッサ フラグメントを追加する
  3. 問題のあるキー バインディングを見つけます: MAppliction->MBindingTable->MKeyBinding
  4. バインディング テーブルからキー バインディングを削除します
于 2012-12-20T16:48:32.560 に答える
0

次のファイルは、plugin.xml の隣にあるプラグイン ディレクトリ内にない可能性があります。

plugin_customization.ini

その内容は次のとおりです。

org.eclipse.ui/KEY_CONFIGURATION_ID=test.MyScheme

このチュートリアルこちらの章も参照してください。

于 2015-10-13T14:13:55.617 に答える