Exécuter et recherche apparaissent dans RCP Menubar
-
20-09-2019 - |
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?
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 dePREFERENCES_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>