package org.eclipse.gmf.examples.eclipsecon.diagram.custom.providers; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.examples.eclipsecon.EclipseconPackage; import org.eclipse.gmf.examples.eclipsecon.diagram.custom.parsers.PresenterParser; import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; import org.eclipse.gmf.runtime.common.core.service.IOperation; import org.eclipse.gmf.runtime.common.core.service.IProviderChangeListener; import org.eclipse.gmf.runtime.common.ui.services.parser.GetParserOperation; import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; import org.eclipse.gmf.runtime.common.ui.services.parser.IParserProvider; public class ParserProvider extends AbstractProvider implements IParserProvider { public IParser getParser(IAdaptable hint) { return PresenterParser.getInstance(); } public void addProviderChangeListener(IProviderChangeListener listener) { // TODO Auto-generated method stub } public boolean provides(IOperation operation) { if (operation instanceof GetParserOperation) { IAdaptable hint = ((GetParserOperation) operation).getHint(); EObject semanticEl = (EObject) hint.getAdapter(EObject.class); if (semanticEl.eClass() == EclipseconPackage.Literals.PRESENTER) return true; } return false; } public void removeProviderChangeListener(IProviderChangeListener listener) { // TODO Auto-generated method stub } }