【发布时间】: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