12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- define( function ( require, exports, module ) {
- var Group = require( 'graphic/group' );
- var Connection = require( '../graffle/bezierconnection' );
- var Query = require( '../pathdiagram/dataquery' );
- var Rect = require( 'graphic/rect' );
- var Text = require( 'graphic/text' );
- var TextSpan = require( 'graphic/textspan' );
- var PathNode = require( '../pathdiagram/pathnode' );
- var colors = require( '../pathdiagram/colors' );
- var rHeight = 25;
- var rWidth = 250;
- var rMargin = 10;
- var lMargin = 100;
- var LevelContainer = require( 'core/class' ).createClass( 'LevelContainer', {
- base: Group,
- constructor: function ( level ) {
- this.callBase();
- this.level = level;
- },
- getPathNodes: function() {
- return this.getItems();
- },
- render: function( stream, x, yMiddle ) {
- this.clear();
- if(!stream) {
- return;
- }
- var yStart, i, y, node, data, text, pBox;
- yStart = yMiddle - ( rHeight + rMargin ) * (stream.length - 1) / 2;
- for(i = 0, y = yStart; i < stream.length; i++, y += rHeight + rMargin) {
- data = stream[ i ];
- node = new PathNode( x, y, rWidth, rHeight, data, this.level === 0 );
- this.addShape( node );
- node.on('click', this.onNodeClick.bind(this));
- }
- },
- onNodeClick: function( e ) {
- var node = e.targetShape;
- while( false === (node instanceof PathNode)) {
- node = node.container;
- }
- if( this.selected != node ) {
- this.select(node);
- } else {
- this.select(null);
- }
- },
- select: function(node) {
- if(this.level === 0 && node === null) {
- return;
- }
- if(typeof(node) === 'number') {
- node = this.getItem(node);
- }
- var last = this.selected;
- if(this.selected) {
- this.selected.unselect();
- }
- this.selected = node;
- if(node) {
- node.select();
- this.levelWord = node.data.word;
- }
- this.trigger('selected', {
- level: this.level,
- levelContainer: this,
- pathNode: node,
- lastPathNode: last
- });
- },
- getSelected: function() {
- return this.selected;
- }
- } );
- LevelContainer.RECT_SIZE = {
- width: rWidth,
- height: rHeight
- };
- return LevelContainer;
- } );
|