package org.ovirt.engine.ui.userportal.uicommon.model.vm;
import org.ovirt.engine.core.common.businessentities.Snapshot;
import org.ovirt.engine.ui.common.auth.CurrentUser;
import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
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.UserPortalListModel;
import org.ovirt.engine.ui.uicommonweb.models.vms.UserPortalVmSnapshotListModel;
import org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm.VmClonePopupPresenterWidget;
import org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm.VmMakeTemplatePopupPresenterWidget;
import org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm.VmSnapshotCreatePopupPresenterWidget;
import org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm.VmSnapshotCustomPreviewPopupPresenterWidget;
import org.ovirt.engine.ui.userportal.section.main.presenter.popup.vm.VmSnapshotPreviewPopupPresenterWidget;
import org.ovirt.engine.ui.userportal.uicommon.model.UserPortalSearchableDetailModelProvider;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
import com.google.inject.Provider;
public class VmSnapshotListModelProvider extends UserPortalSearchableDetailModelProvider<Snapshot, UserPortalListModel, UserPortalVmSnapshotListModel> {
private final Provider<VmSnapshotCreatePopupPresenterWidget> createPopupProvider;
private final Provider<VmClonePopupPresenterWidget> cloneVmPopupProvider;
private final Provider<VmSnapshotPreviewPopupPresenterWidget> previewPopupProvider;
private final Provider<VmSnapshotCustomPreviewPopupPresenterWidget> customPreviewPopupProvider;
private final Provider<VmMakeTemplatePopupPresenterWidget> cloneTemplatePopupProvider;
@Inject
public VmSnapshotListModelProvider(EventBus eventBus,
Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider,
CurrentUser user,
Provider<VmSnapshotCreatePopupPresenterWidget> createPopupProvider,
Provider<VmSnapshotPreviewPopupPresenterWidget> previewPopupProvider,
Provider<VmSnapshotCustomPreviewPopupPresenterWidget> customPreviewPopupProvider,
Provider<VmMakeTemplatePopupPresenterWidget> cloneTemplatePopupProvider,
Provider<VmClonePopupPresenterWidget> cloneVmPopupProvider) {
super(eventBus, defaultConfirmPopupProvider, user);
this.createPopupProvider = createPopupProvider;
this.cloneVmPopupProvider = cloneVmPopupProvider;
this.previewPopupProvider = previewPopupProvider;
this.customPreviewPopupProvider = customPreviewPopupProvider;
this.cloneTemplatePopupProvider = cloneTemplatePopupProvider;
}
@Override
public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(UserPortalVmSnapshotListModel source,
UICommand lastExecutedCommand, Model windowModel) {
if (lastExecutedCommand == getModel().getNewCommand()) {
return createPopupProvider.get();
} else if (lastExecutedCommand == getModel().getCloneVmCommand()) {
return cloneVmPopupProvider.get();
} else if (lastExecutedCommand == getModel().getPreviewCommand()) {
return previewPopupProvider.get();
} else if (lastExecutedCommand == getModel().getCustomPreviewCommand()) {
return customPreviewPopupProvider.get();
} else if (lastExecutedCommand == getModel().getCloneTemplateCommand()) {
return cloneTemplatePopupProvider.get();
} else {
return super.getModelPopup(source, lastExecutedCommand, windowModel);
}
}
}