Странное поведение JointJS при редактировании и переносе текста - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь отредактировать текст внутри фигуры двойным щелчком мыши и перенести текст на текущую ширину фигуры, автоматически увеличивая высоту. По сути, я хочу, чтобы при редактировании текста дважды щелкнул текст.

Я использую различные части примера кода с минимальными изменениями, чтобы попытаться достичь того, чего я добиваюсь, поэтому большая часть этого не мой код.

В настоящее время у меня есть пользовательская фигура со слушателем для двойного щелчка, которая затем вызывает функцию для изменения текста, это использует функцию joint.util.breakText:

            this.textEditor = new joint.ui.TextEditor({ text: text });
            this.textEditor.render(this.paper.el);

            this.textEditor.on('text:change', function(newText) {

                var cell = cellViewUnderEdit.model;
                cell.prop(cellViewUnderEdit.textEditPath, joint.util.breakText(newText, { width: cell.attributes.size.width }));

                if (cellViewUnderEdit.optionId) {
                    this.textEditor.options.text = cellViewUnderEdit.$('.option.option-' + cellViewUnderEdit.optionId + ' .option-text')[0];
                }

            }, this);

            cellViewUnderEdit = cellView;
            // Prevent dragging during inline editing.
            cellViewUnderEdit.setInteractivity(false);

У меня также есть слушатель пользовательской формы, который запускает изменения и соответственно изменяет размер:

    joint.shapes.special.MyShape = joint.dia.ElementView.extend({

    initialize: function() {

        joint.dia.ElementView.prototype.initialize.apply(this, arguments);
        this.autoresize();
        this.listenTo(this.model, 'change:details', this.autoresize, this);
    },

    autoresize: function() {

        var dim = joint.util.measureText(this.model.get('details'), {
            fontSize: this.model.attr('text/fontSize')
        });
        this.model.resize(dim.width + 5, dim.height + 5);
    }
});

У меня действительно странное поведение, когда пробелы игнорируются для первой строки, и я не могу добавить новые строки самостоятельно. Текстовый курсор также перемещается в верхний левый угол текста и никогда не находится в правильном положении ... в противном случае он работает хорошо! :)

Спасибо за любую помощь !!

...