package org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.ui.uicommonweb.models.vms.CustomInstanceType; import org.ovirt.engine.ui.uicommonweb.models.vms.EditProfileBehavior; import org.ovirt.engine.ui.uicommonweb.models.vms.ProfileBehavior; import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; public class NewVmInstanceTypeManager extends VmInstanceTypeManager { private final ProfileBehavior networkBehavior = new EditProfileBehavior(); public NewVmInstanceTypeManager(UnitVmModel model) { super(model); } @Override protected VmBase getSource() { if (!(getModel().getInstanceTypes().getSelectedItem() instanceof CustomInstanceType)) { return (VmBase) getModel().getInstanceTypes().getSelectedItem(); } else { return getModel().getTemplateWithVersion().getSelectedItem() == null ? null : getModel().getTemplateWithVersion().getSelectedItem().getTemplateVersion(); } } @Override protected void updateBalloon(VmBase vmBase, boolean continueWithNext) { if (!isSourceCustomInstanceType()) { super.updateBalloon(vmBase, continueWithNext); } else if (continueWithNext) { updateRngDevice(vmBase); } } @Override protected ProfileBehavior getNetworkProfileBehavior() { return networkBehavior; } @Override protected void maybeSetSingleQxlPci(VmBase vmBase) { // We are setting the default Qxl support for true on new Linux VM with Spice display protocol // The default value cannot be set in the template since it will effect REST API as well boolean customInstanceTypeUsed = getModel().getInstanceTypes().getSelectedItem() instanceof CustomInstanceType; boolean blankTemplateUsed = getModel().getTemplateWithVersion().getSelectedItem() != null && getModel().getTemplateWithVersion().getSelectedItem().getTemplateVersion() .getId().equals(Guid.Empty); if (customInstanceTypeUsed && blankTemplateUsed) { maybeSetEntity(getModel().getIsSingleQxlEnabled(), getModel().getIsQxlSupported()); } else { super.maybeSetSingleQxlPci(vmBase); } } }