|
|
@@ -52,8 +52,15 @@ class Parser:
|
|
|
target_xml = groot.find(".//mxPoint[@as='targetPoint']")
|
|
|
source = None if source_xml == None else Parser.parse_point(source_xml)
|
|
|
target = None if target_xml == None else Parser.parse_point(target_xml)
|
|
|
+ offset = Parser.parse_offset_if_exists(groot)
|
|
|
|
|
|
- return EdgeGeometry(pts, source, target)
|
|
|
+ return EdgeGeometry(pts, source, target, offset=offset)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def parse_offset_if_exists(geometry_xml):
|
|
|
+ offset_xml = geometry_xml.find(".//mxPoint[@as='offset']")
|
|
|
+ offset = None if offset_xml == None else Parser.parse_point(offset_xml)
|
|
|
+ return offset
|
|
|
|
|
|
@staticmethod
|
|
|
def parse_point(xml_node) -> Point:
|
|
|
@@ -62,8 +69,7 @@ class Parser:
|
|
|
@staticmethod
|
|
|
def parse_cell_geometry(groot):
|
|
|
if groot is None: return None
|
|
|
- offset_xml = groot.find(".//mxPoint[@as='offset']")
|
|
|
- offset = None if offset_xml == None else Parser.parse_point(offset_xml)
|
|
|
+ offset = Parser.parse_offset_if_exists(groot)
|
|
|
return VertexGeometry(groot.get("x", None), groot.get("y", None),
|
|
|
groot.get("width", None), groot.get("height", None),
|
|
|
offset=offset)
|