Hello MindFusion Team,
I have been playing with JavaScript Components.
//here is my code which i change from your tutorial-1
var Diagram = MindFusion.Diagramming.Diagram; var DiagramLink = MindFusion.Diagramming.DiagramLink; var ShapeNode = MindFusion.Diagramming.ShapeNode;
var Rect = MindFusion.Drawing.Rect; var LayeredLayout = MindFusion.Graphs.LayeredLayout; var ArrayList = MindFusion.Collections.ArrayList;
var diagram;
$(document).ready(function () { // create a Diagram component that wraps the "diagram" canvas diagram = MindFusion.AbstractionLayer.createControl(Diagram, null, null, null, $("#diagram")[0]); diagram.setLinkHeadShapeSize(2);
// pretend we are calling a web service //$.get("Tutorial1.txt", onResponse); onResponse(""); var mdiag = MindFusion.Diagramming; mdiag.DiagramLink.prototype.setTextBounds = function () { var pos = this.points.length % 2 == 1 ? this.points[Math.floor(this.points.length / 2)] : mdiag.Utils.mid(this.points[this.points.length / 2 - 1], this.points[this.points.length / 2]); var bounds = new MindFusion.Drawing.Rect(pos.x, pos.y, 0, 0); this.text.setBounds(bounds, 0); }; });
function onResponse(json) { var graph = { "nodes":[ {"id":0,"name":"parent 1 TEST TEST TEST For long TExt"}, {"id":1,"name":"parent 2"}, {"id":2,"name":"Main"}, {"id":3,"name":"child 1"}, {"id":4,"name":"child 2"}, ], "links":[ {"origin":0,"target":2}, {"origin":1,"target":2}, {"origin":2,"target":3}, {"origin":2,"target":4}, ]}; buildDiagram(graph); }
function buildDiagram(graph) { var nodeMap = [];
// load node data var nodes = graph.nodes; ArrayList.forEach(nodes, function (node) { var diagramNode = diagram.getFactory().createTableNode(0, 0, 18, 8); nodeMap[node.id] = diagramNode; diagramNode.setText(node.name); diagramNode.setBrush("LightGray"); });
// load link data var links = graph.links; ArrayList.forEach(links, function (link) { var link = diagram.getFactory().createDiagramLink( nodeMap[link.origin], nodeMap[link.target]); });
// arrange the graph var layout = new MindFusion.Graphs.TreeLayout(); layout.direction = MindFusion.Graphs.LayoutDirection.TopToBottom; layout.levelDistance = 25; layout.nodeDistance = 15; layout.linkType = MindFusion.Graphs.TreeLayoutLinkType.Default; diagram.arrange(layout); diagram.resizeToFitItems(50); }
It generates expected output but nodes width is predefined, thats why i loose text inside Tablenode.
my questions are following,
1) is there any way to set fix to text width/height for TableNode?
2) Is there way to add Link which does not have direction Arrow for connection?
You help will be highly appreciable.
Thank you for your continuous support.
|