devs.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. var graph = new joint.dia.Graph;
  2. var paper = new joint.dia.Paper({
  3. el: $('#paper'),
  4. width: 800,
  5. height: 600,
  6. gridSize: 1,
  7. model: graph
  8. });
  9. var connect = function(source, sourcePort, target, targetPort) {
  10. var link = new joint.shapes.devs.Link({
  11. source: { id: source.id, selector: source.getPortSelector(sourcePort) },
  12. target: { id: target.id, selector: target.getPortSelector(targetPort) }
  13. });
  14. graph.addCell(link);
  15. };
  16. var c1 = new joint.shapes.devs.Coupled({
  17. position: { x: 260, y: 150 },
  18. size: { width: 300, height: 300 },
  19. inPorts: ['in'],
  20. outPorts: ['out 1','out 2']
  21. });
  22. var a1 = new joint.shapes.devs.Atomic({
  23. position: { x: 360, y: 360 },
  24. inPorts: ['port XY'],
  25. outPorts: ['x','y']
  26. });
  27. var a2 = new joint.shapes.devs.Atomic({
  28. position: { x: 50, y: 260 },
  29. outPorts: ['out']
  30. });
  31. var a3 = new joint.shapes.devs.Atomic({
  32. position: { x: 650, y: 150 },
  33. size: { width: 100, height: 300 },
  34. inPorts: ['a','b']
  35. });
  36. graph.addCell(c1).addCell(a1).addCell(a2).addCell(a3);
  37. c1.embed(a1);
  38. connect(a2,'out',c1,'in');
  39. connect(c1,'in',a1,'port XY');
  40. connect(a1,'x',c1,'out 1');
  41. connect(a1,'y',c1,'out 2');
  42. connect(c1,'out 1',a3,'a');
  43. connect(c1,'out 2',a3,'b');