}.bind(this));
if(_.isFunction(this.onStateChange)) {
this.onStateChange(changes);
+ if(_.isBoolean(changes.active)) {
+ if(changes.active) {
+ var ptr = this;
+ while(ptr && ptr.wlxmlNode.getTagName() === 'span') {
+ ptr = ptr.parent();
+ }
+ if(ptr && ptr.gutterGroup) {
+ ptr.gutterGroup.show();
+ }
+ }
+ }
}
},
parent: function() {
} else {
element = e.canvas.createElement(params);
}
- e.dom[action](element.dom);
- e.refreshPath();
+ if(element.dom) {
+ e.dom[action](element.dom);
+ e.refreshPath();
+ }
return element;
};
clearWidgets: function() {
this.dom.children('.canvas-widgets').empty();
},
+ addToGutter: function(view) {
+ if(!this.gutterGroup) {
+ this.gutterGroup = this.canvas.gutter.createViewGroup({
+ offsetHint: function() {
+ return this.canvas.getElementOffset(this);
+ }.bind(this)
+ }, this);
+ }
+ this.gutterGroup.addView(view);
+ },
handle: function(event) {
var method = 'on' + event.type[0].toUpperCase() + event.type.substr(1);
if(this[method]) {
} else {
element = this.canvas.createElement(params);
}
- this.dom.wrap('<div>');
- this.dom.parent().after(element.dom);
- this.dom.unwrap();
- this.refreshPath();
+ if(element.dom) {
+ this.dom.wrap('<div>');
+ this.dom.parent().after(element.dom);
+ this.dom.unwrap();
+ this.refreshPath();
+ }
return element;
},
before: function(params) {
} else {
element = this.canvas.createElement(params);
}
- this.dom.wrap('<div>');
- this.dom.parent().before(element.dom);
- this.dom.unwrap();
- this.refreshPath();
+ if(element.dom) {
+ this.dom.wrap('<div>');
+ this.dom.parent().before(element.dom);
+ this.dom.unwrap();
+ this.refreshPath();
+ }
return element;
},