Je crée une application RCP. J'ai besoin d'ouvrir plusieurs instances de la même vue mais avec des données différentes. Je l'ai fait en définissant id secondaire pour différentes instances de la même vue. Plus précisément, mon problème est le suivant: S'il vous plaît jeter un oeilIdentifiez quelle instance de la vue est actuellement active dans RCP?
J'ai une vue graphique appelée Views.GraphView
. J'ai ouvert différentes instances à partir d'une commande appelée openGraphView
pour afficher différents graphiques. La commande est la suivante:
page.showView("Views.GraphView", Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
Maintenant, je possède une commande TreeLayout
sur cette barre d'outils Views.GraphView
, ce qui suppose de changer la mise en page du graphique et il fonctionnera sur chaque instance de la vue. Mais pour cela, je pense, j'ai besoin d'identifier quelle instance de la vue est active. La commande TreeLayout
ressemble à ceci:
IViewPart findView = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage(). findView("Views.GraphView"); //I think in the findView I need to give the id of the view [but how can I put the secondary id?]
GraphView view = (GraphView) findView;
view.changeLayout(); //I wrote this method in the graph view to change the layout
//I just tried to print the secondary id, but it did not print anyting
System.out.println("From treelayout command:- " + view.getViewSite().getSecondaryId());
Alors, comment puis-je identifier quelle instance de la vue est actuellement actif et d'opérer sur elle?
Ceci est un double de http://stackoverflow.com/questions/3201341/how-can-i-identify-whcih-instance-of-the-view-is-currently-active-in-rcp –
Comment faire vous savez que l'une des vues de ce type sera active lorsque l'action se produit? L'application ne dispose-t-elle pas d'autres types de vues ou d'éditeurs? –