2014-09-20 210 views
0

我開發了一個Eclipse RCP應用程序,我不想使用Eclipse的默認菜單和工具欄。 這裏是我的plugin.xml文件刪除Eclipse RCP應用程序中的默認菜單

<?xml version="1.0" encoding="UTF-8"?> 
<?eclipse version="3.4"?> 
<plugin> 

<extension 
     id="application" 
     point="org.eclipse.core.runtime.applications"> 
     <application> 
     <run 
       class="pmetest.Application"> 
     </run> 
     </application> 
    </extension> 
    <extension 
     point="org.eclipse.ui.perspectives"> 
     <perspective 
      name="PME Perspective" 
      class="pmetest.ui.perspective.Perspective" 
      id="pmetest.perspective"> 
     </perspective> 
    </extension> 
    <extension 
     point="org.eclipse.ui.views"> 
     <view 
      name="My FX View From PME" 
      icon="icons/sample.gif" 
      class="pmetest.ui.view.fx.MyViewPart" 
      id="com.ongoladev.pmetest.MyViewPart"> 
     </view> 
     <view 
      class="pmetest.ui.view.FormView" 
      id="com.ongoladev.pmetest.formview" 
      name="FormView from PME" 
      restorable="true"> 
     </view> 
    </extension> 
    <extension 
     id="product" 
     point="org.eclipse.core.runtime.products"> 
     <product 
      application="pmetest.application" 
      name="Hello RCP"> 
     <property 
       name="windowImages" 
       value="icons/alt_window_16.gif,icons/alt_window_32.gif"> 
     </property> 
     </product> 
    </extension> 
    <extension 
     point="org.eclipse.ui.commands"> 
     <command 
      defaultHandler="pmetest.ui.command.CommandExit" 
      id="com.ongoladev.pmetest.Exit" 
      name="Exit"> 
     </command> 
    </extension> 
    <extension 
     point="org.eclipse.ui.menus"> 
     <menuContribution 
      allPopups="false" 
      locationURI="menu:org.eclipse.ui.main.menu"> 
     <menu 
       id="filemenuid" 
       label="File My"> 
      <command 
        commandId="com.ongoladev.pmetest.Exit" 
        label="Exit application" 
        style="push" 
        tooltip="Exit Application"> 
      </command> 
     </menu> 
     </menuContribution> 
    </extension> 

</plugin> 

,這就是我得到 enter image description here

我想刪除所有unnecessery馬努和工具欄。 謝謝

回答

0

要完全控制菜單和工具欄,應用程序可以使用自己的ActionBarAdvisor派生類。當你這樣做時,你自己創建所有的項目。

操作欄顧問在WorkbenchWindowAdvisor類中創建,而類則由您的WorkbenchAdvisor類創建。

如果您使用'RCP應用程序與視圖'示例創建RCP插件項目,Eclipse將爲您創建這些類的示例。

1

要刪除菜單中的所有默認選項,您需要在ApplicationWorkbenchWindowAdvisor.java類中添加以下代碼。

@Override 
public void postWindowOpen() { 
    IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
    IContributionItem[] items = ((WorkbenchWindow)workbenchWindow).getMenuBarManager().getItems(); 
    for (IContributionItem item : items) { 
      item.setVisible(false); 
    } 
} 
1

我繼承了一個12歲的應用程序,並試圖將其更新到最新的Eclipse,遇到了默認菜單項出現的這個問題。嘗試多種解決方案後,包括this one,我剩下的運行菜單。

這給我帶來了這個頁面。我使用了上面的@ShahzadIftikhar解決方案,並對其進行了調整。

具體而言,我們有一個擴展WorkbenchWindowAdvisor的類,並且該類包含僅調用super.postWindowOpen()的postWindowOpen方法。通話結束後,我添加了下面的代碼來專門阻止「運行」菜單的包含。此菜單包含「添加V8/Chrome JavaScript異常斷點」和「外部工具」菜單項,這些菜單項絕對不需要,客戶端特別聲明「擺脫它們」。

IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
    IContributionItem[] items = ((WorkbenchWindow) workbenchWindow).getMenuBarManager().getItems(); 
    for (IContributionItem item : items) { 
     if (item.getId().equals("org.eclipse.ui.run")) { 
      item.setVisible(false); 
     } 
    } 

一旦你的應用程序中的代碼塊,你應該能夠只使用任何你想阻止的項目ID。

相關問題