| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import {
- create
- } from '../model';
- import { assign } from 'min-dash';
- /**
- * A factory for diagram-js shapes
- */
- export default function ElementFactory() {
- this._uid = 12;
- }
- ElementFactory.prototype.createRoot = function(attrs) {
- return this.create('root', attrs);
- };
- ElementFactory.prototype.createLabel = function(attrs) {
- return this.create('label', attrs);
- };
- ElementFactory.prototype.createShape = function(attrs) {
- return this.create('shape', attrs);
- };
- ElementFactory.prototype.createConnection = function(attrs) {
- return this.create('connection', attrs);
- };
- /**
- * Create a model element with the given type and
- * a number of pre-set attributes.
- *
- * @param {string} type
- * @param {Object} attrs
- * @return {djs.model.Base} the newly created model instance
- */
- ElementFactory.prototype.create = function(type, attrs) {
- attrs = assign({}, attrs || {});
- if (!attrs.id) {
- attrs.id = type + '_' + (this._uid++);
- }
- return create(type, attrs);
- };
|