Commit 5699f69c authored by techird's avatar techird

Merge branch 'dev' of https://github.com/kitygraph/kityminder into dev

parents 083a7f97 4d55616b
...@@ -227,7 +227,7 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", { ...@@ -227,7 +227,7 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
}, },
clone: function () { clone: function () {
function cloneNode( parent, isClonedNode ) { function cloneNode( parent, isClonedNode ) {
var _tmp = new KM.MinderNode(isClonedNode.getText()); var _tmp = new KM.MinderNode( isClonedNode.getText() );
_tmp.data = Utils.clonePlainObject( isClonedNode.getData() ); _tmp.data = Utils.clonePlainObject( isClonedNode.getData() );
_tmp.parent = parent; _tmp.parent = parent;
...@@ -266,5 +266,8 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", { ...@@ -266,5 +266,8 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
}, },
isSelected: function () { isSelected: function () {
return this.getData( 'highlight' ) === true; return this.getData( 'highlight' ) === true;
},
clearChildren: function () {
this.children = [];
} }
} ); } );
\ No newline at end of file
KityMinder.registerModule( "fontmodule", function () { KityMinder.registerModule( "fontmodule", function () {
return { return {
defaultOptions:{ defaultOptions: {
'fontfamily': [ 'fontfamily': [ {
{ name: 'songti', val: '宋体,SimSun'}, name: 'songti',
{ name: 'yahei', val: '微软雅黑,Microsoft YaHei'}, val: '宋体,SimSun'
{ name: 'kaiti', val: '楷体,楷体_GB2312, SimKai'}, }, {
{ name: 'heiti', val: '黑体, SimHei'}, name: 'yahei',
{ name: 'lishu', val: '隶书, SimLi'}, val: '微软雅黑,Microsoft YaHei'
{ name: 'andaleMono', val: 'andale mono'}, }, {
{ name: 'arial', val: 'arial, helvetica,sans-serif'}, name: 'kaiti',
{ name: 'arialBlack', val: 'arial black,avant garde'}, val: '楷体,楷体_GB2312, SimKai'
{ name: 'comicSansMs', val: 'comic sans ms'}, }, {
{ name: 'impact', val: 'impact,chicago'}, name: 'heiti',
{ name: 'timesNewRoman', val: 'times new roman'}, val: '黑体, SimHei'
{ name: 'sans-serif',val:'sans-serif'} }, {
], name: 'lishu',
'fontsize': [10, 12, 16, 18,24, 32,48] val: '隶书, SimLi'
}, {
name: 'andaleMono',
val: 'andale mono'
}, {
name: 'arial',
val: 'arial, helvetica,sans-serif'
}, {
name: 'arialBlack',
val: 'arial black,avant garde'
}, {
name: 'comicSansMs',
val: 'comic sans ms'
}, {
name: 'impact',
val: 'impact,chicago'
}, {
name: 'timesNewRoman',
val: 'times new roman'
}, {
name: 'sans-serif',
val: 'sans-serif'
} ],
'fontsize': [ 10, 12, 16, 18, 24, 32, 48 ]
}, },
"commands": { "commands": {
"forecolor": kity.createClass( "fontcolorCommand", { "forecolor": kity.createClass( "fontcolorCommand", {
...@@ -39,7 +62,7 @@ KityMinder.registerModule( "fontmodule", function () { ...@@ -39,7 +62,7 @@ KityMinder.registerModule( "fontmodule", function () {
utils.each( nodes, function ( i, n ) { utils.each( nodes, function ( i, n ) {
n.setData( 'fontfamily', family ); n.setData( 'fontfamily', family );
n.getTextShape().setAttr( 'font-family', family ); n.getTextShape().setAttr( 'font-family', family );
km.updateLayout(n) km.updateLayout( n )
} ) } )
} }
} ), } ),
...@@ -50,8 +73,8 @@ KityMinder.registerModule( "fontmodule", function () { ...@@ -50,8 +73,8 @@ KityMinder.registerModule( "fontmodule", function () {
var nodes = km.getSelectedNodes(); var nodes = km.getSelectedNodes();
utils.each( nodes, function ( i, n ) { utils.each( nodes, function ( i, n ) {
n.setData( 'fontsize', size ); n.setData( 'fontsize', size );
n.getTextShape().setSize(size); n.getTextShape().setSize( size );
km.updateLayout(n) km.updateLayout( n )
} ) } )
} }
} ) } )
......
...@@ -27,7 +27,6 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -27,7 +27,6 @@ KityMinder.registerModule( "LayoutDefault", function () {
dec.stroke( "gray" ); dec.stroke( "gray" );
minder.getRenderContainer().addShape( iconShape ); minder.getRenderContainer().addShape( iconShape );
iconShape.addShapes( [ circle, plus, dec ] ); iconShape.addShapes( [ circle, plus, dec ] );
node.setData( "shicon", this );
this.update(); this.update();
this.switchState(); this.switchState();
}, },
...@@ -107,15 +106,13 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -107,15 +106,13 @@ KityMinder.registerModule( "LayoutDefault", function () {
switch ( node.getType() ) { switch ( node.getType() ) {
case "root": case "root":
case "main": case "main":
if ( !Layout.bgRect ) { node.getBgRc().clear().addShape( Layout.bgRect = new kity.Rect() );
node.getBgRc().addShape( Layout.bgRect = new kity.Rect() );
}
Layout.bgRect.fill( nodeStyle.fill ).setRadius( nodeStyle.radius ); Layout.bgRect.fill( nodeStyle.fill ).setRadius( nodeStyle.radius );
break; break;
case "sub": case "sub":
var underline = Layout.underline = new kity.Path(); var underline = Layout.underline = new kity.Path();
var highlightshape = Layout.highlightshape = new kity.Rect(); var highlightshape = Layout.highlightshape = new kity.Rect();
node.getBgRc().addShapes( [ highlightshape, underline ] ); node.getBgRc().clear().addShapes( [ highlightshape, underline ] );
break; break;
default: default:
break; break;
...@@ -153,7 +150,6 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -153,7 +150,6 @@ KityMinder.registerModule( "LayoutDefault", function () {
var _contWidth = contRc.getWidth(); var _contWidth = contRc.getWidth();
var _contHeight = contRc.getHeight(); var _contHeight = contRc.getHeight();
Layout.underline.getDrawer() Layout.underline.getDrawer()
.clear()
.moveTo( 0, _contHeight + nodeStyle.padding[ 2 ] + nodeStyle.padding[ 0 ] ) .moveTo( 0, _contHeight + nodeStyle.padding[ 2 ] + nodeStyle.padding[ 0 ] )
.lineTo( _contWidth + nodeStyle.padding[ 1 ] + nodeStyle.padding[ 3 ], _contHeight + nodeStyle.padding[ 2 ] + nodeStyle.padding[ 0 ] ); .lineTo( _contWidth + nodeStyle.padding[ 1 ] + nodeStyle.padding[ 3 ], _contHeight + nodeStyle.padding[ 2 ] + nodeStyle.padding[ 0 ] );
Layout.underline.stroke( nodeStyle.stroke ); Layout.underline.stroke( nodeStyle.stroke );
...@@ -208,7 +204,7 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -208,7 +204,7 @@ KityMinder.registerModule( "LayoutDefault", function () {
} else { } else {
if ( action === "append" || action === "contract" ) { if ( action === "append" || action === "contract" ) {
Layout.branchheight = node.getRenderContainer().getHeight() + nodeStyle.margin[ 0 ] + nodeStyle.margin[ 2 ]; Layout.branchheight = node.getRenderContainer().getHeight() + nodeStyle.margin[ 0 ] + nodeStyle.margin[ 2 ];
} else if ( action === "expand" || action === "change" ) { //展开 } else if ( action === "change" ) { //展开
Layout.branchheight = countBranchHeight( node ); Layout.branchheight = countBranchHeight( node );
} }
var parentLayout = parent.getData( "layout" ); var parentLayout = parent.getData( "layout" );
...@@ -293,6 +289,7 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -293,6 +289,7 @@ KityMinder.registerModule( "LayoutDefault", 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;
} }
node.setPoint( Layout.x, Layout.y );
}; };
var updateConnectAndshIcon = function ( node ) { var updateConnectAndshIcon = function ( node ) {
var nodeType = node.getType(); var nodeType = node.getType();
...@@ -430,11 +427,27 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -430,11 +427,27 @@ KityMinder.registerModule( "LayoutDefault", function () {
updateLayoutHorizon( _root ); updateLayoutHorizon( _root );
updateLayoutVertical( _root ); updateLayoutVertical( _root );
translateNode( _root ); translateNode( _root );
console.log( _root );
var _buffer = [ _root ];
var _cleanbuffer = [];
//打散结构
while ( _buffer.length !== 0 ) {
var children = _buffer[ 0 ].getChildren();
_buffer = _buffer.concat( children );
for ( var i = 0; i < children.length; i++ ) {
children[ i ].getData( "layout" ).parent = _buffer[ 0 ];
}
_buffer[ 0 ].clearChildren();
if ( _buffer[ 0 ] !== _root ) _cleanbuffer.push( _buffer[ 0 ] );
_buffer.shift();
}
//重组结构
for ( var j = 0; j < _cleanbuffer.length; j++ ) {
this.appendChildNode( _cleanbuffer[ j ].getData( "layout" ).parent, _cleanbuffer[ j ] );
}
}, },
appendChildNode: function ( parent, node, sibling ) { appendChildNode: function ( parent, node, sibling ) {
minder.handelNodeInsert( node ); minder.handelNodeInsert( node );
//设置align和appendside属性并在合适的位置插入节点
var insert = ( parent.getChildren().indexOf( node ) === -1 );
var Layout = node.getData( "layout" ); var Layout = node.getData( "layout" );
var parentLayout = parent.getData( "layout" ); var parentLayout = parent.getData( "layout" );
if ( sibling ) { if ( sibling ) {
...@@ -452,6 +465,17 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -452,6 +465,17 @@ KityMinder.registerModule( "LayoutDefault", function () {
var prtLayout = parent.getData( "layout" ); var prtLayout = parent.getData( "layout" );
Layout.appendside = prtLayout.appendside; Layout.appendside = prtLayout.appendside;
Layout.align = prtLayout.align; Layout.align = prtLayout.align;
parent.appendChild( node );
} else {
var nodeP = node.getPoint();
if ( nodeP && nodeP.x && nodeP.y ) {
if ( nodeP.x > parentLayout.x ) {
Layout.appendside = "right";
Layout.align = "left";
} else {
Layout.appendside = "left";
Layout.align = "right";
}
} else { } else {
if ( parentLayout.rightList.length > 1 && parentLayout.rightList.length > parentLayout.leftList.length ) { if ( parentLayout.rightList.length > 1 && parentLayout.rightList.length > parentLayout.leftList.length ) {
Layout.appendside = "left"; Layout.appendside = "left";
...@@ -461,15 +485,15 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -461,15 +485,15 @@ KityMinder.registerModule( "LayoutDefault", function () {
Layout.align = "left"; Layout.align = "left";
} }
} }
if ( insert ) {
if ( parent.getType() === "root" ) {
var sideList1 = parentLayout[ Layout.appendside + "List" ]; var sideList1 = parentLayout[ Layout.appendside + "List" ];
var idx1 = sideList1.length;
parent.insertChild( node, idx1 );
sideList1.push( node ); sideList1.push( node );
var idx1;
if ( Layout.appendside === "right" ) {
idx1 = sideList1.length;
} else { } else {
parent.insertChild( node ); idx1 = parent.getChildren().length;
} }
parent.insertChild( node, idx1 );
} }
} }
//设置分支类型 //设置分支类型
...@@ -539,12 +563,15 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -539,12 +563,15 @@ KityMinder.registerModule( "LayoutDefault", function () {
var isExpand = ico.icon.switchState(); var isExpand = ico.icon.switchState();
var node = ico.icon._node; var node = ico.icon._node;
var _buffer = node.getChildren(); var _buffer = node.getChildren();
var _cleanbuffer = [];
while ( _buffer.length !== 0 ) { while ( _buffer.length !== 0 ) {
var Layout = _buffer[ 0 ].getData( "layout" ); var Layout = _buffer[ 0 ].getData( "layout" );
if ( isExpand ) { if ( isExpand ) {
var parent = _buffer[ 0 ].getParent(); var parent = _buffer[ 0 ].getParent();
minder.appendChildNode( parent, _buffer[ 0 ] ); Layout.parent = parent;
_cleanbuffer.push( _buffer[ 0 ] );
//minder.appendChildNode( parent, _buffer[ 0 ] );
Layout.connect = null; Layout.connect = null;
Layout.shicon = null; Layout.shicon = null;
} else { } else {
...@@ -555,53 +582,21 @@ KityMinder.registerModule( "LayoutDefault", function () { ...@@ -555,53 +582,21 @@ KityMinder.registerModule( "LayoutDefault", function () {
_buffer = _buffer.concat( _buffer[ 0 ].getChildren() ); _buffer = _buffer.concat( _buffer[ 0 ].getChildren() );
_buffer.shift(); _buffer.shift();
} }
var set; if ( isExpand ) {
if ( isExpand ) set = updateLayoutVertical( node, node.getParent(), "expand" ); node.clearChildren();
else set = updateLayoutVertical( node, node.getParent(), "contract" ); for ( var j = 0; j < _cleanbuffer.length; j++ ) {
_cleanbuffer[ j ].clearChildren();
minder.appendChildNode( _cleanbuffer[ j ].getData( "layout" ).parent, _cleanbuffer[ j ] );
}
}
var set = [];
if ( !isExpand ) set = updateLayoutVertical( node, node.getParent(), "contract" );
for ( var i = 0; i < set.length; i++ ) { for ( var i = 0; i < set.length; i++ ) {
translateNode( set[ i ] ); translateNode( set[ i ] );
updateConnectAndshIcon( set[ i ] ); updateConnectAndshIcon( set[ i ] );
} }
} }
}; };
this.addLayoutStyle( "default", _style ); this.addLayoutStyle( "default", _style );
return { return {};
// "events": {
// "click": function ( e ) {
// var ico = e.kityEvent.targetShape.container;
// if ( ico.class === "shicon" ) {
// var isShow = ico.icon.switchState();
// var node = ico.icon._node;
// var _buffer;
// if ( isShow ) {
// _buffer = node.getChildren();
// while ( _buffer.length !== 0 ) {
// minder.appendChildNode( _buffer[ 0 ].getParent(), _buffer[ 0 ] );
// _buffer = _buffer.concat( _buffer[ 0 ].getChildren() );
// _buffer.shift();
// }
// } else {
// var Layout = node.getData( "layout" );
// var marginTop = Layout.margin[ 0 ];
// var marginBottom = Layout.margin[ 2 ];
// Layout.branchheight = node.getRenderContainer().getHeight() + marginTop + marginBottom;
// _buffer = node.getChildren();
// while ( _buffer.length !== 0 ) {
// try {
// _buffer[ 0 ].getData( "layout" ).shape.clear();
// _buffer[ 0 ].getRenderContainer().remove();
// } catch ( error ) {}
// _buffer = _buffer.concat( _buffer[ 0 ].getChildren() );
// _buffer.shift();
// }
// var set = updateLayoutVertical( node, node.getParent(), "append" );
// for ( var i = 0; i < set.length; i++ ) {
// translateNode( set[ i ] );
// }
// }
// }
// }
// }
};
} ); } );
\ No newline at end of file
...@@ -26,6 +26,10 @@ KityMinder.registerModule( "LayoutModule", function () { ...@@ -26,6 +26,10 @@ KityMinder.registerModule( "LayoutModule", function () {
initStyle: function () { initStyle: function () {
var curStyle = this.getCurrentStyle(); var curStyle = this.getCurrentStyle();
this.getRenderContainer().clear(); this.getRenderContainer().clear();
var _root = this.getRoot();
_root.preTraverse( function ( n ) {
n.clearLayout();
} );
this.getLayoutStyle( curStyle ).initStyle.call( this ); this.getLayoutStyle( curStyle ).initStyle.call( this );
}, },
appendChildNode: function ( parent, node, index ) { appendChildNode: function ( parent, node, index ) {
...@@ -79,7 +83,7 @@ KityMinder.registerModule( "LayoutModule", function () { ...@@ -79,7 +83,7 @@ KityMinder.registerModule( "LayoutModule", function () {
var switchLayout = function ( km, style ) { var switchLayout = function ( km, style ) {
var _root = km.getRoot(); var _root = km.getRoot();
_root.preTraverse( function ( n ) { _root.preTraverse( function ( n ) {
n.clearLayout(); //n.clearLayout();
n.setPoint(); n.setPoint();
n.getBgRc().clear(); n.getBgRc().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