camunda-modeler
Version:
Camunda Modeler for BPMN, DMN and CMMN, based on bpmn.io
59 lines (40 loc) • 1.04 kB
JavaScript
;
var debug = require('debug')('bpmn-provider');
var ensureOpts = require('util/ensure-opts');
var isUnsaved = require('util/file/is-unsaved');
var initialXML = require('./initial.bpmn');
var BpmnTab = require('./bpmn-tab');
var ids = require('ids')();
/**
* Add ability to create and open BPMN diagrams.
*
* @param {Object} options
*/
function BpmnProvider(options) {
ensureOpts([ 'app' ], options);
var app = options.app;
var createdFiles = 0;
this.createNewFile = function() {
// increment counter
createdFiles++;
debug('create BPMN file');
return {
fileType: 'bpmn',
name: 'diagram_' + createdFiles + '.bpmn',
path: isUnsaved.PATH,
contents: initialXML
};
};
this.canCreate = function(fileType) {
return fileType === 'bpmn';
};
this.createTab = function(file) {
return app.createComponent(BpmnTab, {
file: file,
closable: true,
id: ids.next(),
metaData: app.metaData
});
};
}
module.exports = BpmnProvider;