/**
*
*/
package com.hundsun.ares.studio.ui.editor.viewers;
import java.util.Collection;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;
/**
* @author gongyf
*
*/
public class ReferenceContentProvider implements IStructuredContentProvider {
static Object[] NONE = new Object[0];
EReference reference;
/**
* @param reference
*/
public ReferenceContentProvider(EReference reference) {
super();
this.reference = reference;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
@Override
public void dispose() {
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
@Override
public Object[] getElements(Object inputElement) {
if (inputElement instanceof EObject) {
if (!((EObject) inputElement).eClass().getEAllContainments().contains(reference)) {
return NONE;
}
Object children = ((EObject) inputElement).eGet(reference);
if (children instanceof Collection) {
return ((Collection) children).toArray();
}
}
return NONE;
}
}