/*
* generated by Xtext
*/
package org.eclipselabs.spray.xtext.ui;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.xtext.service.SingletonBinding;
import org.eclipse.xtext.ui.editor.model.TokenTypeToStringMapper;
import org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper;
import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration;
import org.eclipse.xtext.ui.util.PluginProjectFactory;
import org.eclipse.xtext.ui.wizard.IProjectCreator;
import org.eclipselabs.spray.xtext.ui.syntaxcoloring.SprayHighlightingConfiguration;
import org.eclipselabs.spray.xtext.ui.syntaxcoloring.SprayTokenToAttributeIdMapper;
import org.eclipselabs.spray.xtext.ui.validation.SprayJavaUIValidator;
import org.eclipselabs.spray.xtext.ui.wizard.SprayPluginProjectFactory;
import org.eclipselabs.spray.xtext.ui.wizard.SprayProjectCreator;
import org.eclipselabs.spray.xtext.validation.SprayJavaValidator;
import com.google.inject.Binder;
import com.google.inject.name.Names;
/**
* Use this class to register components to be used within the IDE.
*/
public class SprayUiModule extends AbstractSprayUiModule {
/** Key for String Binding */
public static final String NEW_PROJECT_NAME = "org.eclipselabs.spray.xtext.ui.newProjectName";
public SprayUiModule(AbstractUIPlugin plugin) {
super(plugin);
}
public Class<? extends AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
return SprayTokenToAttributeIdMapper.class;
}
@Override
public void configure(Binder binder) {
super.configure(binder);
binder.bind(TokenTypeToStringMapper.class).to(SprayTokenToAttributeIdMapper.class);
}
public void configureNewProjectName(Binder binder) {
binder.bind(String.class).annotatedWith(Names.named(NEW_PROJECT_NAME)).toInstance("org.eclipselabs.spray.examples.mydiagram");
}
public Class<? extends IProjectCreator> bindIProjectCreator() {
return SprayProjectCreator.class;
}
public Class<? extends PluginProjectFactory> bindPluginProjectFactory() {
return SprayPluginProjectFactory.class;
}
@SingletonBinding(eager = true)
public Class<? extends SprayJavaValidator> bindSprayJavaValidator() {
return SprayJavaUIValidator.class;
}
/**
* Usually contributed by org.eclipse.xtext.generator.generator.GeneratorFragment,
* but this fragment is not used. The SprayProjectCreator needs it.
*/
public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
}
@Override
public Class<? extends IHighlightingConfiguration> bindIHighlightingConfiguration() {
return SprayHighlightingConfiguration.class;
}
}