def read(link_element, vertices)
self.id = link_element.attributes["id"].to_i
self.mark = link_element.attributes["mark"].to_f
- self.name = link_element.elements['moveableName'].attributes['name']
- puts "vertices = #{vertices}"
- box1 = vertices.select {|v| v.id == link_element.elements['box1'].attributes['id']}[0]
- puts "found box1: #{box1}"
- box2 = vertices.select {|v| v.id == link_element.elements['box2'].attributes['id']}[0]
- puts "found box2: #{box2}"
+ self.name = Label.new link_element.elements['moveableName'].attributes['name']
+ box1 = vertices.select {|v| v.id == link_element.elements['box1'].attributes['id'].to_i}[0]
+ box2 = vertices.select {|v| v.id == link_element.elements['box2'].attributes['id'].to_i}[0]
self << box1 << box2
- c1 = self.connections.find {|c| c.end == box1}
- c1.blob = link_element.elements['box1EndAdornments'].attributes['blob']
- c1.crowsfoot = link_element.elements['box1EndAdornments'].attributes['crowsfoot']
- c2 = self.connections.find {|c| c.end == box2}
- c2.blob = link_element.elements['box2EndAdornments'].attributes['blob']
- c2.crowsfoot = link_element.elements['box2EndAdornments'].attributes['crowsfoot']
+ box1.edges << self
+ box2.edges << self unless box1 == box2
+ if box1 == box2
+ c1 = self.connections[0]
+ c2 = self.connections[1]
+ else
+ c1 = self.connections.find {|c| c.end == box1}
+ c2 = self.connections.find {|c| c.end == box2}
+ end
+ c1.blob = link_element.elements['box1EndAdornments'].attributes['blob'].downcase.intern
+ c1.crowsfoot = link_element.elements['box1EndAdornments'].attributes['crowsfoot'].downcase.intern
+ c2.blob = link_element.elements['box2EndAdornments'].attributes['blob'].downcase.intern
+ c2.crowsfoot = link_element.elements['box2EndAdornments'].attributes['crowsfoot'].downcase.intern
end
+
end
end