2010-03-16 12 views

Respuesta

8

En primer lugar, comprobar this thread (y el artículo "Contributing Actions to the Eclipse Workbench" utilizado en this thread):

El truco era "check the launcher config" - incluso después de una completamente nueva instalación de Eclipse 3.1.1, con precisión nada más en mi WS excepto mis propios complementos, los molestos menús adicionales y el molesto error de "editar la última posición" todavía estaban presentes.

Luego fui a la configuración lanzador como usted sugiere, que tenía un montón de costra (creados automagicamente por Eclipse) - por lo que anula la selección de todos, seleccionado mis plugins, y hacer clic "Add Required"; corriendo desde el WS con eso - ¡genial!

Ver también bug 115998

eliminación de la función de "plataforma" lo arregla todo para arriba - una solución muy sencilla que era muy difícil de encontrar!


Dicho esto, en general, para ocultar algunas contribuciones acción que se puede tratar, como en this thread a:

1/a CERRAR/CoolBar definido por el punto de extensión Medida práctica.

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

2/Hide su menú:

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

O puede probar this thread, para ocultarlo para cualquier punto de vista a través de un PerspectiveListener:

Los identificadores de acción que obtuve de navegación a través mis complementos de eclipse dependientes .. buscando 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) { 
    }  
} 

y quitar las preferencias:

Con la PreferenceManager llegué incluso deshacerse de las preferencias no deseados .. :)
Cuando las PREFERENCES_2_WIPE cadenas tienen que ser los ID de las principales categorías que desea obtener deshacerse Al igual que el "org.eclipse.ui.preferencePages.Workbench" -> se muestra como general

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

Muchas gracias. Resultó que todo lo que tenía que hacer era seleccionar los "complementos necesarios" en la pestaña de complementos de mi configuración de ejecución. –

3

Para mí esto funcionó (espero que le ayuda):

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

Cuestiones relacionadas