/*******************************************************************************
* Copyright (c) 2012 BMW Car IT 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.jnario.ui;
import org.eclipse.xtend.ide.XtendPreferenceStoreInitializer;
import org.eclipse.xtend.ide.refactoring.XtendRefactoringPreferences;
import org.eclipse.xtext.builder.EclipseOutputConfigurationProvider;
import org.eclipse.xtext.ui.editor.outline.actions.IOutlineContribution;
import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer;
import org.jnario.ui.internal.JnarioActivator;
import org.jnario.ui.preferences.JnarioPreferenceStoreAccess;
import com.google.inject.Binder;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.google.inject.Scopes;
import com.google.inject.name.Names;
@SuppressWarnings("restriction")
public class JnarioSharedState implements Module {
public void configure(Binder binder) {
binder.bind(EclipseOutputConfigurationProvider.class).toInstance(injector().getInstance(EclipseOutputConfigurationProvider.class));
binder.bind(IPreferenceStoreAccess.class).to(JnarioPreferenceStoreAccess.class).in(Scopes.SINGLETON);
binder.bind(IPreferenceStoreInitializer.class)
.annotatedWith(Names.named("RefactoringPreferences"))
.to(XtendRefactoringPreferences.Initializer.class);
binder.bind(IPreferenceStoreInitializer.class).annotatedWith(Names.named("smartCaretPreferenceInitializer")) //$NON-NLS-1$
.to(XtendPreferenceStoreInitializer.class);
binder.bind(IPreferenceStoreInitializer.class).annotatedWith(Names.named("bracketMatcherPrefernceInitializer")) //$NON-NLS-1$
.to(org.eclipse.xtext.ui.editor.bracketmatching.BracketMatchingPreferencesInitializer.class);
binder.bind(IPreferenceStoreInitializer.class).annotatedWith(IOutlineContribution.All.class)
.to(IOutlineContribution.Composite.class);
}
protected Injector injector() {
return JnarioActivator.getInstance().getInjector();
}
}