package org.ovirt.engine.ui.uicommonweb.models.storage; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.storage.StorageType; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.validation.AsciiNameValidation; import org.ovirt.engine.ui.uicommonweb.validation.IValidation; import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation; import org.ovirt.engine.ui.uicompat.ConstantsManager; @SuppressWarnings("unused") public class PosixStorageModel extends FileStorageModel { private UICommand updateCommand; @Override public UICommand getUpdateCommand() { return updateCommand; } private void setUpdateCommand(UICommand value) { updateCommand = value; } private StorageModel container; @Override public StorageModel getContainer() { return container; } @Override public void setContainer(StorageModel value) { container = value; } private StorageDomainType role = StorageDomainType.values()[0]; @Override public StorageDomainType getRole() { return role; } @Override public void setRole(StorageDomainType value) { role = value; } private EntityModel<String> vfsType; public EntityModel<String> getVfsType() { return vfsType; } private void setVfsType(EntityModel<String> value) { vfsType = value; } private EntityModel<String> mountOptions; public EntityModel<String> getMountOptions() { return mountOptions; } private void setMountOptions(EntityModel<String> value) { mountOptions = value; } public PosixStorageModel() { setUpdateCommand(new UICommand("Update", this)); //$NON-NLS-1$ setPath(new EntityModel<String>()); setVfsType(new EntityModel<String>()); getVfsType().setTitle(ConstantsManager.getInstance().getConstants().posixVfsTypeHint()); setMountOptions(new EntityModel<String>()); getMountOptions().setTitle(ConstantsManager.getInstance().getConstants().mountOptionsHint()); } @Override public boolean validate() { getPath().validateEntity( new IValidation[] { new NotEmptyValidation(), } ); getVfsType().validateEntity( new IValidation[] { new NotEmptyValidation(), new AsciiNameValidation() } ); return getPath().getIsValid() && getVfsType().getIsValid(); } @Override public StorageType getType() { return StorageType.POSIXFS; } public VdcActionType getAddStorageDomainVdcAction() { return VdcActionType.AddPosixFsStorageDomain; } public void setVfsChangeability(boolean isVfsChangeable) { getVfsType().setIsChangeable(isVfsChangeable); } protected void prepareConnectionForEditing(StorageServerConnections connection) { getMountOptions().setEntity(connection.getMountOptions()); getVfsType().setEntity(connection.getVfsType()); } @Override public void prepareForEdit(StorageDomain storage) { super.prepareForEdit(storage); boolean isEditable = isEditable(storage); setVfsChangeability(isEditable); getMountOptions().setIsChangeable(isEditable); } }