Author: echatellier Date: 2011-11-25 17:49:31 +0100 (Fri, 25 Nov 2011) New Revision: 905 Url: http://forge.codelutin.com/repositories/revision/coser/905 Log: Improve duplicated line grouping algorithm (10 times faster now) Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/control/ControlError.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/control/ControlError.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/control/ControlError.java 2011-11-25 13:47:23 UTC (rev 904) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/control/ControlError.java 2011-11-25 16:49:31 UTC (rev 905) @@ -29,7 +29,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Set; import fr.ifremer.coser.CoserConstants.Category; import fr.ifremer.coser.CoserConstants.ValidationLevel; @@ -73,7 +72,7 @@ protected List<String> lineNumbers; public ControlError() { - // set TreeSet, must be sorted for swing ui to change order in model + // set ArrayList, must be sorted for swing ui to change order in model lineNumbers = new ArrayList<String>(); } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2011-11-25 13:47:23 UTC (rev 904) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2011-11-25 16:49:31 UTC (rev 905) @@ -375,8 +375,14 @@ validationErrors.add(error); uniqueDataErrors.put(uniqueDataKey, error); } - // add current line to error + // add current line to error (after : important) error.addLineNumber(lineNumber); + + // small hack to slow down control by initializing cache + // because ui will take a lot of time to do it + // and user will wait to must time + // real dummy call, but do not remove it + dataToCheck.indexOf(lineNumber); // init cache } else { uniqueDataKeys.put(uniqueDataKey, lineNumber);
participants (1)
-
echatellier@users.forge.codelutin.com