package org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.compat.Guid; 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 ExistingVmInstanceTypeManager extends VmInstanceTypeManager { private final ProfileBehavior networkBehavior = new EditProfileBehavior(); private final VM vm; public ExistingVmInstanceTypeManager(UnitVmModel model, VM vm) { super(model); this.vm = vm; } @Override protected void doUpdateManagedFieldsFrom(VmBase vmBase) { boolean numOfSocketsChangable = getModel().getNumOfSockets().getIsChangable(); boolean coresPerSocket = getModel().getCoresPerSocket().getIsChangable(); boolean threadsPerCore = getModel().getThreadsPerCore().getIsChangable(); super.doUpdateManagedFieldsFrom(vmBase); deactivate(); getModel().getNumOfSockets().setIsChangeable(numOfSocketsChangable); getModel().getCoresPerSocket().setIsChangeable(coresPerSocket); getModel().getThreadsPerCore().setIsChangeable(threadsPerCore); activate(); } @Override protected VmBase getSource() { return vm.getStaticData(); } @Override protected boolean isNextRunConfigurationExists() { return vm.isNextRunConfigurationExists(); } @Override protected ProfileBehavior getNetworkProfileBehavior() { return networkBehavior; } @Override protected Guid getSelectedInstanceTypeId() { return super.getSelectedInstanceTypeId() == null ? vm.getInstanceTypeId() : super.getSelectedInstanceTypeId(); } @Override public void maybeSetSingleQxlPci(VmBase vmBase) { maybeSetEntity(getModel().getIsSingleQxlEnabled(), vm.getSingleQxlPci() && getModel().getIsQxlSupported()); } }