diff options
author | Suchita Lad | 2025-05-01 13:12:13 +0530 |
---|---|---|
committer | Suchita Lad | 2025-05-01 13:18:35 +0530 |
commit | 9152d0bfab2e2b3ca307094cf1e2a8a377093a55 (patch) | |
tree | 672b6432b70f80d5601a6b76b7b51defac23ebe5 | |
parent | 24f011c99cf3bef22a902ca7bb3bb667369cac0c (diff) | |
download | Common-Interface-Project-9152d0bfab2e2b3ca307094cf1e2a8a377093a55.tar.gz Common-Interface-Project-9152d0bfab2e2b3ca307094cf1e2a8a377093a55.tar.bz2 Common-Interface-Project-9152d0bfab2e2b3ca307094cf1e2a8a377093a55.zip |
Added superblockdiagram to xml
-rwxr-xr-x | blocks/Xcos/MxGraphParser.py | 4 | ||||
-rwxr-xr-x | blocks/Xcos/XmlParser.py | 7 | ||||
-rw-r--r-- | blocks/Xcos/common/AAAAAA.py | 12 | ||||
-rw-r--r-- | blocks/eda-frontend/src/components/SchematicEditor/Helper/ToolbarTools.js | 3 | ||||
-rw-r--r-- | blocks/xcos2xml/blocks/SUPER_f.xsl | 2 | ||||
-rw-r--r-- | blocks/xcos2xml/foot.xsl | 3 | ||||
-rw-r--r-- | blocks/xcos2xml/head.xsl | 17 |
7 files changed, 37 insertions, 11 deletions
diff --git a/blocks/Xcos/MxGraphParser.py b/blocks/Xcos/MxGraphParser.py index dc3e16bd..c0b4d770 100755 --- a/blocks/Xcos/MxGraphParser.py +++ b/blocks/Xcos/MxGraphParser.py @@ -26,11 +26,11 @@ title = re.sub(r'^.*/', r'', filename) title = re.sub(base, r'', title) tree = goodET.parse(filename) -model = tree.getroot() +diagram = tree.getroot() rootattribid = '0:1:0' parentattribid = '0:2:0' -outdiagram = process_xcos_model(model, title, rootattribid, parentattribid, +outdiagram = process_xcos_model(diagram, title, rootattribid, parentattribid, workspace_file, context) diff --git a/blocks/Xcos/XmlParser.py b/blocks/Xcos/XmlParser.py index d425338e..2905b922 100755 --- a/blocks/Xcos/XmlParser.py +++ b/blocks/Xcos/XmlParser.py @@ -11,7 +11,7 @@ import uuid from xcosblocks import num2str, style_to_object from xcosblocks import addtolinklist -from xcosblocks import create_mxCell, create_mxCell_edge, create_mxCell_port, checkModelTag, check_point_on_array, checkRootTag +from xcosblocks import create_mxCell, create_mxCell_edge, create_mxCell_port, checkModelTag, checkXcosDiagramTag, check_point_on_array, checkRootTag from xcosblocks import getComponentGeometry, getlinkdetails, getLinkStyle, getNextAttribId, getPinGeometry, getSplitPoints, getWaypoints from xcosblocks import identify_segment, initLinks, mergeLinks, portType1, portType2, portType3, remove_hyphen_number @@ -29,7 +29,10 @@ if ext != '.xml': tree = goodET.parse(filename) -model = tree.getroot() +diagram = tree.getroot() +checkXcosDiagramTag(diagram) + +model = diagram.find('mxGraphModel') checkModelTag(model) for root in model: diff --git a/blocks/Xcos/common/AAAAAA.py b/blocks/Xcos/common/AAAAAA.py index 80f34e64..eaaf1755 100644 --- a/blocks/Xcos/common/AAAAAA.py +++ b/blocks/Xcos/common/AAAAAA.py @@ -1040,6 +1040,12 @@ def checkModelTag(model): sys.exit(102) +def checkXcosDiagramTag(diagram): + if diagram.tag != 'XcosDiagram' and diagram.tag != 'SuperBlockDiagram': + print(diagram.tag, '!= XcosDiagram') + sys.exit(102) + + def checkRootTag(root): if root.tag != 'root': print('Not root') @@ -1571,7 +1577,7 @@ def getParameters(cell): def getSuperblock(cell): if "style" in cell.attrib and "SUPER_f" in cell.attrib["style"]: - mxGraphModel = cell.find(".//mxGraphModel") + mxGraphModel = cell.find("./SuperBlockDiagram") return mxGraphModel @@ -1620,7 +1626,7 @@ def getSplitPoints(attrib, switch_split, blkgeometry, sourceVertex, targetVertex return split_point, split_point2 -def process_xcos_model(model, title, rootattribid, parentattribid, +def process_xcos_model(diagram, title, rootattribid, parentattribid, workspace_file=None, context=None): global WORKSPACE @@ -1628,7 +1634,9 @@ def process_xcos_model(model, title, rootattribid, parentattribid, if WORKSPACE is None: WORKSPACE = ScilabWorkspace(title, workspace_file, context) started_workspace = True + checkXcosDiagramTag(diagram) + model = diagram.find('mxGraphModel') checkModelTag(model) outdiagram = ET.Element('XcosDiagram') outdiagram.set('background', '-1') diff --git a/blocks/eda-frontend/src/components/SchematicEditor/Helper/ToolbarTools.js b/blocks/eda-frontend/src/components/SchematicEditor/Helper/ToolbarTools.js index ea550ec8..80c8999f 100644 --- a/blocks/eda-frontend/src/components/SchematicEditor/Helper/ToolbarTools.js +++ b/blocks/eda-frontend/src/components/SchematicEditor/Helper/ToolbarTools.js @@ -351,7 +351,8 @@ function parseXmlToGraph (xmlDoc, graph) { graph.getModel().beginUpdate() let oldcellslength = 0 - let cells = xmlDoc.documentElement.children[0].children + + let cells = xmlDoc.getElementsByTagName("root")[0].children let cellslength = cells.length let remainingcells = [] let portCount diff --git a/blocks/xcos2xml/blocks/SUPER_f.xsl b/blocks/xcos2xml/blocks/SUPER_f.xsl index 5cf8492b..9bd1a5cc 100644 --- a/blocks/xcos2xml/blocks/SUPER_f.xsl +++ b/blocks/xcos2xml/blocks/SUPER_f.xsl @@ -44,7 +44,7 @@ <xsl:apply-templates select="mxGeometry" /> <Object display_parameter="" as="displayProperties" /> <Object as="parameter_values" /> - <xsl:apply-templates select="SuperBlockDiagram/node()" /> + <xsl:apply-templates select="SuperBlockDiagram" /> </xsl:element> <xsl:call-template name="port"> <xsl:with-param name="id" select="@id" /> diff --git a/blocks/xcos2xml/foot.xsl b/blocks/xcos2xml/foot.xsl index ed6345d2..fd762531 100644 --- a/blocks/xcos2xml/foot.xsl +++ b/blocks/xcos2xml/foot.xsl @@ -1,10 +1,9 @@ <xsl:template match="mxCell[contains(@id, '#identifier')]" /> <xsl:template match="mxCell[@as = 'defaultParent']" /> <xsl:template match="mxPoint[@as = 'origin']" /> - <xsl:template match="Array[@as != 'points']" /> + <xsl:template match="Array[@as != 'points' and @as != 'context']" /> <xsl:template match="ScilabDouble" /> <xsl:template match="ScilabInteger" /> - <xsl:template match="SuperBlockDiagram" /> <xsl:template match="ScilabString" /> <xsl:template match="ExplicitInputPort" /> <xsl:template match="ExplicitOutputPort" /> diff --git a/blocks/xcos2xml/head.xsl b/blocks/xcos2xml/head.xsl index 529c073e..0e3f61f2 100644 --- a/blocks/xcos2xml/head.xsl +++ b/blocks/xcos2xml/head.xsl @@ -130,8 +130,23 @@ </xsl:template> <xsl:template match="comment()" /> <xsl:template match="XcosDiagram"> - <xsl:apply-templates select="node()" /> + <xsl:copy> + <xsl:apply-templates select="@* | node()" /> + </xsl:copy> + </xsl:template> + + <xsl:template match="SuperBlockDiagram"> + <xsl:copy> + <xsl:apply-templates select="@* | node()" /> + </xsl:copy> + </xsl:template> + + <xsl:template match="Array[@as='context']"> + <xsl:copy> + <xsl:apply-templates select="@* | node()" /> + </xsl:copy> </xsl:template> + <xsl:template match="mxGraphModel"> <xsl:copy> <xsl:apply-templates select="@*[name(.)!='as']" /> |