Added edit distance to Label
[erd-marker.git] / lib / erd_handler / link.rb
index eec4341e50d67a74ef88c09944e94213303e5632..63bfd0600182574a9a527c18c1a8c68421ac46c9 100644 (file)
@@ -9,19 +9,24 @@ module ErdHandler
     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