Commit 2bbb3cde authored by Akikonata's avatar Akikonata

fixed bug

parent ebb2c77e
......@@ -3,30 +3,35 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
this.parent = null;
this.children = [];
this.data = {};
if ( utils.isString( options ) ) {
this.setData( 'text', options )
if ( Utils.isString( options ) ) {
this.setData( 'text', options );
} else {
this.setData( options );
}
this.rc = new kity.Group();
this.rc.minderNode = this;
},
setPoint:function(x,y){
this.setData('point',{
x:x,y:y
})
setPoint: function ( x, y ) {
if ( arguments.length === 0 ) {
this.setData( 'point', null );
} else {
this.setData( 'point', {
x: x,
y: y
} );
}
},
getPoint:function(){
return this.getData('point')
getPoint: function () {
return this.getData( 'point' );
},
setText: function ( text ) {
this.setData( 'text', text )
this.setData( 'text', text );
},
getText: function () {
return this.getData( 'text' )
return this.getData( 'text' );
},
isRoot: function () {
return this.getParent() == null ? true : false;
return this.getParent() === null ? true : false;
},
getParent: function () {
return this.parent;
......@@ -89,17 +94,7 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
node.root = parent.root;
this.children.splice( index, 0, node );
// this.handelInsert( node );
},
//
// handelInsert: function ( node ) {
// var root = this.getRoot();
// if ( root.tnh ) {
// root.tnh.handelNodeInsert.call( root.tnh, node );
// }
// },
appendChild: function ( node ) {
return this.insertChild( node );
},
......@@ -117,25 +112,17 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
if ( index >= 0 ) {
removed = this.children.splice( index, 1 )[ 0 ];
removed.parent = null;
// this.handelRemove( removed );
}
},
// handelRemove: function ( node ) {
// var root = this.getRoot();
// if ( root.tnh ) {
// root.tnh.handelNodeRemove.call( root.tnh, node );
// }
// },
getChild: function ( index ) {
return this.children[ index ];
},
getFirstChild: function () {
return this.children[ 0 ]
return this.children[ 0 ];
},
getLastChild: function () {
return this.children[ this.children.length - 1 ]
return this.children[ this.children.length - 1 ];
},
getData: function ( name ) {
if ( name === undefined ) {
......@@ -145,17 +132,17 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
},
setData: function ( name, value ) {
if(name === undefined){
this.data = {}
}else if(utils.isObject(name)){
utils.extend(this.data,name)
}else{
if(value === undefined){
this.data[name] = null;
delete this.data[name]
}else{
this.data[name] = value;
if ( name === undefined ) {
this.data = {};
} else if ( Utils.isObject( name ) ) {
Utils.extend( this.data, name );
} else {
if ( value === undefined ) {
this.data[ name ] = null;
delete this.data[ name ];
} else {
this.data[ name ] = value;
}
}
},
......@@ -164,13 +151,13 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
},
getCommonAncestor: function ( node ) {
if ( this === node ) {
return this.parent
return this.parent;
}
if ( this.contains( node ) ) {
return this
return this;
}
if ( node.contains( this ) ) {
return node
return node;
}
var parent = this.parent;
while ( !parent.contains( node ) ) {
......@@ -186,44 +173,44 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
return true;
}
var isContain = false;
utils.each( this.getChildren(), function ( i, n ) {
Utils.each( this.getChildren(), function ( i, n ) {
isContain = n.contains( node );
if ( isContain === true ) {
return false
return false;
}
} );
return isContain;
},
clone:function(){
function cloneNode(parent,isClonedNode){
clone: function () {
function cloneNode( parent, isClonedNode ) {
var _tmp = new KM.MinderNode();
_tmp.data = utils.clonePlainObject(isClonedNode.getData());
_tmp.data = Utils.clonePlainObject( isClonedNode.getData() );
_tmp.parent = parent;
if(parent){
parent.children.push(_tmp);
if ( parent ) {
parent.children.push( _tmp );
}
for(var i= 0,ci;ci=isClonedNode.children[i++];){
cloneNode(_tmp,ci);
for ( var i = 0, ci; ci = isClonedNode.children[ i++ ]; ) {
cloneNode( _tmp, ci );
}
return _tmp;
}
return function(){
return cloneNode(null,this);
return function () {
return cloneNode( null, this );
}
}(),
equals:function(node){
if(node.children.length != this.children.length){
equals: function ( node ) {
if ( node.children.length != this.children.length ) {
return false;
}
if(utils.compareObject(node.getData(),this.getData()) === false){
if ( utils.compareObject( node.getData(), this.getData() ) === false ) {
return false;
}
for(var i= 0,ci;ci=this.children[i++];){
if(ci.equals(node)===false){
for ( var i = 0, ci; ci = this.children[ i++ ]; ) {
if ( ci.equals( node ) === false ) {
return false;
}
}
......
......@@ -345,8 +345,14 @@ KityMinder.registerModule( "LayoutDefault", function () {
//调整node的位置
var translateNode = function ( node ) {
var Layout = node.getData( "layout" );
var nodeShape = node.getRenderContainer();
// var nodePoint = node.getPoint();
// console.log( nodePoint );
// if ( nodePoint ) {
// nodeShape.setTransform( new kity.Matrix().translate( nodePoint.x, nodePoint.y ) );
// return false;
// }
var Layout = node.getData( "layout" );
var align = Layout.align;
var _rectHeight = nodeShape.getHeight();
var _rectWidth = nodeShape.getWidth();
......@@ -361,6 +367,7 @@ KityMinder.registerModule( "LayoutDefault", function () {
nodeShape.setTransform( new kity.Matrix().translate( Layout.x, Layout.y - _rectHeight / 2 ) );
break;
}
return true;
};
var _style = {
renderNode: function ( node ) {
......@@ -393,12 +400,28 @@ KityMinder.registerModule( "LayoutDefault", function () {
var _rootRenderContainer = _root.getRenderContainer();
var rootHeight = _rootRenderContainer.getHeight();
Layout.leftHeight = Layout.rightHeight = rootHeight;
drawNode( _root );
translateNode( _root );
//如果是从其他style切过来的,需要重新布局
var box = _root.getRenderContainer().getRenderBox();
var _buffer = _root.getChildren();
_root.setPoint( box.x, box.y );
if ( _buffer.length !== 0 ) {
for ( var i = 0; i < _buffer.length; i++ ) {
var point = _buffer[ i ].getPoint();
if ( point ) {
if ( point.x > Layout.x ) {
Layout.rightList.push( _buffer[ i ] );
} else {
Layout.leftList.push( _buffer[ i ] );
}
} else {
break;
}
}
}
//如果是从其他style切过来的,需要重新布局
while ( _buffer.length !== 0 ) {
_buffer = _buffer.concat( _buffer[ 0 ].getChildren() );
var prt = _buffer[ 0 ].getParent();
......@@ -432,11 +455,17 @@ KityMinder.registerModule( "LayoutDefault", function () {
}
Layout.appendside = aside;
}
parentLayout.appendside = aside;
parentLayout[ aside + "List" ].push( node );
if ( leftList.indexOf( node ) !== -1 ) {
Layout.appendside = "left";
} else if ( rightList.indexOf( node ) !== -1 ) {
Layout.appendside = "right";
} else {
parentLayout.appendside = aside;
parentLayout[ aside + "List" ].push( node );
}
}
var appendside = parentLayout.appendside;
var appendside = Layout.appendside || parentLayout.appendside;
Layout.appendside = appendside;
if ( appendside === "left" ) {
Layout.align = "right";
......@@ -450,6 +479,8 @@ KityMinder.registerModule( "LayoutDefault", function () {
var set = uSet( set1, set2 );
for ( var i = 0; i < set.length; i++ ) {
translateNode( set[ i ] );
var box = set[ i ].getRenderContainer().getRenderBox();
set[ i ].setPoint( box.x, box.y );
}
},
updateLayout: function ( node ) {
......
......@@ -67,6 +67,7 @@ KityMinder.registerModule( "LayoutModule", function () {
km.getRenderContainer().clear().addShape( _root.getRenderContainer().clear() );
_root.preTraverse( function ( n ) {
n.clearLayout();
n.setPoint();
} );
km.setCurrentStyle( style );
km.initStyle();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment