/*******************************************************************************
* Copyright (c) 2011 Sebastian Benz.
* 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:
* Sebastian Benz - initial API and implementation
******************************************************************************/
/*
* generated by Xtext
*/
package de.sebastianbenz.task.ui;
import java.util.Collection;
import java.util.Collections;
import org.eclipse.jface.text.ITextHover;
import org.eclipse.jface.text.reconciler.IReconciler;
import org.eclipse.ui.editors.text.EditorsUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.texteditor.spelling.SpellingService;
import org.eclipse.xtext.ui.editor.XtextEditor;
import org.eclipse.xtext.ui.editor.XtextSourceViewerConfiguration;
import org.eclipse.xtext.ui.editor.autoedit.AbstractEditStrategyProvider;
import org.eclipse.xtext.ui.editor.contentassist.ITemplateProposalProvider;
import org.eclipse.xtext.ui.editor.doubleClicking.DoubleClickStrategyProvider;
import org.eclipse.xtext.ui.editor.folding.FoldedPosition;
import org.eclipse.xtext.ui.editor.folding.IFoldingRegionProvider;
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper;
import org.eclipse.xtext.ui.editor.model.IResourceForEditorInputFactory;
import org.eclipse.xtext.ui.editor.model.ITokenTypeToPartitionTypeMapper;
import org.eclipse.xtext.ui.editor.model.IXtextDocument;
import org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory;
import org.eclipse.xtext.ui.editor.quickfix.XtextQuickAssistProcessor;
import org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper;
import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration;
import org.eclipse.xtext.ui.resource.IResourceSetProvider;
import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider;
import com.google.inject.Binder;
import de.sebastianbenz.task.ui.contentassist.TaskTemplateProvider;
import de.sebastianbenz.task.ui.editor.AutoEditStrategyProvider;
import de.sebastianbenz.task.ui.editor.FoldingRegionProvider;
import de.sebastianbenz.task.ui.editor.SourceViewerConfiguration;
import de.sebastianbenz.task.ui.editor.TaskEditor;
import de.sebastianbenz.task.ui.editor.TaskHyperLinkHelper;
import de.sebastianbenz.task.ui.editor.TaskTokenTypeToPartitionTypeMapper;
import de.sebastianbenz.task.ui.editor.spelling.TaskReconciler;
import de.sebastianbenz.task.ui.highlighting.HighlightingConfiguration;
import de.sebastianbenz.task.ui.highlighting.SemanticHighlightingCalculator;
import de.sebastianbenz.task.ui.highlighting.TokenHighlightingConfiguration;
import de.sebastianbenz.task.ui.hover.TaskCompositeHover;
import de.sebastianbenz.task.ui.hover.TaskHoverProvider;
import de.sebastianbenz.task.ui.quickfix.TaskQuickAssistProcessor;
/**
* Use this class to register components to be used within the IDE.
*/
public class TaskUiModule extends de.sebastianbenz.task.ui.AbstractTaskUiModule {
public static class NoFolding implements IFoldingRegionProvider {
public Collection<FoldedPosition> getFoldingRegions(
IXtextDocument xtextDocument) {
return Collections.emptyList();
}
}
public TaskUiModule(AbstractUIPlugin plugin) {
super(plugin);
}
@Override
public void configure(Binder binder) {
super.configure(binder);
binder.bind(XtextEditor.class).to(TaskEditor.class);
binder.bind(DoubleClickStrategyProvider.class).to(TaskDoubleClickStrategyProvider.class);
binder.bind(SpellingService.class).toInstance(EditorsUI.getSpellingService());
}
public Class<? extends IFoldingRegionProvider> bindIFoldingRegionProvider() {
return FoldingRegionProvider.class;
}
public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
return SemanticHighlightingCalculator.class;
}
public Class<? extends IHighlightingConfiguration> bindIHighlightingConfiguration() {
return HighlightingConfiguration.class;
}
public Class<? extends AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
return TokenHighlightingConfiguration.class;
}
@Override
public Class<? extends AbstractEditStrategyProvider> bindAbstractEditStrategyProvider() {
return AutoEditStrategyProvider.class;
}
public Class<? extends XtextSourceViewerConfiguration> bindXtextSourceViewerConfiguration() {
return SourceViewerConfiguration.class;
}
@Override
public Class<? extends ITemplateProposalProvider> bindITemplateProposalProvider() {
return TaskTemplateProvider.class;
}
@Override
public Class<? extends IResourceForEditorInputFactory> bindIResourceForEditorInputFactory() {
return ResourceForIEditorInputFactory.class;
}
@Override
public Class<? extends IResourceSetProvider> bindIResourceSetProvider() {
return SimpleResourceSetProvider.class;
}
@Override
public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
return org.eclipse.xtext.ui.shared.Access.getWorkspaceProjectsState();
}
@org.eclipse.xtext.service.SingletonBinding(eager = true)
public Class<? extends de.sebastianbenz.task.validation.TaskJavaValidator> bindTaskJavaValidator() {
return de.sebastianbenz.task.ui.validation.TaskUiValidator.class;
}
public Class<? extends ITokenTypeToPartitionTypeMapper> bindITokenTypeToPartitionTypeMapper() {
return TaskTokenTypeToPartitionTypeMapper.class;
}
public Class<? extends IHyperlinkHelper> bindIHyperlinkHelper() {
return TaskHyperLinkHelper.class;
}
public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() {
return TaskHoverProvider.class;
}
public Class<? extends ITextHover> bindITextHover() {
return TaskCompositeHover.class;
}
@Override
public Class<? extends IReconciler> bindIReconciler() {
return TaskReconciler.class;
}
public Class<? extends XtextQuickAssistProcessor> bindXtextQuickAssistProcessor(){
return TaskQuickAssistProcessor.class;
}
}