Commit acb7dc6c authored by campaign's avatar campaign

by zhanyi

parent b4f540a6
......@@ -84,7 +84,7 @@ kity.extendClass( Minder, {
result = command.execute.apply( command, [ me ].concat( cmdArgs ) );
this._fire( new MinderEvent( name.toLowerCase(), eventParams, false ) );
this._fire( new MinderEvent( "command", eventParams, false ) );
}
......
This diff is collapsed.
......@@ -25,11 +25,13 @@ KityMinder.registerModule( "TextEditModule", function () {
receiver.setCursor(cursor)
.setKityMinder(this)
.setMinderNode(e.getTargetNode())
.setTextShape(targetShape)
.setCursorHeight()
.setCurrentIndex(position)
.updateCursor()
.setRange(range)
.setRange(range);
}
},
......
......@@ -52,12 +52,23 @@ Minder.Receiver = kity.createClass('Receiver',{
paper.addShape(this.textShape);
return this;
},
setKityMinder:function(km){
this.km = km;
return this;
},
setMinderNode:function(node){
this.minderNode = node;
return this;
},
keyboardEvents : function(e){
clearTimeout(this.timer);
var me = this;
switch(e.type){
case 'keyup':
this.textShape.setContent((this.container.textContent || this.container.innerText).replace(/\u200b/g,''));
var text = (this.container.textContent || this.container.innerText).replace(/\u200b/g,'');
this.textShape.setContent(text);
this.minderNode.setData('text',text);
this.km.execCommand('renderNode',this.minderNode);
this.updateTextData();
this.updateCursor();
this.timer = setTimeout(function(){
......
......@@ -60,14 +60,12 @@ KityMinder.registerModule( "LayoutModule", function () {
var part2 = ( children[ j + 1 ] ? ( children[ j + 1 ].getData( "branchheight" ) - 10 ) / 2 : 0 );
sY += ( part1 + part2 );
}
km.fire( "rendernode", {
nodes: children,
rerender: false
} );
km.execCommand( "rendernode", children );
}
}
};
var setX = function ( node ) {
var parent = node.getParent();
if ( !parent ) return false;
......@@ -172,10 +170,7 @@ KityMinder.registerModule( "LayoutModule", function () {
reAnalyze( km, layerArray, appendSide );
} else {
_node.setData( "y", _node.getParent().getData( "y" ) );
km.fire( "rendernode", {
nodes: _node,
rerender: false
} );
km.execCommand( "rendernode", _node );
}
return _node;
};
......@@ -253,33 +248,7 @@ KityMinder.registerModule( "LayoutModule", function () {
},
"events": {
"contentupdate": function ( e ) {
var me = this;
updateNode( me, e.node );
},
"noderendercomplete": function ( e ) {
if ( !e.rerender ) return false;
var parent = e.node;
var nodes = [];
parent.preTraverse( function ( node ) {
var prt = node.getParent();
if ( !prt ) return false;
var parentWidth = prt.getData( "width" );
var parentX = prt.getData( "x" );
if ( parent.getData( "align" ) === "center" ) parentWidth = parentWidth / 2;
if ( parent.getData( "appendside" ) === "left" ) {
node.setData( "x", parentX - parentWidth - 50 );
} else {
node.setData( "x", parentX + parentWidth + 50 );
}
nodes.push( node );
} );
this.fire( "rendernode", {
nodes: nodes,
rerender: false
} );
}
}
};
} );
\ No newline at end of file
KityMinder.registerModule( "RenderModule", function () {
var MinderNodeShape = kity.createClass( "MinderNodeShape", ( function () {
return {
constructor: function ( container ) {
this.rect = new kity.Rect();
this.text = new kity.Text();
this.shape = new kity.Group();
this.shape.addShapes( [ this.rect, this.text ] );
container.addShape( this.shape, "nodeShape" );
},
highlight: function () {
this.rect.stroke( new kity.Pen( "white", 3 ) );
},
unhighlight: function () {
this.rect.stroke( this.NormalInfo );
}
};
} )() );
var renderNode = function ( km, node ) {
console.log( km, node );
var styledefault = {
radius: 10,
fill: "yellow",
stroke: "orange",
color: "black",
padding: [ 5, 10, 5, 10 ],
fontSize: 20,
};
var kR = node.getRenderContainer();
var nodeShape = kR.nodeShape = kR.nodeShape || new MinderNodeShape( kR );
var nd = JSON.parse( JSON.stringify( styledefault ) );
var nodeD = Utils.extend( nd, node.getData( "style" ) );
node.setData( "style", nodeD );
var _style = nodeD;
nodeShape.text
.setContent( node.getData( "text" ) || "Node" )
.setSize( nodeD.fontSize )
.fill( nodeD.color );
var txtWidth = nodeShape.text.getWidth();
var txtHeight = nodeShape.text.getHeight();
var _padding = _style.padding;
var RenderNodeCommand = kity.createClass( "RenderNodeCommand", ( function () {
var MinderNodeShape = kity.createClass( "MinderNodeShape", ( function () {
return {
constructor: function ( container ) {
this.rect = new kity.Rect();
this.text = new kity.Text();
this.shape = new kity.Group();
this.shape.addShapes( [ this.rect, this.text ] );
container.addShape( this.shape, "nodeShape" );
},
highlight: function () {
this.rect.stroke( new kity.Pen( "white", 3 ) );
},
unhighlight: function () {
this.rect.stroke( this.NormalInfo );
}
};
} )() );
var renderNode = function ( km, node ) {
var _rectWidth = txtWidth + _padding[ 1 ] + _padding[ 3 ];
var _rectHeight = txtHeight + _padding[ 0 ] + _padding[ 2 ];
node.setData( "width", _rectWidth );
node.setData( "height", _rectHeight );
nodeShape.text
.setX( _padding[ 3 ] ).setY( _padding[ 0 ] + txtHeight );
var styledefault = {
radius: 10,
fill: "yellow",
stroke: "orange",
color: "black",
padding: [ 5, 10, 5, 10 ],
fontSize: 20,
};
var kR = node.getRenderContainer();
var nodeShape = kR.nodeShape = kR.nodeShape || new MinderNodeShape( kR );
var nd = JSON.parse( JSON.stringify( styledefault ) );
var nodeD = Utils.extend( nd, node.getData( "style" ) );
node.setData( "style", nodeD );
var _style = nodeD;
nodeShape.text
.setContent( node.getData( "text" ) || "Node" )
.setSize( nodeD.fontSize )
.fill( nodeD.color );
var txtWidth = nodeShape.text.getWidth();
var txtHeight = nodeShape.text.getHeight();
var _padding = _style.padding;
nodeShape.NormalInfo = new kity.Pen( _style.stroke, _style.strokeWidth );
nodeShape.rect.setWidth( _rectWidth ).setHeight( _rectHeight ).stroke( nodeShape.NormalInfo ).fill( _style.fill ).setRadius( _style.radius );
switch ( node.getData( "align" ) ) {
case "center":
nodeShape.shape.setTransform( new kity.Matrix().translate( node.getData( "x" ) - _rectWidth / 2, node.getData( "y" ) - _rectHeight / 2 ) );
break;
case "right":
nodeShape.shape.setTransform( new kity.Matrix().translate( node.getData( "x" ) - _rectWidth, node.getData( "y" ) - _rectHeight / 2 ) );
break;
default:
nodeShape.shape.setTransform( new kity.Matrix().translate( node.getData( "x" ), node.getData( "y" ) - _rectHeight / 2 ) );
break;
}
var _rectWidth = txtWidth + _padding[ 1 ] + _padding[ 3 ];
var _rectHeight = txtHeight + _padding[ 0 ] + _padding[ 2 ];
nodeShape.text
.setX( _padding[ 3 ] ).setY( _padding[ 0 ] + txtHeight );
if ( km.isNodeSelected( node ) ) {
nodeShape.highlight();
}
};
var renderNodes = function ( km, node ) {
if ( node instanceof Array ) {
if ( node.length === 0 ) return false;
for ( var i = 0; i < node.length; i++ ) {
renderNode( km, node[ i ] );
nodeShape.NormalInfo = new kity.Pen( _style.stroke, _style.strokeWidth );
nodeShape.rect.setWidth( _rectWidth ).setHeight( _rectHeight ).stroke( nodeShape.NormalInfo ).fill( _style.fill ).setRadius( _style.radius );
switch ( node.getData( "align" ) ) {
case "center":
nodeShape.shape.setTransform( new kity.Matrix().translate( node.getData( "x" ) - _rectWidth / 2, node.getData( "y" ) - _rectHeight / 2 ) );
break;
case "right":
nodeShape.shape.setTransform( new kity.Matrix().translate( node.getData( "x" ) - _rectWidth, node.getData( "y" ) - _rectHeight / 2 ) );
break;
default:
nodeShape.shape.setTransform( new kity.Matrix().translate( node.getData( "x" ), node.getData( "y" ) - _rectHeight / 2 ) );
break;
}
return false;
} else {
renderNode( km, node );
return true;
}
};
var RenderNodeCommand = kity.createClass( "RenderNodeCommand", ( function () {
if ( km.isNodeSelected( node ) ) {
nodeShape.highlight();
}
};
var renderNodes = function ( km, node ) {
if ( node instanceof Array ) {
if ( node.length === 0 ) return false;
for ( var i = 0; i < node.length; i++ ) {
renderNode( km, node[ i ] );
}
} else {
renderNode( km, node );
}
};
return {
base: Command,
execute: renderNodes
......@@ -100,16 +96,6 @@ KityMinder.registerModule( "RenderModule", function () {
},
"keydown keyup": function ( e ) {
},
"rendernode": function ( e ) {
var nodes = e.nodes;
var rerender = e.rerender;
renderNodes( this, nodes );
this.fire( "noderendercomplete", {
node: nodes,
rerender: rerender
} );
}
}
};
......
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