c6097c7f72a0f9a09e29b2b4e895b97f80d62d61
[simdecs.git] / src / java / org / ufcspa / simdecs / diagram / elements / SwimLane.java
1 package org.ufcspa.simdecs.diagram.elements;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Collection;\r
5 import java.util.LinkedList;\r
6 import java.util.ListIterator;\r
7 import java.util.Locale;\r
8 \r
9 \r
10 public abstract class SwimLane extends Element {\r
11     \r
12     private String name;\r
13     private Integer age;\r
14     private String sex;\r
15     private Float weight;\r
16     private Float height;\r
17     private LinkedList<Node> nodes;\r
18         \r
19     public SwimLane(String messageBundle, Locale locale) {\r
20         super(messageBundle, locale);\r
21         nodes = new LinkedList<Node>();\r
22     }\r
23     \r
24     public Node getNode(String id) {\r
25         for(Node node : nodes) {\r
26             if (node.equals(node))\r
27                 return node;\r
28         }\r
29         return null;\r
30     }\r
31     \r
32     public Integer getAge() {\r
33         return age;\r
34     }\r
35 \r
36     public void setAge(Integer age) {\r
37         this.age = age;\r
38     }\r
39 \r
40     public Float getHeight() {\r
41         return height;\r
42     }\r
43 \r
44     public void setHeight(Float height) {\r
45         this.height = height;\r
46     }\r
47 \r
48     public String getName() {\r
49         return name;\r
50     }\r
51 \r
52     public void setName(String name) {\r
53         this.name = name;\r
54     }\r
55 \r
56     public String getSex() {\r
57         return sex;\r
58     }\r
59 \r
60     public void setSex(String sex) {\r
61         this.sex = sex;\r
62     }\r
63 \r
64     public Float getWeight() {\r
65         return weight;\r
66     }\r
67 \r
68     public void setWeight(Float weight) {\r
69         this.weight = weight;\r
70     }\r
71 \r
72         \r
73     private void updateImages() {\r
74         ListIterator it = nodes.listIterator();\r
75         while(it.hasNext()) {\r
76             Node node = (Node) it.next();\r
77             if (it.hasNext()) {\r
78                 node.setCurrentImage(node.getImageWithLink());\r
79                 \r
80             }\r
81             else {\r
82                 node.setCurrentImage(node.getImage());\r
83             }\r
84         }\r
85     }\r
86     \r
87     public void addNode(Node node) {\r
88         if (!nodes.contains(node)) {\r
89             node.setPosition(nodes.size()+1);\r
90             nodes.addLast(node);\r
91         }\r
92         \r
93         updateImages();\r
94     }\r
95     \r
96     public LinkedList<Node> getNodes() {\r
97         return nodes;\r
98     }\r
99 \r
100     public abstract String getImage();\r
101     public abstract String getType();\r
102     \r
103     public Collection<Node> getGrantedNextNodes() {\r
104         Collection<Node> list = new ArrayList<Node>();\r
105         \r
106         if (nodes.size()==0) {\r
107             list.add(new Begin(getMessageBundle(), getLocale()));\r
108             return list;\r
109         }\r
110         \r
111         return null;\r
112     }\r
113         \r
114 }\r