从另一个插件获取 RCP 中的 TreeViewer
Get TreeViewer in RCP from another Plugin
我正在为 Eclipse-RCP 开发插件。还有另一个带有 TreeViewer 的插件,我想从我的插件中 select 一个项目。我不知道如何访问它,这可能吗?
我认为可以通过以下方式获得正确的视图:
IViewReference home;
IViewReference [] viewRefs = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViewReferences();
for (int i = 0; i < viewRefs.length; i++) {
if(viewRefs[i].getId()==myid){
home = viewRefs[i];
break;
}
}
但是 home 不是 TreeViewer,我无法投射它。我怎样才能得到 TreeViewer?
home.getTreeViewer() //Doesn't work cause of casting issues
我是 rcp 的新手,所以我很高兴得到一些解释。
您必须将 home
转换为其他视图的类型。然后就可以得到TreeViewer了。
您可以使用 IWorkbenchPage#findView(java.lang.String)
直接从您的活动 IWorkbenchPage
中找到 ViewPart。
如果您有想要 selected 的对象,获取视图的站点,获取站点的 selection 提供程序,然后告诉 selection 提供程序应该做什么被 selected(使用包含该对象的 StructuredSelection
实例)。这仅在树或部分中的任何内容(您不必关心或知道它是一棵树)实际上包含您告诉它的对象时才有效 select.
您需要使用以下方法找到您的视图:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart viewPart = page.findView("your view id");
然后您可以将视图部分转换为您的视图 class 并调用您在该视图上编写的方法 class:
if (viewPart != null) {
MyViewClass myViewPart = (MyViewClass)viewPart;
myViewPart.getTreeViewer();
}
其中 MyViewClass
是您的 ViewPart
class。您将必须编写 getTreeViewer
方法。
如果视图当前未打开,您可以使用 showView
:
viewPart = page.showView("your view id");
我正在为 Eclipse-RCP 开发插件。还有另一个带有 TreeViewer 的插件,我想从我的插件中 select 一个项目。我不知道如何访问它,这可能吗?
我认为可以通过以下方式获得正确的视图:
IViewReference home;
IViewReference [] viewRefs = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViewReferences();
for (int i = 0; i < viewRefs.length; i++) {
if(viewRefs[i].getId()==myid){
home = viewRefs[i];
break;
}
}
但是 home 不是 TreeViewer,我无法投射它。我怎样才能得到 TreeViewer?
home.getTreeViewer() //Doesn't work cause of casting issues
我是 rcp 的新手,所以我很高兴得到一些解释。
您必须将 home
转换为其他视图的类型。然后就可以得到TreeViewer了。
您可以使用 IWorkbenchPage#findView(java.lang.String)
直接从您的活动 IWorkbenchPage
中找到 ViewPart。
如果您有想要 selected 的对象,获取视图的站点,获取站点的 selection 提供程序,然后告诉 selection 提供程序应该做什么被 selected(使用包含该对象的 StructuredSelection
实例)。这仅在树或部分中的任何内容(您不必关心或知道它是一棵树)实际上包含您告诉它的对象时才有效 select.
您需要使用以下方法找到您的视图:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart viewPart = page.findView("your view id");
然后您可以将视图部分转换为您的视图 class 并调用您在该视图上编写的方法 class:
if (viewPart != null) {
MyViewClass myViewPart = (MyViewClass)viewPart;
myViewPart.getTreeViewer();
}
其中 MyViewClass
是您的 ViewPart
class。您将必须编写 getTreeViewer
方法。
如果视图当前未打开,您可以使用 showView
:
viewPart = page.showView("your view id");