2010-03-16 11 views

risposta

8

primo luogo, verificare this thread (e l'articolo "Contributing Actions to the Eclipse Workbench" utilizzato in this thread):

Il trucco era "check the launcher config" - anche dopo una completamente nuova installazione di Eclipse 3.1.1, con precisione nient'altro nel mio WS tranne i miei plugin, i fastidiosi menu extra e il fastidioso errore "modifica ultima posizione" erano ancora presenti.

Poi sono andato alla configurazione launcher come lei ha suggerito, che aveva un sacco di cruft (creati automagicamente da Eclipse) - così ho deselezionato tutti, selezionato i miei plugin, e cliccato su "Add Required"; scappando dal WS con quello - fantastico!

Vedi anche bug 115998

rimuovere la funzione "piattaforma" risolve tutto in su - una semplice correzione che era molto difficile da trovare!


Detto questo, in generale, per nascondere alcuni contributi di azione si può provare, come in this thread a:

1/nascondere il menu/coolbar definito da ActionSet Extension Point.

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

2/Hide suo 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); 
    } 
} 

Oppure si può provare this thread, di nasconderlo per qualsiasi punto di vista attraverso un PerspectiveListener:

I ids di azione che ho avuto da sfogliare i miei plugin eclipse dipendenti .. alla ricerca di 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) { 
    }  
} 

e rimuovere le preferenze:

Con la PreferenceManager ho avuto anche eliminare le preferenze indesiderati .. :)
Se le PREFERENCES_2_WIPE stringhe devono essere gli ID delle principali categorie che si desidera ottenere buttare via. Come il "org.eclipse.ui.preferencePages.Workbench" -> si presenta come General

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

Grazie mille. È risultato che tutto quello che dovevo fare era selezionare i "plug-in richiesti" nella mia scheda plug-in delle configurazioni di esecuzione. –

3

Per me questo ha funzionato (spero che vi aiuta):

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

Problemi correlati