Perspectives

Nous avons déjà vu comment le plan de travail permet à l'utilisateur de contrôler l'aspect de la fonctionnalité du plug-in. Les vues peuvent être masquées ou affichées à l'aide du menu Fenêtre >Afficher la vue. Les jeux d'actions peuvent aussi être masqués ou affichés à l'aide du menu Fenêtre> Personnaliser la perspective.... Ces fonctions aident l'utilisateur à organiser le plan de travail.

Les perspectives fournissent une couche supplémentaire d'organisation dans la fenêtre du plan de travail. Les utilisateurs peuvent basculer d'une perspective à l'autre tout comme ils passent de tâche en tâche. Une perspective définit une collection de vues, une présentation pour ces dernières et les jeux d'actions visibles devant être utilisés à la première ouverture de la perspective.

Les perspectives sont implémentées à l'aide de  IPerspectiveFactory.   Les réalisateurs de IPerspectiveFactory doivent configurer un IPageLayout avec des informations décrivant la perspective et la présentation de sa page.

Présentation de la partie plan de travail

L'une des principales tâches de IPageLayout consiste à décrire la position de l'éditeur et des vues dans la fenêtre du plan de travail. Notez que ces présentations sont différentes de la classe Layout dans SWT. Bien que IPageLayout et Layout résolvent un problème similaire (dimensionnement et positionnement des widgets dans une zone plus large), il ne vous est pas nécessaire d'avoir des connaissances des présentations SWT pour fournir une présentation de page de perspective.

Une présentation de page de perspective est initialisée avec une zone d'affichage d'un éditeur. La fabrique de perspectives est responsable de l'ajout de vues supplémentaires relatives à l'éditeur. Les vues sont ajoutées à la présentation relative à (haut, bas, gauche, droite) une autre partie. Des marques de réservation (espace vide) peuvent également être ajoutées pour des éléments qui ne sont pas initialement affichés.

Pour organiser les vues associées et avoir une présentation ordonnée, vous pouvez utiliser IFolderLayout pour regrouper des vues dans des dossiers à onglets. Par exemple, la perspective Ressource place le navigateur de ressources dans un dossier dans l'angle supérieur gauche du plan de travail. Des marques de réservation sont généralement utilisées avec des présentations de dossier. Cette perspective définit une marque de réservation pour la vue des signets dans le même dossier que le navigateur des ressources. Si l'utilisateur affiche la vue des signets, elle apparaît dans le même dossier que le navigateur, avec un onglet pour chaque vue.

IPageLayout vous permet également de définir les actions et raccourcis disponibles dans la perspective.  

Liaisons des vues et des éditeurs avec "afficher dans"

Les perspectives et le IPageLayout proposent un autre service intéressant qui permet de naviguer plus aisément entre un éditeur et les vues qui lui sont associées.  En général, les vues sont considérées comme une aide offerte à l'utilisateur dans sa recherche d'objets avec lesquels travailler dans les éditeurs.   Mais l'opération de conversion est également très utile :  un utilisateur qui travaille avec un objet dans un éditeur peut avoir besoin d'atteindre cet objet dans une vue.  Pour ce faire, il peut utiliser le menu Naviguer > Afficher dans du plan de travail.  Cette commande permet à l'utilisateur de passer à l'une des nombreuses vues associées au contexte de l'objet en cours d'édition (ou sélectionné).  Par exemple, l'utilisateur qui modifie un fichier peut souhaiter accéder à ce fichier dans le navigateur de ressources.

L'architecture de plug-in du plan de travail permet aux développeurs d'ajouter des vues et des éditeurs dans différents plug-in totalement indépendants les uns des autres.  Avec la fonction "afficher dans", votre vue ou éditeur permet de naviguer dans des vues et des éditeurs fournis par d'autres plug-in. 

Ce mode de navigation permet aux utilisateurs de se déplacer rapidement d'une vue à l'autre et d'ouvrir aisément une vue qui ne s'affiche généralement pas dans une perspective particulière.  Par exemple, un utilisateur qui travaille dans la perspective Java peut utiliser Naviguer > Afficher dans pour afficher dans la vue Navigateur le fichier Java en cours d'édition.

Afficher dans la source

Si vous voulez que les utilisateurs puissent utiliser Naviguer > Afficher dans à partir de votre éditeur ou de votre vue pour passer dans une autre vue, vous devez implémenter IShowInSource.   Votre partie peut fournir son IShowInSource directement avec le protocole (getShowInSource()) ou en tant qu'adaptateur.  IShowInSource permet à votre partie de fournir un contexte (IShowInContext) qu'utilise la cible pour déterminer comment afficher la source.  Le contexte d'affichage dans d'un éditeur est son élément d'entrée.  Pour une vue, ce contexte est sa sélection.  IShowInContext fournit à la fois une sélection et un élément d'entrée pour que la cible puisse choisir comment afficher la source. 

Les éditeurs disposent tous d'un contexte par défaut qui leur permet de bénéficier de la fonction "afficher dans" sans codification spéciale.  Dans les éditeurs, l'élément d'entrée et la sélection permettent de créer un contexte approprié. 

Dans les vues, IShowInSource doit être implémenté par la vue pour offrir la fonction Naviguer > Afficher dans.

Afficher dans la cible

Vous devez implémenter IShowInTarget si vous voulez que votre vue soit une cible valide pour l'opération "afficher dans".  La cible est chargée d'afficher un contexte donné de manière appropriée à sa présentation.  Par exemple, la vue Navigateur développe son arborescence pour sélectionner et révéler une ressource désignée dans le contexte.  

Une cible doit vérifier la sélection dans IShowInContext avant décider ce qu'il faut afficher, car il s'agit de l'information la plus précise.  Elle ne doit afficher l'élément d'entrée que si aucune sélection n'est indiquée.

Présentation des cibles appropriées

Comment la liste des cibles disponibles est-elle établie ?  Vous pouvez indiquer les cibles disponibles pour votre perspective dans IPageLayout.  N'oubliez pas qu'une opération de navigation avec "afficher dans" permet d'ouvrir une vue qui ne figure pas dans votre perspective.  IPageLayout.addShowInPart, permet de désigner l'ID d'une cible "afficher dans" valide.   Les cibles valides peuvent ainsi être établies sans avoir à créer de vues.

Copyright IBM Corporation and others 2000, 2003.