This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 0ac0b45759e26938926516e6205048bad6b30e16 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Jun 9 12:01:12 2015 +0200 Prise en compte des caractères d'échappement sur les colonnes d'import (refs #7199) --- .../protocol/ProtocolImportExportService.java | 33 +++++++++++++++++----- .../actions/LoadProtocolImportColumnsAction.java | 19 +++++++------ 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java index 4734919..ee1ea45 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java @@ -47,6 +47,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.csv.Export; import org.nuiton.csv.Import; import org.nuiton.csv.ImportRuntimeException; +import org.nuiton.csv.ext.CsvReaders; import org.nuiton.jaxx.application.ApplicationTechnicalException; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -57,6 +58,7 @@ import java.io.IOException; import java.io.Reader; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -142,12 +144,13 @@ public class ProtocolImportExportService extends AbstractTuttiService { } Map<String, CaracteristicMappingRow> rowsByCaracteristicId = new HashMap<>(Maps.uniqueIndex(caracteristicMapping, - new Function<CaracteristicMappingRow, String>() { - @Override - public String apply(CaracteristicMappingRow caracteristicMappingRow) { - return caracteristicMappingRow.getPmfmId(); - } - })); + new Function<CaracteristicMappingRow, String>() { + + @Override + public String apply(CaracteristicMappingRow caracteristicMappingRow) { + return caracteristicMappingRow.getPmfmId(); + } + })); mergeCaracteristicMappingRows(ids, rowsByCaracteristicId, CaracteristicType.GEAR_USE_FEATURE); mergeCaracteristicMappingRows(ids, rowsByCaracteristicId, CaracteristicType.VESSEL_USE_FEATURE); @@ -427,6 +430,22 @@ public class ProtocolImportExportService extends AbstractTuttiService { return result; } + public List<String> loadProtocolCaracteristicsImportColumns(File columnsFile) throws IOException { + + String[] headers = CsvReaders.getHeader(columnsFile, ';'); + List<String> result = new ArrayList<>(headers.length); + for (String header : headers) { + if ((header.startsWith("\"") && header.endsWith("\"")) || + (header.startsWith("'") && header.endsWith("'"))) { + header = header.substring(1, header.length() - 1); + } + result.add(header); + } + Collections.sort(result); + return result; + + } + public void exportProtocolSpecies(File file, List<SpeciesProtocol> protocol, Map<String, Caracteristic> caracteristicMap, @@ -499,6 +518,7 @@ public class ProtocolImportExportService extends AbstractTuttiService { return context.getConfig().getCsvSeparator(); } + protected List<String> mergeIds(Collection<String> fromProtocol, Collection<String> fromImport) { List<String> result = Lists.newArrayList(); @@ -519,7 +539,6 @@ public class ProtocolImportExportService extends AbstractTuttiService { return result; } - protected void mergeCaracteristicMappingRows(Multimap<CaracteristicType, String> ids, Map<String, CaracteristicMappingRow> rowsByCaracteristicId, CaracteristicType type) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/LoadProtocolImportColumnsAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/LoadProtocolImportColumnsAction.java index 5299fa0..e4c9b5e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/LoadProtocolImportColumnsAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/LoadProtocolImportColumnsAction.java @@ -24,17 +24,15 @@ package fr.ifremer.tutti.ui.swing.content.protocol.actions; * #L% */ -import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; +import fr.ifremer.tutti.service.protocol.ProtocolImportExportService; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel; +import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.csv.ext.CsvReaders; import java.io.File; -import java.util.Arrays; -import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -45,6 +43,7 @@ import static org.nuiton.i18n.I18n.t; */ public class LoadProtocolImportColumnsAction extends LongActionSupport<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> { + /** Logger. */ private static final Log log = LogFactory.getLog(LoadProtocolImportColumnsAction.class); protected File columnsFile; @@ -70,10 +69,14 @@ public class LoadProtocolImportColumnsAction extends LongActionSupport<EditProto @Override public void doAction() throws Exception { - String[] headers = CsvReaders.getHeader(columnsFile, ';'); - List<String> importColumns = Arrays.asList(headers); - Collections.sort(importColumns); - getModel().setImportColumns(importColumns); + + ProtocolImportExportService service = getContext().getTuttiProtocolImportExportService(); + List<String> columns = service.loadProtocolCaracteristicsImportColumns(columnsFile); + if (log.isInfoEnabled()) { + log.info("Detected columns: "+columns); + } + getModel().setImportColumns(columns); + } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.