package org.ovirt.engine.ui.uicommonweb.models.quota;
import org.ovirt.engine.core.common.businessentities.QuotaStorage;
import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
import org.ovirt.engine.ui.uicommonweb.validation.LongValidation;
import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
public class EditQuotaStorageModel extends EntityModel<QuotaStorage> {
EntityModel<Boolean> unlimitedStorage;
EntityModel<Boolean> specificStorage;
EntityModel<Long> specificStorageValue;
public EntityModel<Boolean> getUnlimitedStorage() {
return unlimitedStorage;
}
public void setUnlimitedStorage(EntityModel<Boolean> unlimitedStorage) {
this.unlimitedStorage = unlimitedStorage;
}
public EntityModel<Boolean> getSpecificStorage() {
return specificStorage;
}
public void setSpecificStorage(EntityModel<Boolean> specificStorage) {
this.specificStorage = specificStorage;
}
public EntityModel<Long> getSpecificStorageValue() {
return specificStorageValue;
}
public void setSpecificStorageValue(EntityModel<Long> specificStorageValue) {
this.specificStorageValue = specificStorageValue;
}
public EditQuotaStorageModel() {
setSpecificStorage(new EntityModel<Boolean>());
getSpecificStorage().setEntity(true);
setUnlimitedStorage(new EntityModel<Boolean>());
getUnlimitedStorage().setEntity(false);
setSpecificStorageValue(new EntityModel<Long>());
getUnlimitedStorage().getEntityChangedEvent().addListener((ev, sender, args) -> {
if (getUnlimitedStorage().getEntity()) {
getSpecificStorage().setEntity(false);
getSpecificStorageValue().setIsChangeable(false);
}
});
getSpecificStorage().getEntityChangedEvent().addListener((ev, sender, args) -> {
if (getSpecificStorage().getEntity()) {
getUnlimitedStorage().setEntity(false);
getSpecificStorageValue().setIsChangeable(true);
}
});
}
public boolean validate() {
LongValidation longValidation = new LongValidation(1, 65535);
getSpecificStorageValue().setIsValid(true);
if (getSpecificStorage().getEntity()) {
getSpecificStorageValue().validateEntity(new IValidation[] { longValidation, new NotEmptyValidation() });
}
return getSpecificStorageValue().getIsValid();
}
}