2009-05-06 7 views
4

rcpアプリケーションのPerspectiveツールバーを右クリックすると表示されるコンテキストメニューを表示しないようにしたいと思います。明確にするために、私はパースペクティブバーとショートカットを表示したいが、私はコンテキストメニューをポップアップしたくない。すべてのパースペクティブツールバーapiは内部にあるようです。Eclipse RCP:persective barのコンテキストメニューを表示しない

ありがとうございました。

答えて

1

PerspectiveSwitcherのコンテキストメニューは、言及したように、ワークベンチフレームワークの内部クラスで深く作成されます。 Beeingが作成されないようにすることはできません。また、内部クラスを大量に使用せずに既存の機能を再実装することなく、何らかの方法でメニューを非表示にするためのPerspectiveSwitcherへの参照を取得することもできません。

これを単純にすると、IMHOではコンテキストメニューが表示されないように見えます。

あなたの問題を解決する最も簡単できれいな方法は、パースペクティブバー全体を抑制し、自分自身を実装することです。既存のパースペクティブ(IWorkbench.getPerspectiveRegistry)と切り替えパースペクティブ(IWorkbenchPage.setPerspective)を照会するためのパブリックAPIがあります。コード化する必要があるのはUIだけです。

2

あなたは試すことができ、この

PerspectiveBarManager perspectiveBarManager = ((WorkbenchWindow) PlatformUI.getWorkbench() 
      .getActiveWorkbenchWindow()).getPerspectiveBar(); 
    ToolBar toolBar = perspectiveBarManager.getControl(); 
    Listener[] listeners = toolBar.getListeners(SWT.MenuDetect); 
    if (listeners != null) 
    { 
     for (Listener listener : listeners) 
     { 
      toolBar.removeListener(SWT.MenuDetect, listener); 
     } 
    } 
+0

*私はこれを使用してみました* [user844542このコメントを書いた@]が、 'PerspectiveBar'を取得することができませんでした。このコードを導入するための正しいクラスはどれですか?それともこれはもうできないのですか? – phihag

関連する問題