/*
* 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.datatools.connectivity.dse.provider;
import org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.services.IVirtualNodeServiceFactory;
import org.eclipse.datatools.connectivity.sqm.core.rte.jdbc.JDBCColumn;
import org.eclipse.datatools.connectivity.sqm.core.ui.services.IDataToolsUIServiceManager;
import org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.providers.content.impl.ServerExplorerContentProviderNav;
import org.eclipse.datatools.connectivity.sqm.server.internal.ui.util.resources.ResourceLoader;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.navigator.ICommonContentExtensionSite;
import org.eclipse.ui.navigator.ICommonContentProvider;
import org.teiid.datatools.connectivity.sql.TeiidCatalogSchema;
import org.teiid.datatools.connectivity.sql.TeiidDocument;
/**
*
*/
public class TeiidContentProvider extends ServerExplorerContentProviderNav implements ICommonContentProvider {
protected static final IVirtualNodeServiceFactory nodeFactory = IDataToolsUIServiceManager.INSTANCE.getVirtualNodeServiceFactory();
protected static final ResourceLoader resourceLoader = ResourceLoader.INSTANCE;
/*
* (non-Javadoc)
*
* @see org.eclipse.datatools.connectivity.sqm.server.internal.ui.explorer.providers.content.impl.ServerExplorerContentProviderNav#getChildren(java.lang.Object)
*/
@Override
public Object[] getChildren( Object parentElement ) {
if (parentElement instanceof TeiidCatalogSchema) {
TeiidDocumentsFolder folder = new TeiidDocumentsFolder("Documents", "Documents", //$NON-NLS-1$ //$NON-NLS-2$
parentElement);
return new Object[] {folder};
} else if (parentElement instanceof TeiidDocumentsFolder) {
TeiidDocumentsFolder docFolder = (TeiidDocumentsFolder) parentElement;
TeiidCatalogSchema schema = (TeiidCatalogSchema) docFolder.getParent();
docFolder.addChildren(schema.getDocuments());
return docFolder.getChildrenArray();
} else if (parentElement instanceof TeiidDocument) {
DocumentColumnFolder folder = new DocumentColumnFolder("Columns", "Columns", //$NON-NLS-1$ //$NON-NLS-2$
parentElement);
return new Object[] {folder};
} else if (parentElement instanceof DocumentColumnFolder) {
DocumentColumnFolder folder = (DocumentColumnFolder) parentElement;
TeiidDocument doc = (TeiidDocument) folder.getParent();
return doc.getColumns().toArray();
} else if (parentElement instanceof JDBCColumn && ((JDBCColumn)parentElement).eContainer() instanceof TeiidDocument) {
return new Object[]{};
}
return super.getChildren(parentElement);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.navigator.ICommonContentProvider#init(org.eclipse.ui.navigator.ICommonContentExtensionSite)
*/
@Override
public void init( ICommonContentExtensionSite config ) {
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.navigator.IMementoAware#restoreState(org.eclipse.ui.IMemento)
*/
@Override
public void restoreState( IMemento memento ) {
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.navigator.IMementoAware#saveState(org.eclipse.ui.IMemento)
*/
@Override
public void saveState( IMemento memento ) {
}
}