package org.ovirt.engine.ui.webadmin.gin;
import org.ovirt.engine.ui.common.auth.CommonCurrentUserRole;
import org.ovirt.engine.ui.common.gin.BaseSystemModule;
import org.ovirt.engine.ui.common.section.DefaultMainSectionPlace;
import org.ovirt.engine.ui.common.system.ClientStorageKeyPrefix;
import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole;
import org.ovirt.engine.ui.uicommonweb.place.WebAdminApplicationPlaces;
import org.ovirt.engine.ui.webadmin.ApplicationConstants;
import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages;
import org.ovirt.engine.ui.webadmin.ApplicationMessages;
import org.ovirt.engine.ui.webadmin.ApplicationResources;
import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
import org.ovirt.engine.ui.webadmin.place.WebAdminPlaceManager;
import org.ovirt.engine.ui.webadmin.system.PostMessageDispatcher;
/**
* GIN module containing WebAdmin infrastructure and configuration bindings.
*/
public class SystemModule extends BaseSystemModule {
private static final String CLIENT_STORAGE_KEY_PREFIX = "ENGINE_WebAdmin"; //$NON-NLS-1$
@SuppressWarnings("deprecation")
@Override
protected void configure() {
requestStaticInjection(ClientGinjectorProvider.class);
requestStaticInjection(AssetProvider.class);
bindInfrastructure();
bindConfiguration();
}
void bindInfrastructure() {
bindCommonInfrastructure(WebAdminPlaceManager.class);
bind(PostMessageDispatcher.class).asEagerSingleton();
bindTypeAndImplAsSingleton(CurrentUserRole.class, CommonCurrentUserRole.class);
}
void bindConfiguration() {
bindConstant().annotatedWith(DefaultMainSectionPlace.class)
.to(WebAdminApplicationPlaces.DEFAULT_MAIN_SECTION_PLACE);
bindConstant().annotatedWith(ClientStorageKeyPrefix.class)
.to(CLIENT_STORAGE_KEY_PREFIX);
bindResourceConfiguration(ApplicationConstants.class, ApplicationMessages.class,
ApplicationResources.class, ApplicationTemplates.class, ApplicationDynamicMessages.class);
}
}