Le "point d'entrée" pour fournir un comportement de plan de travail personnalisé est la désignation de WorkbenchAdvisor pour configurer le plan de travail. Le plug-in de client avancé doit étendre cette classe abstraite afin de proposer la configuration spécifique à l'application pour le plan de travail. L'exemple de navigateur exécute cette opération à l'aide de la classe BrowserAdvisor.
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
Un assistant de plan de travail est chargé de supplanter les méthodes pour configurer le plan de travail avec la présentation et les fonctions souhaitées, comme les éléments de la barre d'actions ou la page de présentation.
Les méthodes de cycle de vie fournies par l'assistant de plan de travail permettent à l'application de s'ancrer dans la création du plan de travail à un point quelconque et d'influencer le comportement. Cette liste de méthodes de cycle de vie de l'assistant qui peuvent être supplantées provient de la documentation Java pour WorkbenchAdvisor.
initialize
- première méthode appelée, avant toute fenêtre, utilisée pour enregistrer des élémentspreStartup
- deuxième méthode appelée, après l'initialisation mais avant l'affichage de la première fenêtre, utilisée pour désactiver temporairement des éléments au cours du démarrage ou de la restaurationpostStartup
- troisième méthode appelée, une fois que la première fenêtre est affichée, utilisée pour réactiver des éléments temporairement désactivés à l'étape précédentepostRestore
- méthode appelée une fois que le plan de travail et ses fenêtres ont été recrées à partir de l'état précédent, utilisée pour ajuster le plan de travail restaurépreWindowOpen
- méthode appelée à l'ouverture de chaque fenêtre, utilisée pour configurer des aspects de la fenêtre autres que les barres d'actions fillActionBars
- méthode appelée après preWindowOpen
pour configurer les barres d'actions d'une fenêtrepostWindowRestore
- méthode appelée une fois qu'une méthode a été recréé à partir d'un état enregistré précédemment, utilisée pour ajuster la fenêtre restauréepostWindowCreate
- méthode appelée une fois qu'une fenêtre a été créée, à partir d'un état initial ou restauré, utilisée pour ajuster la fenêtreopenIntro
- méthode appelée immédiatement avant l'affichage d'une fenêtre afin de créer le composant de présentation, le cas échéant.postWindowOpen
- méthode appelée après l'affichage d'une fenêtre, utilisée pour ancrer des modules d'écoute de fenêtre, etc.preWindowShellClose
- méthode appelée lorsque le shell d'une fenêtre est fermé par l'utilisateur, utilisée pour pré-afficher les fermetures de fenêtreeventLoopException
- méthode appelée pour gérer les cas d'échec de la boucle d'événement, utilisée pour informer l'utilisateur du mauvais déroulement du processuseventLoopIdle
- méthode appelée lorsqu'il n'y a plus d'événements à traiter, utilisée pour effectuer une autre tâche ou pour attendre que de nouveaux événements soient insérés dans la file d'attentepreShutdown
- méthode appelée une fois que la boucle d'événement est interrompue mais avant la fermeture des fenêtres, qui permet à l'application d'empêcher la fermeturepostShutdown
- méthode appelée en dernier, une fois que la boucle d'événement est interrompue et que toutes les fenêtres sont fermées, utilisée pour annuler l'enregistrement d'éléments enregistrés lors de l'initialisationComme vous pouvez le constater, une application de client avancée possède un contrôle important sur la configuration et l'implémentation du plan de travail. Dans l'exemple de navigateur, la fonction principale de BrowserAdvisor est de configurer les barres d'actions avec les options de menu appropriées pour un navigateur. Cette opération est effectuée dans la méthode fillActionBars :
public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) { ... BrowserActionBuilder builder = new BrowserActionBuilder(window); getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); builder.fillActionBars(configurer, flags); }
Dans cette méthode, le plan de travail est configuré avec un générateur d'action spécialisé. Ce générateur d'action sert à remplir les barres d'actions du plan de travail. Vous allez examiner les détails de spécification des actions dans la section Définition des actions. Pour le moment, nous nous concentrons sur la configuration du plan de travail.
Notez l'utilisation de la méthode getWorkbenchConfigurer() ci-dessus. IWorkbenchConfigurer et IWorkbenchWindowConfigurer sont utilisés conjointement à WorkbenchAdvisor pour personnaliser la fenêtre. Ces classes permettent de supplanter un grand nombre d'aspects de la création du plan de travail à différents niveaux. Par exemple, IWorkbenchWindowConfigurer définit le protocole qui prend en compte une configuration particulière des commandes dans la fenêtre du plan de travail, comme une barre d'actions, une ligne d'état, une barre de perspectives, une barre d'outils, etc. Son protocole permet de personnaliser et de renseigner ces éléments. IWorkbenchConfigurer fonctionne à un niveau plus élevé et permet de stocker des données spécifiques à une application avec le plan de travail. WorkbenchAdvisor permet d'accéder à ces programmes de configuration dans les méthodes de cycle de vie mentionnées ci-dessus. Les méthodes de niveau inférieur de WorkbenchAdvisor peuvent être supplantées afin que le comportement par défaut soit totalement remplacé. Par exemple, l'assistant de plan de travail peut supplanter la méthode qui crée les commandes SWT dans la fenêtre afin de proposer une implémentation totalement différente pour la fenêtre principale.
En d'autres termes, il existe différentes manières de personnaliser le plan de travail et plusieurs niveaux auxquels ces techniques peuvent être utilisées. La documentation Java pourWorkbenchAdvisor, IWorkbenchConfigurer et IWorkbenchWindowConfigurer inclut une description complète du protocole disponible. Pour plus d'informations sur les implémentations de substitution, reportez-vous également à l'implémentation complète de BrowserAdvisor.