package org.ovirt.engine.ui.uicommonweb.builders.vm; import org.ovirt.engine.core.common.action.VmManagementParametersBase; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.ui.uicommonweb.IconUtils; import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; import org.ovirt.engine.ui.uicommonweb.models.vms.IconCache; import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; /** * It sets {@link VmManagementParametersBase#setVmLargeIcon(String)} if necessary i.e. if the icon was changed in * editor && new icon is not predefined one. */ public class VmIconUnitAndVmToParameterBuilder extends BaseSyncBuilder<Pair<UnitVmModel, VM>, VmManagementParametersBase> { @Override protected void build(Pair<UnitVmModel, VM> source, VmManagementParametersBase destination) { final UnitVmModel newModel = source.getFirst(); final VM oldVm = source.getSecond(); final String newIcon = newModel.getIcon().getEntity().getIcon(); final String originalIcon = IconCache.getInstance().getIcon(oldVm.getStaticData().getLargeIconId()); if (!newIcon.equals(originalIcon) && IconUtils.isCustom(newIcon)) { destination.setVmLargeIcon(newIcon); } } }