package org.teiid.designer.advisor.ui.suppliers.relational; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.teiid.designer.advisor.ui.core.AdvisorSupplierFactory; import org.teiid.designer.advisor.ui.core.DefaultCheatSheetProvider; import org.teiid.designer.advisor.ui.core.IAdvisorSupplier; import org.teiid.designer.advisor.ui.core.ICheatSheetProvider; import org.teiid.designer.advisor.ui.core.status.IStatusContentProvider; import org.teiid.designer.advisor.ui.core.status.IStatusManager; import org.teiid.designer.advisor.ui.scope.RelationalModelingNature; import org.teiid.designer.advisor.ui.scope.WebServicesModelingNature; import org.teiid.designer.advisor.ui.scope.XmlModelingNature; import org.teiid.designer.core.ModelerCore; import org.teiid.designer.ui.viewsupport.ModelIdentifier; public class RelationalModelingSupplier implements IAdvisorSupplier { private IStatusContentProvider statusProvider; private IStatusManager statusManager; private ICheatSheetProvider cheatSheetProvider; public RelationalModelingSupplier() { super(); this.statusProvider = new RelationalModelingStatusProvider(); this.statusManager = new RelationalModelingStatusManager(); this.cheatSheetProvider = new DefaultCheatSheetProvider(); } @Override public void changeContent(Object content) { // TODO Auto-generated method stub } @Override public ICheatSheetProvider getCheatSheetProvider() { return this.cheatSheetProvider; } @Override public IStatusManager getStatusManager() { return this.statusManager; } @Override public IStatusContentProvider getStatusContentProvider() { return this.statusProvider; } @Override public boolean isApplicable(Object target) { if( target instanceof IResource ) { IResource res = (IResource)target; if (res instanceof IProject && ModelerCore.hasModelNature((IProject) res)) { boolean isRelationalOnly = AdvisorSupplierFactory.hasPrimaryProjectScopeNature( (IProject)res, RelationalModelingNature.NATURE_ID) && !AdvisorSupplierFactory.hasPrimaryProjectScopeNature( (IProject)res, XmlModelingNature.NATURE_ID) && !AdvisorSupplierFactory.hasPrimaryProjectScopeNature( (IProject)res, WebServicesModelingNature.NATURE_ID); return isRelationalOnly; } else if (ModelIdentifier.isRelationalSourceModel(res) || ModelIdentifier.isRelationalViewModel(res)) { return true; } } return false; } @Override public void shutdown() { this.statusProvider.shutdown(); this.statusManager.shutdown(); this.cheatSheetProvider.shutdown(); } @Override public void startup() { this.statusProvider.startup(); this.statusManager.startup(); this.cheatSheetProvider.startup(); } }