rcpアプリケーションのPerspectiveツールバーを右クリックすると表示されるコンテキストメニューを表示しないようにしたいと思います。明確にするために、私はパースペクティブバーとショートカットを表示したいが、私はコンテキストメニューをポップアップしたくない。すべてのパースペクティブツールバーapiは内部にあるようです。Eclipse RCP:persective barのコンテキストメニューを表示しない
ありがとうございました。
rcpアプリケーションのPerspectiveツールバーを右クリックすると表示されるコンテキストメニューを表示しないようにしたいと思います。明確にするために、私はパースペクティブバーとショートカットを表示したいが、私はコンテキストメニューをポップアップしたくない。すべてのパースペクティブツールバーapiは内部にあるようです。Eclipse RCP:persective barのコンテキストメニューを表示しない
ありがとうございました。
PerspectiveSwitcherのコンテキストメニューは、言及したように、ワークベンチフレームワークの内部クラスで深く作成されます。 Beeingが作成されないようにすることはできません。また、内部クラスを大量に使用せずに既存の機能を再実装することなく、何らかの方法でメニューを非表示にするためのPerspectiveSwitcherへの参照を取得することもできません。
これを単純にすると、IMHOではコンテキストメニューが表示されないように見えます。
あなたの問題を解決する最も簡単できれいな方法は、パースペクティブバー全体を抑制し、自分自身を実装することです。既存のパースペクティブ(IWorkbench.getPerspectiveRegistry)と切り替えパースペクティブ(IWorkbenchPage.setPerspective)を照会するためのパブリックAPIがあります。コード化する必要があるのはUIだけです。
あなたは試すことができ、この
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);
}
}
*私はこれを使用してみました* [user844542このコメントを書いた@]が、 'PerspectiveBar'を取得することができませんでした。このコードを導入するための正しいクラスはどれですか?それともこれはもうできないのですか? – phihag