【问题标题】:Java Eclipse Properties View implementation of "Show advanced properties"“显示高级属性”的 Java Eclipse 属性视图实现
【发布时间】:2016-03-23 13:25:22
【问题描述】:

我有一个带有 Object 的 TreeViewer,我想在 Eclipse 的默认 PropertiesView 中显示信息。 我创建了一个AdapterFactory,它使用 Override 方法实现了IAdapterFactory 接口:

@Override
public Object getAdapter(Object adaptableObject, Class adapterType)
{
    if(adapterType == IPropertySource.class && adaptableObject instanceof UATreeNode)
    {
        return new UATreeNodeAdapter((UATreeNode) adaptableObject);
    }
    return null;
}

然后我创建了一个适配器,它使用我自己的PropertyDescriptors 实现了IPropertySource 接口,例如:

public static final String OBJECT_ID_ACCESSLEVEL = "Obj.accessLevel";
private static final String OBJECT_LABEL_ACCESSLEVEL = "AccessLevel";

protected PropertyDescriptor objectAccessLevelDescriptor = new PropertyDescriptor(OBJECT_ID_ACCESSLEVEL, OBJECT_LABEL_ACCESSLEVEL);

@Override
public IPropertyDescriptor[] getPropertyDescriptors()
{
    return new IPropertyDescriptor[] { objectAccessLevelDescriptor };
}

@Override
public Object getPropertyValue(Object id)
{
    if(id.equals(OBJECT_ID_ACCESSLEVEL))
        return uaTreeNode.getAccessLevel();
}

我得到了更多PropertyDescriptors,现在我只想在PropertiesView 中的“显示高级属性”菜单按钮被激活时显示其中的一些。

所以我的问题是,这是否可行,如果可以,我必须实施什么才能仅在“显示高级属性”被激活时才显示我的属性?

【问题讨论】:

    标签: java eclipse view properties


    【解决方案1】:

    调用PropertyDescriptor.setFilterFlags方法设置专家过滤属性:

    PropertyDescriptor desc = ...
    
    desc.setFilterFlags(new String [] {IPropertySheetEntry.FILTER_ID_EXPERT});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-19
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 2021-11-16
      • 1970-01-01
      • 2014-07-27
      相关资源
      最近更新 更多