2017-05-29 5 views
0

Je travaille dans une application RCP similaire à Eclipse où l'utilisateur peut naviguer dans l'arborescence du projet Explorer et ouvre un fichier dans l'éditeurapplication Eclipse RCP active Barre de titre

je mets le titre de l'application RCP dans une classe étend « WorkbenchWindowAdvisor » comme suit:

IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); 
    configurer.setTitle("My RCP Application title"); 

Mais ce que je dois apparaître dans la barre de titre le nom de la perspective et la fi ouvert chemin le comme dans Eclipse normal:

Image of Eclipse title bar showing perspective and recent opened file name

suggestions

Merci

Répondre

1

Cela nécessite l'écoute d'un grand nombre d'événements dans votre WorkbenchWindowAdvisor.

Dans la méthode preWindowOpen vous devez ajouter des écouteurs pour:

  • page d'activation et de fermeture avec configurer.getWindow().addPageListener(listener) Les pageActivated et pageClosed méthodes d'écoute ont besoin de mettre à jour le titre.
  • Modifications de la perspective à l'aide de configurer.getWindow().addPerspectiveListener(listener). Les méthodes perspectiveActivated, perspectiveSavedAs, perspectiveDeactivated doivent mettre à jour le titre.
  • Activations de pièces utilisant configurer.getWindow().getPartService().addPartListener(listener). Ce besoin d'utiliser un IPartListener2. Les méthodes partActivated, partBroughtToTop, partClosed, partHidden, partVisible ont besoin de mettre à jour le titre.

Vous obtenez le chemin du fichier ouvert de l'éditeur actif:

IWorkbenchPage currentPage = configurer.getWindow().getActivePage(); 
IEditorPart activeEditor = currentPage.getActiveEditor(); 
if (activeEditor != null) { 
    path = activeEditor.getTitleToolTip(); 
} 

et le nom en perspective:

IPerspectiveDescriptor persp = currentPage.getPerspective(); 
if (persp != null) { 
    label = persp.getLabel(); 
} 

Le plein, encore plus complexe, le code pour cela est en org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor

+0

Cela fonctionne (Y)! Merci beaucoup –