File size: 1,450 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import * as util from '../../util';
// default layout options
let defaults = {
ready: function(){}, // on layoutready
stop: function(){} // on layoutstop
};
// constructor
// options : object containing layout options
function NullLayout( options ){
this.options = util.extend( {}, defaults, options );
}
// runs the layout
NullLayout.prototype.run = function(){
let options = this.options;
let eles = options.eles; // elements to consider in the layout
let layout = this;
// cy is automatically populated for us in the constructor
// (disable eslint for next line as this serves as example layout code to external developers)
// eslint-disable-next-line no-unused-vars
let cy = options.cy;
layout.emit( 'layoutstart' );
// puts all nodes at (0, 0)
// n.b. most layouts would use layoutPositions(), instead of positions() and manual events
eles.nodes().positions( function(){
return {
x: 0,
y: 0
};
} );
// trigger layoutready when each node has had its position set at least once
layout.one( 'layoutready', options.ready );
layout.emit( 'layoutready' );
// trigger layoutstop when the layout stops (e.g. finishes)
layout.one( 'layoutstop', options.stop );
layout.emit( 'layoutstop' );
return this; // chaining
};
// called on continuous layouts to stop them before they finish
NullLayout.prototype.stop = function(){
return this; // chaining
};
export default NullLayout;
|