summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuchita Lad2025-05-01 13:12:13 +0530
committerSuchita Lad2025-05-01 13:18:35 +0530
commit9152d0bfab2e2b3ca307094cf1e2a8a377093a55 (patch)
tree672b6432b70f80d5601a6b76b7b51defac23ebe5
parent24f011c99cf3bef22a902ca7bb3bb667369cac0c (diff)
downloadCommon-Interface-Project-9152d0bfab2e2b3ca307094cf1e2a8a377093a55.tar.gz
Common-Interface-Project-9152d0bfab2e2b3ca307094cf1e2a8a377093a55.tar.bz2
Common-Interface-Project-9152d0bfab2e2b3ca307094cf1e2a8a377093a55.zip
Added superblockdiagram to xml
-rwxr-xr-xblocks/Xcos/MxGraphParser.py4
-rwxr-xr-xblocks/Xcos/XmlParser.py7
-rw-r--r--blocks/Xcos/common/AAAAAA.py12
-rw-r--r--blocks/eda-frontend/src/components/SchematicEditor/Helper/ToolbarTools.js3
-rw-r--r--blocks/xcos2xml/blocks/SUPER_f.xsl2
-rw-r--r--blocks/xcos2xml/foot.xsl3
-rw-r--r--blocks/xcos2xml/head.xsl17
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']" />