package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.guide; 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.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.GuideModel; import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.AddDataCenterClusterPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.FindMultiStoragePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.datacenter.FindSingleStoragePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.HostPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.StorageForceCreatePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.storage.StoragePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmDiskAttachPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmDiskPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.vm.VmInterfacePopupPresenterWidget; import com.google.gwt.event.shared.EventBus; import com.google.inject.Inject; import com.google.inject.Provider; public class GuidePopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<GuideModel<?>, GuidePopupPresenterWidget.ViewDef> { public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<GuideModel<?>> { } private final Provider<ClusterPopupPresenterWidget> clusterPopupProvider; private final Provider<HostPopupPresenterWidget> hostPopupProvider; private final Provider<StoragePopupPresenterWidget> storagePopupProvider; private final Provider<VmInterfacePopupPresenterWidget> vmInterfacePopupProvider; private final Provider<VmDiskPopupPresenterWidget> vmDiskPopupPopupProvider; private final Provider<VmDiskAttachPopupPresenterWidget> vmDiskAttachPopupPopupProvider; private final Provider<MoveHostPopupPresenterWidget> moveHostPopupProvider; private final Provider<FindSingleStoragePopupPresenterWidget> singleStoragePopupProvider; private final Provider<FindMultiStoragePopupPresenterWidget> multiStoragePopupProvider; private final Provider<StorageForceCreatePopupPresenterWidget> forceCreateConfirmPopupProvider; private final Provider<AddDataCenterClusterPopupPresenterWidget> addDatacenterClusterPopupProvider; @Inject public GuidePopupPresenterWidget(EventBus eventBus, ViewDef view, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, Provider<StorageForceCreatePopupPresenterWidget> forceCreateConfirmPopupProvider, Provider<ClusterPopupPresenterWidget> clusterPopupProvider, Provider<HostPopupPresenterWidget> hostPopupProvider, Provider<StoragePopupPresenterWidget> storagePopupProvider, Provider<VmInterfacePopupPresenterWidget> vmInterfacePopupProvider, Provider<VmDiskPopupPresenterWidget> vmDiskPopupPopupProvider, Provider<VmDiskAttachPopupPresenterWidget> vmDiskAttachPopupPopupProvider, Provider<MoveHostPopupPresenterWidget> moveHostPopupProvider, Provider<FindSingleStoragePopupPresenterWidget> singleStoragePopupProvider, Provider<FindMultiStoragePopupPresenterWidget> multiStoragePopupProvider, Provider<AddDataCenterClusterPopupPresenterWidget> addDatacenterClusterPopupProvider) { super(eventBus, view, defaultConfirmPopupProvider); this.forceCreateConfirmPopupProvider = forceCreateConfirmPopupProvider; this.clusterPopupProvider = clusterPopupProvider; this.hostPopupProvider = hostPopupProvider; this.storagePopupProvider = storagePopupProvider; this.vmInterfacePopupProvider = vmInterfacePopupProvider; this.vmDiskPopupPopupProvider = vmDiskPopupPopupProvider; this.vmDiskAttachPopupPopupProvider = vmDiskAttachPopupPopupProvider; this.moveHostPopupProvider = moveHostPopupProvider; this.singleStoragePopupProvider = singleStoragePopupProvider; this.multiStoragePopupProvider = multiStoragePopupProvider; this.addDatacenterClusterPopupProvider = addDatacenterClusterPopupProvider; } @Override public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(GuideModel<?> source, UICommand lastExecutedCommand, Model windowModel) { String lastExecutedCommandName = lastExecutedCommand.getName(); if (lastExecutedCommandName.equals("AddCluster")) { //$NON-NLS-1$ return clusterPopupProvider.get(); } else if (lastExecutedCommandName.equals("AddHost")) { //$NON-NLS-1$ return hostPopupProvider.get(); } else if (lastExecutedCommandName.equals("SelectHost")) { //$NON-NLS-1$ return moveHostPopupProvider.get(); } else if (lastExecutedCommandName.equals("AddDataStorage")) { //$NON-NLS-1$ return storagePopupProvider.get(); } else if (lastExecutedCommandName.equals("AddIsoStorage")) { //$NON-NLS-1$ return storagePopupProvider.get(); } else if (lastExecutedCommandName.equals("AddLocalStorage")) { //$NON-NLS-1$ return storagePopupProvider.get(); } else if (lastExecutedCommandName.equals("AttachDataStorage")) { //$NON-NLS-1$ return multiStoragePopupProvider.get(); } else if (lastExecutedCommandName.equals("AttachIsoStorage")) { //$NON-NLS-1$ return singleStoragePopupProvider.get(); } else if (lastExecutedCommandName.equals("AddNetwork")) { //$NON-NLS-1$ return vmInterfacePopupProvider.get(); } else if (lastExecutedCommandName.equals("NewDisk")) { //$NON-NLS-1$ return vmDiskPopupPopupProvider.get(); } else if (lastExecutedCommandName.equals("AttachDisk")) { //$NON-NLS-1$ return vmDiskAttachPopupPopupProvider.get(); } else if (lastExecutedCommandName.equals("AddDataCenter")) { //$NON-NLS-1$ return addDatacenterClusterPopupProvider.get(); } else { return super.getModelPopup(source, lastExecutedCommand, windowModel); } } @Override public AbstractModelBoundPopupPresenterWidget<? extends ConfirmationModel, ?> getConfirmModelPopup(GuideModel<?> source, UICommand lastExecutedCommand) { if (lastExecutedCommand.getName().equals("OnAddStorage")) { //$NON-NLS-1$ return forceCreateConfirmPopupProvider.get(); } else { return super.getConfirmModelPopup(source, lastExecutedCommand); } } }