package org.ovirt.engine.ui.uicommonweb.models.disks;
import java.util.Objects;
import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
import org.ovirt.engine.core.common.businessentities.storage.Disk;
import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
import org.ovirt.engine.core.common.businessentities.storage.DiskStorageType;
import org.ovirt.engine.core.common.businessentities.storage.LunDisk;
import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
import org.ovirt.engine.ui.uicompat.external.StringUtils;
import com.google.gwt.i18n.client.DateTimeFormat;
public class DiskGeneralModel extends EntityModel<Disk> {
private String privateAlias;
public String getAlias() {
return privateAlias;
}
public void setAlias(String value) {
if (!Objects.equals(privateAlias, value)) {
privateAlias = value;
onPropertyChanged(new PropertyChangedEventArgs("Alias")); //$NON-NLS-1$
}
}
private String privateDescription;
public String getDescription() {
return privateDescription;
}
public void setDescription(String value) {
if (!Objects.equals(privateDescription, value)) {
privateDescription = value;
onPropertyChanged(new PropertyChangedEventArgs("Description")); //$NON-NLS-1$
}
}
private String privateStorageDomain;
public String getStorageDomain() {
return privateStorageDomain;
}
public void setStorageDomain(String value) {
if (!Objects.equals(privateStorageDomain, value)) {
privateStorageDomain = value;
onPropertyChanged(new PropertyChangedEventArgs("Storage Domain")); //$NON-NLS-1$
}
}
private String diskId;
public String getDiskId() {
return diskId;
}
public void setDiskId(String value) {
if (!Objects.equals(diskId, value)) {
diskId = value;
onPropertyChanged(new PropertyChangedEventArgs("ID")); //$NON-NLS-1$
}
}
private String privateLunId;
public String getLunId() {
return privateLunId;
}
public void setLunId(String value) {
if (!Objects.equals(privateLunId, value)) {
privateLunId = value;
onPropertyChanged(new PropertyChangedEventArgs("LUN ID")); //$NON-NLS-1$
}
}
private String privateAlignment;
public String getAlignment() {
return privateAlignment;
}
public void setAlignment(String value) {
if (!Objects.equals(privateAlignment, value)) {
privateAlignment = value;
onPropertyChanged(new PropertyChangedEventArgs("Alignment")); //$NON-NLS-1$
}
}
private boolean wipeAfterDelete;
public boolean getWipeAfterDelete() {
return wipeAfterDelete;
}
public void setWipeAfterDelete(boolean wipeAfterDelete) {
if (this.wipeAfterDelete != wipeAfterDelete) {
this.wipeAfterDelete = wipeAfterDelete;
onPropertyChanged(new PropertyChangedEventArgs("WipeAfterDelete")); //$NON-NLS-1$
}
}
private String privateDiskProfileName;
public String getDiskProfileName() {
return privateDiskProfileName;
}
public void setDiskProfileName(String value) {
if (!Objects.equals(privateDiskProfileName, value)) {
privateDiskProfileName = value;
onPropertyChanged(new PropertyChangedEventArgs("DiskProfile Name")); //$NON-NLS-1$
}
}
private String privateQuotaName;
public String getQuotaName() {
return privateQuotaName;
}
public void setQuotaName(String value) {
if (!Objects.equals(privateQuotaName, value)) {
privateQuotaName = value;
onPropertyChanged(new PropertyChangedEventArgs("Quota Name")); //$NON-NLS-1$
}
}
private boolean quotaAvailable;
public boolean isQuotaAvailable() {
return quotaAvailable;
}
public void setQuotaAvailable(boolean quotaAvailable) {
this.quotaAvailable = quotaAvailable;
}
private boolean image;
public boolean isImage() {
return image;
}
public void setImage(boolean image) {
this.image = image;
}
private boolean lun;
public boolean isLun() {
return lun;
}
public void setLun(boolean lun) {
this.lun = lun;
}
public DiskGeneralModel() {
setTitle(ConstantsManager.getInstance().getConstants().generalTitle());
setHelpTag(HelpTag.general);
setHashName("general"); //$NON-NLS-1$
}
@Override
protected void onEntityChanged() {
super.onEntityChanged();
if (super.getEntity() != null) {
updateProperties();
}
}
@Override
protected void entityPropertyChanged(Object sender, PropertyChangedEventArgs e) {
super.entityPropertyChanged(sender, e);
updateProperties();
}
private void updateProperties() {
Disk disk = getEntity();
setImage(disk.getDiskStorageType().isInternal());
setLun(disk.getDiskStorageType() == DiskStorageType.LUN);
setAlias(disk.getDiskAlias());
setDescription(disk.getDiskDescription());
setDiskId(disk.getId().toString());
if (disk.getLastAlignmentScan() != null) {
String lastScanDate = DateTimeFormat
.getFormat("yyyy-MM-dd, HH:mm").format(disk.getLastAlignmentScan()); //$NON-NLS-1$
setAlignment(ConstantsManager.getInstance()
.getMessages().diskAlignment(disk.getAlignment().toString(), lastScanDate));
} else {
setAlignment(disk.getAlignment().toString());
}
setWipeAfterDelete(disk.isWipeAfterDelete());
if (isImage()) {
DiskImage diskImage = (DiskImage) disk;
setDiskProfileName(StringUtils.join(diskImage.getDiskProfileNames(), ", ")); //$NON-NLS-1$
setQuotaName(StringUtils.join(diskImage.getQuotaNames(), ", ")); //$NON-NLS-1$
setQuotaAvailable(!diskImage.getQuotaEnforcementType().equals(QuotaEnforcementTypeEnum.DISABLED));
}
else if (isLun()) {
LunDisk lunDisk = (LunDisk) disk;
setLunId(lunDisk.getLun().getLUNId());
}
}
}