/*! JointJS v0.9.7 - JavaScript diagramming library 2016-04-20 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // JointJS library. // (c) 2011-2013 client IO joint.shapes.devs = {}; joint.shapes.devs.Model = joint.shapes.basic.Generic.extend(_.extend({}, joint.shapes.basic.PortsModelInterface, { markup: '', portMarkup: '', defaults: joint.util.deepSupplement({ type: 'devs.Model', size: { width: 1, height: 1 }, inPorts: [], outPorts: [], attrs: { '.': { magnet: false }, '.body': { width: 150, height: 250, stroke: '#000000' }, '.port-body': { r: 10, magnet: true, stroke: '#000000' }, text: { 'pointer-events': 'none' }, '.label': { text: 'Model', 'ref-x': .5, 'ref-y': 10, ref: '.body', 'text-anchor': 'middle', fill: '#000000' }, '.inPorts .port-label': { x:-15, dy: 4, 'text-anchor': 'end', fill: '#000000' }, '.outPorts .port-label':{ x: 15, dy: 4, fill: '#000000' } } }, joint.shapes.basic.Generic.prototype.defaults), getPortAttrs: function(portName, index, total, selector, type) { var attrs = {}; var portClass = 'port' + index; var portSelector = selector + '>.' + portClass; var portLabelSelector = portSelector + '>.port-label'; var portBodySelector = portSelector + '>.port-body'; attrs[portLabelSelector] = { text: portName }; attrs[portBodySelector] = { port: { id: portName || _.uniqueId(type) , type: type } }; attrs[portSelector] = { ref: '.body', 'ref-y': (index + 0.5) * (1 / total) }; if (selector === '.outPorts') { attrs[portSelector]['ref-dx'] = 0; } return attrs; } })); joint.shapes.devs.Atomic = joint.shapes.devs.Model.extend({ defaults: joint.util.deepSupplement({ type: 'devs.Atomic', size: { width: 80, height: 80 }, attrs: { '.body': { fill: 'salmon' }, '.label': { text: 'Atomic' }, '.inPorts .port-body': { fill: 'PaleGreen' }, '.outPorts .port-body': { fill: 'Tomato' } } }, joint.shapes.devs.Model.prototype.defaults) }); joint.shapes.devs.Coupled = joint.shapes.devs.Model.extend({ defaults: joint.util.deepSupplement({ type: 'devs.Coupled', size: { width: 200, height: 300 }, attrs: { '.body': { fill: 'seaGreen' }, '.label': { text: 'Coupled' }, '.inPorts .port-body': { fill: 'PaleGreen' }, '.outPorts .port-body': { fill: 'Tomato' } } }, joint.shapes.devs.Model.prototype.defaults) }); joint.shapes.devs.Link = joint.dia.Link.extend({ defaults: { type: 'devs.Link', attrs: { '.connection' : { 'stroke-width' : 2 }} } }); joint.shapes.devs.ModelView = joint.dia.ElementView.extend(joint.shapes.basic.PortsViewInterface); joint.shapes.devs.AtomicView = joint.shapes.devs.ModelView; joint.shapes.devs.CoupledView = joint.shapes.devs.ModelView;