(g, gd, legendObj)
| 560 | } |
| 561 | |
| 562 | function drawTexts(g, gd, legendObj) { |
| 563 | var legendId = helpers.getId(legendObj); |
| 564 | var legendItem = g.data()[0][0]; |
| 565 | var trace = legendItem.trace; |
| 566 | var isPieLike = Registry.traceIs(trace, 'pie-like'); |
| 567 | var isEditable = !legendObj._inHover && gd._context.edits.legendText && !isPieLike; |
| 568 | var maxNameLength = legendObj._maxNameLength; |
| 569 | |
| 570 | var name, font; |
| 571 | if(legendItem.groupTitle) { |
| 572 | name = legendItem.groupTitle.text; |
| 573 | font = legendItem.groupTitle.font; |
| 574 | } else { |
| 575 | font = legendObj.font; |
| 576 | if(!legendObj.entries) { |
| 577 | name = isPieLike ? legendItem.label : trace.name; |
| 578 | if(trace._meta) { |
| 579 | name = Lib.templateString(name, trace._meta); |
| 580 | } |
| 581 | } else { |
| 582 | name = legendItem.text; |
| 583 | } |
| 584 | } |
| 585 | |
| 586 | var textEl = Lib.ensureSingle(g, 'text', legendId + 'text'); |
| 587 | |
| 588 | textEl.attr('text-anchor', 'start') |
| 589 | .call(Drawing.font, font) |
| 590 | .text(isEditable ? ensureLength(name, maxNameLength) : name); |
| 591 | |
| 592 | var textGap = legendObj.indentation + legendObj.itemwidth + constants.itemGap * 2; |
| 593 | svgTextUtils.positionText(textEl, textGap, 0); |
| 594 | |
| 595 | if(isEditable) { |
| 596 | textEl.call(svgTextUtils.makeEditable, {gd: gd, text: name}) |
| 597 | .call(textLayout, g, gd, legendObj) |
| 598 | .on('edit', function(newName) { |
| 599 | this.text(ensureLength(newName, maxNameLength)) |
| 600 | .call(textLayout, g, gd, legendObj); |
| 601 | |
| 602 | var fullInput = legendItem.trace._fullInput || {}; |
| 603 | var update = {}; |
| 604 | |
| 605 | update.name = newName; |
| 606 | |
| 607 | if(fullInput._isShape) { |
| 608 | return Registry.call('_guiRelayout', gd, 'shapes[' + trace.index + '].name', update.name); |
| 609 | } else { |
| 610 | return Registry.call('_guiRestyle', gd, update, trace.index); |
| 611 | } |
| 612 | }); |
| 613 | } else { |
| 614 | textLayout(textEl, g, gd, legendObj); |
| 615 | } |
| 616 | } |
| 617 | |
| 618 | /* |
| 619 | * Make sure we have a reasonably clickable region. |
nothing calls this directly
no test coverage detected
searching dependent graphs…