我想知道如何从导航器视图部分检索内容提供程序。
我在自定义导航器中的内容是在我的eclipse插件中定义的自定义提供程序:
<extension
point="org.eclipse.ui.navigator.navigatorContent">
<navigatorContent
contentProvider="my.navigator.MyCustomContentProvider"
id="MyCustomContentProvider"
name="name">
<triggerPoints>
...
<extension
point="org.eclipse.ui.views">
<view
class="org.eclipse.ui.navigator.CommonNavigator"
id="my.navigator.id"
...
一切正常但当我尝试从代码中的其他位置获取我的自定义内容提供商时,我不知道在哪里可以找到它:
我尝试这样的事情,但它不起作用!为什么:
IViewPart view = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView( "my.navigator.id" );
if(view instanceof CommonNavigator){
CommonNavigator nav = (CommonNavigator)view;
IContentProvider icp = nav.getCommonViewer().getContentProvider();
if(icp instanceof MyCustomContentProvider){
//it never enters here!
这IContentProvider
不是我的预期!为什么这不是MyCustomContentProvider
?以及如何检索我的自定义内容提供商(MyCustomContentProvider
)?
(注意导航器控件是Tree
对象,但是从这个Tree
对象我也不知道检索保存正确内容提供者的TreeViewer
。 。对?)
感谢
答案 0 :(得分:0)
对于CommonViewer,树内容提供程序始终为org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider
。此内容提供商使用INavigatorContentService
访问您的内容提供商。我没有看到直接访问您的内容提供商的方法。