Example usage for org.eclipse.jface.viewers ContentViewer setContentProvider

List of usage examples for org.eclipse.jface.viewers ContentViewer setContentProvider

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ContentViewer setContentProvider.

Prototype

public void setContentProvider(IContentProvider contentProvider) 

Source Link

Document

Sets the content provider used by this viewer.

Usage

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 ??&lt;???ID&gt;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());
    }
}