我正在为Eclipse-RCP插件工作。还有另一个带有TreeViewer的插件,我想从我的插件中选择一个Item。我不知道如何访问它,这是否可能?
我认为可以通过以下方式获得正确的观点:
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;
}
}
但是家不是TreeViewer,我不能投它。我怎样才能获得TreeViewer?
home.getTreeViewer() //Doesn't work cause of casting issues
我是rcp的新手,所以我很乐意做一些解释。
答案 0 :(得分:0)
您必须将home
投射到其他视图的类型。然后你可以得到TreeViewer。
答案 1 :(得分:0)
您可以使用(function($) {
$.ajax({
url: "<?php echo $this->getUrl('topperproductqa/index/ajax') ?>",
dataType: "json",
success: function(response){
$("#helloworld").replaceWith(response);
//alert(response);
}
});
})(jQuery);
直接从您的有效IWorkbenchPage
找到ViewPart。
如果您有想要选择的对象,请访问View的网站,获取网站的选择提供商,然后告诉选择提供商应该选择什么(使用{{1}包含对象的实例)。这只适用于树或部件中的任何内容(您不必关心或知道它是树),实际上包含您要求它选择的对象。 / p>
答案 2 :(得分:0)
您需要使用以下方式查找视图:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart viewPart = page.findView("your view id");
然后,您可以将视图部件强制转换为视图类,并调用您在该类上编写的方法:
if (viewPart != null) {
MyViewClass myViewPart = (MyViewClass)viewPart;
myViewPart.getTreeViewer();
}
其中MyViewClass
是您的ViewPart
课程。您必须编写getTreeViewer
方法。
如果视图当前未打开,您可以使用showView
:
viewPart = page.showView("your view id");