package org.ovirt.engine.ui.webadmin.gin.uicommon; import org.ovirt.engine.core.common.businessentities.Erratum; import org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget; import org.ovirt.engine.ui.common.uicommon.model.DetailTabModelProvider; import org.ovirt.engine.ui.common.uicommon.model.MainModelProvider; import org.ovirt.engine.ui.common.uicommon.model.MainTabModelProvider; import org.ovirt.engine.ui.uicommonweb.models.CommonModel; import org.ovirt.engine.ui.uicommonweb.models.EngineErrataListModel; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.errata.ErrataMainTabSelectedItems; import com.google.gwt.event.shared.EventBus; import com.google.gwt.inject.client.AbstractGinModule; import com.google.inject.Provider; import com.google.inject.Provides; import com.google.inject.Singleton; /** * Gin configuration module for Errata tabs and popups. */ public class ErrataModule extends AbstractGinModule { @Provides @Singleton public MainModelProvider<Erratum, EngineErrataListModel> getErrataListProvider(final EventBus eventBus, final Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, final Provider<EngineErrataListModel> modelProvider, final Provider<CommonModel> commonModelProvider) { MainTabModelProvider<Erratum, EngineErrataListModel> result = new MainTabModelProvider<>(eventBus, defaultConfirmPopupProvider, commonModelProvider); result.setModelProvider(modelProvider); return result; } @Provides @Singleton public DetailTabModelProvider<EngineErrataListModel, EntityModel<Erratum>> getErrataDetailProvider(final EventBus eventBus, final Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, final Provider<EngineErrataListModel> mainModelProvider, final Provider<EntityModel<Erratum>> modelProvider) { DetailTabModelProvider<EngineErrataListModel, EntityModel<Erratum>> result = new DetailTabModelProvider<>(eventBus, defaultConfirmPopupProvider); result.setMainModelProvider(mainModelProvider); result.setModelProvider(modelProvider); return result; } @Override protected void configure() { bind(EngineErrataListModel.class).in(Singleton.class); bind(ErrataMainTabSelectedItems.class).asEagerSingleton(); } }