Commit 552ab10f authored by campaign's avatar campaign

添加editor

parent 707f25e0
...@@ -40,6 +40,6 @@ var MinderEvent = kity.createClass( 'MindEvent', { ...@@ -40,6 +40,6 @@ var MinderEvent = kity.createClass( 'MindEvent', {
return this._canstop && this._immediatelyStoped; return this._canstop && this._immediatelyStoped;
}, },
preventDefault:function(){ preventDefault:function(){
e.originEvent.preventDefault(); this.originEvent.preventDefault();
} }
} ); } );
\ No newline at end of file
...@@ -13,7 +13,6 @@ kity.extendClass( Minder, { ...@@ -13,7 +13,6 @@ kity.extendClass( Minder, {
}, },
// TODO: mousemove lazy bind // TODO: mousemove lazy bind
_bindPaperEvents: function () { _bindPaperEvents: function () {
var minder = this;
this._paper.on( 'click mousedown mouseup mousemove touchstart touchmove touchend', this._firePharse.bind( this ) ); this._paper.on( 'click mousedown mouseup mousemove touchstart touchmove touchend', this._firePharse.bind( this ) );
}, },
_bindKeyboardEvents: function () { _bindKeyboardEvents: function () {
...@@ -30,8 +29,11 @@ kity.extendClass( Minder, { ...@@ -30,8 +29,11 @@ kity.extendClass( Minder, {
} }
preEvent = new MinderEvent( 'pre' + e.type, e, false ); preEvent = new MinderEvent( 'pre' + e.type, e, false );
executeEvent = new MinderEvent( e.type, e, false ); executeEvent = new MinderEvent( e.type, e, false );
this._fire( preEvent ); this._fire( preEvent );
this._fire( executeEvent ); this._fire( executeEvent );
this._fire(new MinderEvent('after' + e.type,e,false));
if ( ~'mousedown mouseup keydown keyup'.indexOf( e.type ) ) { if ( ~'mousedown mouseup keydown keyup'.indexOf( e.type ) ) {
this._interactChange( e ); this._interactChange( e );
} }
......
...@@ -65,7 +65,7 @@ kity.extendClass( Minder, function () { ...@@ -65,7 +65,7 @@ kity.extendClass( Minder, function () {
this._selectedNodes = nodes; this._selectedNodes = nodes;
}, },
isSingleSelect:function(){ isSingleSelect:function(){
return this.getSelectedNodes().length == 1 return this._selectedNodes.length == 1
} }
} }
}() ); }() );
\ No newline at end of file
...@@ -11,6 +11,12 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", { ...@@ -11,6 +11,12 @@ var MinderNode = KityMinder.MinderNode = kity.createClass( "MinderNode", {
this.rc = new kity.Group(); this.rc = new kity.Group();
this.rc.minderNode = this; this.rc.minderNode = this;
}, },
setText:function(text){
this.setData('text',text)
},
getText:function(){
return this.getData('text')
},
isRoot:function(){ isRoot:function(){
return this.getParent() == null ? true : false; return this.getParent() == null ? true : false;
}, },
......
...@@ -3,17 +3,22 @@ KityMinder.registerModule( "TextEditModule", function () { ...@@ -3,17 +3,22 @@ KityMinder.registerModule( "TextEditModule", function () {
var receiver = new Minder.Receiver(); var receiver = new Minder.Receiver();
var range = new Minder.Range(); var range = new Minder.Range();
this.getPaper().addShape(cursor);
return { return {
//插入光标
"init":function(){
this.getPaper().addShape(cursor);
},
"events": { "events": {
'mousedown':function(e){ 'aftermousedown':function(e){
if(this.isSingleSelect()){
var originEvent = e.originEvent; debugger
var targetShape = e.kityEvent.targetShape; var node = this.getSelectedNode();
var node_rc = node.getRenderContainer();
var position = e.getPosition(); var position = e.getPosition();
if(targetShape.getType() != 'Text'){ if(node_rc.getType() != 'Text'){
// var offset = e.getPosition(); var offset = e.getPosition();
// cursor.setShow().setPosition(offset); cursor.setShow().setPosition(offset);
// receiver.clear() // receiver.clear()
// .setTextShape() // .setTextShape()
// .setTextShapeSize(cursor.height) // .setTextShapeSize(cursor.height)
...@@ -21,22 +26,28 @@ KityMinder.registerModule( "TextEditModule", function () { ...@@ -21,22 +26,28 @@ KityMinder.registerModule( "TextEditModule", function () {
// .setPosition(position) // .setPosition(position)
// .setRange(range,0) // .setRange(range,0)
// .setCursor(cursor) // .setCursor(cursor)
}else{
receiver.setCursor(cursor) receiver.setCursor(cursor)
.setKityMinder(this) .setKityMinder(this)
.setMinderNode(e.getTargetNode()) .setMinderNode(node)
.setTextShape(targetShape) .setTextShape(node_rc)
.setCursorHeight() .setCursorHeight()
.setCurrentIndex(position) .setCurrentIndex(position)
.updateCursor() .updateCursor()
.setRange(range); .setRange(range,0);
}else{
// receiver.setCursor(cursor)
// .setKityMinder(this)
// .setMinderNode(e.getTargetNode())
// .setTextShape(node_rc)
// .setCursorHeight()
// .setCurrentIndex(position)
// .updateCursor()
// .setRange(range);
} }
}, }
'kbcreateandedit':function(){
receiver.clear()
} }
} }
......
...@@ -67,8 +67,9 @@ Minder.Receiver = kity.createClass('Receiver',{ ...@@ -67,8 +67,9 @@ Minder.Receiver = kity.createClass('Receiver',{
case 'keyup': case 'keyup':
var text = (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.textShape.setContent(text);
this.minderNode.setData('text',text); this.minderNode.setText(text);
this.km.execCommand('renderNode',this.minderNode); this.km.renderNode(this.minderNode);
this.updateTextData(); this.updateTextData();
this.updateCursor(); this.updateCursor();
this.timer = setTimeout(function(){ this.timer = setTimeout(function(){
......
...@@ -66,11 +66,12 @@ KityMinder.registerModule( "KeyboardModule", function () { ...@@ -66,11 +66,12 @@ KityMinder.registerModule( "KeyboardModule", function () {
case 13: case 13:
// Enter // Enter
this.execCommand('appendSiblingNode',new MinderNode('Topic')); this.execCommand('appendSiblingNode',new MinderNode('Topic'));
e.preventDefault();
break; break;
case 9: case 9:
// Tab // Tab
this.execCommand('appendChildNode',new MinderNode('Topic')); this.execCommand('appendChildNode',new MinderNode('Topic'));
e.preventDefault();
break; break;
case 8: case 8:
case 46: case 46:
...@@ -88,11 +89,12 @@ KityMinder.registerModule( "KeyboardModule", function () { ...@@ -88,11 +89,12 @@ KityMinder.registerModule( "KeyboardModule", function () {
40: 'down' 40: 'down'
}[ e.originEvent.keyCode ]); }[ e.originEvent.keyCode ]);
} }
e.preventDefault();
break; break;
} }
e.preventDefault();
} }
} }
} }
......
KityMinder.registerModule( "MouseModule", function () { KityMinder.registerModule( "MouseModule", function () {
var SingleSelectCommand = kity.createClass( 'SingleSelectCommand', {
base: Command,
execute: function ( km, node ) {
var deltaNodes = km.getSelectedNodes();
km.clearSelect();
if ( node ) {
km.selectSingle( node );
deltaNodes.push( node );
}
km.execCommand( 'rendernode', deltaNodes );
this.setContentChanged( false );
}
} );
var Draggable = ( function () { var Draggable = ( function () {
var Paper = kity.Paper; var Paper = kity.Paper;
...@@ -156,17 +143,18 @@ KityMinder.registerModule( "MouseModule", function () { ...@@ -156,17 +143,18 @@ KityMinder.registerModule( "MouseModule", function () {
} }
return { return {
"init": function () { "init": function () {
kity.extendClass( kity.Paper, Draggable ); // kity.extendClass( kity.Paper, Draggable );
this._paper.drag(); // this._paper.drag();
},
"commands": {
'selectsingle': SingleSelectCommand
}, },
"events": { "events": {
'mousedown touchstart': function ( e ) { 'mousedown touchstart': function ( e ) {
if ( e.originEvent.touches && e.originEvent.touches.length != 1 ) return; if ( e.originEvent.touches && e.originEvent.touches.length != 1 ) return;
var clickNode = e.getTargetNode(); var clickNode = e.getTargetNode();
this.execCommand( 'selectsingle', clickNode ); if(clickNode){
this.select(clickNode)
}else{
this.removeAllSelectedNodes()
}
}, },
'touchstart': function ( e ) { 'touchstart': function ( e ) {
......
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