From d1a6e95b37de5673dd807ec8b6b43bd0a30cffe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Fri, 19 Feb 2010 20:19:25 +0100 Subject: [PATCH] ItEr48S04ValidacionEProbasFuncionaisItEr47S04: Refactoring EntitiesTree. Now it uses for all cases IChildrenExtractor --- .../navalplanner/web/tree/EntitiesTree.java | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/EntitiesTree.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/EntitiesTree.java index 5bf1159bc..7aee35022 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/EntitiesTree.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/tree/EntitiesTree.java @@ -44,17 +44,19 @@ public abstract class EntitiesTree> { Class type, T tree, List children) { MutableTreeModel treeModel = MutableTreeModel.create(type, tree); T parent = treeModel.getRoot(); - treeModel.add(parent, children); - addChildren(treeModel, children); + treeModel.add(parent, children, EntitiesTree + . createChildrenExtractor()); return treeModel; } - private static > void addChildren( - MutableTreeModel treeModel, List children) { - for (T each : children) { - treeModel.add(each, each.getChildren()); - addChildren(treeModel, each.getChildren()); - } + private static > IChildrenExtractor createChildrenExtractor() { + return new IChildrenExtractor() { + + @Override + public List getChildren(T parent) { + return parent.getChildren(); + } + }; } private static > MutableTreeModel createFilteredTreeFrom( @@ -122,15 +124,15 @@ public abstract class EntitiesTree> { } private void addToTree(ITreeNode parentNode, ITreeNode elementToAdd) { - tree.add(parentNode.getThis(), elementToAdd.getThis()); - addChildren(tree, Collections.singletonList(elementToAdd.getThis())); + tree.add(parentNode.getThis(), Collections.singletonList(elementToAdd + .getThis()), + childrenExtractor()); } private void addToTree(ITreeNode parentNode, int position, ITreeNode elementToAdd) { List children = Collections.singletonList(elementToAdd.getThis()); - tree.add(parentNode.getThis(), position, children); - addChildren(tree, children); + tree.add(parentNode.getThis(), position, children, childrenExtractor()); } private void addOrderElementAt(ITreeNode parent, ITreeNode element) { @@ -163,8 +165,7 @@ public abstract class EntitiesTree> { asContainer.getThis()); asContainer.add(selectedForTurningIntoContainer.getThis()); tree.replace(selectedForTurningIntoContainer.getThis(), asContainer - .getThis()); - addChildren(tree, Collections.singletonList(asContainer.getThis())); + .getThis(), childrenExtractor()); return asContainer; } @@ -232,17 +233,12 @@ public abstract class EntitiesTree> { } for (WithPosition each : addings) { tree.add(parent.getThis(), each.position, Collections - .singletonList(each.element), childrenAdder()); + .singletonList(each.element), childrenExtractor()); } } - private IChildrenExtractor childrenAdder() { - return new IChildrenExtractor() { - @Override - public List getChildren(T parent) { - return parent.getChildren(); - } - }; + private IChildrenExtractor childrenExtractor() { + return EntitiesTree. createChildrenExtractor(); } private List getTreeChildren(ITreeParentNode parent) {