ArrayList<IWidgetPropertyDescriptor> propdesc = getPropertyDescriptors();
if (object instanceof WidgetSelection) {
WidgetSelection selection = (WidgetSelection) object;
if (!isRoot() && selection.size() == 1) {
propdesc.add(new BeanNameProperty(this));
propdesc.add(new FieldAccessProperty(this));
propdesc.add(new GetAccessProperty(this));
}
IWidgetPropertyDescriptor[] properties = propdesc.toArray(new IWidgetPropertyDescriptor[propdesc.size()]);
String lnfClassname = null;
if (!selection.isEmpty()) {
lnfClassname = getLnfClassname();
}
return new PropertySource2(lnfClassname, selection, properties);
} else {
if (!isRoot()) {
propdesc.add(new BeanNameProperty(this));
propdesc.add(new FieldAccessProperty(this));
propdesc.add(new GetAccessProperty(this));
}
IWidgetPropertyDescriptor[] properties = propdesc.toArray(new IWidgetPropertyDescriptor[propdesc.size()]);
return new PropertySource2(getLnfClassname(), new StructuredSelection(new Object[] { object }), properties);
}