/******************************************************************************* * Copyright (c) 2009, 2010 Wind River Systems, Inc. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Markus Schorn - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.IPDOMIndexer; import org.eclipse.cdt.core.dom.IPDOMIndexerTask; import org.eclipse.cdt.internal.core.model.CModelManager; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.content.IContentType; import org.eclipse.core.runtime.content.IContentTypeManager.ContentTypeChangeEvent; /** * Task to notify the CModel manager of changes to the content types. */ public class NotifyCModelManagerTask implements IPDOMIndexerTask { private final IProject fProject; public NotifyCModelManagerTask(IProject project) { fProject= project; } @Override public IPDOMIndexer getIndexer() { return null; } @Override public IndexerProgress getProgressInformation() { return new IndexerProgress(); } @Override public void run(IProgressMonitor monitor) throws InterruptedException { IContentType ct1= Platform.getContentTypeManager().getContentType(CCorePlugin.CONTENT_TYPE_CXXHEADER); IContentType ct2= Platform.getContentTypeManager().getContentType(CCorePlugin.CONTENT_TYPE_CXXSOURCE); if (ct1 != null && ct2 != null) { final ProjectScope scope = new ProjectScope(fProject); CModelManager.getDefault().contentTypeChanged(new ContentTypeChangeEvent[] { new ContentTypeChangeEvent(ct1, scope), new ContentTypeChangeEvent(ct2, scope) }); } } @Override public boolean acceptUrgentTask(IPDOMIndexerTask task) { return false; } }