パースペクティブメニューを完全に制御する必要があります。
コンテキストメニューを無効にするために、すでにプラットフォームにハッキングしました。
private void disablePerspectiveToolbarMenu() {
PerspectiveBarManager perspectiveBarManager =
((WorkbenchWindow) PlatformUI.getWorkbench().getActiveWorkbenchWindow()).getPerspectiveBar();
if (perspectiveBarManager!=null){
ToolBar toolBar = perspectiveBarManager.getControl();
Listener[] listeners = toolBar.getListeners(SWT.MenuDetect);
if (listeners != null){
for (Listener listener : listeners){
toolBar.removeListener(SWT.MenuDetect, listener);
}
}
}
}
ただし、PERSPECTIVEMENUのデフォルトの内容も制御する必要があります。パースペクティブリストシェルへのアクセスを提供する、常に存在する1つのオプションがあります。メニューからそのオプションを削除する必要があります。
パースペクティブメニューが完全にユーザーの制御下にないのは残念です。メニューにパースペクティブを追加するだけで、それ以上は必要ありません。
ありがとう。