List of usage examples for org.eclipse.jface.viewers ContentViewer setContentProvider
public void setContentProvider(IContentProvider contentProvider)
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;//from ww w .j a va 2s. com } 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); }
From source file:org.seasar.uruma.core.ComponentUtil.java
License:Apache License
/** * <code>viewer</code> ??? {@link IContentProvider} ???<br /> * <p>// w ww . j av a 2 s.c o m * ??????<br /> * <ol> * <li>S2Container ??<???ID>ContentProvider ?????? S2 * ????????? * <li>???????? S2 ??? {@link IContentProvider} ????????? * <li>??????? S2 ?????? <code>viewer</code> ?? * <li>S2 ????????? <code>defaultProvider</code> ??? * ???? <code>viewer</code> ?? * </ol> * </p> * * @param viewer * ? * @param id * ???ID * @param defaultProvider * ??? * @throws RenderException * ???? S2 ??? {@link IContentProvider} ????? * @see ContentViewer#setContentProvider(IContentProvider) */ public static void setupContentProvider(final ContentViewer viewer, final String id, final IContentProvider defaultProvider) { IContentProvider provider = null; if (!StringUtil.isEmpty(id)) { Object defined = S2ContainerUtil.getComponentNoException(id + CONTENT_PROVIDER_SUFFIX, defaultContainer); if (defined != null) { if (defined instanceof IContentProvider) { provider = IContentProvider.class.cast(defined); } else { throw new RenderException(UNSUPPORTED_TYPE_ERROR, provider, IContentProvider.class.getName()); } } } if (provider == null) { provider = defaultProvider; } if (provider != null) { viewer.setContentProvider(provider); logger.log(CONTENT_PROVIDER_FOUND, id, provider.getClass()); } }