Simplifying code related to passing rendering through to nested node
This commit is contained in:
parent
ff7525a6e4
commit
f0c25dfc41
@ -4,7 +4,7 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'any-character',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
this.label = this.renderLabel(this.container, 'any character');
|
||||
}
|
||||
});
|
||||
|
@ -39,6 +39,24 @@ export default {
|
||||
},
|
||||
|
||||
render() {
|
||||
this._render();
|
||||
},
|
||||
|
||||
position() {
|
||||
if (this._proxy) {
|
||||
this._proxy.position();
|
||||
} else {
|
||||
this._position();
|
||||
}
|
||||
},
|
||||
|
||||
proxy(node) {
|
||||
this._proxy = node;
|
||||
this._proxy.setContainer(this.container);
|
||||
this._proxy.render();
|
||||
},
|
||||
|
||||
_render() {
|
||||
console.log(this);
|
||||
|
||||
this.container.addClass('placeholder');
|
||||
@ -51,7 +69,7 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
this.positionLabel(this.label);
|
||||
},
|
||||
|
||||
|
@ -4,7 +4,7 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'charset',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
this.renderLabeledBox(this.invert() ? 'None of:' : 'One of:');
|
||||
|
||||
this.partContainer = this.container.group();
|
||||
@ -15,7 +15,7 @@ export default _.extend({}, Base, {
|
||||
}).bind(this));
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
_.invoke(this.parts.elements, 'position');
|
||||
|
||||
this.spaceVertically(this.parts.elements, {
|
||||
|
@ -4,7 +4,7 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'charset-range',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
this.first.setContainer(this.container.group());
|
||||
this.first.render();
|
||||
|
||||
@ -17,7 +17,7 @@ export default _.extend({}, Base, {
|
||||
});
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
var box;
|
||||
|
||||
this.first.position();
|
||||
|
@ -12,7 +12,7 @@ export default _.extend({}, Base, {
|
||||
return this.esc.arg.textValue;
|
||||
},
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
this.label = this.renderLabel(this.container, _.result(this, this.code()));
|
||||
|
||||
this.label.select('rect').attr({
|
||||
|
@ -4,7 +4,7 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'literal',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
this.label = this.renderLabel(this.container, '"' + this.literal.textValue + '"');
|
||||
|
||||
this.label.select('rect').attr({
|
||||
|
@ -4,7 +4,7 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'match',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
var parts = this.parts();
|
||||
|
||||
if (this.anchorStart() || this.anchorEnd() || parts.length !== 1) {
|
||||
@ -26,16 +26,13 @@ export default _.extend({}, Base, {
|
||||
.addClass('anchor');
|
||||
}
|
||||
} else {
|
||||
this.content = parts[0];
|
||||
this.content.setContainer(this.container);
|
||||
this.content.render();
|
||||
this.proxy(parts[0]);
|
||||
}
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
var items;
|
||||
|
||||
if (this.contents) {
|
||||
if (this.contents.anchor_start) {
|
||||
this.positionLabel(this.contents.anchor_start);
|
||||
}
|
||||
@ -50,9 +47,6 @@ export default _.extend({}, Base, {
|
||||
this.spaceHorizontally(items, {
|
||||
padding: 10
|
||||
});
|
||||
} else {
|
||||
this.content.position();
|
||||
}
|
||||
},
|
||||
|
||||
anchorStart() {
|
||||
|
@ -4,21 +4,19 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'match-fragment',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
if (this._repeat.textValue === '') {
|
||||
this._content.setContainer(this.container);
|
||||
this.proxy(this._content);
|
||||
} else {
|
||||
this._content.setContainer(this.container.group());
|
||||
}
|
||||
this._content.render();
|
||||
}
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
var box, paths = [];
|
||||
|
||||
this._content.position();
|
||||
|
||||
if (this._repeat.textValue !== '') {
|
||||
this._content.container.transform(this._repeat.contentPosition());
|
||||
|
||||
box = this._content.getBBox();
|
||||
@ -40,5 +38,4 @@ export default _.extend({}, Base, {
|
||||
this.container.path(paths.join(''));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -4,12 +4,11 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'regexp',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
var matches = this.matches();
|
||||
|
||||
if (matches.length === 1) {
|
||||
matches[0].setContainer(this.container);
|
||||
matches[0].render();
|
||||
this.proxy(matches[0]);
|
||||
} else {
|
||||
this.matchContainer = this.container.group()
|
||||
.addClass('regexp-matches');
|
||||
@ -22,15 +21,13 @@ export default _.extend({}, Base, {
|
||||
}
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
var matches = this.matches(),
|
||||
includeLines = (matches.length > 1),
|
||||
containerBox,
|
||||
paths;
|
||||
|
||||
_.invoke(matches, 'position');
|
||||
|
||||
if (includeLines) {
|
||||
this.spaceVertically(matches, {
|
||||
padding: 5
|
||||
});
|
||||
@ -81,7 +78,6 @@ export default _.extend({}, Base, {
|
||||
}));
|
||||
|
||||
this.container.prepend(this.container.path(paths.join('')));
|
||||
}
|
||||
},
|
||||
|
||||
matches() {
|
||||
|
@ -4,7 +4,7 @@ import Base from './base.js';
|
||||
export default _.extend({}, Base, {
|
||||
type: 'root',
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
this.regexp.setContainer(this.container.group().transform(Snap.matrix()
|
||||
.translate(10, 0)));
|
||||
this.regexp.render();
|
||||
@ -17,7 +17,7 @@ export default _.extend({}, Base, {
|
||||
.attr({ r: 5 });
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
var contentBox;
|
||||
|
||||
this.regexp.position();
|
||||
|
@ -12,7 +12,7 @@ export default _.extend({}, Base, {
|
||||
'?!': 'negative lookahead'
|
||||
},
|
||||
|
||||
render() {
|
||||
_render() {
|
||||
var label = this.groupLabel();
|
||||
|
||||
if (label) {
|
||||
@ -21,19 +21,16 @@ export default _.extend({}, Base, {
|
||||
this.regexp.setContainer(this.container.group());
|
||||
this.regexp.render();
|
||||
} else {
|
||||
this.regexp.setContainer(this.container);
|
||||
this.regexp.render();
|
||||
this.proxy(this.regexp);
|
||||
}
|
||||
},
|
||||
|
||||
position() {
|
||||
_position() {
|
||||
this.regexp.position();
|
||||
|
||||
if (this.groupLabel()) {
|
||||
this.positionLabeledBox(this.regexp.container, {
|
||||
padding: 10
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
groupLabel() {
|
||||
|
Loading…
Reference in New Issue
Block a user