[Bug #1021] Fix bug
Criteria tree built considering the criteria's hierarchy. FEA: ItEr74S04BugFixing
This commit is contained in:
parent
58b0baf18b
commit
98562472bc
1 changed files with 26 additions and 12 deletions
|
|
@ -24,6 +24,7 @@ package org.navalplanner.web.resources.search;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
|
@ -31,7 +32,6 @@ import java.util.Map;
|
|||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.navalplanner.business.resources.daos.IResourcesSearcher.IResourcesQuery;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
import org.navalplanner.business.resources.entities.CriterionType;
|
||||
|
|
@ -424,24 +424,37 @@ public class NewAllocationSelectorController extends
|
|||
*/
|
||||
private CriterionTreeNode asNode(CriterionType criterionType,
|
||||
Set<Criterion> criterions) {
|
||||
return new CriterionTreeNode(criterionType, toNodeList(criterions));
|
||||
return new CriterionTreeNode(criterionType,
|
||||
toNodeList(withoutParents(criterions)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a {@link Set} of {@link Criterion} to an {@link ArrayList} of
|
||||
* {@link CriterionTreeNode}
|
||||
*
|
||||
* @param criterions
|
||||
* @return
|
||||
*/
|
||||
private ArrayList<CriterionTreeNode> toNodeList(Set<Criterion> criterions) {
|
||||
private List<Criterion> withoutParents(
|
||||
Collection<? extends Criterion> criterions) {
|
||||
List<Criterion> result = new ArrayList<Criterion>();
|
||||
for (Criterion each : criterions) {
|
||||
if (each.getParent() == null) {
|
||||
result.add(each);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<CriterionTreeNode> toNodeList(
|
||||
Collection<? extends Criterion> criterions) {
|
||||
ArrayList<CriterionTreeNode> result = new ArrayList<CriterionTreeNode>();
|
||||
for (Criterion criterion : criterions) {
|
||||
for (Criterion criterion : sortedByName(criterions)) {
|
||||
result.add(asNode(criterion));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Criterion> sortedByName(
|
||||
Collection<? extends Criterion> criterions) {
|
||||
List<Criterion> result = new ArrayList<Criterion>(criterions);
|
||||
Collections.sort(result, Criterion.byName);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts {@link Criterion} to {@link CriterionTreeNode}
|
||||
*
|
||||
|
|
@ -449,7 +462,8 @@ public class NewAllocationSelectorController extends
|
|||
* @return
|
||||
*/
|
||||
private CriterionTreeNode asNode(Criterion criterion) {
|
||||
return new CriterionTreeNode(criterion, new ArrayList<CriterionTreeNode>());
|
||||
return new CriterionTreeNode(criterion,
|
||||
toNodeList(criterion.getChildren()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue