Author: chatellier Date: 2010-11-08 14:28:19 +0000 (Mon, 08 Nov 2010) New Revision: 188 Log: Selection les errors des sous noued lorsqu'on check un groupe Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/GlobalValidationModel.java Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/GlobalValidationModel.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/GlobalValidationModel.java 2010-11-08 14:12:05 UTC (rev 187) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/GlobalValidationModel.java 2010-11-08 14:28:19 UTC (rev 188) @@ -54,7 +54,7 @@ protected List<GlobalValidationGroup> validationErrorsGroups; protected SortedMap<GlobalValidationGroup, List<ValidationError>> validationErrorsChilds; - protected Set<ValidationError> checkedValidationErrors; + protected Set<Object> checkedValidationErrors; public GlobalValidationModel() { super(1); @@ -89,7 +89,7 @@ validationErrorsGroups = new ArrayList<GlobalValidationGroup>(validationErrorsChilds.keySet()); Collections.sort(validationErrorsGroups); - checkedValidationErrors = new HashSet<ValidationError>(); + checkedValidationErrors = new HashSet<Object>(); } /* @@ -140,17 +140,15 @@ Object result = null; - if (node instanceof ValidationError) { - - switch (column) { - case 0: - result = node; - break; - default: - result = checkedValidationErrors.contains(node); - break; - } + switch (column) { + case 0: + result = node; + break; + default: + result = checkedValidationErrors.contains(node); + break; } + return result; } @@ -223,15 +221,21 @@ @Override public void setValueAt(Object value, Object node, int column) { - if (node instanceof ValidationError) { - Boolean booleanValue = (Boolean)value; - ValidationError validationError = (ValidationError)node; - if (booleanValue.booleanValue()) { - checkedValidationErrors.add(validationError); + Boolean booleanValue = (Boolean)value; + if (booleanValue.booleanValue()) { + checkedValidationErrors.add(node); + } + else { + checkedValidationErrors.remove(node); + } + + // recursive check of sub errors + if (node instanceof GlobalValidationGroup) { + int childCount = getChildCount(node); + for (int i = 0 ; i < childCount; ++i) { + Object child = getChild(node, i); + setValueAt(value, child, column); } - else { - checkedValidationErrors.remove(validationError); - } } } }