package com.constellio.app.modules.rm.ui.components;
import com.constellio.app.entities.schemasDisplay.enums.MetadataInputType;
import com.constellio.app.modules.rm.ui.components.folder.fields.LookupFolderField;
import com.constellio.app.modules.rm.wrappers.Folder;
import com.constellio.app.ui.entities.MetadataVO;
import com.constellio.app.ui.framework.components.MetadataFieldFactory;
import com.vaadin.ui.Field;
public class RMMetadataFieldFactory extends MetadataFieldFactory {
@Override
public Field<?> build(MetadataVO metadata) {
Field<?> field;
String schemaTypeCode = metadata.getSchemaTypeCode();
MetadataInputType inputType = metadata.getMetadataInputType();
if (inputType == MetadataInputType.LOOKUP && schemaTypeCode.equals(Folder.SCHEMA_TYPE) && !metadata.isMultivalue()) {
field = new LookupFolderField();
} else {
field = super.build(metadata);
}
if (field instanceof LookupFolderField) {
postBuild(field, metadata);
}
return field;
}
}