package org.ovirt.engine.ui.uicommonweb.models.quota;
import org.ovirt.engine.core.common.businessentities.QuotaCluster;
import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
import org.ovirt.engine.ui.uicommonweb.validation.IntegerValidation;
import org.ovirt.engine.ui.uicommonweb.validation.LongValidation;
import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
public class EditQuotaClusterModel extends EntityModel<QuotaCluster> {
EntityModel<Boolean> unlimitedMem;
EntityModel<Boolean> unlimitedCpu;
EntityModel<Boolean> specificMem;
EntityModel<Boolean> specificCpu;
EntityModel<Long> specificMemValue;
EntityModel<Integer> specificCpuValue;
public EntityModel<Boolean> getUnlimitedMem() {
return unlimitedMem;
}
public void setUnlimitedMem(EntityModel<Boolean> unlimitedMem) {
this.unlimitedMem = unlimitedMem;
}
public EntityModel<Boolean> getUnlimitedCpu() {
return unlimitedCpu;
}
public void setUnlimitedCpu(EntityModel<Boolean> unlimitedCpu) {
this.unlimitedCpu = unlimitedCpu;
}
public EntityModel<Boolean> getSpecificMem() {
return specificMem;
}
public void setSpecificMem(EntityModel<Boolean> specificMem) {
this.specificMem = specificMem;
}
public EntityModel<Boolean> getSpecificCpu() {
return specificCpu;
}
public void setSpecificCpu(EntityModel<Boolean> specificCpu) {
this.specificCpu = specificCpu;
}
public EntityModel<Long> getSpecificMemValue() {
return specificMemValue;
}
public void setSpecificMemValue(EntityModel<Long> specificMemValue) {
this.specificMemValue = specificMemValue;
}
public EntityModel<Integer> getSpecificCpuValue() {
return specificCpuValue;
}
public void setSpecificCpuValue(EntityModel<Integer> specificCpuValue) {
this.specificCpuValue = specificCpuValue;
}
public EditQuotaClusterModel() {
setSpecificMem(new EntityModel<Boolean>());
getSpecificMem().setEntity(true);
setUnlimitedMem(new EntityModel<Boolean>());
getUnlimitedMem().setEntity(false);
setSpecificMemValue(new EntityModel<Long>());
getUnlimitedMem().getEntityChangedEvent().addListener((ev, sender, args) -> {
if (getUnlimitedMem().getEntity()) {
getSpecificMem().setEntity(false);
getSpecificMemValue().setIsChangeable(false);
}
});
getSpecificMem().getEntityChangedEvent().addListener((ev, sender, args) -> {
if (getSpecificMem().getEntity()) {
getUnlimitedMem().setEntity(false);
getSpecificMemValue().setIsChangeable(true);
}
});
setSpecificCpu(new EntityModel<Boolean>());
setUnlimitedCpu(new EntityModel<Boolean>());
setSpecificCpuValue(new EntityModel<Integer>());
getUnlimitedCpu().getEntityChangedEvent().addListener((ev, sender, args) -> {
if (getUnlimitedCpu().getEntity()) {
getSpecificCpu().setEntity(false);
getSpecificCpuValue().setIsChangeable(false);
}
});
getSpecificCpu().getEntityChangedEvent().addListener((ev, sender, args) -> {
if (getSpecificCpu().getEntity()) {
getUnlimitedCpu().setEntity(false);
getSpecificCpuValue().setIsChangeable(true);
}
});
}
public boolean validate() {
IntegerValidation intValidation = new IntegerValidation();
intValidation.setMinimum(1);
LongValidation longValidation = new LongValidation();
longValidation.setMinimum(1);
getSpecificMemValue().setIsValid(true);
getSpecificCpuValue().setIsValid(true);
if (getSpecificMem().getEntity()) {
getSpecificMemValue().validateEntity(new IValidation[] { longValidation, new NotEmptyValidation() });
}
if (getSpecificCpu().getEntity()) {
getSpecificCpuValue().validateEntity(new IValidation[] { intValidation, new NotEmptyValidation() });
}
return getSpecificMemValue().getIsValid() && getSpecificCpuValue().getIsValid();
}
}