Question

J'ai soudainement « Exécuter » et « Rechercher » dans la barre de menus de mon application RCP. Y at-il de toute façon de les enlever?

Était-ce utile?

La solution

Tout d'abord, vérifiez ce fil (et l'article « Actions Contribuer au « utilisé dans ce fil Eclipse Workbench ):

  

L'astuce était « check the launcher config » - même après une toute nouvelle installation d'Eclipse 3.1.1, avec précision rien d'autre dans mes WS sauf mes propres plugins, les menus supplémentaires ennuyeux et ennuyeux erreur « modifier dernière position » étaient toujours présents .

     

Alors je suis allé à la configuration du lanceur comme vous le suggérez, qui avait beaucoup de cochonneries (créé automagiquement par Eclipse) - donc je Désélectionné tous choisis mes plugins, et cliqué sur « Add Required » ; en cours d'exécution de la WS avec ce - grand

Voir aussi bug 115998

  

enlever la fonction « plate-forme », il fixe tout - une solution très simple qui était très difficile à trouver!


Cela dit, en général, pour cacher des contributions d'action, vous pouvez essayer, comme dans ce fil à:

1 / cacher le menu / Coolbar défini par ActionSet point d'extension.

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

2 / Masquer le menu:

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);
  }
}

Ou vous pouvez essayer ce fil , à cacher pour toute perspective par un PerspectiveListener:

  

Les actions ids j'ai obtenu de la navigation à travers mes plugins Eclipse dépendants .. la recherche de 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) {
    }    
}

Et supprimer les préférences:

  

Avec le PreferenceManager je m'y suis même débarrasser des préférences non désirées .. :)
  Lorsque les chaînes de PREFERENCES_2_WIPE doivent être les ID des principales catégories que vous voulez vous débarrasser. Comme le   "Org.eclipse.ui.preferencePages.Workbench" -> Général apparaît comme

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

Autres conseils

Pour moi, cela a fonctionné (espérons qu'il vous aidera):

  <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>

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top