/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.mapping.ui.editor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.teiid.designer.metamodels.diagram.Diagram;
import org.teiid.designer.ui.viewsupport.ModelUtilities;
/**
* DocumentContentProvider
*
* @since 8.0
*/
public class DocumentContentProvider implements ITreeContentProvider {
private ITreeContentProvider emfProvider;
private MappingDiagramController diagramController;
public DocumentContentProvider(MappingDiagramController diagramController) {
this.emfProvider = ModelUtilities.getModelContentProvider();
this.diagramController = diagramController;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
@Override
public void dispose() {
if ( emfProvider != null )
emfProvider.dispose();
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
*/
@Override
public Object[] getChildren(Object parentElement) {
if ( parentElement instanceof EObject ) {
return diagramController.getMappableTree().getChildren((EObject) parentElement).toArray();
}
return new Object[0];
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
*/
@Override
public Object[] getElements(Object inputElement) {
if ( inputElement instanceof Diagram ) {
EObject root = ((Diagram) inputElement).getTarget();
return root.eContents().toArray();
} else if ( inputElement instanceof EObject ) {
return ((EObject) inputElement).eContents().toArray();
}
return new Object[0];
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
*/
@Override
public Object getParent(Object element) {
return emfProvider.getParent(element);
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
*/
@Override
public boolean hasChildren(Object element) {
return emfProvider.hasChildren(element);
}
/* (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) {
emfProvider.inputChanged(viewer, oldInput, newInput);
}
}