2014-06-10 4 views
1

J'ai un fournisseur source qui aide à fournir l'état des boutons d'activation et des éléments de menu. La partie habilitante fonctionne correctement. Mon défi est de savoir comment appeler le fournisseur source lorsque plusieurs éditeurs/vues sont activés.Eclipse RCP SourceProvider à l'écoute des modifications

J'ai mis en IPartListener2 le fournisseur de source, mais ne vois pas un moyen de l'obtenir enregistré pour tous éditeurs et des vues de façon générique . GetPartService(). AddPartListerner (this) l'enregistrera mais uniquement pour une partie de workbench spécifique. De plus, le constructeur du fournisseur source est appelé avant que toute partie soit active, donc l'obtention d'une partie valide ne fonctionne pas.

Quelle est la meilleure façon d'enregistrer ce fournisseur source pour tous les éditeurs et affichages?

Merci d'avoir lu ma question et toute aide que vous pouvez fournir.

Répondre

0

Utilisez un IWindowListener pour écouter les fenêtres Workbench étant activé:

IWorkbench workbench = PlatformUI.getWorkbench(); 

workbench.addWindowListener(windowListener); 

Dans la méthode windowActivated de l'auditeur utiliser le service partiel de fenêtre pour ajouter une partie écouteur pour la fenêtre:

public void windowActivated(IWorkbenchWindow window) 
{ 
    window.getPartService().addPartListener(partListener); 
} 

À titre d'exemple, voir org.eclipse.jdt.internal.debug.ui.actions.ActionDelegateHelper

+0

@ gregg-449 Merci pour le court et su réponse ccinct! Il fonctionne maintenant correctement. Le pointeur vers l'exemple de travail Eclipse était très utile. –