X-Git-Url: http://200.18.67.61/gitweb/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fufcspa%2Fsimdecs%2Fdiagram%2FDiagramManager.java;h=592956fcfbbe13eee1480b0c3a31a719ac3c1b9d;hb=0016f784fffe29c49cab953103877c8bd00fe1ae;hp=ff3eb27ae11d91a6b8cfe5fb8526e663a5725495;hpb=d076ae965e20cd4ddac316880c9593204c3b6296;p=simdecs.git diff --git a/src/java/org/ufcspa/simdecs/diagram/DiagramManager.java b/src/java/org/ufcspa/simdecs/diagram/DiagramManager.java index ff3eb27..592956f 100755 --- a/src/java/org/ufcspa/simdecs/diagram/DiagramManager.java +++ b/src/java/org/ufcspa/simdecs/diagram/DiagramManager.java @@ -4,10 +4,9 @@ */ package org.ufcspa.simdecs.diagram; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.TreeMap; +import java.util.LinkedList; +import org.ufcspa.simdecs.diagram.elements.Empty; +import org.ufcspa.simdecs.diagram.elements.Node; import org.ufcspa.simdecs.diagram.elements.SwimLane; /** @@ -17,19 +16,25 @@ import org.ufcspa.simdecs.diagram.elements.SwimLane; public class DiagramManager { private String diagramName; - private Map swimLanes; - + private LinkedList swimLanes; + public DiagramManager(String diagramName) { this.diagramName = diagramName; - swimLanes = new TreeMap(); + swimLanes = new LinkedList(); } public void addSwimLane(SwimLane swimLane) { - swimLanes.put(swimLane.getId(), swimLane); + if (!swimLanes.isEmpty()) { + while(swimLane.getNodes().size() < swimLanes.getFirst().getNodes().size()) { + swimLane.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale())); + } + } + + swimLanes.add(swimLane); } public final void clear() { - swimLanes = new HashMap(); + swimLanes = new LinkedList(); } public String getDiagramName() { @@ -40,15 +45,37 @@ public class DiagramManager { this.diagramName = diagramName; } - public ArrayList getSwimLanes() { - return new ArrayList(swimLanes.values()); + public LinkedList getSwimLanes() { + return swimLanes; } public SwimLane getSwimLane(String id) { - return swimLanes.get(id); + for(SwimLane swimLane : swimLanes) { + if (swimLane.getId().equals(id)) + return swimLane; + } + + return null; } public void removeSwimLane(String id) { - swimLanes.remove(id); + for(SwimLane swimLane : swimLanes) { + if (swimLane.getId().equals(id)) + swimLanes.remove(swimLane); + } } + + public void addNode(SwimLane swimLane, Node node) { + swimLane.addNode(node); + for(SwimLane sl : swimLanes) { + if (!sl.equals(swimLane)) { + if (sl.getNodes().size() < swimLane.getNodes().size()) { + while(sl.getNodes().size() < swimLane.getNodes().size()) { + sl.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale())); + } + } + } + } + } + }