d076ae96 |
1 | /* |
2 | * To change this template, choose Tools | Templates |
3 | * and open the template in the editor. |
4 | */ |
5 | package org.ufcspa.simdecs.diagram; |
6 | |
1c6214fc |
7 | import java.util.LinkedList; |
8 | import org.ufcspa.simdecs.diagram.elements.Empty; |
9 | import org.ufcspa.simdecs.diagram.elements.Node; |
d076ae96 |
10 | import org.ufcspa.simdecs.diagram.elements.SwimLane; |
11 | |
12 | /** |
13 | * |
14 | * @author Maroni |
15 | */ |
16 | public class DiagramManager { |
17 | |
18 | private String diagramName; |
1c6214fc |
19 | private LinkedList<SwimLane> swimLanes; |
20 | |
d076ae96 |
21 | public DiagramManager(String diagramName) { |
22 | this.diagramName = diagramName; |
1c6214fc |
23 | swimLanes = new LinkedList<SwimLane>(); |
d076ae96 |
24 | } |
25 | |
26 | public void addSwimLane(SwimLane swimLane) { |
1c6214fc |
27 | if (!swimLanes.isEmpty()) { |
28 | while(swimLane.getNodes().size() < swimLanes.getFirst().getNodes().size()) { |
29 | swimLane.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale())); |
30 | } |
31 | } |
32 | |
33 | swimLanes.add(swimLane); |
d076ae96 |
34 | } |
35 | |
36 | public final void clear() { |
1c6214fc |
37 | swimLanes = new LinkedList<SwimLane>(); |
d076ae96 |
38 | } |
39 | |
40 | public String getDiagramName() { |
41 | return diagramName; |
42 | } |
43 | |
44 | public void setDiagramName(String diagramName) { |
45 | this.diagramName = diagramName; |
46 | } |
47 | |
1c6214fc |
48 | public LinkedList<SwimLane> getSwimLanes() { |
49 | return swimLanes; |
d076ae96 |
50 | } |
51 | |
52 | public SwimLane getSwimLane(String id) { |
1c6214fc |
53 | for(SwimLane swimLane : swimLanes) { |
54 | if (swimLane.getId().equals(id)) |
55 | return swimLane; |
56 | } |
57 | |
58 | return null; |
d076ae96 |
59 | } |
60 | |
61 | public void removeSwimLane(String id) { |
1c6214fc |
62 | for(SwimLane swimLane : swimLanes) { |
63 | if (swimLane.getId().equals(id)) |
64 | swimLanes.remove(swimLane); |
65 | } |
d076ae96 |
66 | } |
1c6214fc |
67 | |
68 | public void addNode(SwimLane swimLane, Node node) { |
69 | swimLane.addNode(node); |
70 | for(SwimLane sl : swimLanes) { |
71 | if (!sl.equals(swimLane)) { |
72 | if (sl.getNodes().size() < swimLane.getNodes().size()) { |
73 | while(sl.getNodes().size() < swimLane.getNodes().size()) { |
74 | sl.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale())); |
75 | } |
76 | } |
77 | } |
78 | } |
79 | } |
80 | |
d076ae96 |
81 | } |