r122 - in trunk: echobase-services/src/main/java/fr/ifremer/echobase/services echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor echobase-ui/src/main/resources/config
Author: tchemit Date: 2011-11-25 13:09:41 +0100 (Fri, 25 Nov 2011) New Revision: 122 Url: http://forge.codelutin.com/repositories/revision/echobase/122 Log: -fix dbeditor save operation -fix action mapping Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-25 11:51:24 UTC (rev 121) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-25 12:09:41 UTC (rev 122) @@ -230,8 +230,7 @@ "Modification utilisateur", entity, user, - false, - null + false ); commitTransaction("Could not commit transaction"); } @@ -260,13 +259,20 @@ try { while (iterator.hasNext()) { TopiaEntity entity = iterator.next(); - saveEntity(tableMeta, - messagePrefix, - entity, - user, - createIfNotFound, - result + boolean create = saveEntity(tableMeta, + messagePrefix, + entity, + user, + createIfNotFound ); + + if (create) { + + result.incrementsNumberCreated(); + } else { + + result.incrementsNumberUpdated(); + } } } finally { @@ -303,12 +309,11 @@ } } - protected void saveEntity(TableMeta tableMeta, - String messagePrefix, - TopiaEntity entity, - EchoBaseUser user, - boolean createIfNotFound, - CsvImportResult result) { + protected boolean saveEntity(TableMeta tableMeta, + String messagePrefix, + TopiaEntity entity, + EchoBaseUser user, + boolean createIfNotFound) { String[] columnNames = tableMeta.getColumnNamesAsArray(); BeanMonitor monitor = null; @@ -322,10 +327,11 @@ // Find or create entity if no id boolean create = StringUtils.isEmpty(id); + if (create) { entityToSave = dao.create(); - result.incrementsNumberCreated(); + } else { entityToSave = dao.findByTopiaId(id); @@ -337,14 +343,16 @@ throw new EchoBaseTechnicalException("Could not found entity with id " + id); } else { entityToSave = dao.create(TopiaEntity.TOPIA_ID, id); - + create = true; } } + } + + if (!create) { + // monitor the existing bean monitor = new BeanMonitor(columnNames); monitor.setBean(entityToSave); - - result.incrementsNumberUpdated(); } tableMeta.copy(entity, entityToSave); @@ -359,6 +367,7 @@ user, propertyDiffs ); + return create; } catch (Exception eee) { throw new EchoBaseTechnicalException("Could not update entity", eee); } finally { Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2011-11-25 11:51:24 UTC (rev 121) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/SaveEntity.java 2011-11-25 12:09:41 UTC (rev 122) @@ -55,6 +55,10 @@ protected Map<String, String[]> params; + public EchoBaseEntityEnum getEntityType() { + return entityType; + } + public void setEntityType(EchoBaseEntityEnum entityType) { this.entityType = entityType; } Modified: trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-25 11:51:24 UTC (rev 121) +++ trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2011-11-25 12:09:41 UTC (rev 122) @@ -36,7 +36,7 @@ class="org.apache.struts2.dispatcher.ServletActionRedirectResult"> <param name="namespace">/dbeditor</param> <param name="actionName">dbeditor</param> - <param name="tableName">${tableName}</param> + <param name="entityType">${entityType}</param> <param name="supressEmptyParameters">true</param> </result-type> </result-types>
participants (1)
-
tchemit@users.forge.codelutin.com