Author: tchemit Date: 2012-01-26 17:33:38 +0100 (Thu, 26 Jan 2012) New Revision: 297 Url: http://forge.codelutin.com/repositories/revision/echobase/297 Log: remove usage of DTO (for json, just use a nicely Binder) + do not expose entity impl in ui Removed: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java Modified: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties trunk/echobase-entities/src/main/xmi/echobase.zargo trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserImpl.java 2012-01-26 16:33:38 UTC (rev 297) @@ -1,50 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.entities; - -/** - * Default implementation of the {@link EchoBaseUser}. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class EchoBaseUserImpl extends EchoBaseUserAbstract { - - private static final long serialVersionUID = 1L; - - @Override - public EchoBaseUserDTO toDTO() { - EchoBaseUserDTO dto = new EchoBaseUserDTOImpl(); - dto.setAdmin(isAdmin()); - dto.setEmail(getEmail()); - dto.setId(getTopiaId()); - return dto; - } - - @Override - public void fromDTO(EchoBaseUserDTO dto) { - setAdmin(dto.isAdmin()); - setEmail(dto.getEmail()); - } -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntityModificationLogImpl.java 2012-01-26 16:33:38 UTC (rev 297) @@ -1,46 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.entities; - -/** - * Default implementation of {@link EntityModificationLog}. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class EntityModificationLogImpl extends EntityModificationLogAbstract { - - private static final long serialVersionUID = 1L; - - @Override - public EntityModificationLogDTO toDTO() { - EntityModificationLogDTO result = new EntityModificationLogDTOImpl(); - result.setEntityType(getEntityType()); - result.setEntityId(getEntityId()); - result.setModificationDate(getModificationDate()); - result.setModificationText(getModificationText()); - result.setModificationUser(getModificationUser()); - return result; - } -} Deleted: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/ExportQueryImpl.java 2012-01-26 16:33:38 UTC (rev 297) @@ -1,47 +0,0 @@ -/* - * #%L - * EchoBase :: Entities - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Ifremer, Codelutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.echobase.entities; - -/** - * Default implementation of the {@link ExportQuery}. - * - * @author tchemit <chemit@codelutin.com> - * @since 0.1 - */ -public class ExportQueryImpl extends ExportQueryAbstract { - - private static final long serialVersionUID = 1L; - - @Override - public ExportQueryDTO toDTO() { - ExportQueryDTO dto = new ExportQueryDTOImpl(); - dto.setDescription(getDescription()); - dto.setId(getTopiaId()); - dto.setLastModifiedDate(getLastModifiedDate()); - dto.setLastModifiedUser(getLastModifiedUser()); - dto.setName(getName()); - dto.setSqlQuery(getSqlQuery()); - return dto; - } -} Modified: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties =================================================================== --- trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-01-26 16:33:38 UTC (rev 297) @@ -67,7 +67,6 @@ echobase.common.digitThreshold= echobase.common.distributionStatement=distributionStatement echobase.common.echoBaseUser=Utilisateur -echobase.common.echoBaseUserDTO= echobase.common.echosounderSoundSpeed= echobase.common.echotype= echobase.common.echotypeCategory= @@ -80,10 +79,8 @@ echobase.common.enginePower= echobase.common.entityId=Identifiant de l'entité echobase.common.entityModificationLog=Journal des modifications -echobase.common.entityModificationLogDTO= echobase.common.entityType=Type de l'entité echobase.common.exportQuery=Requête d'export -echobase.common.exportQueryDTO= echobase.common.fillValue= echobase.common.fishingGear= echobase.common.flagMeanings= @@ -272,6 +269,3 @@ echobase.common.vesselType= echobase.common.voyage=Campagne echobase.config.data.directory.description=Chemin de l'application -echobase.error.import.acousticDensityUnit.required=acousticDensityUnit non renseigné -echobase.error.import.digitThreshold.required=digitThreshold non renseigné -echobase.error.import.processingDescription.required=processingDescription non renseigné Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo =================================================================== (Binary files differ) Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportQueryService.java 2012-01-26 16:33:38 UTC (rev 297) @@ -60,7 +60,7 @@ public ExportQuery getExportQuery(String topiaId) { ExportQuery exportQuery = getEntityById(ExportQuery.class, topiaId); - ExportQuery entityToSave = new ExportQueryImpl(); + ExportQuery entityToSave = newExportQuery(); entityToSave.setTopiaId(exportQuery.getTopiaId()); entityToSave.setName(exportQuery.getName()); entityToSave.setDescription(exportQuery.getDescription()); @@ -167,6 +167,10 @@ } } + public ExportQuery newExportQuery() { + return new ExportQueryImpl(); + } + private static class GenericSQLQuery extends TopiaSQLQuery<Map<String, Object>> { protected String[] columnNames; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-01-26 16:33:38 UTC (rev 297) @@ -27,8 +27,7 @@ import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserDAO; -import fr.ifremer.echobase.entities.EchoBaseUserDTO; -import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl; +import fr.ifremer.echobase.entities.EchoBaseUserImpl; import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaQuery; @@ -89,36 +88,37 @@ } } - public void createOrUpdate(EchoBaseUserDTO userDTO) { + public void createOrUpdate(EchoBaseUser user) { try { EchoBaseUserDAO dao = getDAO(); - EchoBaseUser user; + EchoBaseUser userToCreateOrUpdate; // No id, creating new one entity - String id = userDTO.getId(); + String id = user.getTopiaId(); if (StringUtils.isEmpty(id)) { - user = dao.create(); + userToCreateOrUpdate = dao.create(); } else { - user = dao.findByTopiaId(id); + userToCreateOrUpdate = dao.findByTopiaId(id); } - user.fromDTO(userDTO); + userToCreateOrUpdate.setAdmin(user.isAdmin()); + userToCreateOrUpdate.setEmail(user.getEmail()); - String password = userDTO.getPassword(); + String password = user.getPassword(); if (StringUtils.isNotEmpty(password)) { - user.setPassword(encodePassword(password)); + userToCreateOrUpdate.setPassword(encodePassword(password)); } - dao.update(user); + dao.update(userToCreateOrUpdate); commitTransaction("Could not create or update user"); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); } } - public void delete(EchoBaseUserDTO userDTO) { + public void delete(EchoBaseUser user) { try { EchoBaseUserDAO dao = getDAO(); - EchoBaseUser user = dao.findByTopiaId(userDTO.getId()); - dao.delete(user); + EchoBaseUser userToDelete = dao.findByTopiaId(user.getTopiaId()); + dao.delete(userToDelete); commitTransaction("Could not delete user"); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -132,18 +132,19 @@ } public void createDefaultUsers() { - EchoBaseUserDTO userDTO; - userDTO = new EchoBaseUserDTOImpl(); - userDTO.setEmail(DEFAULT_ADMIN_EMAIL); - userDTO.setPassword(DEFAULT_ADMIN_PASSWORD); - userDTO.setAdmin(true); - createOrUpdate(userDTO); + EchoBaseUser user; - userDTO = new EchoBaseUserDTOImpl(); - userDTO.setEmail(DEFAULT_USER_EMAIL); - userDTO.setPassword(DEFAULT_USER_PASSWORD); - userDTO.setAdmin(false); - createOrUpdate(userDTO); + user = new EchoBaseUserImpl(); + user.setEmail(DEFAULT_ADMIN_EMAIL); + user.setPassword(DEFAULT_ADMIN_PASSWORD); + user.setAdmin(true); + createOrUpdate(user); + + user = new EchoBaseUserImpl(); + user.setEmail(DEFAULT_USER_EMAIL); + user.setPassword(DEFAULT_USER_PASSWORD); + user.setAdmin(false); + createOrUpdate(user); } public static String encodePassword(String password) { @@ -154,4 +155,8 @@ protected EchoBaseUserDAO getDAO() throws TopiaException { return (EchoBaseUserDAO) getDAO(EchoBaseUser.class); } + + public EchoBaseUser newUser() { + return new EchoBaseUserImpl(); + } } Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2012-01-26 16:33:38 UTC (rev 297) @@ -23,6 +23,7 @@ */ package fr.ifremer.echobase.tools; +import com.google.common.base.Charsets; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; @@ -37,15 +38,11 @@ import org.nuiton.topia.TopiaException; import org.nuiton.util.FileUtil; import org.nuiton.util.csv.Export; -import org.nuiton.util.csv.ExportModel; -import org.nuiton.util.csv.ExportableColumn; -import org.nuiton.util.csv.ModelBuilder; import org.nuiton.util.csv.ValueFormatter; import java.io.File; import java.io.FileFilter; import java.io.IOException; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; @@ -116,7 +113,7 @@ if (log.isInfoEnabled()) { log.info("Generate to " + destination.getName()); } - exporter.exportToFile(destination); + exporter.write(destination, Charsets.UTF_8); } } @@ -163,13 +160,10 @@ EchoBaseIOUtil.compressZipFile(zipFile, outputDir, false); } - private static class MSAccessToCsvExportModel implements ExportModel<Map<String, Object>> { + private static class MSAccessToCsvExportModel extends CsvModelUtil.AbstractExportModel<Map<String, Object>> { - protected ModelBuilder<Map<String, Object>> modelBuilder = - new ModelBuilder<Map<String, Object>>(); - public MSAccessToCsvExportModel(Table table) { - + super(';'); List<Column> columns = table.getColumns(); Set<String> skipColumns = Sets.newHashSet( @@ -183,23 +177,12 @@ if (skipColumns.contains(name)) { continue; } - modelBuilder.newColumnForExport( + newColumnForExport( name, CsvModelUtil.newMapProperty(name), (ValueFormatter<Object>) CsvModelUtil.TO_STRING_FORMATTER ); } } - - @Override - public char getSeparator() { - return ';'; - } - - @Override - public Collection<ExportableColumn<Map<String, Object>, Object>> getColumnsForExport() { - Collection columnsForExport = modelBuilder.getColumnsForExport(); - return columnsForExport; - } } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportQuery/ManageExportQuery.java 2012-01-26 16:33:38 UTC (rev 297) @@ -25,7 +25,6 @@ import com.opensymphony.xwork2.Preparable; import fr.ifremer.echobase.entities.ExportQuery; -import fr.ifremer.echobase.entities.ExportQueryImpl; import fr.ifremer.echobase.services.ExportQueryService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; @@ -49,9 +48,18 @@ /** Selected query loaded from database if his id is not empty. */ protected ExportQuery query; + protected transient ExportQueryService service; + + public ExportQueryService getService() { + if (service == null) { + service = newService(ExportQueryService.class); + } + return service; + } + public ExportQuery getQuery() { if (query == null) { - query = new ExportQueryImpl(); + query = getService().newExportQuery(); } return query; } @@ -67,10 +75,9 @@ public String saveQuery() throws Exception { //TODO : do validation - ExportQueryService service = newService(ExportQueryService.class); - query = service.createOrUpdate(getQuery(), - getEchoBaseSession().getEchoBaseUser() + query = getService().createOrUpdate(getQuery(), + getEchoBaseSession().getEchoBaseUser() ); return SUCCESS; } @@ -78,11 +85,10 @@ public String cloneQuery() throws Exception { //TODO : do validation - ExportQueryService service = newService(ExportQueryService.class); getQuery().setTopiaId(null); - query = service.createOrUpdate(getQuery(), - getEchoBaseSession().getEchoBaseUser() + query = getService().createOrUpdate(getQuery(), + getEchoBaseSession().getEchoBaseUser() ); return SUCCESS; } @@ -90,7 +96,6 @@ public String deleteQuery() throws Exception { //TODO : do validation - ExportQueryService service = newService(ExportQueryService.class); service.delete(getQuery().getTopiaId()); query = null; return SUCCESS; @@ -98,10 +103,9 @@ @Override public void prepare() throws Exception { - ExportQueryService service = newService(ExportQueryService.class); Collection<ExportQuery> sqlQueries = - service.getEntities(ExportQuery.class); + getService().getEntities(ExportQuery.class); queries = sortAndDecorate(sqlQueries, null); if (sqlQueries.isEmpty()) { @@ -118,7 +122,7 @@ } else { // load query from database - query = service.getExportQuery(selectedQueryId); + query = getService().getExportQuery(selectedQueryId); } } } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Create.java 2012-01-26 16:33:38 UTC (rev 297) @@ -24,8 +24,6 @@ package fr.ifremer.echobase.ui.actions.user; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.EchoBaseUserDTO; -import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl; import fr.ifremer.echobase.services.UserService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; @@ -46,7 +44,7 @@ protected transient UserService userService; - protected EchoBaseUserDTO user; + protected EchoBaseUser user; public UserService getUserService() { if (userService == null) { @@ -56,7 +54,7 @@ } public String execute() throws Exception { - EchoBaseUserDTO userToCreate = getUser(); + EchoBaseUser userToCreate = getUser(); String userEmail = userToCreate.getEmail(); if (log.isInfoEnabled()) { @@ -74,7 +72,7 @@ @Override public void validate() { - EchoBaseUserDTO userToValidate = getUser(); + EchoBaseUser userToValidate = getUser(); String userEmail = userToValidate.getEmail(); // login + password required @@ -111,9 +109,9 @@ } - public EchoBaseUserDTO getUser() { + public EchoBaseUser getUser() { if (user == null) { - user = new EchoBaseUserDTOImpl(); + user = getUserService().newUser(); } return user; } Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Delete.java 2012-01-26 16:33:38 UTC (rev 297) @@ -25,8 +25,6 @@ import com.opensymphony.xwork2.Preparable; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.EchoBaseUserDTO; -import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl; import fr.ifremer.echobase.services.UserService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; @@ -47,7 +45,7 @@ protected transient UserService userService; - protected EchoBaseUserDTO user; + protected EchoBaseUser user; public UserService getUserService() { if (userService == null) { @@ -58,7 +56,7 @@ public String execute() throws Exception { - EchoBaseUserDTO userToDelete = getUser(); + EchoBaseUser userToDelete = getUser(); String userEmail = userToDelete.getEmail(); if (log.isInfoEnabled()) { @@ -73,20 +71,20 @@ return SUCCESS; } - public EchoBaseUserDTO getUser() { + public EchoBaseUser getUser() { if (user == null) { - user = new EchoBaseUserDTOImpl(); + user = getUserService().newUser(); } return user; } @Override public void prepare() throws Exception { - String userId = getUser().getId(); + String userId = getUser().getTopiaId(); if (!StringUtils.isEmpty(userId)) { // load user - user = getUserService().getEntityById(EchoBaseUser.class, userId).toDTO(); + user = getUserService().getEntityById(EchoBaseUser.class, userId); if (log.isInfoEnabled()) { log.info("Selected user " + user.getEmail()); Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/GetUsers.java 2012-01-26 16:33:38 UTC (rev 297) @@ -23,13 +23,14 @@ */ package fr.ifremer.echobase.ui.actions.user; -import com.google.common.collect.Lists; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.EchoBaseUserDTO; import fr.ifremer.echobase.services.UserService; import fr.ifremer.echobase.ui.actions.AbstractJSONPaginedAction; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; import java.util.List; +import java.util.Map; /** * Obtains all users of the echobase internal database. @@ -41,9 +42,9 @@ private static final long serialVersionUID = 1L; - protected List<EchoBaseUserDTO> users; + protected transient Map<String, Object>[] users; - public List<EchoBaseUserDTO> getUsers() { + public Map<String, Object>[] getUsers() { return users; } @@ -73,9 +74,15 @@ List<EchoBaseUser> allUsers = newService(UserService.class).getUsers(pager); - users = Lists.newArrayList(); + users = new Map[allUsers.size()]; + Binder<EchoBaseUser, EchoBaseUser> binder = + BinderFactory.newBinder(EchoBaseUser.class); + + int index = 0; for (EchoBaseUser user : allUsers) { - users.add(user.toDTO()); + Map<String, Object> data = binder.obtainProperties(user); + data.put("id", user.getTopiaId()); + users[index++] = data; } return SUCCESS; Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/user/Update.java 2012-01-26 16:33:38 UTC (rev 297) @@ -25,8 +25,6 @@ import com.opensymphony.xwork2.Preparable; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.EchoBaseUserDTO; -import fr.ifremer.echobase.entities.EchoBaseUserDTOImpl; import fr.ifremer.echobase.services.UserService; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; import org.apache.commons.lang3.StringUtils; @@ -47,7 +45,7 @@ protected transient UserService userService; - protected EchoBaseUserDTO user; + protected EchoBaseUser user; public UserService getUserService() { if (userService == null) { @@ -58,7 +56,7 @@ @Override public String execute() throws Exception { - EchoBaseUserDTO userToUpdate = getUser(); + EchoBaseUser userToUpdate = getUser(); String userEmail = userToUpdate.getEmail(); if (log.isInfoEnabled()) { @@ -75,11 +73,11 @@ @Override public void prepare() throws Exception { - String userId = getUser().getId(); + String userId = getUser().getTopiaId(); if (!StringUtils.isEmpty(userId)) { // load user - user = getUserService().getEntityById(EchoBaseUser.class, userId).toDTO(); + user = getUserService().getEntityById(EchoBaseUser.class, userId); if (log.isInfoEnabled()) { log.info("Selected user " + user.getEmail()); @@ -87,9 +85,9 @@ } } - public EchoBaseUserDTO getUser() { + public EchoBaseUser getUser() { if (user == null) { - user = new EchoBaseUserDTOImpl(); + user = getUserService().newUser(); } return user; } Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-26 16:33:38 UTC (rev 297) @@ -61,6 +61,8 @@ echobase.error.export.name.requiredstring=Le nom de l'export est obligatoire echobase.error.export.sqlQuery.requiredstring=La requête de l'export est obligatoire echobase.error.export.sqlQuery.wrongformat=La requêtes n'est pas valide +echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné +echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné echobase.error.import.areaOfOperation.required=La sélection d'une zone d'opération est obligatoire echobase.error.import.associationFile.required=La sélection d'un fichier Association est obligatoire echobase.error.import.datum.required=Datum de la campagne non rengeigné @@ -70,35 +72,33 @@ echobase.error.import.individualDataFile.required=La sélection d'un fichier individualData est obligatoire echobase.error.import.lengthAgeKeyFile.required=La sélection d'un fichier lengthAgeKey est obligatoire echobase.error.import.lengthWeightKeyFile.required=La sélection d'un fichier lengthWeightKey est obligatoire +echobase.error.import.loggedDataDatatype.required=loggedDataDatatype non renseigné +echobase.error.import.loggedDataFormat.required=loggedDataFormat non renseigné echobase.error.import.mission.required=La sélection d'une mission est obligatoire echobase.error.import.missionAbstract.required=Le résumé de la mission est obligatoire echobase.error.import.missionName.required=Le nom de la mission est obligatoire echobase.error.import.moviesFile.required=La sélection d'un fichier Movies est obligatoire echobase.error.import.notes.required=Note des DataProcessing non renseigné -echobase.error.import.regionsFile.required=La sélection d'un fichier Region est obligatoire +echobase.error.import.pingDutyCycle.required=pingDutyCycle non renseigné echobase.error.import.processingDescription.required=processingDescription non renseigné echobase.error.import.processingTemplate.required=processingTemplate non renseigné +echobase.error.import.regionsFile.required=La sélection d'un fichier Region est obligatoire +echobase.error.import.soundSpeedCalculationsER60.required=soundSpeedCalculationsER60 non renseigné +echobase.error.import.soundSpeedCalculationsME70.required=soundSpeedCalculationsME70 non renseigné echobase.error.import.sounderConstant.required=sounderConstant non renseigné -echobase.error.import.soundSpeedCalculationsME70.required=soundSpeedCalculationsME70 non renseigné -echobase.error.import.soundSpeedCalculationsER60.required=soundSpeedCalculationsER60 non renseigné -echobase.error.import.pingDutyCycle.required=pingDutyCycle non renseigné -echobase.error.import.loggedDataDatatype.required=loggedDataDatatype non renseigné -echobase.error.import.loggedDataFormat.required=loggedDataFormat non renseigné -echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné -echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné -echobase.error.import.transceiverAcquisitionAbsorptionDescription.required=transceiverAcquisitionAbsorptionDescription non renseigné echobase.error.import.tblMensurationClasseFile.required=La sélection d'un fichier tblMensurationClasse est obligatoire echobase.error.import.tblMensurationFile.required=La sélection d'un fichier tblMensuration est obligatoire echobase.error.import.tlbeStationFile.required=La sélection d'un fichier tlbeStation est obligatoire +echobase.error.import.transceiverAcquisitionAbsorptionDescription.required=transceiverAcquisitionAbsorptionDescription non renseigné echobase.error.import.transectBinUnitsPingAxis.required=BinUnitsPingAxis des transtects non rengeigné echobase.error.import.transectFile.required=La sélection d'un fichier Transect est obligatoire echobase.error.import.transectGeospatialVerticalPositive.required=GeospatialVerticalPositive des transtects non rengeigné echobase.error.import.transectLicence.required=Licence des transtects non rengeigné +echobase.error.import.transit.required=La sélection d'un transit est obligatoire echobase.error.import.transitFile.required=La sélection d'un fichier Transit est obligatoire echobase.error.import.transitRelatedActivity.required=RelatedActivity des transits non rengeigné echobase.error.import.vessel.required=La sélection d'un navire est obligatoire echobase.error.import.voyage.required=La sélection d'une campagne est obligatoire -echobase.error.import.transit.required=La sélection d'un transit est obligatoire echobase.error.import.voyageDescription.required=Description de la campagne non rengeigné echobase.error.import.voyageFile.required=La sélection d'un fichier Voyage est obligatoire echobase.error.import.xtblTriFile.required=La sélection d'un fichier xtblTri est obligatoire Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Delete.jsp 2012-01-26 16:33:38 UTC (rev 297) @@ -32,7 +32,7 @@ <legend> <s:text name="echobase.common.user"/> </legend> - <s:hidden name="user.id" label=""/> + <s:hidden name="user.topiaId" label=""/> <s:textfield key="user.email" label="%{getText('echobase.common.email')}" size="40" disabled="true"/> <s:checkbox value="%{user.admin}" key="echobase.common.admin" Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/Update.jsp 2012-01-26 16:33:38 UTC (rev 297) @@ -32,7 +32,7 @@ <legend> <s:text name="echobase.common.user"/> </legend> - <s:hidden key="user.id" label=""/> + <s:hidden key="user.topiaId" label=""/> <s:textfield key="user.email" label="%{getText('echobase.common.email')}" size="40" readonly="true"/> <s:password name="user.password" value="" Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2012-01-26 15:35:35 UTC (rev 296) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/user/userList.jsp 2012-01-26 16:33:38 UTC (rev 297) @@ -32,7 +32,7 @@ <s:url id="addUrl" action="user-Create" namespace="/user" escapeAmp="false" method="input"/> -<s:url id="editUrl" action="user-Update" namespace="/user" escapeAmp="false" method="input"/> +<s:url id="updateUrl" action="user-Update" namespace="/user" escapeAmp="false" method="input"/> <s:url id="delUrl" action="user-Delete" namespace="/user" escapeAmp="false" method="input"/> @@ -42,8 +42,8 @@ $.addRowSelectTopic('users'); $.addClearSelectTopic('users'); $.addAddRowTopic('users', '${addUrl}'); - $.addSingleRowTopic('users', 'Update', '${editUrl}', 'user.id'); - $.addSingleRowTopic('users', 'Delete', '${delUrl}', 'user.id'); + $.addSingleRowTopic('users', 'Update', '${updateUrl}', 'user.topiaId'); + $.addSingleRowTopic('users', 'Delete', '${delUrl}', 'user.topiaId'); }); </script>