ReadonlyeulerАктивирует редактор на конкретном TextShape Переключает selection на textShape
Закрываем редактор текста
Очищаем ресурсы
ProtectedemitProtectedemitВыход из режима редактирования
Принудительно завершаем редактирование текущей ячейки
Получает текущие настройки форматирования. Если редактор активен — читает атрибуты по позиции курсора Иначе — читаем атрибуты первого символа первой выбранной ячейки
Получаем текущее выравнивание текста для ячеек
Получаем текущее вертикальное выравнивание текста для ячеек
Обработчик потери фокуса
ProtectedonПереопределяет onCanvasPointerUp: когда редактируем TextShape и клик попадает в его bounds — не закрываем редактор
ProtectedonВыделение текста внутри TextShape
Обработчик получения фокуса
Обработчик ввода текста
Обработчик нажатия клавиш
Обработчик изменения выделения
Запрашиваем перерисовку
Сохраняем текст и обновляем ячейку
Устанавливаем выравнивание текста в выбранных ячейках
Устанавливаем вертикальное выравнивание текста в выбранных ячейках
Проверяет, нужно ли завершить редактирование при клике на ячейку
Проверяет, нужно ли завершить редактирование при клике на пустое место
Обновляем позицию курсора
Обновляем выделение в textarea
Активируем редактор текста для ячейки. Если ячейка мультитекст (isMultiTextMode или labels > 1) — разворачиваем TextShape при необходимости (первый дабл-клик) и активируем ближайший.