🎉 JointJS has new documentation! 🥳
This plugin imports a graph represented as an XML string in the GEXF format and makes it a JointJS graph.
The plugin contains only one function joint.format.gexf.toCellsArray(xmlString, makeElement, makeLink)
,
where:
argument | description |
---|---|
xmlString | an XML string representing a graph in GEXF format |
makeElement(data) | a function that takes an object with id and label (and width , height , x , y , z , color , shape if present in the XML) properties and returns a JointJS element for this node. |
makeLink(data) | a function that takes an object with source and target properties and returns a JointJS link for that edge. |
Include joint.format.gexf.js
file into your HTML:
<script src="joint.format.gexf.js"></script>
const xmlString = `<?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" xmlns:viz="http://www.gexf.net/1.1draft/viz" version="1.2">
<graph mode="static" defaultedgetype="directed">
<nodes>
<node id="0" label="Hello">
<viz:position x="15.0" y="40.0" z="0.0"/>
<viz:size value="50" />
<viz:color r="239" g="173" b="66" a="0.6"/>
</node>
<node id="1" label="World">
<viz:position x="15.0" y="140.0" z="0.0"/>
<viz:size value="50" />
<viz:color r="239" g="173" b="66" a="0.6"/>
</node>
</nodes>
<edges>
<edge id="0" source="0" target="1" />
</edges>
</graph>
</gexf>`;
const cells = joint.format.gexf.toCellsArray(
xmlString,
function makeElement(data) {
return new joint.shapes.standard.Rectangle({
id: data.id,
position: { x: data.x, y: data.y },
size: { width: data.width, height: data.height },
attrs: {
label: { text: data.label },
body: { fill: data.color }
}
});
},
function makeLink(data) {
return new joint.shapes.standard.Link({
source: { id: data.source },
target: { id: data.target }
});
}
);
graph.resetCells(cells);