我突然有“运行”,在我的RCP应用程序的菜单栏“搜索”。反正是有删除?

有帮助吗?

解决方案

首先,检查的 该线程 (和文章“贡献操作Eclipse工作台”在这个线程):

  

诀窍是“check the launcher config” - 即使在一个完全新的安装Eclipse 3.1.1的,具有精确没有在我的WS别人,除了我自己的插件,恼人的额外的菜单和恼人的错误“编辑最后的位置”仍然存在

     

然后我去了发射器配置为你的建议,其中有克鲁夫特的负载(用Eclipse中自动地创建) - 让我取消全部选择我的插件,并点击“Add Required;从该WS运行 - !伟大

参见错误115998

  

删除“平台”功能,修复了这一切 - 一个非常简单的修复,这是非常难得!


这是说,在一般情况下,隐藏某些行动的贡献,你可以试试,像的此线程来:

1 /隐藏菜单/ COOLBAR通过ActionSet扩展点来定义。

IWorkbenchPage.hideActionSet(actionSetId)
IWorkbenchPage.hideActionSet("org.eclipse.search.menu"); 

2 /隐藏其菜单:

MenuManager mbManager = ((ApplicationWindow)page.getWorkbenchWindow()).getMenuBarManager();
for (int i=0; i<mbManager.getItems().length; i++){
  IContributionItem item=mbManager.getItems()[i];
  if (item.getId().equals("org.eclipse.search.menu")){
    item.setVisible(false);
  }
}

或者你可以尝试这个线程,以隐藏它用于通过PerspectiveListener任何立体:

  

在动作ID从我通过我的依赖Eclipse插件浏览了..寻找ActionSets

package ch.post.pf.gui.prototyp.sesam.pstonline;

import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.IPerspectiveListener;
import org.eclipse.ui.IStartup;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;

public class ActionWiper implements IStartup, IPerspectiveListener {

    private static final String[] ACTIONS_2_WIPE = new String[] {
            "org.eclipse.search.searchActionSet",
            "org.eclipse.ui.edit.text.actionSet.presentation",
            "org.eclipse.ui.edit.text.actionSet.openExternalFile",
            "org.eclipse.ui.edit.text.actionSet.annotationNavigation",
            "org.eclipse.ui.edit.text.actionSet.navigation",
            "org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo",
            "org.eclipse.update.ui.softwareUpdates" };

    public void earlyStartup() {
        IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
                .getWorkbenchWindows();
        for (int i = 0; i < windows.length; i++) {
            IWorkbenchPage page = windows[i].getActivePage();
            if (page != null) {
                wipeActions(page);
            }
            windows[i].addPerspectiveListener(this);
        }
    }

    private void wipeActions(IWorkbenchPage page) {
        for (int i = 0; i < ACTIONS_2_WIPE.length; i++) {
            wipeAction(page, ACTIONS_2_WIPE[i]);
        }

    }

    private void wipeAction(final IWorkbenchPage page, final String actionsetId) {
        Display.getDefault().syncExec(new Runnable() {
            public void run() {
                page.hideActionSet(actionsetId);
            }
        });
    }

    public void perspectiveActivated(IWorkbenchPage page,
            IPerspectiveDescriptor perspective) {
        wipeActions(page);
    }

    public void perspectiveChanged(IWorkbenchPage page,
            IPerspectiveDescriptor perspective, String changeId) {
    }    
}

和删除喜好:

  

随着PreferenceManager我得到甚至摆脱了不必要的首.. :)点击的   凡PREFERENCES_2_WIPE字符串必须要摆脱掉主类别的ID。像   “org.eclipse.ui.preferencePages.Workbench” - >显示为常规

PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager();
for (int i = 0; i < PREFERENCES_2_WIPE.length; i++) {
    pm.remove(PREFERENCES_2_WIPE[i]);
}

其他提示

对于我这个工作(希望它可以帮助你):

  <extension
    point="org.eclipse.ui.activities">
 <activity
       id="someid.remove"
       name="RemoveSearchMenu">
    <enabledWhen>
       <with
             variable="activePartId">
          <equals
                value="someidr.RemoveSearchMenu1">
          </equals>
       </with></enabledWhen>
 </activity>
 <activityPatternBinding
       activityId="someid.remove"
       pattern="org.eclipse.search.*">
 </activityPatternBinding>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top