/* * 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.ui.wizards; import java.util.ArrayList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.teiid.designer.core.workspace.ModelResource; /** * StructuralCopyTreeContentProvider * * @since 8.0 */ public class StructuralCopyTreeContentProvider implements ITreeContentProvider { //////////////////////////////////////////////////////////////////////////////////////// // STATIC VARIABLES //////////////////////////////////////////////////////////////////////////////////////// public static StructuralCopyTreeContentProvider instance = null; //////////////////////////////////////////////////////////////////////////////////////// // STATIC METHODS //////////////////////////////////////////////////////////////////////////////////////// public static StructuralCopyTreeContentProvider getInstance() { if (instance == null) { instance = new StructuralCopyTreeContentProvider(); } return instance; } //////////////////////////////////////////////////////////////////////////////////////// // CONSTRUCTORS //////////////////////////////////////////////////////////////////////////////////////// private StructuralCopyTreeContentProvider() { super(); } //////////////////////////////////////////////////////////////////////////////////////// // INSTANCE METHODS //////////////////////////////////////////////////////////////////////////////////////// @Override public Object[] getChildren(Object node) { Object[] result; if (node instanceof ModelResource) { result = getElements(node); } else { EObject parent = (EObject)node; EList children = parent.eContents(); result = children.toArray(); } return result; } @Override public boolean hasChildren(Object node) { EObject parent = (EObject)node; EList children = parent.eContents(); return (children.size() > 0); } @Override public Object[] getElements(Object node) { ModelResource parent = (ModelResource)node; java.util.List elements = null; try { elements = parent.getEObjects(); } catch (Exception ex) { //bwpTODO-- do what if exception occurs? } if (elements == null) { elements = new ArrayList(0); } Object[] array = elements.toArray(); return array; } @Override public Object getParent(Object node) { EObject child = (EObject)node; EObject parent = child.eContainer(); return parent; } @Override public void dispose() { } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }