From 87bc2809bc9086d2dd1da28e64b0083d8bf5e858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 22 Apr 2010 22:02:17 +0200 Subject: [PATCH] ItEr55S04ValidacionEProbasFuncionaisItEr54S04: Remove the static variable so previous listings can't affect the current one --- .../web/calendars/BaseCalendarsTreeModel.java | 48 +++++++------------ 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarsTreeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarsTreeModel.java index ff854af94..56400986b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarsTreeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarsTreeModel.java @@ -36,8 +36,6 @@ import org.zkoss.zul.SimpleTreeNode; */ public class BaseCalendarsTreeModel extends SimpleTreeModel { - private static Map> relationParentChildren = new HashMap>(); - public BaseCalendarsTreeModel(BaseCalendarTreeRoot root) { super(createRootNodeAndDescendants(root, root.getRootCalendars(), root .getDerivedCalendars())); @@ -47,65 +45,55 @@ public class BaseCalendarsTreeModel extends SimpleTreeModel { BaseCalendarTreeRoot root, List rootCalendars, List derivedCalendars) { - fillHashParentChildren(rootCalendars, derivedCalendars); - - return new SimpleTreeNode(root, asNodes(rootCalendars)); + Map> parentChildren = createRelationParentChildren( + rootCalendars, derivedCalendars); + return new SimpleTreeNode(root, asNodes(parentChildren, rootCalendars)); } - private static List asNodes(List baseCalendars) { + private static List asNodes( + Map> relationParentChildren, + List baseCalendars) { if (baseCalendars == null) { return new ArrayList(); } ArrayList result = new ArrayList(); for (BaseCalendar baseCalendar : baseCalendars) { - result.add(asNode(baseCalendar)); + result.add(asNode(relationParentChildren, baseCalendar)); } return result; } - private static SimpleTreeNode asNode(BaseCalendar baseCalendar) { + private static SimpleTreeNode asNode( + Map> relationParentChildren, + BaseCalendar baseCalendar) { List children = relationParentChildren.get(baseCalendar); - return new SimpleTreeNode(baseCalendar, asNodes(children)); + return new SimpleTreeNode(baseCalendar, asNodes(relationParentChildren, + children)); } - private static void fillHashParentChildren( + private static Map> createRelationParentChildren( List rootCalendars, List derivedCalendars) { + Map> result = new HashMap>(); for (BaseCalendar root : rootCalendars) { - relationParentChildren.put(root, new ArrayList()); + result.put(root, new ArrayList()); } for (BaseCalendar derived : derivedCalendars) { BaseCalendar parent = derived.getParent(); - List siblings = relationParentChildren.get(parent); + List siblings = result.get(parent); if (siblings == null) { siblings = new ArrayList(); siblings.add(derived); - relationParentChildren.put(parent, siblings); + result.put(parent, siblings); } else { siblings.add(derived); } } - } - - @Override - public boolean isLeaf(Object node) { - if (node == null) { - return true; - } - - SimpleTreeNode simpleTreeNode = (SimpleTreeNode) node; - BaseCalendar baseCalendar = (BaseCalendar) simpleTreeNode.getData(); - - List children = relationParentChildren.get(baseCalendar); - if (children == null) { - return true; - } - - return children.isEmpty(); + return result; } }