2012-02-20 25 views
4

に加えて、私はこれを行うことにより、プロジェクトエクスプローラ上で右クリックし、コンテキストメニューに項目を追加することができました:Eclipseプラグイン開発でEclipseのコンソールビューのポップアップメニュー

<extension point="org.eclipse.ui.menus"> 
    <menuContribution locationURI="popup:org.eclipse.jdt.ui.PackageExplorer"> 
     <command ... > 
      ... 
     </command> 
    </menuContribution> 
</extension> 

しかし、ときに私ConsoleViewのポップアップメニューに追加しようとすると、結果が得られません。

<extension point="org.eclipse.ui.menus"> 
    <menuContribution locationURI="popup:org.eclipse.ui.console.ConsoleView"> 
     <command ... > 
      ... 
     </command> 
    </menuContribution> 
</extension> 

私はALT-シフト-F1と私はorg.eclipse.ui.console.ConsoleViewを得たところであるALT-シフト-F2(スパイプラグイン)からの出力を見てきました。しかし、私はポップアップメニュー自体に到達することはできません。私は個々のポップアップメニュー項目(Select All、Clearなど)に関する情報を得ることができますが、私はプラグインスパイを使って適切な情報を取得する方法をあまり知らないと思います。

EDIT:Plug-inを選択スパイ

、下からの回答を使用して私の仕事の結果を示すには、次のを持っていた:

Active Part (Console) 
    The active view identifier: 
     org.eclipse.ui.console.ConsoleView 
Active Selection 
    The selection class: 
     TextSelection 
Active Help 
    The active help context identifiers: 
     org.eclipse.debug.ui.process_console_context 

それは、に向かって私を指摘している最後のエントリでしたメッセージコンソールではなく、プロセスコンソールです。回答のリンクは、IDebugUIConstants.ID_PROCESS_CONSOLE_TYPEorg.eclipse.debug.ui.ProcessConsoleTypeと定義されていました。だから私はこれで終わった、それが働いた:

<menuContribution 
     locationURI="popup:org.eclipse.debug.ui.ProcessConsoleType.#ContextMenu"> 
    <command 
      commandId="com.grch.cmgtsdk.merge" 
      label="Yowza!" 
      style="push"> 
    </command> 
    </menuContribution> 

答えて

4

コンソールビュー自体は、コンソールの異なる種類のコンテナだけであり、それはコンテキストメニューを持っていません。あなたはあなたの貢献を追加する特定のコンソールのメニューIDを把握する必要があります。

テキストコンソールの場合、メニューIDは<console type>.#ContextMenuのようになります。これは実際には文書化されておらず、コンソールタイプを見つけることは簡単ではありません(コードを調べてください)。たとえば、プロセスコンソールのコンソールタイプはIDebugUIConstants.ID_PROCESS_CONSOLE_TYPEに定義されていますが、メッセージコンソールの場合はIConsoleConstants.MESSAGE_CONSOLE_TYPEです。

1

上記の回答は、ポップアップの作成に役立ちました。以下はその例のコードです: -

<menuContribution 
      locationURI="popup:org.eclipse.ui.MessageConsole.#ContextMenu"> 
      <menu 
       label="My Popup" id="com.abhi.test.popup.menu2"> 

      <command 
       commandId="com.abhi.test.command1" 
       id="com.abhi.test.popup.command3" 
       style="push"> 
      </command> 
      </menu> 
    </menuContribution> 
関連する問題