package com.constellio.app.ui.framework.components.converters; import java.util.Locale; import com.constellio.app.modules.rm.wrappers.structures.Comment; import org.apache.commons.lang3.StringUtils; import org.joda.time.LocalDateTime; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.application.ConstellioUI; import com.constellio.app.ui.entities.UserVO; import com.constellio.app.ui.pages.base.SessionContext; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.services.factories.ModelLayerFactory; import com.constellio.model.services.users.UserServices; import com.vaadin.data.util.converter.Converter; public class CommentToStringConverter implements Converter<String, Comment> { @Override public Comment convertToModel(String value, Class<? extends Comment> targetType, Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException { Comment comment; if (StringUtils.isNotBlank(value)) { SessionContext sessionContext = ConstellioUI.getCurrentSessionContext(); String collection = sessionContext.getCurrentCollection(); UserVO userVO = sessionContext.getCurrentUser(); ConstellioFactories constellioFactories = ConstellioFactories.getInstance(); ModelLayerFactory modelLayerFactory = constellioFactories.getModelLayerFactory(); UserServices userServices = modelLayerFactory.newUserServices(); User user = userServices.getUserInCollection(userVO.getUsername(), collection); comment = new Comment(); comment.setMessage(value); comment.setDateTime(new LocalDateTime()); comment.setUser(user); } else { comment = null; } return comment; } @Override public String convertToPresentation(Comment value, Class<? extends String> targetType, Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException { return value != null ? value.getMessage() : null; } @Override public Class<Comment> getModelType() { return Comment.class; } @Override public Class<String> getPresentationType() { return String.class; } }