package org.ovirt.engine.ui.common.gin; import org.ovirt.engine.ui.common.uicommon.FrontendEventsHandlerImpl; import org.ovirt.engine.ui.common.uicommon.FrontendFailureEventListener; import org.ovirt.engine.ui.common.uicommon.LoggerImpl; import org.ovirt.engine.ui.common.uicommon.NoVncImpl; import org.ovirt.engine.ui.common.uicommon.RdpNativeImpl; import org.ovirt.engine.ui.common.uicommon.RdpPluginImpl; import org.ovirt.engine.ui.common.uicommon.SpiceHtml5Impl; import org.ovirt.engine.ui.common.uicommon.SpiceNativeImpl; import org.ovirt.engine.ui.common.uicommon.UiCommonDefaultTypeResolver; import org.ovirt.engine.ui.common.uicommon.VncNativeImpl; import org.ovirt.engine.ui.common.uicommon.model.OptionsProvider; import org.ovirt.engine.ui.uicommonweb.Configurator; import org.ovirt.engine.ui.uicommonweb.ILogger; import org.ovirt.engine.ui.uicommonweb.ITypeResolver; import org.ovirt.engine.ui.uicommonweb.models.OptionsModel; import org.ovirt.engine.ui.uicommonweb.models.vms.INoVnc; import org.ovirt.engine.ui.uicommonweb.models.vms.IRdpNative; import org.ovirt.engine.ui.uicommonweb.models.vms.IRdpPlugin; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpiceHtml5; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpiceNative; import org.ovirt.engine.ui.uicommonweb.models.vms.IVncNative; import com.google.gwt.inject.client.AbstractGinModule; import com.google.inject.Singleton; /** * GIN module containing common UiCommon integration bindings. */ public abstract class BaseUiCommonModule extends AbstractGinModule { protected void bindCommonIntegration() { bind(ITypeResolver.class).to(UiCommonDefaultTypeResolver.class).asEagerSingleton(); bind(FrontendEventsHandlerImpl.class).in(Singleton.class); bind(FrontendFailureEventListener.class).in(Singleton.class); bind(ILogger.class).to(LoggerImpl.class).in(Singleton.class); // User Options bind(OptionsModel.class).in(Singleton.class); bindCommonModelProviders(); bindConsoles(); } void bindCommonModelProviders() { // Options bind(OptionsProvider.class).in(Singleton.class); } protected void bindConfiguratorIntegration(Class<? extends Configurator> configurator) { bind(Configurator.class).to(configurator).in(Singleton.class); } private void bindConsoles() { bind(INoVnc.class).to(NoVncImpl.class); bind(IVncNative.class).to(VncNativeImpl.class); bind(ISpiceHtml5.class).to(SpiceHtml5Impl.class); bind(ISpiceNative.class).to(SpiceNativeImpl.class); bind(IRdpNative.class).to(RdpNativeImpl.class); bind(IRdpPlugin.class).to(RdpPluginImpl.class); } }