2009-05-06 8 views
4

Je voudrais supprimer le menu contextuel qui s'affiche lorsque vous faites un clic droit sur la barre d'outils de perspective dans une application rcp. Pour clarifier, je veux montrer la barre de perspective et les raccourcis, mais je ne veux pas que le menu contextuel apparaisse. Toute la barre d'outils de perspective api semble être interne.Eclipse RCP: Supprimer le menu contextuel de la barre persective

Merci.

Répondre

1

Le menu contextuel de PerspectiveSwitcher est créé en profondeur dans les classes internes de l'infrastructure de workbench, comme vous l'avez mentionné. Vous ne pouvez pas l'empêcher d'être créé, vous ne pouvez pas non plus obtenir une référence à PerspectiveSwitcher pour supprimer le menu d'une façon ou d'une autre, sans utiliser les classes internes et beaucoup de réimplémenter les fonctionnalités existantes. Donc, pour simplifier, à mon humble avis, il semble que le menu contextuel ne soit pas censé être supprimé.

Le moyen le plus simple et le plus propre de résoudre votre problème serait de supprimer toute la barre de perspective et de mettre en œuvre la vôtre. Il existe une API publique permettant d'interroger les perspectives existantes (IWorkbench.getPerspectiveRegistry) et de changer de perspective (IWorkbenchPage.setPerspective), tout ce dont vous avez besoin pour coder est l'interface utilisateur.

2

Vous pouvez essayer cette

PerspectiveBarManager perspectiveBarManager = ((WorkbenchWindow) PlatformUI.getWorkbench() 
      .getActiveWorkbenchWindow()).getPerspectiveBar(); 
    ToolBar toolBar = perspectiveBarManager.getControl(); 
    Listener[] listeners = toolBar.getListeners(SWT.MenuDetect); 
    if (listeners != null) 
    { 
     for (Listener listener : listeners) 
     { 
      toolBar.removeListener(SWT.MenuDetect, listener); 
     } 
    } 
+0

* [@ user844542 a écrit ce commentaire] * J'essayé d'utiliser, mais n'a pas pu obtenir le 'PerspectiveBar'. Quelle est la bonne classe pour introduire ce code? Ou n'est-ce plus possible? – phihag

Questions connexes