Eclipse 混淆IAdaptable与IActionFilters

Eclipse 混淆IAdaptable与IActionFilters,eclipse,eclipse-rcp,rcp,Eclipse,Eclipse Rcp,Rcp,我对IAdaptable和相关类感到困惑。哪一类是适配器、适配器、自适应类型 [上下文] 我有一个用于表格/树查看器条目的上下文菜单。上下文菜单中的某些操作必须不可见,具体取决于查看器中相应对象的状态(即表查看器中某行的属性值) 我可以通过plugin.xml中的类似配置实现这一点: <extension point="org.eclipse.ui.popupMenus"> <objectContribution adapt

我对IAdaptable和相关类感到困惑。哪一类是适配器、适配器、自适应类型

[上下文]

我有一个用于表格/树查看器条目的上下文菜单。上下文菜单中的某些操作必须不可见,具体取决于查看器中相应对象的状态(即表查看器中某行的属性值)

我可以通过plugin.xml中的类似配置实现这一点:

<extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            adaptable="false"
            id="<some_id>"
            objectClass="<object_class_of_viewer_entry>">
            <visibility>
               <objectState name="buildable" value="true"/>
             </visibility>
         <action
               class="<my_action_class>"


事实证明,几乎所有的事情都是正确的。我只是把plugin.xml中的object\u class\u和\u viewer\u条目的实现混为一谈

两篇有帮助的文章:和

<extension
         point="org.eclipse.core.runtime.adapters">
      <factory
            adaptableType="<object_class_of_viewer_entry>"
            class="MyFactory">
         <adapter
               type="org.eclipse.ui.IActionFilter">
         </adapter>
      </factory>
   </extension>
public class MyFactory implements IAdapterFactory {
  private static final Class[] types = {
    <object_class_of_viewer_entry>.class,
  };

  @Override
  public Object getAdapter(Object adaptableObject, Class adapterType) {
    return new <class_that_implements_IActionFilter>((<object_class_of_viewer_entry>) adaptableObject);
  }

  @Override
  public Class[] getAdapterList() {
    return types;
  }
}