| 541 | } |
| 542 | |
| 543 | labels_change(model, value) { |
| 544 | const prev_names = model.previous('names'); |
| 545 | this.names = value; |
| 546 | |
| 547 | const data = _.range(this.curr_index + 1); |
| 548 | const selected = utils.deepCopy(this.model.get('selected')); |
| 549 | |
| 550 | // TODO: Use do diff? |
| 551 | data.forEach((elem) => { |
| 552 | const label = this.get_label(elem); |
| 553 | const prev_label = this.get_label(elem, prev_names); |
| 554 | if (prev_label !== label) { |
| 555 | this.d3el.select('.brush_text_' + elem).text(label); |
| 556 | selected[label] = selected[prev_label]; |
| 557 | delete selected[prev_label]; |
| 558 | } |
| 559 | }); |
| 560 | this.set_selected('_selected', selected); |
| 561 | this.touch(); |
| 562 | } |
| 563 | |
| 564 | create_brush() { |
| 565 | // Function to add new brushes. |