Vous avez le paradigme différent de communication récapituler dans le IBM article
- Pour une vue capable d'écouter les changements de sélection, une vue doit implémenter l'interface
ISelectionListener
et doit se faire enregistrer à la page établi
- aide l'interface
IAdaptable
: Une classe qui implémente IAdaptable
a la capacité de renvoyer dynamiquement certains types d'adaptateurs qui peuvent ensuite être utilisés pour récupérer des informations supplémentaires.
- changement de propriété paradigme auditeur
En ce qui concerne la première approche, les détails de l'article:
Une façon plus intelligente de consommer des sélections de l'interface utilisateur est d'enregistrer les opinions des consommateurs que les auditeurs à des parties de vue spécifiques. Comme vous pouvez le voir dans l'exemple ci-dessous, l'ID de vue de la partie vue source est mentionné en tant que paramètre lors de l'enregistrement d'un écouteur de sélection.
getSite().getPage().addSelectionListener("SampleViewId",(ISelectionListener)this);
Cette approche permettra d'éliminer les callbacks redondants à la vue des consommateurs qui se produirait autrement si cette opinion était enregistrée comme un auditeur non spécifique.
L'extrait de code dans le Listing 2 montre la méthode createPartControl()
d'une vue qui crée une JFace
TableViewer
et il ajoute en tant que fournisseur de sélection sur le site établi. Ce code permet à toutes les modifications de sélection de l'interface utilisateur dans le TableViewer
de se propager à la page et, finalement, aux vues des consommateurs intéressés.
Listing 2. Mise en place d'un fournisseur de sélection
public void createPartControl(Composite parent) {
// Set up a JFace Viewer
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
viewer.setContentProvider(new ViewContentProvider());
viewer.setLabelProvider(new ViewLabelProvider());
viewer.setSorter(new NameSorter());
viewer.setInput(getViewSite());
// ADD the JFace Viewer as a Selection Provider to the View site.
getSite().setSelectionProvider(viewer);
}
Vous trouverez une approche similaire dans le RCP tutorial for eclipse3.5 (update February, 4th 2010)
'ISourceProviderListener': J'ai manqué qu'un. Bonne solution aussi. +1 Et ce serait maintenant "En plus de ce que VonC a mentionné ** ci-dessous **";) – VonC
Malheureusement, ce n'est plus comme ça que ça marche en e4. Plus de vues et d'éditeurs, juste ... des parties. L'information sur la façon dont la communication entre eux fonctionne semble difficile à trouver pour e4. Pour tous ceux qui cherchent, [ce nouveau tutoriel] (http://www.vogella.com/tutorials/Eclipse4EventSystem/article.html) semble indiquer le chemin. –