Eclipse RCP let two views communicate

后端 未结 2 1197
攒了一身酷
攒了一身酷 2021-01-07 02:32

I am currently building a RCP application based on Eclipse. In one of my plugins I am adding two views via code:

    layout.addView(\"dev.asd.tableviewer.tre         


        
相关标签:
2条回答
  • 2021-01-07 03:30

    In each view, define an ID. The ID is the same as what you defined in the ID field when you defined the view in the extension element details. Here's one of mine:

    public static final String ID = "gov.bop.rabid.ui.views.PrefetchedInmatesView";
    

    In your RCP plug-in, define the following method:

    public static IViewPart getView(IWorkbenchWindow window, String viewId) {
        IViewReference[] refs = window.getActivePage().getViewReferences();
        for (IViewReference viewReference : refs) {
            if (viewReference.getId().equals(viewId)) {
                return viewReference.getView(true);
            }
        }
        return null;
    }
    

    When you want to reference a view from a different view, use the following code:

    PrefetchedInmatesView view = (PrefetchedInmatesView) 
                    RabidPlugin.getView(window,  PrefetchedInmatesView.ID);
    

    Substitute the name of your view for PrefetchedInmatesView, and the name of your plug-in for RabidPlugin.

    0 讨论(0)
  • 2021-01-07 03:30

    Use the SelectionService for this issue. No referencing of views required, see http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html

    0 讨论(0)
提交回复
热议问题