mirror of
https://github.com/konvajs/konva.git
synced 2025-04-05 18:24:17 +08:00
new naming methods
This commit is contained in:
parent
b51c5a0816
commit
5df69badbf
@ -1,3 +1,9 @@
|
||||
## 0.8.1 2015-02-30
|
||||
|
||||
* Bug Fixes
|
||||
* Enhancements
|
||||
* new methods for working with node's name: `addName`, `removeName`, `hasName`.
|
||||
|
||||
## 0.8.0 2015-02-04
|
||||
|
||||
* Bug Fixes
|
||||
|
56
konva.js
56
konva.js
@ -3,7 +3,7 @@
|
||||
* Konva JavaScript Framework v0.8.0
|
||||
* http://konvajs.github.io/
|
||||
* Licensed under the MIT or GPL Version 2 licenses.
|
||||
* Date: 2015-02-04
|
||||
* Date: 2015-02-08
|
||||
*
|
||||
* Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)
|
||||
* Modified work Copyright (C) 2014 - 2015 by Anton Lavrenov (Konva)
|
||||
@ -3704,6 +3704,60 @@ var Konva = {};
|
||||
this._setAttr(NAME, name);
|
||||
return this;
|
||||
},
|
||||
// naming methods
|
||||
/**
|
||||
* add name to node
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {String} name
|
||||
* @returns {Konva.Node}
|
||||
* @example
|
||||
* node.name('red');
|
||||
* node.addName('selected');
|
||||
* node.name(); // return 'red selected'
|
||||
*/
|
||||
addName : function(name) {
|
||||
if (!this.hasName(name)) {
|
||||
var newName = this.name() + ' ' + name;
|
||||
this.setName(newName);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
/**
|
||||
* check is node has name
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {String} name
|
||||
* @returns {Boolean}
|
||||
* @example
|
||||
* node.name('red');
|
||||
* node.hasName('red'); // return true
|
||||
* node.hasName('selected'); // return false
|
||||
*/
|
||||
hasName : function(name) {
|
||||
var names = this.name().split(/\s/g);
|
||||
return names.indexOf(name) !== -1;
|
||||
},
|
||||
/**
|
||||
* remove name from node
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {String} name
|
||||
* @returns {Konva.Node}
|
||||
* @example
|
||||
* node.name('red selected');
|
||||
* node.removeName('selected');
|
||||
* node.hasName('selected'); // return false
|
||||
* node.name(); // return 'red'
|
||||
*/
|
||||
removeName : function(name) {
|
||||
var names = this.name().split(/\s/g);
|
||||
var index = names.indexOf(name);
|
||||
if (index !== -1) {
|
||||
names.splice(index, 1);
|
||||
this.setName(names.join(' '));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* set attr
|
||||
* @method
|
||||
|
8
konva.min.js
vendored
8
konva.min.js
vendored
File diff suppressed because one or more lines are too long
54
src/Node.js
54
src/Node.js
@ -1428,6 +1428,60 @@
|
||||
this._setAttr(NAME, name);
|
||||
return this;
|
||||
},
|
||||
// naming methods
|
||||
/**
|
||||
* add name to node
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {String} name
|
||||
* @returns {Konva.Node}
|
||||
* @example
|
||||
* node.name('red');
|
||||
* node.addName('selected');
|
||||
* node.name(); // return 'red selected'
|
||||
*/
|
||||
addName : function(name) {
|
||||
if (!this.hasName(name)) {
|
||||
var newName = this.name() + ' ' + name;
|
||||
this.setName(newName);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
/**
|
||||
* check is node has name
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {String} name
|
||||
* @returns {Boolean}
|
||||
* @example
|
||||
* node.name('red');
|
||||
* node.hasName('red'); // return true
|
||||
* node.hasName('selected'); // return false
|
||||
*/
|
||||
hasName : function(name) {
|
||||
var names = this.name().split(/\s/g);
|
||||
return names.indexOf(name) !== -1;
|
||||
},
|
||||
/**
|
||||
* remove name from node
|
||||
* @method
|
||||
* @memberof Konva.Node.prototype
|
||||
* @param {String} name
|
||||
* @returns {Konva.Node}
|
||||
* @example
|
||||
* node.name('red selected');
|
||||
* node.removeName('selected');
|
||||
* node.hasName('selected'); // return false
|
||||
* node.name(); // return 'red'
|
||||
*/
|
||||
removeName : function(name) {
|
||||
var names = this.name().split(/\s/g);
|
||||
var index = names.indexOf(name);
|
||||
if (index !== -1) {
|
||||
names.splice(index, 1);
|
||||
this.setName(names.join(' '));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* set attr
|
||||
* @method
|
||||
|
@ -1094,7 +1094,7 @@ suite('Node', function() {
|
||||
});
|
||||
|
||||
// ======================================================
|
||||
test('get shape name', function() {
|
||||
test('test name methods', function() {
|
||||
var stage = addStage();
|
||||
var layer = new Konva.Layer();
|
||||
var circle = new Konva.Circle({
|
||||
@ -1104,13 +1104,26 @@ suite('Node', function() {
|
||||
fill: 'green',
|
||||
stroke: 'black',
|
||||
strokeWidth: 4,
|
||||
name: 'myCircle'
|
||||
name: 'myCircle foo'
|
||||
});
|
||||
|
||||
layer.add(circle);
|
||||
stage.add(layer);
|
||||
assert.equal(circle.getName(),'myCircle foo');
|
||||
|
||||
assert.equal(circle.getName(),'myCircle');
|
||||
// add existing name
|
||||
circle.addName('foo');
|
||||
assert.equal(circle.getName(),'myCircle foo');
|
||||
|
||||
// check hasName
|
||||
assert.equal(circle.hasName('myCircle'), true);
|
||||
assert.equal(circle.hasName('foo'), true);
|
||||
assert.equal(circle.hasName('boo'), false);
|
||||
assert.equal(stage.findOne('.foo'), circle);
|
||||
|
||||
// removing name
|
||||
circle.removeName('foo');
|
||||
assert.equal(circle.getName(), 'myCircle');
|
||||
});
|
||||
|
||||
// ======================================================
|
||||
|
Loading…
Reference in New Issue
Block a user