diff --git a/lib/Modeler.js b/lib/Modeler.js index ec064b1a..cc6ff8f6 100644 --- a/lib/Modeler.js +++ b/lib/Modeler.js @@ -1,7 +1,6 @@ 'use strict'; -var Diagram = require('diagram-js'), - BpmnModdle = require('bpmn-moddle'), +var BpmnModdle = require('bpmn-moddle'), IdSupport = require('bpmn-moddle/lib/id-support'), Ids = require('ids'); diff --git a/lib/NavigatedViewer.js b/lib/NavigatedViewer.js new file mode 100644 index 00000000..5a98791b --- /dev/null +++ b/lib/NavigatedViewer.js @@ -0,0 +1,23 @@ +var Viewer = require('./Viewer'); + +/** + * A viewer that includes mouse navigation facilities + * + * @param {Object} options + */ +function NavigatedViewer(options) { + Viewer.call(this, options); +} + +NavigatedViewer.prototype = Object.create(Viewer.prototype); + +module.exports = NavigatedViewer; + +NavigatedViewer.prototype._navigationModules = [ + require('diagram-js/lib/navigation/zoomscroll'), + require('diagram-js/lib/navigation/movecanvas') +]; + +NavigatedViewer.prototype._modules = [].concat( + NavigatedViewer.prototype._modules, + NavigatedViewer.prototype._navigationModules); \ No newline at end of file diff --git a/lib/Viewer.js b/lib/Viewer.js index 09337879..6d7cf8ff 100644 --- a/lib/Viewer.js +++ b/lib/Viewer.js @@ -40,9 +40,12 @@ var DEFAULT_OPTIONS = { }; /** - * A viewer for BPMN 2.0 diagrams + * A viewer for BPMN 2.0 diagrams. * - * @class + * Includes the basic viewing functionality. + * + * Have a look at {@link NavigatedViewer} or {@link Modeler} for bundles that include + * additional features. * * @param {Object} [options] configuration options to pass to the viewer * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body. diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js index 6e1a0832..0d8c5233 100644 --- a/test/spec/ModelerSpec.js +++ b/test/spec/ModelerSpec.js @@ -1,8 +1,6 @@ 'use strict'; -var Matchers = require('../Matchers'), - TestHelper = require('../TestHelper'); - +var TestHelper = require('../TestHelper'); var fs = require('fs'); @@ -11,9 +9,6 @@ var Modeler = require('../../lib/Modeler'); describe('Modeler', function() { - beforeEach(Matchers.addDeepEquals); - - var container; beforeEach(function() { diff --git a/test/spec/NavigatedViewerSpec.js b/test/spec/NavigatedViewerSpec.js new file mode 100644 index 00000000..34da3a14 --- /dev/null +++ b/test/spec/NavigatedViewerSpec.js @@ -0,0 +1,59 @@ +'use strict'; + +var TestHelper = require('../TestHelper'); + +var fs = require('fs'); + +var NavigatedViewer = require('../../lib/NavigatedViewer'); + + +describe('NavigatedViewer', function() { + + var container; + + beforeEach(function() { + container = jasmine.getEnv().getTestContainer(); + }); + + + function createViewer(xml, done) { + var viewer = new NavigatedViewer({ container: container }); + + viewer.importXML(xml, function(err, warnings) { + done(err, warnings, viewer); + }); + } + + + it('should import simple process', function(done) { + + var xml = fs.readFileSync('test/fixtures/bpmn/simple.bpmn', 'utf8'); + + createViewer(xml, done); + }); + + + describe('navigation features', function() { + + var xml = fs.readFileSync('test/fixtures/bpmn/simple.bpmn', 'utf8'); + + it('should include zoomScroll', function(done) { + createViewer(xml, function(err, warnings, viewer) { + expect(viewer.get('zoomScroll')).toBeDefined(); + + done(err); + }); + }); + + + it('should include moveCanvas', function(done) { + createViewer(xml, function(err, warnings, viewer) { + expect(viewer.get('moveCanvas')).toBeDefined(); + + done(err); + }); + }); + + }); + +}); \ No newline at end of file diff --git a/test/spec/ViewerSpec.js b/test/spec/ViewerSpec.js index e59f4d06..ce65f217 100644 --- a/test/spec/ViewerSpec.js +++ b/test/spec/ViewerSpec.js @@ -1,10 +1,6 @@ 'use strict'; -var Matchers = require('../Matchers'), - TestHelper = require('../TestHelper'); - -/* global bootstrapViewer, inject */ - +var TestHelper = require('../TestHelper'); var fs = require('fs'); @@ -13,9 +9,6 @@ var Viewer = require('../../lib/Viewer'); describe('Viewer', function() { - beforeEach(Matchers.addDeepEquals); - - var container; beforeEach(function() {