/**
* Copyright (c) 2011-2012 Eclipse contributors 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
*/
package org.eclipse.emf.ecore.xcore.ui;
import org.eclipse.emf.ecore.xcore.interpreter.IClassLoaderProvider;
import org.eclipse.emf.ecore.xcore.ui.builder.XcoreBuildParticipant;
import org.eclipse.emf.ecore.xcore.ui.builder.XcoreFileSystemAccess;
import org.eclipse.emf.ecore.xcore.ui.container.XcoreJavaProjectsState;
import org.eclipse.emf.ecore.xcore.ui.contentassist.ImportingTypesProposalProvider;
import org.eclipse.emf.ecore.xcore.ui.contentassist.XcoreVariableCompletions;
import org.eclipse.emf.ecore.xcore.ui.hover.XcoreHoverDocumentationProvider;
import org.eclipse.emf.ecore.xcore.ui.hover.XcoreHoverProvider;
import org.eclipse.emf.ecore.xcore.ui.hover.XcoreHoverSignatureProvider;
import org.eclipse.emf.ecore.xcore.ui.hyperlinking.XcoreHyperLinkHelper;
import org.eclipse.emf.ecore.xcore.ui.refactoring.XcoreDependentElementsCalculator;
import org.eclipse.emf.ecore.xcore.ui.refactoring.XcoreJavaElementFinder;
import org.eclipse.emf.ecore.xcore.ui.refactoring.XcoreReferenceFinder;
import org.eclipse.emf.ecore.xcore.ui.refactoring.XcoreRenameElementProcessor;
import org.eclipse.emf.ecore.xcore.ui.refactoring.XcoreRenameRefactoringProcessorFactory;
import org.eclipse.emf.ecore.xcore.ui.refactoring.XcoreRenameStrategy;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2;
import org.eclipse.xtext.builder.IXtextBuilderParticipant;
import org.eclipse.xtext.common.types.access.jdt.IJavaProjectProvider;
import org.eclipse.xtext.common.types.ui.refactoring.JdtRenameRefactoringProcessorFactory;
import org.eclipse.xtext.common.types.util.jdt.IJavaElementFinder;
import org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider;
import org.eclipse.xtext.common.types.xtext.ui.JdtVariableCompletions;
import org.eclipse.xtext.resource.containers.IAllContainersState;
import org.eclipse.xtext.ui.editor.findrefs.IReferenceFinder;
import org.eclipse.xtext.ui.editor.hover.IEObjectHover;
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
import org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider;
import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper;
import org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator;
import org.eclipse.xtext.ui.refactoring.IRenameStrategy;
import org.eclipse.xtext.ui.refactoring.impl.RenameElementProcessor;
import org.eclipse.xtext.xbase.ui.hover.XbaseDeclarativeHoverSignatureProvider;
import org.eclipse.xtext.xbase.ui.hover.XbaseDispatchingEObjectTextHover;
import com.google.inject.Inject;
import com.google.inject.Provider;
/**
* Use this class to register components to be used within the IDE.
*/
public class XcoreUiModule extends AbstractXcoreUiModule
{
public XcoreUiModule(AbstractUIPlugin plugin)
{
super(plugin);
}
@Override
public Class<? extends IHyperlinkHelper> bindIHyperlinkHelper()
{
return XcoreHyperLinkHelper.class;
}
@Override
public Class<? extends ITypesProposalProvider> bindITypesProposalProvider()
{
return ImportingTypesProposalProvider.class;
}
@Override
public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider()
{
return XcoreHoverProvider.class;
}
public Class<? extends RenameElementProcessor> bindRenameElementProcessor()
{
return XcoreRenameElementProcessor.class;
}
@Override
public Class<? extends IRenameStrategy> bindIRenameStrategy()
{
return XcoreRenameStrategy.class;
}
@Override
public Class<? extends IDependentElementsCalculator> bindIDependentElementsCalculator()
{
return XcoreDependentElementsCalculator.class;
}
@Override
public Class<? extends IJavaProjectProvider> bindIJavaProjectProvider()
{
return XcoreJavaProjectProvider.class;
}
public Class<?extends EclipseResourceFileSystemAccess2> bindEclipseResourceFileSystemAccess2()
{
return XcoreFileSystemAccess.class;
}
@Override
public Class<? extends IXtextBuilderParticipant> bindIXtextBuilderParticipant()
{
return XcoreBuildParticipant.class;
}
public Class<? extends IClassLoaderProvider> bindIClassLoaderProvider()
{
return XcoreJavaProjectProvider.class;
}
@Override
public Class<? extends IEObjectHover> bindIEObjectHover()
{
return XbaseDispatchingEObjectTextHover.class;
}
public Class<? extends XbaseDeclarativeHoverSignatureProvider> bindXbaseDeclarativeHoverSignatureProvider()
{
return XcoreHoverSignatureProvider.class;
}
public Class<? extends JdtVariableCompletions> bindJdtVariableCompletions()
{
return XcoreVariableCompletions.class;
}
public Class<? extends IReferenceFinder> bindIReferenceFinder()
{
return XcoreReferenceFinder.class;
}
public Class<? extends IJavaElementFinder> bindIJavaElementFinder()
{
return XcoreJavaElementFinder.class;
}
public Class<? extends JdtRenameRefactoringProcessorFactory> bindJdtRenameRefactoringProcessorFactory()
{
return XcoreRenameRefactoringProcessorFactory.class;
}
@Override
public Provider<IAllContainersState> provideIAllContainersState()
{
return
new Provider<IAllContainersState>()
{
@Inject
XcoreJavaProjectsState instance;
public IAllContainersState get()
{
return instance;
}
};
}
@Override
public Class<? extends IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider()
{
return XcoreHoverDocumentationProvider.class;
}
}