List of usage examples for org.eclipse.jface.viewers ContentViewer setLabelProvider
public void setLabelProvider(IBaseLabelProvider labelProvider)
From source file:org.eclipse.e4.xwt.javabean.metadata.properties.InputBeanProperty.java
License:Open Source License
@Override public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException { if (value == null) { return;/* w w w. ja v a2 s .c o m*/ } if (value instanceof Class<?>) { Class<?> type = (Class<?>) value; if (type.isEnum()) { value = new WritableList(XWT.getRealm(), Arrays.asList(type.getEnumConstants()), type); } } Class<?> elementType = getElementType(); if (value.getClass().isArray()) { elementType = value.getClass().getComponentType(); } if (value instanceof IObservableList) { IObservableList list = (IObservableList) value; Object listElementType = list.getElementType(); if (listElementType instanceof Class<?>) { elementType = (Class<?>) listElementType; } } else if (elementType == Object.class && value instanceof Collection<?>) { Collection<?> collection = (Collection<?>) value; for (Iterator<?> iterator = collection.iterator(); iterator.hasNext();) { Object object = (Object) iterator.next(); if (object != null) { elementType = object.getClass(); break; } } } if (target instanceof ContentViewer) { ContentViewer viewer = (ContentViewer) target; String[] propertyNames = JFacesHelper.getViewerProperties(viewer); if (target instanceof AbstractTreeViewer) { IContentProvider contentProvider = (IContentProvider) viewer.getContentProvider(); if (contentProvider instanceof ObservableTreeContentProvider) { ObservableTreeContentProvider xwtContentProvider = (ObservableTreeContentProvider) contentProvider; xwtContentProvider.updateContext(viewer, value); } if (contentProvider instanceof ObservableTreeContentProvider) { ObservableTreeContentProvider listContentProvider = (ObservableTreeContentProvider) contentProvider; viewer.setLabelProvider(new ObservableMapLabelProvider(viewer, listContentProvider.getKnownElements(), propertyNames)); } } else { IContentProvider contentProvider = viewer.getContentProvider(); if (value instanceof List<?> || value.getClass().isArray()) { if (contentProvider == null) { contentProvider = new ObservableListContentProvider(); viewer.setContentProvider(contentProvider); } if (propertyNames != null && propertyNames.length > 0 && hasDefaultLabelProvider(viewer) && contentProvider instanceof ObservableListContentProvider) { ObservableListContentProvider listContentProvider = (ObservableListContentProvider) contentProvider; viewer.setLabelProvider(new ObservableMapLabelProvider(viewer, listContentProvider.getKnownElements(), propertyNames)); } } else if (value instanceof Set<?>) { if (contentProvider == null) { contentProvider = new ObservableSetContentProvider(); viewer.setContentProvider(contentProvider); } if (propertyNames != null && propertyNames.length > 0 && hasDefaultLabelProvider(viewer) && contentProvider instanceof ObservableSetContentProvider) { ObservableSetContentProvider setContentProvider = (ObservableSetContentProvider) contentProvider; viewer.setLabelProvider(new ObservableMapLabelProvider(viewer, setContentProvider.getKnownElements(), propertyNames)); } } } } if (value instanceof CollectionViewSource) { value = ((CollectionViewSource) value).getView(); } else if ((value instanceof Collection<?>) && !(value instanceof IObservableCollection)) { value = ObjectUtil.resolveValue(value, IObservableCollection.class, value); } super.setValue(target, value); }