*/
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;
/**
public class DiagramManager {
private String diagramName;
- private Map<String, SwimLane> swimLanes;
-
+ private LinkedList<SwimLane> swimLanes;
+
public DiagramManager(String diagramName) {
this.diagramName = diagramName;
- swimLanes = new TreeMap<String, SwimLane>();
+ swimLanes = new LinkedList<SwimLane>();
}
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<String, SwimLane>();
+ swimLanes = new LinkedList<SwimLane>();
}
public String getDiagramName() {
this.diagramName = diagramName;
}
- public ArrayList<SwimLane> getSwimLanes() {
- return new ArrayList(swimLanes.values());
+ public LinkedList<SwimLane> 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()));
+ }
+ }
+ }
+ }
+ }
+
}