package org.ovirt.engine.ui.userportal.uicommon.model.basic; import org.ovirt.engine.ui.common.auth.CurrentUser; import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; import org.ovirt.engine.ui.common.presenter.popup.ConsolePopupPresenterWidget; import org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicommonweb.models.userportal.UserPortalBasicListModel; import org.ovirt.engine.ui.uicommonweb.models.vms.SpiceToGuestWithNonRespAgentModel; import org.ovirt.engine.ui.uicommonweb.models.vms.VncInfoModel; import org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm.VncInfoPopupPresenterWidget; import org.ovirt.engine.ui.userportal.uicommon.model.AbstractUserPortalListProvider; import com.google.gwt.event.shared.EventBus; import com.google.inject.Inject; import com.google.inject.Provider; public class UserPortalBasicListProvider extends AbstractUserPortalListProvider<UserPortalBasicListModel> { private final Provider<VncInfoPopupPresenterWidget> vncInfoPopupProvider; private final Provider<ConsolePopupPresenterWidget> consolePopupProvider; private final Provider<DefaultConfirmationPopupPresenterWidget> spiceToGuestWithNonRespAgentPopupProvider; @Inject public UserPortalBasicListProvider(EventBus eventBus, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, CurrentUser user, Provider<VncInfoPopupPresenterWidget> vncInfoPopupProvider, Provider<ConsolePopupPresenterWidget> consolePopupProvider, Provider<DefaultConfirmationPopupPresenterWidget> spiceToGuestWithNonRespAgentPopupProvider) { super(eventBus, defaultConfirmPopupProvider, user); this.vncInfoPopupProvider = vncInfoPopupProvider; this.consolePopupProvider = consolePopupProvider; this.spiceToGuestWithNonRespAgentPopupProvider = spiceToGuestWithNonRespAgentPopupProvider; } @Override public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(UserPortalBasicListModel source, UICommand lastExecutedCommand, Model windowModel) { if (windowModel instanceof VncInfoModel) { return vncInfoPopupProvider.get(); } else if (windowModel instanceof SpiceToGuestWithNonRespAgentModel) { return spiceToGuestWithNonRespAgentPopupProvider.get(); } else if (lastExecutedCommand == getModel().getEditConsoleCommand()) { return consolePopupProvider.get(); } else { return super.getModelPopup(source, lastExecutedCommand, windowModel); } } }