2010-03-16 3 views

Antwort

8

Zunächst überprüfen this thread (und der Artikel "Contributing Actions to the Eclipse Workbench" verwendet in this thread):

Der Trick war, "check the launcher config" - auch nach einem völlig Neuinstallation von Eclipse 3.1.1, mit genau nichts anderes in meinem WS außer meinen eigenen Plugins, den lästigen Zusatzmenüs und dem nervigen Fehler "Letzte Position bearbeiten" waren noch vorhanden.

Dann ging ich zum Launcher Config, wie Sie vorgeschlagen, die Lasten von cruft hatte (automagically Eclipse erstellt) - so abgewählt ich alle, ausgewählt meine Plugins und angeklickt „Add Required; von der WS mit dem laufen - super!

Siehe auch bug 115998

die „Plattform“ -Funktion entfernen behebt sie alle auf - eine sehr einfache Lösung, die sehr schwer zu finden war!


, dass die in der Regel einige Aktion Beiträge zu verbergen können Sie versuchen, wie in this thread zu:

1/verstecken Menü/Coolbar definiert durch ActionSet Erweiterungspunkt.

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

2/its Menü ausblenden:

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

Oder Sie können this thread versuchen, sich zu verstecken sie für jede mögliche Perspektive durch eine PerspectiveListener:

Die Aktion ids ich gerade bekam durch meine abhängigen Eclipse Plugins .. Suche nach 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) { 
    }  
} 

und entfernen Sie die Vorlieben:

Mit dem PreferenceManager bekam ich sogar loswerden der unerwünschten Einstellungen .. :)
Wo die PREFERENCES_2_WIPE Strings die IDs der Hauptkategorien sein müssen Sie erhalten möchten loswerden. Wie die "org.eclipse.ui.preferencePages.Workbench" -> zeigt als General bis

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

Vielen Dank. Es stellte sich heraus, dass ich nur die "erforderlichen Plug-ins" in der Registerkarte "Plug-Ins für Ausführungskonfigurationen" auswählen musste. –

3

Für mich gearbeitet (hoffe, es hilft Ihnen):

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