// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dataprofiler.core.ui.wizard.analysis.provider; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IResource; import org.talend.core.model.repository.Folder; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.dataprofiler.core.ui.views.provider.ResourceViewContentProvider; import org.talend.dq.nodes.DBCatalogRepNode; import org.talend.dq.nodes.DBConnectionFolderRepNode; import org.talend.repository.model.IRepositoryNode.ENodeType; import org.talend.repository.model.RepositoryNode; import org.talend.resource.ResourceManager; /** * DOC mzhao class global comment. Catalog content provider. */ public class CatalogContentProvider extends ResourceViewContentProvider { // private static Logger log = Logger.getLogger(CatalogContentProvider.class); public CatalogContentProvider() { // super(MNComposedAdapterFactory.getAdapterFactory()); } /* * (non-Javadoc) * * @see org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider#getChildren(java.lang.Object) */ @Override public Object[] getChildren(Object parentElement) { // if (parentElement instanceof IContainer) { // try { // Object[] members = ((IContainer) parentElement).members(); // if (parentElement.equals(ResourceManager.getConnectionFolder())) { // try { // members = ProxyRepositoryFactory.getInstance().getAll(ERepositoryObjectType.METADATA_CONNECTIONS) // .toArray(); // } catch (PersistenceException e) { // log.error(e, e); // } // } // return members; // } catch (CoreException e) { // log.error("Can't get the children of container:" + ((IContainer) parentElement).getLocation()); //$NON-NLS-1$ // } // } else if (parentElement instanceof IRepositoryViewObject) { // IRepositoryViewObject repoistoryViewObj = (IRepositoryViewObject) parentElement; // Item item = repoistoryViewObj.getProperty().getItem(); // if (item instanceof ConnectionItem) { // ((ConnectionItem) item).getConnection().getDataPackage(); // return ComparatorsFactory.sort(((ConnectionItem) item).getConnection().getDataPackage().toArray(), // ComparatorsFactory.MODELELEMENT_COMPARATOR_ID); // } // } // else if (parentElement instanceof IFile) { // IFile prvFile = (IFile) parentElement; // if (FactoriesUtil.isProvFile(prvFile.getFileExtension())) { // parentElement = PrvResourceFileHelper.getInstance().getFileResource((IFile) parentElement); // return ComparatorsFactory.sort(super.getChildren(parentElement), // ComparatorsFactory.MODELELEMENT_COMPARATOR_ID); // } // } List<RepositoryNode> analyzeNode = new ArrayList<RepositoryNode>(); if (parentElement instanceof IContainer) { if (ResourceManager.isMetadataFolder((IResource) parentElement)) { IFolder container = (IFolder) parentElement; IRepositoryViewObject viewObject = new Folder(((IFolder) container).getName(), ((IFolder) container).getName()); RepositoryNode node = new RepositoryNode(viewObject, null, ENodeType.SYSTEM_FOLDER); viewObject.setRepositoryNode(node); Object[] children = super.getChildren(node); // if analyze Connection/Catalog/Schema,now only surpport DB type klliu 2011-01-28 for (Object object : children) { if (object instanceof DBConnectionFolderRepNode) { analyzeNode.add((RepositoryNode) object); } } return analyzeNode.toArray(); } } return super.getChildren(parentElement); } /* * (non-Javadoc) * * @see org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider#getElements(java.lang.Object) */ @Override public Object[] getElements(Object object) { return this.getChildren(object); } /* * (non-Javadoc) * * @see org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider#getParent(java.lang.Object) */ @Override public Object getParent(Object element) { if (element instanceof IContainer) { return ((IContainer) element).getParent(); } return super.getParent(element); } /* * (non-Javadoc) * * @see org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider#hasChildren(java.lang.Object) */ @Override public boolean hasChildren(Object element) { return !(element instanceof DBCatalogRepNode); } }