Commit cddde595 authored by Akikonata's avatar Akikonata

layout style switch

parent fcb507ae
...@@ -17,6 +17,14 @@ ...@@ -17,6 +17,14 @@
<script> <script>
minder = KM.createMinder(kityminder); minder = KM.createMinder(kityminder);
//minder.execCommand("switchlayout","green"); //minder.execCommand("switchlayout","green");
//minder.execCommand("appendchildnode",new MinderNode("test")); minder.execCommand("appendchildnode",new MinderNode("test1"));
minder.execCommand("appendsiblingnode",new MinderNode("test2"));
minder.execCommand("appendchildnode",new MinderNode("test3"));
minder.execCommand("appendsiblingnode",new MinderNode("test4"));
minder.execCommand("appendchildnode",new MinderNode("test5"));
minder.execCommand("appendsiblingnode",new MinderNode("test6"));
minder.execCommand("appendchildnode",new MinderNode("test7"));
minder.execCommand("appendsiblingnode",new MinderNode("test8"));
//minder.execCommand("switchlayout","green");
</script> </script>
</html> </html>
\ No newline at end of file
...@@ -247,6 +247,7 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -247,6 +247,7 @@ KityMinder.registerModule( "LayoutDefault", function () {
} else { } else {
for ( var i = 0; i < nodeChildren.length; i++ ) { for ( var i = 0; i < nodeChildren.length; i++ ) {
var childrenLayout1 = nodeChildren[ i ].getData( "layout" ); var childrenLayout1 = nodeChildren[ i ].getData( "layout" );
if ( !childrenLayout1.shape ) break;
var childBranchHeight = childrenLayout1.branchheight; var childBranchHeight = childrenLayout1.branchheight;
childrenLayout1.y = sY + marginTop + childBranchHeight / 2; childrenLayout1.y = sY + marginTop + childBranchHeight / 2;
sY += childBranchHeight; sY += childBranchHeight;
...@@ -263,7 +264,8 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -263,7 +264,8 @@ KityMinder.registerModule( "LayoutDefault", function () {
var nodeLayout = node.getData( "layout" ); var nodeLayout = node.getData( "layout" );
var children = nodeLayout[ appendside + "List" ] || node.getChildren(); var children = nodeLayout[ appendside + "List" ] || node.getChildren();
for ( var i = 0; i < children.length; i++ ) { for ( var i = 0; i < children.length; i++ ) {
sum += children[ i ].getData( "layout" ).branchheight; var childLayout = children[ i ].getData( "layout" );
if ( childLayout.shape ) sum += childLayout.branchheight;
} }
return sum; return sum;
}; };
...@@ -398,6 +400,7 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -398,6 +400,7 @@ KityMinder.registerModule( "LayoutDefault", function () {
while ( _buffer.length !== 0 ) { while ( _buffer.length !== 0 ) {
_buffer = _buffer.concat( _buffer[ 0 ].getChildren() ); _buffer = _buffer.concat( _buffer[ 0 ].getChildren() );
var prt = _buffer[ 0 ].getParent(); var prt = _buffer[ 0 ].getParent();
_buffer[ 0 ].children = [];
this.appendChildNode( prt, _buffer[ 0 ] ); this.appendChildNode( prt, _buffer[ 0 ] );
_buffer.shift(); _buffer.shift();
} }
......
...@@ -247,6 +247,7 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -247,6 +247,7 @@ KityMinder.registerModule( "LayoutGreen", function () {
} else { } else {
for ( var i = 0; i < nodeChildren.length; i++ ) { for ( var i = 0; i < nodeChildren.length; i++ ) {
var childrenLayout1 = nodeChildren[ i ].getData( "layout" ); var childrenLayout1 = nodeChildren[ i ].getData( "layout" );
if ( !childrenLayout1.shape ) break;
var childBranchHeight = childrenLayout1.branchheight; var childBranchHeight = childrenLayout1.branchheight;
childrenLayout1.y = sY + marginTop + childBranchHeight / 2; childrenLayout1.y = sY + marginTop + childBranchHeight / 2;
sY += childBranchHeight; sY += childBranchHeight;
...@@ -263,7 +264,8 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -263,7 +264,8 @@ KityMinder.registerModule( "LayoutGreen", function () {
var nodeLayout = node.getData( "layout" ); var nodeLayout = node.getData( "layout" );
var children = nodeLayout[ appendside + "List" ] || node.getChildren(); var children = nodeLayout[ appendside + "List" ] || node.getChildren();
for ( var i = 0; i < children.length; i++ ) { for ( var i = 0; i < children.length; i++ ) {
sum += children[ i ].getData( "layout" ).branchheight; var childLayout = children[ i ].getData( "layout" );
if ( childLayout.shape ) sum += childLayout.branchheight;
} }
return sum; return sum;
}; };
...@@ -286,8 +288,7 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -286,8 +288,7 @@ KityMinder.registerModule( "LayoutGreen", function () {
prt = prt.getParent(); prt = prt.getParent();
} while ( prt ); } while ( prt );
//遍历 //遍历
var effectRange = [ root ]; var _buffer = [ root ];
var _buffer = effectRange;
while ( _buffer.length !== 0 ) { while ( _buffer.length !== 0 ) {
_buffer = _buffer.concat( countY( _buffer[ 0 ], appendside ) ); _buffer = _buffer.concat( countY( _buffer[ 0 ], appendside ) );
effectSet.push( _buffer[ 0 ] ); effectSet.push( _buffer[ 0 ] );
...@@ -299,9 +300,10 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -299,9 +300,10 @@ KityMinder.registerModule( "LayoutGreen", function () {
//以某个节点为seed对水平方向进行调整(包括调整子树) //以某个节点为seed对水平方向进行调整(包括调整子树)
var updateLayoutHorizon = function ( node ) { var updateLayoutHorizon = function ( node ) {
var nodeLayout = node.getData( "layout" );
var effectSet = [ node ]; //返回受影响(即需要进行下一步translate的节点) var effectSet = [ node ]; //返回受影响(即需要进行下一步translate的节点)
var parent = node.getParent(); var parent = node.getParent();
var appendside = node.getData( "appendside" ); var appendside = nodeLayout.appendside;
var selfWidth = node.getRenderContainer().getWidth(); var selfWidth = node.getRenderContainer().getWidth();
var countX = function ( n ) { var countX = function ( n ) {
...@@ -333,13 +335,13 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -333,13 +335,13 @@ KityMinder.registerModule( "LayoutGreen", function () {
countX( node ); countX( node );
} }
//判断是否存在已绘制的孩子并对孩子位置进行调整(用于外部调用renderNode,如文本编时) //判断是否存在已绘制的孩子并对孩子位置进行调整(用于外部调用renderNode,如文本编时)
var _buffer = node.getChildren(); // var _buffer = node.getChildren();
while ( _buffer.length !== 0 ) { // while ( _buffer.length !== 0 ) {
countX( _buffer[ 0 ] ); // countX( _buffer[ 0 ] );
effectSet.push( _buffer[ 0 ] ); // effectSet.push( _buffer[ 0 ] );
_buffer = _buffer.concat( _buffer[ 0 ].getChildren() ); // _buffer = _buffer.concat( _buffer[ 0 ].getChildren() );
_buffer.shift(); // _buffer.shift();
} // }
return effectSet; return effectSet;
}; };
...@@ -361,7 +363,6 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -361,7 +363,6 @@ KityMinder.registerModule( "LayoutGreen", function () {
nodeShape.setTransform( new kity.Matrix().translate( Layout.x, Layout.y - _rectHeight / 2 ) ); nodeShape.setTransform( new kity.Matrix().translate( Layout.x, Layout.y - _rectHeight / 2 ) );
break; break;
} }
updateConnect( minder, node );
}; };
var _style = { var _style = {
renderNode: function ( node ) { renderNode: function ( node ) {
...@@ -399,6 +400,7 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -399,6 +400,7 @@ KityMinder.registerModule( "LayoutGreen", function () {
while ( _buffer.length !== 0 ) { while ( _buffer.length !== 0 ) {
_buffer = _buffer.concat( _buffer[ 0 ].getChildren() ); _buffer = _buffer.concat( _buffer[ 0 ].getChildren() );
var prt = _buffer[ 0 ].getParent(); var prt = _buffer[ 0 ].getParent();
_buffer[ 0 ].children = [];
this.appendChildNode( prt, _buffer[ 0 ] ); this.appendChildNode( prt, _buffer[ 0 ] );
_buffer.shift(); _buffer.shift();
} }
...@@ -411,8 +413,8 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -411,8 +413,8 @@ KityMinder.registerModule( "LayoutGreen", function () {
if ( parent.getChildren().indexOf( node ) === -1 ) { if ( parent.getChildren().indexOf( node ) === -1 ) {
if ( !index ) parent.appendChild( node ); if ( !index ) parent.appendChild( node );
else parent.insertChild( node, index ); else parent.insertChild( node, index );
minder.handelNodeInsert( node );
} }
minder.handelNodeInsert( node );
if ( parent === root ) { if ( parent === root ) {
var leftList = parentLayout.leftList; var leftList = parentLayout.leftList;
var rightList = parentLayout.rightList; var rightList = parentLayout.rightList;
...@@ -437,6 +439,7 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -437,6 +439,7 @@ KityMinder.registerModule( "LayoutGreen", function () {
} else { } else {
Layout.align = "left"; Layout.align = "left";
} }
drawNode( node ); drawNode( node );
var set1 = updateLayoutVertical( node, parent, "append" ); var set1 = updateLayoutVertical( node, parent, "append" );
var set2 = updateLayoutHorizon( node ); var set2 = updateLayoutHorizon( node );
...@@ -453,6 +456,10 @@ KityMinder.registerModule( "LayoutGreen", function () { ...@@ -453,6 +456,10 @@ KityMinder.registerModule( "LayoutGreen", function () {
}, },
appendSiblingNode: function ( sibling, node ) { appendSiblingNode: function ( sibling, node ) {
var siblingLayout = sibling.getData( "layout" ); var siblingLayout = sibling.getData( "layout" );
console.log( sibling );
if ( !node.getData( "layout" ) ) {
node.setData( "layout", {} );
}
var Layout = node.getData( "layout" ); var Layout = node.getData( "layout" );
var parent = sibling.getParent(); var parent = sibling.getParent();
var index = sibling.getIndex() + 1; var index = sibling.getIndex() + 1;
......
...@@ -17,6 +17,8 @@ KityMinder.registerModule( "LayoutModule", function () { ...@@ -17,6 +17,8 @@ KityMinder.registerModule( "LayoutModule", function () {
return this.getData( 'layout' )[ k ]; return this.getData( 'layout' )[ k ];
}, },
clearLayout: function () { clearLayout: function () {
var nLayout = this.getData( 'layout' );
if ( nLayout && nLayout.connect ) nLayout.connect.remove();
this.setData( 'layout', {} ); this.setData( 'layout', {} );
this.getRenderContainer().clear(); this.getRenderContainer().clear();
} }
......
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