2016-01-13 31 views
0

由於從Eclipse 3.0遷移到4.4,有必要隱藏不必要的菜單條目,如「打開文件」和「密鑰幫助」。Eclipse RCP:Action「RESET_PERSPECTIVE」顯示先前隱藏的菜單條目

我在我的postWindowOpen方法

public void postWindowOpen(IWorkbenchWindowConfigurer configurer) 
{  
    IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows(); 

    for(int i = 0; i < windows.length; ++i) 
    { 
     IWorkbenchPage page = windows[i].getActivePage(); 
     if(page != null) 
     { 
      page.hideActionSet("org.eclipse.ui.actionSet.keyBindings"); 
       page.hideActionSet("org.eclipse.ui.actionSet.openFiles"); 
     } 
    } 
} 

能正常工作至今調用hideActionSet隱藏這些。但是,當重新安排我的觀點,然後重新設定觀點,然後改變到另一個觀點時,不必要的菜單條目再次出現。

我試着通過在我的perspectiveActivatedperspectiveChanged方法中調用相同的代碼來解決此問題。已達到方法hideActionSet,但它們沒有效果。

下面是這兩種方法:

public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) 
{ 
    if(perspective.getId().equals(m_PerspektivenID) || m_PerspektivenID.equals(STANDARDAKTION)) 
    { 
     setEnabled(true); 
    } 
    else 
    { 
     setEnabled(false); 
    } 

    if(page != null) 
    { 
     page.hideActionSet("org.eclipse.ui.actionSet.keyBindings"); 
     page.hideActionSet("org.eclipse.ui.actionSet.openFiles"); 
    } 
} 

public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, String changeId) 
{ 
    if(changeId.equals(IWorkbenchPage.CHANGE_RESET_COMPLETE)) 
    { 
     if(page != null) 
     { 
      page.hideActionSet("org.eclipse.ui.actionSet.openFiles"); 
      page.hideActionSet("org.eclipse.ui.actionSet.keyBindings"); 
     } 
    } 
} 
+1

你可以看看使用'org.eclipse.ui.activities'擴展點隱藏的東西,而不是代碼。 –

+0

謝謝。我嘗試了這種方法,我可以隱藏一些菜單條目,比如我的應用程序使用模式「。*」的about對話框。當我使用「org.eclipse.ui.actionSet.openFiles」模式時,它不會隱藏在重置和更改透視圖後突然出現的開放式menue條目... –

回答

0

謝謝你,它的工作。我只是習慣了錯誤的ID。當您使用方法hideActionSet你必須使用ID org.eclipse.ui.actionSet.openFiles,但是當你想隱藏他們利用活動必須在結束使用org.eclipse.ui.edit.text.openLocalFile.

所以:

  • hideActionSet隱藏:使用The active contribution item identifier
  • 隱藏與活動:使用The active action definition identifier