我有一个带有对象的TreeViewer
,我想在Eclipse中的默认PropertiesView
中显示信息。我创建了一个AdapterFactory
,它使用覆盖方法实现了IAdapterFactory
接口:
@Override
public Object getAdapter(Object adaptableObject, Class adapterType)
{
if(adapterType == IPropertySource.class && adaptableObject instanceof UATreeNode)
{
return new UATreeNodeAdapter((UATreeNode) adaptableObject);
}
return null;
}
然后,我创建了一个适配器,它用自己的PropertyDescriptors
实现了PropertyDescriptors
接口,例如:
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
中的“”菜单按钮时才显示其中的一些。
因此,我的问题是,这是否可以这样做,如果是的话,如果激活了“显示高级属性”,我需要实现什么来显示我的属性呢?
发布于 2016-03-23 05:53:30
调用PropertyDescriptor.setFilterFlags
方法来设置专家筛选器属性:
PropertyDescriptor desc = ...
desc.setFilterFlags(new String [] {IPropertySheetEntry.FILTER_ID_EXPERT});
https://stackoverflow.com/questions/36179455
复制