blob: 924aa331e70b58f60edd0b28f49461b1b67c942d [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2014 itemis and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
* itemis - Initial API and implementation
*
* </copyright>
*/
package org.eclipse.sphinx.emf.edit;
import java.util.List;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.command.CommandParameter;
import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider;
import org.eclipse.emf.edit.provider.IItemFontProvider;
import org.eclipse.emf.edit.provider.IItemStyledLabelProvider;
import org.eclipse.emf.edit.provider.IWrapperItemProvider;
import org.eclipse.emf.edit.provider.StyledString;
public class ExtendedDelegatingWrapperItemProvider extends DelegatingWrapperItemProvider implements ITreeItemAncestorProvider, IItemFontProvider,
IItemStyledLabelProvider {
private ITreeItemAncestorProvider treeItemContentProviderHelper = null;
public ExtendedDelegatingWrapperItemProvider(Object value, Object owner, EStructuralFeature feature, int index, AdapterFactory adapterFactory) {
super(value, owner, feature, index, adapterFactory);
}
protected ITreeItemAncestorProvider getTreeItemContentProviderHelper() {
if (treeItemContentProviderHelper == null) {
treeItemContentProviderHelper = createTreeItemContentProviderHelper();
}
return treeItemContentProviderHelper;
}
protected ITreeItemAncestorProvider createTreeItemContentProviderHelper() {
return new TreeItemAncestorProvider(this, adapterFactory);
}
/*
* @see org.eclipse.sphinx.emf.edit.ITreeItemAncestorProvider#getAncestorPath(java.lang.Object, boolean)
*/
@Override
public List<Object> getAncestorPath(Object object, boolean unwrap) {
return getTreeItemContentProviderHelper().getAncestorPath(object, unwrap);
}
/*
* @see org.eclipse.sphinx.emf.edit.ITreeItemAncestorProvider#getAncestorPath(java.lang.Object, java.lang.Class,
* boolean)
*/
@Override
public List<Object> getAncestorPath(Object beginObject, Class<?> endType, boolean unwrap) {
return getTreeItemContentProviderHelper().getAncestorPath(beginObject, endType, unwrap);
}
/*
* @see org.eclipse.sphinx.emf.edit.ITreeItemAncestorProvider#findAncestor(java.lang.Object, java.lang.Class,
* boolean)
*/
@Override
public Object findAncestor(Object object, Class<?> ancestorType, boolean unwrap) {
return getTreeItemContentProviderHelper().findAncestor(object, ancestorType, unwrap);
}
/*
* @see org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider#createWrapper(java.lang.Object,
* java.lang.Object, org.eclipse.emf.common.notify.AdapterFactory)
*/
@Override
protected IWrapperItemProvider createWrapper(Object value, Object owner, AdapterFactory adapterFactory) {
return new ExtendedDelegatingWrapperItemProvider(value, owner, null, CommandParameter.NO_INDEX, adapterFactory);
}
/*
* @see org.eclipse.emf.edit.provider.IItemStyledLabelProvider#getStyledText(java.lang.Object)
*/
@Override
public Object getStyledText(Object object) {
return delegateItemProvider instanceof IItemStyledLabelProvider ? ((IItemStyledLabelProvider) delegateItemProvider)
.getStyledText(getDelegateValue()) : new StyledString(getText(object));
}
/*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return this.getClass().getSimpleName() + " [getDelegateValue()=" + getDelegateValue() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
}
}