private static IObservableMap[] createAttributeMap( IObservableSet knownElements, AbstractColumnLabelProviderDelegate... baseProviders) { List<String> propertyNamesToObserve = new ArrayList<String>(); for (AbstractColumnLabelProviderDelegate baseProvider : baseProviders) { propertyNamesToObserve.addAll(baseProvider.getPropertyNamesToObserve()); } IValueProperty[] labelProperties = new IValueProperty[propertyNamesToObserve.size()]; for (int i = 0; i < labelProperties.length; i++) { IBeanValueProperty property = BeanProperties.value(propertyNamesToObserve.get(i)); labelProperties[i] = property; } return Properties.observeEach(knownElements, labelProperties); }